Déployer un avant-poste

Exécutez l’avant-poste sur votre serveur ou NAS pour recevoir les notifications des dossiers de messagerie sélectionnés. Vous avez besoin de Docker, ainsi que de Docker Compose v2 pour l'installation recommandée de Compose.

Disponibilité des images : les versions disponibles sont répertoriées dans Versions de GitHub et GHCR.

1. Choisissez une méthode d'installation

Docker Compose est recommandé : l'installation, les mises à jour et les sauvegardes utilisent la même configuration. L'image est ghcr.io/mingzaily/mailwake:latest , pour Linux amd64 / arm64. latest suit la version stable. Pour épingler une version, remplacez latest par une balise publiée à partir des versions.

Dans votre terminal serveur :

mkdir -p ~/mailwake
cd ~/mailwake

Créez compose.yaml dans ce répertoire avec cette configuration complète :

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:

Téléchargez l'image et démarrez l'avant-poste :

docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core

Vérifiez le résultat : core affiche Up / running et les journaux contiennent le code de configuration initial. Gardez le terminal disponible pour l’étape suivante. Exécutez les futures commandes Compose à partir de ~/mailwake .

Le volume Docker core-data stocke /data . Avec ce nom de répertoire, son nom Docker par défaut est mailwake_core-data . Recréer le conteneur le préserve ; docker compose down -v supprime le volume et son contenu.

Exécution Docker

Choisissez cette installation équivalente si vous préférez une seule commande. Utilisez une méthode d'installation pour votre instance.

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

Cette installation utilise le volume mailwake-data. Les commandes de gestion suivantes utilisent Compose ; voir le Instructions de sauvegarde Docker Run pour l'alternative.

2. Ouvrez la console

Sur l'hôte Docker : ouvrez http://127.0.0.1:8080 .

Sur un serveur distant ou un NAS : exécutez cette commande sur votre propre ordinateur, en remplaçant user@server par l'utilisateur et l'adresse SSH de votre serveur :

ssh -L 18080:127.0.0.1:8080 user@server

Gardez la connexion ouverte et visitez http://127.0.0.1:18080 sur votre ordinateur. C'est suffisant pour terminer la configuration initiale. Configurez HTTPS ci-dessous lorsque vous souhaitez un accès continu via un domaine.

Vérifiez le résultat : l'écran de configuration Mailwake s'ouvre. Entrez le code de configuration à partir des journaux et créez un mot de passe administrateur d'au moins 12 caractères. Le redémarrage de l'avant-poste avant l'installation génère un nouveau code d'installation.

Continuez avec votre première notification pour connecter une boîte aux lettres et un canal de notification.

3. Configurez HTTPS

Pointez votre domaine vers le serveur et configurez votre proxy inverse pour qu'il redirige vers http://127.0.0.1:8080 . Pour Caddy installé sur le même hébergeur, ajoutez votre domaine à Caddyfile :

mail.example.org {
    reverse_proxy 127.0.0.1:8080
}

Vérifiez DNS et autorisez les ports entrants 80 / 443, puis validez et rechargez :

sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

Ouvrez https://mail.example.org , confirmez que le certificat est valide et vérifiez que vous pouvez vous connecter et ouvrir une boîte aux lettres. Consultez le guide d'installation officiel du Caddy pour installer Caddy. Dans un panneau proxy tel que Nginx Proxy Manager, entrez le domaine et l'adresse de transfert et demandez un certificat dans le panneau.

Pour un proxy dans un autre conteneur, rejoignez-le au réseau Docker de l'avant-poste et transférez-le à http://core:8080 ; son 127.0.0.1 fait référence à lui-même. Conservez l'hôte d'origine et définissez X-Forwarded-For . L'avant-poste accepte les informations proxy provenant des réseaux de bouclage et privés ; exposez le port 8080 uniquement au proxy et aux clients locaux de confiance.

4. Mettez à jour l'avant-poste

Complétez un sauvegarde , puis exécutez dans le répertoire Compose :

docker compose pull core
docker compose up -d
docker compose ps
docker compose logs --tail=50 core

Pour une version épinglée, modifiez d'abord la balise d'image dans compose.yaml. Ouvrez la console, vérifiez la surveillance de la boîte aux lettres et envoyez un nouvel e-mail pour vérifier la livraison. Conservez la sauvegarde préalable à la mise à jour. Pour revenir en arrière, restaurez ses données et son image correspondante à l'aide du didacticiel de restauration.

5. Dépannage

L'image ne peut pas être extraite

Vérifiez si GHCR contient la version demandée. manifest unknown signifie généralement une balise manquante. Vérifiez l'adresse de l'image et la visibilité du package pour les erreurs denied, ou la connectivité du serveur à GHCR pour les délais d'attente.

La console ne s'ouvre pas

127.0.0.1 fait référence à l'ordinateur que vous utilisez. Utilisez le tunnel SSH ou un domaine HTTPS pour une installation à distance. Vérifiez d'abord docker compose ps et docker compose logs --tail=50 core. Si 8080 est occupé, modifiez le mappage en 127.0.0.1:18080:8080 et utilisez le port hôte 18080 dans le navigateur et le proxy inverse.

Réinitialiser un mot de passe administrateur

Exécutez dans le répertoire Compose et entrez le nouveau mot de passe à l'invite du terminal :

docker compose stop core
docker compose run --rm -it core admin reset-password
docker compose start core

La commande de récupération acquiert le verrou du répertoire de données, arrêtez donc d'abord l'avant-poste. La réinitialisation du mot de passe révoque les sessions du navigateur et préserve les jetons API, les boîtes aux lettres et la file d'attente.

Connectez l'application officielle et Pro

La console Web gratuite et la livraison Bark / Pushover / Webhook fonctionnent indépendamment. Pour l'application officielle, suivez Connexion de l’app pour HTTPS et l’appairage.

Les builds sources et le développement local sont traités dans le guide de développement .

Constructions sources et paramètres de processus

Pour les versions de développement, suivez les référentiel source README et guide de création des contributeurs .

MAILWAKE_LISTEN est par défaut 127.0.0.1:8080 en dehors de Docker ; le conteneur utilise 0.0.0.0:8080 . MAILWAKE_DATA_DIR est par défaut data ; le conteneur utilise /data . MAILWAKE_RELAY_URL est par défaut https://notify.mailwake.oritx.com . Conservez le répertoire de données complet, y compris secret.key , lors des redémarrages et des mises à niveau.

Changer l’environnement de livraison push

Production et Sandbox utilisent des identités de appairage distinctes. Pour modifier intentionnellement des environnements, arrêtez l'avant-poste et exécutez la réinitialisation sur son répertoire de données existant et l'adresse enregistrée du service de transmission des notifications précédent :

sh
docker compose stop core
docker compose run --rm -it core admin reset-native-push

Tapez reset-native-push lorsque vous y êtes invité. La commande révoque les appairages sur l’ancien service de transmission des notifications. Si ce service est inaccessible, conservez l'ancienne configuration et réessayez lorsqu'il est accessible. Après avoir confirmé zéro cible non résolue, définissez le nouveau MAILWAKE_RELAY_URL , recréez l'avant-poste avec docker compose up -d et coupler à nouveau . La commande préserve l'identité de signature de l'avant-poste et l'historique du canal ordinaire.

Markdown · AGPL-3.0-only · Contributeurs de Mailwake