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 :
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