🧠 Tutoriel : Héberger une application (Wiki.js) derrière un sous-domaine avec Mail-in-a-Box
🎯 Objectif
Dans ce tutoriel, je vous montre comment héberger une application Web (comme Wiki.js) derrière un sous-domaine (ex. wiki.mon-domaine.fr) tout en utilisant Mail-in-a-Box comme serveur DNS et certificat SSL.
✅ À la fin, votre application sera disponible en HTTPS à l'adresse
https://wiki.mon-domaine.fr, sécurisée par Let's Encrypt et parfaitement intégrée à votre serveur mail.
🛠️ Prérequis
- Un serveur avec Mail-in-a-Box (MiaB) déjà installé (voir https://mailinabox.email)
- Un nom de domaine configuré dans MiaB (ex :
mon-domaine.fr) - Une application fonctionnelle (ici Wiki.js) tournant sur un port local (ex :
localhost:3000)
Étapes détaillées
🔹 1. Ajouter le sous-domaine dans MiaB
- Connectez-vous à l’interface admin :
https://box.mon-domaine.fr/admin
- Allez dans System > Custom DNS ou Mail > Domains
- Ajoutez une entrée DNS de type
A:wiki.mon-domaine.fr A <IP de votre serveur>
- MiaB générera automatiquement une entrée dans le fichier
/etc/nginx/conf.d/local.conf
🔹 2. Générer un certificat SSL pour le sous-domaine
- Toujours dans l’interface admin, allez dans System > TLS (SSL) Certificates
- Vous verrez apparaître
wiki.mon-domaine.fr - Cliquez sur "Install Certificate" pour générer un certificat SSL avec Let's Encrypt
🔹 3. Vérifier que l’application tourne localement
Lancez votre Wiki.js :
node server # ou via docker, pm2, etc.
Puis vérifiez :
curl http://127.0.0.1:3000
🔹 4. Modifier la configuration Nginx générée par Mail-in-a-Box
⚠️ Mail-in-a-Box génère automatiquement ses fichiers Nginx dans
/etc/nginx/conf.d/local.conf. Il faut modifier ce fichier et non en créer un nouveau, sinon il sera ignoré.
a. Éditez le fichier :
sudo nano /etc/nginx/conf.d/local.conf
b. Cherchez le bloc server qui correspond à wiki.mon-domaine.fr, qui ressemble à :
server {
listen 443 ssl;
server_name wiki.mon-domaine.fr;
root /home/user-data/www/wiki.mon-domaine.fr;
...
}
c. Remplacez tout le contenu du bloc location / {} par ceci :
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Cela permet de rediriger toutes les requêtes vers Wiki.js, qui tourne en local.
🔹 5. Recharger Nginx
Une fois modifié, testez la config :
sudo nginx -t
Puis rechargez Nginx :
sudo systemctl reload nginx
🔹 6. Tester
Ouvrez votre navigateur à l’adresse :
https://wiki.mon-domaine.fr
Vous devriez voir votre Wiki.js en HTTPS avec un certificat valide.
🔐 Astuce : protéger vos modifications
Mail-in-a-Box peut régénérer local.conf à chaque fois que vous exécutez :
sudo mailinabox
➡️ Pensez à sauvegarder votre bloc modifié :
sudo cp /etc/nginx/conf.d/local.conf ~/local.conf.backup
Et si jamais le fichier est écrasé, restaurez votre bloc.
✅ Résultat final
Vous avez maintenant :
- Un sous-domaine
wiki.mon-domaine.frgéré par Mail-in-a-Box - Un certificat SSL généré automatiquement avec Let's Encrypt
- Une application Web (Wiki.js) derrière un proxy Nginx sécurisé
- Le tout intégré harmonieusement avec votre serveur mail