Skip to content

Docker Setup

Alexander Elchlepp edited this page Sep 2, 2024 · 27 revisions

Inhaltsübersicht

Mit fewohbee-dockerized steht ein vorkunfiguriertes docker-compose setup bereit, was alles beinhaltet, um die Pensionsverwaltung in der aktuell stabilen Version laufen zu lassen. Dies beinhaltet einen Webserver, Datenbankserver, PHP und das Tool selbst.

Auf dieser Seite wird beschrieben, wie die Pensionsverwaltung mithilfe von Docker und docker-compose verwendet werden kann.

Docker und docker-compose installieren

Im folgenden wird exemplarisch gezeigt, wie Docker und docker-compose unter Debian 12 (bookworm) auf einem Odroid C2 (arm64) installiert werden. Für andere Plattformen bitte die Docker Dokumentation konsultieren.

  • Sicherstellen, dass alle Abhängigkeiten verfügbar sind

    sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common git

  • Dockers GPG Schlüssel hinzufügen

    curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

  • Dockers repository für die aktuelle Architektur (z.b arm64) hinzufügen

    echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

  • Docker und docker compose plugin installieren

    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io apparmor docker-compose-plugin
    

fewohbee-dockerized

Installation

  • In das Zielverzeichnis wechseln (empfohlen /opt/) und docker-compose setup herunterladen

    cd /opt
    git clone https://github.com/developeregrem/fewohbee-dockerized.git
    cd fewohbee-dockerized
    

    Falls noch nicht vorhanden, muss git installiert werden: apt install git

Bekannte Probleme

  • Installation auf einem Server ohne öffentliche IPv4 Adresse

    git clone schlägt fehl, wenn man den obigen Befehl auf einem Server ohne eigene IPv4 Adresse (also IPv6 only) versucht aufzurufen. Grund ist der fehlende IPv6 Support von Github! Siehe auch die Diskussion hier fehlender IPv6 Support

Konfiguration

Zur Unterstützung der Konfiguration erledigt das Script install.sh alle wichtigen Schritte automatisiert. Das Script leitet den Nutzer durch die restlichen Schritte:

chmod +x install.sh
sudo ./install.sh

Zur Konfiguration der E-Mail Funktion siehe: Wiki -> E-Mail

Anwendung manuell starten/stopen

Das Script install.sh startet die Anwendung automatisch. Möchte man Konfigurationsänderungen der Datei .env vornehmen, muss man die Anwendung anschließend neu starten.

  • im Ordner von fewohbee-dockerized (/opt/fewohbee-dockerized/) die Anwendung stopen

    docker compose stop

  • Anschließend wieder starten

    docker compose up -d

    mit -d wird auch sichergestellt, dass die Anwendung bei einem Neustart des Betriebssystems automatisch mitgestartet wird.

  • prüfen, ob alle Dienste laufen

    docker ps

    Die Ausgabe sollte ähnlich der im Bild sein. Unter Status müssen alle als "Up" gelistet sein

    docker ps

    Falls einer der Dienste nicht korrekt gestartet ist kann man z.B. mittels docker compose logs web auf Logs des Containers zugreifen und sehen wo das Problem liegt. (gültige Containernamen hierbei sind: web, php, db, acme, redis)

Pensionsverwaltung manuell initialisieren

(nicht notwendig, wenn das Script install.shverwendet wurde)

  • mittels

    docker compose exec --user www-data php /bin/sh -c "php fewohbee/bin/console app:first-run"

  • Zuletzt mit einem Webbrowser auf die Anwendung zugreifen (hier im Beispiel mit)

    https://fewohbee

    Wenn in der .env Datei SELF_SIGNED=true gewählt wurde, wird beim ersten Besuch eine Sicherheitswarnung des Browsers angezeigt. Diese muss akzeptiert werden, anschließend gelangt man zum Login.

  • Um die Anwendung zu nutzen, bitte die Anleitung Erste Schritte beachten.

Updates

In dem Ordner fewohbee-dockerized existiert ein Script, mit dem die Anwendung vollautomatisch aktualisiert werden kann. Hierfür die folgenden Befehle ausführen:

chmod +x update-docker.sh
./update-docker.sh

Der letzte Befehl aktualisiert alle eingesetzten Images und lädt die neueste (stabile) Version der Pensionsverwaltung herunter.

Datenbank Backups

In dem Ordner fewohbee-dockerized existiert ein Script, mit dem eine vollautomatische Sicherung der Datenbank angelegt werden kann.

  chmod +x backup-db.sh
  ./backup-db.sh

Die Datanbank-Backups sind im Ordner ../dbbackup zu finden.

Backup Wiederherstellen

Die in ../dbbackup abgelegten Backups können wie folgt wieder eingespielt werden:

cd /opt/fewohbee-dockerized

# enter database container
docker compose exec db /bin/sh
cd /dbbackup

# look for the file you want to restore and untar it to get the sql file
ls -l
tar -xf <file>.tar.gz

# restore backup
mariadb -p$MYSQL_ROOT_PASSWORD -u root fewohbee < <file>.sql

# use Strg+D to exit the container at the end