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:

sh
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