anchor.diff:  12:20:09 Mitternacht.Services.Impl.BotCredentials | 'credentials.json' is missing. Add it and restart the program. An example can be found in /data/credentials_example.json
   ----
   
  +==== docker-compose
  +
  +Grundvoraussetzungen für diese Methode sind eine aktuelle Version von `docker-compose` und `docker>=19.03.0`.
  +Im Gegensatz zur Variante mit dem <<dotnet-build-run-docker,dotnet-build-run-docker Skript>> wird hier kein zusätzlicher Prozess, wie bspw. eine `tmux`-Session, benötigt.
  +Das hat jedoch zum Nachteil, dass der Bot nicht mehr in der Lage ist, sich selbst zu updaten.
  +
  +Die folgenden Erklärungen nutzen das Verzeichnis `mybot` als Hauptverzeichnis für das geklonte Botrepository.
  +Der Name kann selbstverständlich (und sollte) mit einem beliebigen anderen Namen ausgetauscht werden.
  +Dieser Name ist gleichzeitig auch Präfix für docker images, container und volumes.
  +
  +===== Klonen des Repositories
  +
  +Der Bot kann mit folgendem Befehl geklont werden.
  +
  +[source,bash]
  +----
  +$ git clone --recurse-submodules https://github.com/Midnight-Myth/Mitternacht-NEW mybot
  +$ cd mybot
  +----
  +
  +Standardmäßig wird der Branch `master` ausgecheckt, der gleichzeitig auch der stabile Branch ist.
  +
  +===== Konfiguration für docker-compose
  +
  +Als nächstes müssen Einstellungen für `docker-compose` festgelegt werden.
  +Dazu kann die Datei `example.env` zu `.env` kopiert werden.
  +
  +[source,bash]
  +----
  +$ cp example.env .env
  +----
  +
  +Die folgende Tabelle listet alle Konfigurationsmöglichkeiten
  +
  +|====
  +| MITTERNACHT_WEB_PORT | Der Port, unter dem das Webinterface über die Hostmaschine erreichbar ist.
  +|====
  +
  +Die aktuelle Dockerunterstützung ist darauf ausgerichtet, dass das Webinterface hinter einem Reverseproxy aktiv ist.
  +Möglicherweise wird die Option `MITTERNACHT_WEB_PORT` daher in Zukunft wegfallen.
  +
  +===== Der erste Start des Bots
  +
  +Der Bot muss konfiguriert werden, um richtig zu funktionieren.
  +Da am Anfang die nötigen Konfigurationsdateien fehlen, kann man sich Beispieldateien generieren lassen.
  +
  +Dazu kann man den Bot mit
  +
  +[source,bash]
  +----
  +$ docker-compose up --no-start
  +$
  +----
  +
  +starten und mit `Ctrl+C` beenden, sobald die folgende Nachricht auftritt.
  +
  +[source]
  +----
  +12:20:09 Mitternacht.Services.Impl.BotCredentials | 'credentials.json' is missing. Add it and restart the program. An example can be found in /data/credentials_example.json
  +----
  +
  +Mit folgendem Befehl kann man in eine Sh-Umgebung gelangen, die Zugriff auf die Konfigurationsdateien gibt.
  +Als Editor vorinstalliert ist aus Gründen der Einfachkeit `nano`.
  +
  +[source,bash]
  +----
  +$ docker-compose run mitternacht /bin/sh
  +----
  +
  +Weitere Informationen zur Konfiguration gibt es in der Sektion <<Konfiguration>>.
  +
  +===== Reguläres Starten und Stoppen des Bots
  +
  +[source,bash]
  +----
  +# Start
  +$ docker-compose up -d
  +
  +# Stop
  +$ docker-compose down
  +----
  +
  +===== Updates
  +
  +Mit den folgenden Befehlen, ausgeführt im Verzeichnis `mybot`, wird der Bot geupdatet.
  +
  +[source,bash]
  +----
  +$ docker-compose down
  +$ git pull --ff-only --recurse-submodules
  +$ docker-compose up -d
  +----
  +
  +===== Speicherort der Daten
  +
  +In `docker-compose.yml` werden zwei Volumes definiert: Eins für die Postgres-Datenbank und eins für die Konfigurations- und weitere Dateien des Bots.
  +Standardmäßig sind diese unter `/var/lib/docker/volumes/` zu finden.
  +Eine Kopie dieser Volumes reicht aus, um den Bot zum Beispiel auf einem anderen Computer mit gleichen Daten zum Laufen zu bringen.
  +
   
   == Konfiguration
   
  
positive.code: {
    "ClientId": 0,
    "Token": "",
    "DbConnection": "Host=127.0.0.1;Port=5432;Database=mitternachtbot;Username=mitternachtbot;Password=mitternachtbotpassword;",
    "OwnerIds": [
      0
    ],
  
negative.code: 
  Das Verzeichnis `datadir` wird für den Bot notwendige Konfigurationsdateien enthalten und mit einem laufenden Dockercontainer geteilt.
  
  ===== Starten des Bots
  
  Zum Generieren der Botkonfigurationsdateien kann der Bot nun ausgeführt werden.
  Der Befehl `dotnet-build-run-docker` liest standardmäßig eine Datei `build-run-docker.cfg` im aktuellen Verzeichnis.
  