Darstellung
Fehler finden
Die ersten drei Blicke
sh
cd /opt/postdog
docker compose ps
docker logs --tail 50 postdog-core
docker logs --tail 50 postdog-datadocker 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-coreImmer 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| Ausgabe | Bedeutung |
|---|---|
| (nichts) | alles in Ordnung |
Apache antwortet nicht | Apache im Container liefert die Oberfläche nicht aus |
die Anwendung hoert nicht auf Port 3555 | die Anwendung läuft nicht oder startet gerade neu |
Was die letzten Checks gesagt haben:
sh
docker inspect -f '{{ json .State.Health }}' postdog-coreBeim 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:
| Meldung | Was zu tun ist |
|---|---|
die Lizenz ist ungueltig ( E_LICENSE_… ) | Lizenz neu holen, siehe Lizenz und Pakete |
kein Lizenzschluessel | POSTDOG_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
| Meldung | Ursache und Abhilfe |
|---|---|
Das Einrichten braucht root | als 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 holen | keine 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öffentlicht | kein öffentliches Release; melde dich bei POSTDOG |
Zugang … oder Geheimnis stimmen nicht | die 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-Datei | das Release ist älter als das Skript; melde dich bei POSTDOG |
Auf 80/443 läuft schon etwas, das weder Apache noch nginx ist | hinter 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 POSTDOG | eine eigene Datei dieses Namens liegt im Weg; umbenennen |
… lehnt die Konfiguration ab - sie wurde wieder entfernt | der 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-runHinter 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/nullAbhilfe: docker compose down, dann das Skript noch einmal starten.
In der Oberfläche
| Was du siehst | Bedeutung |
|---|---|
E_NOT_LICENSED | die Funktion gehört zu einem Paket, das nicht gebucht ist – siehe Lizenz und Pakete |
E_NOT_FOUND | der 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.