Einen Außenposten bereitstellen
Führen Sie den Außenposten auf Ihrem Server oder NAS aus, um Benachrichtigungen von ausgewählten E-Mail-Ordnern zu erhalten. Sie benötigen Docker und Docker Compose v2 für die empfohlene Compose-Installation.
Verfügbarkeit des Container-Images: Verfügbare Versionen sind in GitHub-Veröffentlichungen und GHCR aufgeführt.
1. Wählen Sie eine Installationsmethode
Docker Compose wird empfohlen: Installation,
Updates und Backups verwenden dieselbe Konfiguration. Das
Container-Image ist
ghcr.io/mingzaily/mailwake:latest für Linux amd64 /
arm64. latest folgt der stabilen Version. Um eine
Version anzuheften, ersetzen Sie latest durch ein
veröffentlichtes Tag aus „Releases“.
In Ihrem Serverterminal:
mkdir -p ~/mailwake
cd ~/mailwake
Erstellen Sie in diesem Verzeichnis compose.yaml mit
dieser vollständigen Konfiguration:
services:
core:
image: ghcr.io/mingzaily/mailwake:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
environment:
MAILWAKE_LISTEN: "0.0.0.0:8080"
MAILWAKE_DATA_DIR: "/data"
MAILWAKE_RELAY_URL: "${MAILWAKE_RELAY_URL:-}"
volumes:
- core-data:/data
read_only: true
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
stop_grace_period: 30s
volumes:
core-data:
Laden Sie das Image herunter und starten Sie den Außenposten:
docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core
Überprüfen Sie das Ergebnis:
core zeigt Up / running an
und die Protokolle enthalten den Ersteinrichtungscode. Halten Sie
das Terminal für den nächsten Schritt bereit. Führen Sie zukünftige
Compose-Befehle von ~/mailwake aus.
Das Docker-Volume core-data speichert
/data. Bei diesem Verzeichnisnamen lautet der
Standard-Docker-Name mailwake_core-data. Durch die
Neuerstellung des Containers bleibt dieser erhalten;
docker compose down -v löscht das Volume und seinen
Inhalt.
Docker-Run
Wählen Sie diese äquivalente Installation, wenn Sie einen einzelnen Befehl bevorzugen. Verwenden Sie eine Installationsmethode für Ihre Instanz.
docker volume create mailwake-data
docker run -d \
--name mailwake \
--restart unless-stopped \
--stop-timeout 30 \
--read-only \
--security-opt no-new-privileges:true \
--cap-drop ALL \
-p 127.0.0.1:8080:8080 \
-v mailwake-data:/data \
ghcr.io/mingzaily/mailwake:latest
docker logs --tail=50 mailwake
Diese Installation verwendet das Volume mailwake-data.
Die folgenden Verwaltungsbefehle verwenden Compose; Die Alternative
finden Sie im
Anweisungen zur Sicherung von Docker Run.
2. Öffnen Sie die Konsole
Auf dem Docker-Host: Öffnen Sie http://127.0.0.1:8080 .
Auf einem Remote-Server oder NAS: Führen Sie diesen
Befehl auf Ihrem eigenen Computer aus und ersetzen Sie dabei
user@server durch den SSH-Benutzer und die SSH-Adresse
Ihres Servers:
ssh -L 18080:127.0.0.1:8080 user@server
Halten Sie die Verbindung offen und rufen Sie http://127.0.0.1:18080 auf Ihrem Computer auf. Dies reicht aus, um die Ersteinrichtung abzuschließen. Konfigurieren Sie unten HTTPS, wenn Sie dauerhaften Zugriff über eine Domäne wünschen.
Überprüfen Sie das Ergebnis: Der Setup-Bildschirm Mailwake wird geöffnet. Geben Sie den Setup-Code aus den Protokollen ein und erstellen Sie ein Administratorkennwort mit mindestens 12 Zeichen. Durch einen Neustart des Außenpostens vor dem Setup wird ein neuer Setup-Code generiert.
Fahren Sie mit Ihre erste Benachrichtigung fort, um ein Postfach und einen Benachrichtigungskanal zu verbinden.
3. Konfigurieren Sie HTTPS
Richten Sie Ihre Domain auf den Server und konfigurieren Sie Ihren
Reverse-Proxy für die Weiterleitung an
http://127.0.0.1:8080. Wenn Caddy auf demselben Host
installiert ist, fügen Sie Ihre Domäne zu
Caddyfile hinzu:
mail.example.org {
reverse_proxy 127.0.0.1:8080
}
Überprüfen Sie DNS und erlauben Sie die eingehenden Ports 80/443. Anschließend validieren und neu laden:
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
Öffnen Sie https://mail.example.org, bestätigen Sie,
dass das Zertifikat gültig ist, und prüfen Sie, ob Sie sich anmelden
und ein Postfach öffnen können. Informationen zur Installation von
Caddy finden Sie im
offizielle Caddy-Installationsanleitung. Geben Sie in einem Proxy-Panel wie Nginx Proxy Manager die Domäne
und die Weiterleitungsadresse ein und fordern Sie im Panel ein
Zertifikat an.
Für einen Proxy in einem anderen Container verbinden Sie ihn mit dem
Docker-Netzwerk des Außenpostens und leiten Sie ihn an
http://core:8080 weiter; sein
127.0.0.1 bezieht sich auf sich selbst. Behalten Sie
den ursprünglichen Host bei und stellen Sie
X-Forwarded-For ein. Der Außenposten akzeptiert
Proxy-Informationen von Loopback- und privaten Netzwerken; Stellen
Sie Port 8080 nur dem Proxy und vertrauenswürdigen lokalen Clients
zur Verfügung.
4. Aktualisieren Sie den Außenposten
Führen Sie einen Sicherung aus und führen Sie ihn dann im Compose-Verzeichnis aus:
docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core
Für eine angeheftete Version ändern Sie zunächst das Image-Tag in
compose.yaml. Öffnen Sie die Konsole, überprüfen Sie
die Postfachüberwachung und senden Sie eine neue E-Mail, um die
Zustellung zu überprüfen. Bewahren Sie die Sicherung vor dem Update
auf. Um ein Rollback durchzuführen, stellen Sie mithilfe des
Wiederherstellungs-Tutorials sowohl die Daten als auch das
entsprechende Image wieder her.
5. Fehlerbehebung
Das Image lässt sich nicht herunterladen
Prüfen Sie, ob GHCR die angeforderte Version enthält.
manifest unknown bedeutet normalerweise ein fehlendes
Tag. Überprüfen Sie die Image-Adresse und die Paketsichtbarkeit auf
denied-Fehler oder die Serververbindung zum GHCR auf
Zeitüberschreitungen.
Die Konsole lässt sich nicht öffnen
127.0.0.1 bezieht sich auf den Computer, den Sie
verwenden. Verwenden Sie für eine Remote-Installation den SSH-Tunnel
oder eine HTTPS-Domäne. Überprüfen Sie zuerst
docker compose ps und
docker compose logs --tail=50 core. Wenn 8080 belegt
ist, ändern Sie die Zuordnung auf
127.0.0.1:18080:8080 und verwenden Sie Host-Port 18080
im Browser und Reverse-Proxy.
Setzen Sie ein Administratorkennwort zurück
Führen Sie im Compose-Verzeichnis aus und geben Sie das neue Passwort an der Terminal-Eingabeaufforderung ein:
docker compose stop core
docker compose run --rm -it core admin reset-password
docker compose start core
Der Wiederherstellungsbefehl erwirbt die Datenverzeichnissperre. Stoppen Sie daher zuerst den Außenposten. Durch das Zurücksetzen des Passworts werden Browsersitzungen widerrufen und API-Tokens, Postfächer und die Warteschlange bleiben erhalten.
Verbinden Sie die offizielle App und Pro
Die Free-Webkonsole und die Bark-/Pushover-/Webhook-Bereitstellung funktionieren unabhängig voneinander. Für die offizielle App folgen Sie App-Integration für HTTPS und Kopplung.
Quellcode-Builds und lokale Entwicklung werden im Entwicklungsleitfaden behandelt.
Quell-Builds und Prozesseinstellungen
Befolgen Sie für Entwicklungs-Builds die Anweisungen Quell-Repository README und Build-Anleitung für Mitwirkende.
MAILWAKE_LISTEN ist außerhalb von Docker standardmäßig
127.0.0.1:8080. Der Container verwendet
0.0.0.0:8080 . MAILWAKE_DATA_DIR ist
standardmäßig data; Der Container verwendet
/data . MAILWAKE_RELAY_URL ist
standardmäßig https://notify.mailwake.oritx.com .
Behalten Sie das vollständige Datenverzeichnis, einschließlich
secret.key, bei Neustarts und Upgrades.
Ändern Sie die Push-Übermittlungsumgebung
Produktion und Sandbox verwenden separate Paarungsidentitäten. Um Umgebungen absichtlich zu ändern, stoppen Sie den Außenposten und führen Sie den Reset für sein vorhandenes Datenverzeichnis und die gespeicherte Adresse des vorherigen Push-Zustelldienstes durch:
docker compose stop core
docker compose run --rm -it core admin reset-native-push
Geben Sie reset-native-push ein, wenn Sie dazu
aufgefordert werden. Der Befehl widerruft Kopplungen beim alten
Push-Zustelldienst. Wenn dieser Dienst nicht erreichbar ist,
behalten Sie die alte Konfiguration bei und versuchen Sie es erneut,
wenn er erreichbar ist. Nachdem bestätigt wurde, dass es keine
ungelösten Ziele gibt, legen Sie den neuen
MAILWAKE_RELAY_URL fest und erstellen Sie den
Außenposten mit docker compose up -d und
erneut koppeln neu. Der Befehl
bewahrt die Signaturidentität des Außenpostens und den Verlauf des
gewöhnlichen Kanals.
Markdown · AGPL-3.0-only · Mailwake-Mitwirkende