Docker

Germando bietet vorgefertigte Deutsche Docker-Images über GitHub Packages an. ghcr.io/flimanda/germando-panel:latest ist die aktuelle neueste Version, und ghcr.io/flimanda/germando-panel:main wird automatisch aus dem aktuellen main-Branch erstellt. Die Bereitstellung des Panels in Docker ist noch in Arbeit. Obwohl der Plan ist, Docker zur bevorzugten Installationsmethode zu machen, empfehlen wir derzeit die Standard-Bereitstellungsanweisungen.

Diese Anleitung erfordert Docker CE. (Docker Compose ist seit v2 in der Docker CLI enthalten. Docker Compose v1 wird nicht unterstützt.) Anweisungen zur Installation und Konfiguration von Docker finden Sie im Installationshandbuch.

Grundlagen

Die einfachste Bereitstellungsmethode ist die Verwendung der Standard-compose.yml-Datei.

Diese Konfiguration enthält einen integrierten Webserver, der automatisch SSL-Zertifikate erhält, wenn Sie über HTTPS bereitstellen. Für die Datenbank wird angenommen, dass Sie SQLite verwenden möchten (oder einen externen Datenbankserver haben, den Sie über den Installer konfigurieren können). Es wird auch angenommen, dass Sie den Filesystem-Treiber für Cache, Filesystem oder Datenbanktreiber für Session und Datenbanktreiber für Queue verwenden möchten (oder einen externen Redis-Server haben, den Sie über den Installer konfigurieren können). Wenn Sie andere in Docker integrierte Optionen verwenden möchten, siehe Erweiterte Optionen.

compose.yml erstellen

compose.yml

services:
  panel:
    image: ghcr.io/flimanda/germando-panel:latest
    restart: always
    networks:
      - default
    ports:
      - "80:80"
      - "443:443"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - pelican-data:/pelican-data
      - pelican-logs:/var/www/html/storage/logs
    environment:
      XDG_DATA_HOME: /pelican-data
      APP_URL: "http://localhost"
      ADMIN_EMAIL: "USEYOUROWNEMAILHERE@example.com"

volumes:
  pelican-data:
  pelican-logs:

networks:
  default:
    ipam:
      config:
        - subnet: 172.20.0.0/16

Erforderliche Umgebungsvariablen setzen

Setzen Sie APP_URL auf die Basis-URL, unter der Ihr Panel erreichbar sein wird, einschließlich des Protokolls (https:// oder http://) und des Ports.

Beachten Sie, dass Caddy, der integrierte Webserver, eine 308-Weiterleitung für alle Anfragen auf Port 80 bereitstellt, wenn APP_URL mit https:// beginnt. Wenn Ihre endgültige Website über HTTPS erreichbar sein wird, aber TLS (SSL) von einem Upstream-Server wie einem Reverse-Proxy verarbeitet und beendet wird, müssen Sie eine benutzerdefinierte Caddyfile verwenden.

Setzen Sie ADMIN_EMAIL auf Ihre E-Mail-Adresse. Caddy wird diese E-Mail-Adresse verwenden, um ein LetsEncrypt SSL-Zertifikat zu generieren, wenn Sie über HTTPS bereitstellen.

Schließen und speichern Sie nun die Änderungen an compose.yml.

Starten

Führen Sie im Verzeichnis, in dem sich die Compose-Datei befindet, folgenden Befehl aus:

docker compose up -d

Verschlüsselungsschlüssel sichern

Beim ersten Start des Containers wird ein APP_KEY generiert, der als Verschlüsselungsschlüssel verwendet wird. Dieser wird automatisch gespeichert, aber Sie sollten eine Kopie an einem sicheren Ort aufbewahren, falls Sie ihn später benötigen.

docker compose logs panel | grep 'Generated app key:'

Installation

Öffnen Sie den Installer in Ihrem Browser unter APP_URL/installer, um die Einrichtung des Panels abzuschließen.

Hinweis Beim ersten Start des Containers nach der Installation oder Aktualisierung werden Datenbankmigrationen angewendet, was einige Minuten dauern kann. Das Panel ist während dieses Vorgangs nicht zugänglich.

Sinnvolle Treiber-Standardwerte:

Für andere Konfigurationen wie UI-Optionen, CAPTCHA, E-Mail, Backups und OAuth gehen Sie zum Einstellungsmenü im Admin-Panel.

Stoppen

Das Panel wird automatisch neu gestartet, wenn der Container abstürzt oder der Host neu startet. Wenn Sie das Panel aus irgendeinem Grund nicht-destruktiv stoppen müssen, navigieren Sie zurück zum Verzeichnis mit compose.yml und führen Sie aus:

docker compose down

Deinstallation

Um das Panel zu deinstallieren, navigieren Sie zum Verzeichnis mit compose.yml und führen Sie aus:

docker compose down -v
Achtung Dies wird das Panel und alle zugehörigen Daten einschließlich der SQLite-Datenbank und Ihres Verschlüsselungsschlüssels dauerhaft löschen.

Erweiterte Optionen

Benutzerdefinierte Caddyfile

Die Standard-Caddyfile funktioniert für Standardinstallationen. Wenn Sie die Konfiguration des integrierten Webservers bearbeiten müssen, z.B. um ihn hinter einem Reverse-Proxy zu platzieren, der TLS beendet, können Sie dies tun, indem Sie eine Caddyfile auf dem Host an /etc/caddy/Caddyfile im Container binden.

Dieses Beispiel geht davon aus, dass sich eine Caddyfile im gleichen Verzeichnis wie die compose.yml-Datei befindet.

compose.yml

services:
  panel:
    image: ghcr.io/flimanda/germando-panel:latest
    restart: always
    networks:
      - default
    ports:
      - "80:80"
      - "443:443"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - pelican-data:/pelican-data
      - pelican-logs:/var/www/html/storage/logs
      - ./Caddyfile:/etc/caddy/Caddyfile
    environment:
      XDG_DATA_HOME: /pelican-data
      APP_URL: "http://localhost"
      ADMIN_EMAIL: "USEYOUROWNEMAILHERE@example.com"

volumes:
  pelican-data:
  pelican-logs:

networks:
  default:
    ipam:
      config:
        - subnet: 172.20.0.0/16

Ein Beispiel für eine Caddyfile zum Hosten des Panels hinter einem Reverse-Proxy ist unten dargestellt. Es macht das Panel auf Port 80 unabhängig vom Host-Header verfügbar und versucht nicht, ein TLS-Zertifikat zu erhalten. [UPSTREAM IP] muss durch die IP-Adresse des Reverse-Proxys ersetzt werden.

Caddyfile

{
    admin off
    servers {
        trusted_proxies static [UPSTREAM IP]
    }
}

:80 {
    root * /var/www/html/public
    encode gzip

    php_fastcgi 127.0.0.1:9000
    file_server
}
Hinweis Wenn die trusted-Direktive nicht gesetzt oder falsch konfiguriert ist, schlagen Datei-Uploads fehl. Häufig, wenn der Reverse-Proxy außerhalb von Docker läuft, stimmt die IP-Adresse nicht mit 127.0.0.1 überein, sondern mit einer Docker-Bridge-Schnittstelle oder docker0.

Datei-Upload-Limits erhöhen

Das Standard-Datei-Upload-Limit beträgt 2MB. Um dieses Limit zu erhöhen, modifizieren Sie die Caddyfile wie folgt:

Caddyfile

<domain> {
    ...

    encode gzip

    php_fastcgi 127.0.0.1:9000 {
        env PHP_VALUE "upload_max_filesize = 256M
                       post_max_size = 256M"
    }
    file_server
}