Skip to content

Fehler finden ​

Die ersten drei Blicke ​

sh
cd /opt/postdog
docker compose ps
docker logs --tail 50 postdog-core
docker logs --tail 50 postdog-data

docker compose ps zeigt beide Container mit Zustand. Hinter postdog-core steht healthy, starting oder unhealthy. Nach dem Start hat er zwei Minuten Zeit, bevor ein fehlgeschlagener Health-Check zählt.

docker logs postdog-core enthält alles: den Start, Apache und die Anwendung. Mitlesen:

sh
docker logs -f postdog-core

Immer aus /opt/postdog

docker compose liest die .env aus dem aktuellen Verzeichnis. Woanders aufgerufen, meldet es POSTDOG_IMAGE fehlt - .env nicht geladen?.

Der Health-Check ​

Der Check fragt, ob die Dienste antworten, nicht nur, ob sie laufen. Von Hand:

sh
docker exec postdog-core postdog-health
AusgabeBedeutung
(nichts)alles in Ordnung
Apache antwortet nichtApache im Container liefert die Oberfläche nicht aus
die Anwendung hoert nicht auf Port 3555die Anwendung läuft nicht oder startet gerade neu

Was die letzten Checks gesagt haben:

sh
docker inspect -f '{{ json .State.Health }}' postdog-core

Beim Start des Containers ​

Bei jedem Start prüft postdog-core Lizenz und Geheimnisse, bevor er etwas startet. Schlägt das fehl, steht es oben in docker logs postdog-core:

MeldungWas zu tun ist
die Lizenz ist ungueltig ( E_LICENSE_… )Lizenz neu holen, siehe Lizenz und Pakete
kein LizenzschluesselPOSTDOG_LICENSE fehlt in der .env
es fehlen Geheimnisse: …postdog-secrets ist leer oder unvollständig – aus der Sicherung zurückspielen
POSTDOG_HOST fehlt - wurde die .env geladen?die .env ist unvollständig

Fehlende Geheimnisse nie neu erzeugen

Der Container legt beim Start absichtlich keine Geheimnisse an. Ein neuer Keystore neben einer vorhandenen Datenbank macht Empfängernamen und -adressen unlesbar. Spiel postdog-secrets aus der Sicherung zurück.

Meldungen des Installationsskripts ​

MeldungUrsache und Abhilfe
Das Einrichten braucht rootals root starten oder mit sudo bash postdog-install.sh
Für die Prüfung der Unterschrift braucht es openssl.openssl installieren
Das Release ließ sich nicht holenkeine https-Verbindung zu download.postdog.de – Firewall, Proxy, DNS der Maschine prüfen
Die Unterschrift des Releases stimmt nicht.die Datei wurde unterwegs verändert oder stammt nicht von POSTDOG. Es wurde nichts installiert. Melde dich bei POSTDOG – nicht mit --no-release umgehen.
Dieses Release ist nicht veröffentlichtkein öffentliches Release; melde dich bei POSTDOG
Zugang … oder Geheimnis stimmen nichtdie Lizenz-Anfrage kam mit 401 zurück: Geheimnis vertippt, falscher Zugang oder Zugang widerrufen
Die Lizenz ließ sich nicht holen ( HTTP … )der Server hat anders geantwortet; der Text dahinter sagt, warum
Die Anmeldung bei … ist abgelehnt worden.die Registry nimmt Zugang oder Geheimnis nicht an
… ist nicht zu holen und es liegt kein Dockerfile daneben.das Image ließ sich nicht holen; meist fehlt die Anmeldung
Im Image liegt keine compose-Dateidas Release ist älter als das Skript; melde dich bei POSTDOG
Auf 80/443 läuft schon etwas, das weder Apache noch nginx isthinter diesem Webserver richtet sich POSTDOG nicht selbst ein
Mail-Ports belegt: …kein Abbruch: ein anderer Mailserver läuft hier, POSTDOG veröffentlicht diese Ports nicht
Das Volume postdog-secrets ist neu, postdog-mysql gibt es aber schon.Abbruch zum Schutz der Daten, siehe Sichern und Wiederherstellen
… postdog.conf gibt es schon und stammt nicht von POSTDOGeine eigene Datei dieses Namens liegt im Weg; umbenennen
… lehnt die Konfiguration ab - sie wurde wieder entferntder Konfigurationstest ist gescheitert. Dein Webserver läuft unverändert; die Zeilen darüber sagen, woran es lag.
Kein Zertifikat - zeigen … schon auf diese Maschine?der DNS stimmt noch nicht. POSTDOG läuft vorerst über http. Nach dem DNS das Skript noch einmal starten, vorher docker compose down.
POSTDOG antwortet nicht ( Zustand: … )der Container wurde nicht healthy. Das Skript zeigt die letzten 30 Zeilen des Logs – dort steht der Grund.

Den Ablauf ohne Änderungen nachvollziehen:

sh
bash postdog-install.sh --dry-run

Hinter Apache oder nginx ​

Der POSTDOG-vhost greift nicht, es erscheint eine andere Seite: Prüf, auf welche Adressen dein Webserver lauscht und welcher vhost für den Namen gewählt wird:

sh
apachectl -S
nginx -T | grep -E 'listen|server_name'

502 Bad Gateway: Der Port im vhost und der Port des Containers passen nicht zusammen. Das passiert, wenn das Skript ein zweites Mal lief, während POSTDOG noch lief. Vergleiche:

sh
grep POSTDOG_BIND_80 /opt/postdog/.env
grep -h 127.0.0.1 /etc/apache2/sites-available/postdog.conf /etc/httpd/conf.d/postdog.conf /etc/nginx/sites-available/postdog.conf /etc/nginx/conf.d/postdog.conf 2>/dev/null

Abhilfe: docker compose down, dann das Skript noch einmal starten.

In der Oberfläche ​

Was du siehstBedeutung
E_NOT_LICENSEDdie Funktion gehört zu einem Paket, das nicht gebucht ist – siehe Lizenz und Pakete
E_NOT_FOUNDder Server kennt die Funktion nicht – meist ist die Oberfläche neuer als die Anwendung

Besprechungen ​

Geht ein Anruf im eigenen Netz, aber nicht zwischen zwei Firmen oder über Mobilfunk, fehlt fast immer der TURN-Server. Siehe DNS-Einträge.

Kalender ​

Findet Thunderbird keine Kalender und fragt nicht einmal nach einem Kennwort, hat es den Dienst nie erreicht. Siehe DNS-Einträge.

POSTDOG – Mail, Verteiler, Chat und Besprechungen auf deinem eigenen Server.