Serveur OVH (ovh.mangi.fr)
| Paramètre |
Valeur |
| Hostname |
ovh.mangi.fr |
| IP |
37.187.110.9 |
| IPv6 |
2001:41d0:a:6309::1/56 |
| Port SSH |
51372 |
| User |
root |
Connexion SSH
ssh -p 51372 root@ovh.mangi.fr
Spécifications matérielles
| Composant |
Valeur |
| OS |
Debian 11 (bullseye) |
| Kernel |
5.10.0-37-amd64 |
| CPU |
Intel Atom N2800 @ 1.86GHz (2 cœurs) |
| RAM |
3.8 Go |
| Swap |
511 Mo |
| Stockage |
1.8 To (833 Go utilisés - 48%) |
Architecture Docker
Vue d'ensemble
| Métrique |
Valeur |
| Conteneurs actifs |
18 |
| Réseaux Docker |
15 |
| Volumes |
216+ |
Stacks Docker Compose
| Stack |
Conteneurs |
Fonction |
Emplacement |
| Mailu |
7 |
Serveur email complet |
/opt/mailu/ |
| NPM |
2 |
Reverse proxy + SSL |
/root/docker/docker-npm/ |
| N8N |
2 |
Workflow automation |
/root/docker/n8n-hosting/ |
| Shlink |
3 |
URL shortener |
Docker anonymous |
| Ownfoil |
1 |
Game library (Switch) |
/home/jeremie/ownfoil/ |
| OpenVPN |
1 |
Serveur VPN |
Docker anonymous |
Services hébergés
Mailu (Serveur Mail)
| Service |
URL |
| Admin |
https://mail.mangi.fr/admin/ |
| Webmail |
https://mail.mangi.fr/webmail/ |
Conteneurs Docker :
| Conteneur |
Image |
Fonction |
Ports |
| mailu-front-1 |
ghcr.io/mailu/nginx:2.0 |
Reverse proxy |
25,110,143,465,587,993,995 |
| mailu-smtp-1 |
ghcr.io/mailu/postfix:2.0 |
Serveur SMTP |
25 |
| mailu-imap-1 |
ghcr.io/mailu/dovecot:2.0 |
IMAP/POP3 |
110,143,993,995 |
| mailu-admin-1 |
ghcr.io/mailu/admin:2.0 |
Interface admin |
8080 (local) |
| mailu-webmail-1 |
ghcr.io/mailu/webmail:2.0 |
Roundcube |
8443 (local) |
| mailu-resolver-1 |
ghcr.io/mailu/unbound:2.0 |
DNS interne |
53/UDP |
| mailu-redis-1 |
redis:alpine |
Cache/session |
6379 |
Configuration :
- DOMAIN : mangi.fr
- TLS : Let's Encrypt automatique
- DKIM : Activé (stocké dans /opt/mailu/dkim/)
- Taille max message : 50 Mo
Emplacement : /opt/mailu
Commandes utiles :
# Voir les conteneurs
docker ps --format '{{.Names}}' | grep mailu
# Ajouter un domaine
docker exec mailu-admin-1 flask mailu domain example.com
# Ajouter un utilisateur
docker exec mailu-admin-1 flask mailu user user example.com 'password'
# Exporter la config
docker exec mailu-admin-1 flask mailu config-export domain
# Redémarrer SMTP (après ajout clé DKIM)
cd /opt/mailu && docker compose restart smtp
# Logs
docker logs mailu-smtp-1 --tail 100
Clés DKIM : /dkim/ (dans le conteneur admin)
# Lister les clés DKIM
docker exec mailu-admin-1 ls -la /dkim/
# Générer une clé DKIM (depuis l'hôte)
openssl genrsa 2048 | docker exec -i mailu-admin-1 tee /dkim/example.com.dkim.key > /dev/null
docker exec mailu-admin-1 chown mailu:mailu /dkim/example.com.dkim.key
# Extraire la clé publique pour DNS
docker exec mailu-admin-1 cat /dkim/example.com.dkim.key | openssl rsa -pubout 2>/dev/null | grep -v '^-' | tr -d '\n'
Nginx Proxy Manager (Reverse Proxy)
| Service |
URL |
| Admin |
http://ovh.mangi.fr:81 |
Conteneurs Docker :
| Conteneur |
Image |
Fonction |
Ports |
| docker-npm-app-1 |
jc21/nginx-proxy-manager:latest |
Proxy HTTP(S) |
80,81,443 |
| docker-npm-db-1 |
jc21/mariadb-aria:latest |
Base données |
3306 |
Emplacement : /root/docker/docker-npm/
Certificats SSL : /root/docker/docker-npm/letsencrypt/live/
N8N (Workflow Automation)
| Service |
URL |
| Interface |
https://n8n.mangi.fr |
Conteneurs Docker :
| Conteneur |
Image |
Fonction |
Ports |
| withpostgres-n8n-1 |
docker.n8n.io/n8nio/n8n:latest |
Moteur workflow |
5678 |
| withpostgres-postgres-1 |
postgres:16 |
Base de données |
5432 |
Emplacement : /root/docker/n8n-hosting/
Health check : /healthz
Shlink (URL Shortener)
| Service |
URL |
| Short URLs |
https://s.mangi.fr |
Conteneurs Docker :
| Conteneur |
Image |
Fonction |
Ports |
| docker-shlink_shlink_1 |
ghcr.io/shlinkio/shlink:stable |
API Shlink |
18080 |
| docker-shlink_shlink-web-client_1 |
ghcr.io/shlinkio/shlink-web-client |
Interface web |
18081 |
| docker-shlink_database_1 |
mariadb:10.8 |
Base données |
3306 |
Ownfoil (Game Library - Switch)
| Service |
URL |
| Interface |
https://switch.mangi.fr |
Conteneur Docker :
| Conteneur |
Image |
Fonction |
Ports |
| ownfoil |
a1ex4/ownfoil:latest |
Gestionnaire jeux |
58465 |
Emplacement : /home/jeremie/ownfoil/
Bibliothèque de jeux : /home/jeremie/torrents/rtorrent/Switch/ (778 Go)
Credentials : /home/jeremie/ownfoil/credentials.txt
OpenVPN
| Conteneur |
Image |
Fonction |
Ports |
| openvpn |
kylemanna/openvpn:latest |
Serveur VPN |
1194/UDP |
Services natifs (hôte)
| Service |
User |
Fonction |
Port |
| rtorrent |
jeremie |
Client torrent |
21388 (IPv6) |
| FileBrowser |
jeremie |
Gestionnaire fichiers |
12633 (local) |
| ProFTPD |
proftpd |
Serveur FTP |
21388 (IPv6) |
| EmbyServer |
- |
Media server |
8096 |
| Nginx |
root |
Reverse proxy hôte |
5380,5480,51080,51443 |
Domaines configurés
Domaines email (Mailu)
| Domaine |
MX |
SPF |
DMARC |
DKIM |
| mangi.fr |
✅ |
✅ |
✅ |
✅ |
| aide-domicile-06.fr |
✅ |
✅ |
✅ |
✅ |
| etang-de-fontmerle.fr |
✅ |
✅ |
✅ |
✅ |
| tgtg.top |
✅ |
✅ |
✅ |
✅ |
| airdazur.com |
✅ |
✅ |
✅ |
✅ |
| wantit-havit.com |
✅ |
✅ |
✅ |
✅ |
| manganate.fr |
✅ |
✅ |
✅ |
✅ |
| piscinade.com |
✅ |
✅ |
✅ |
✅ |
Domaines web (Nginx Proxy Manager)
| Domaine |
Service |
Certificat |
| mail.mangi.fr |
Mailu |
Let's Encrypt ✅ |
| n8n.mangi.fr |
N8N |
Let's Encrypt ✅ |
| switch.mangi.fr |
Ownfoil |
Let's Encrypt ✅ |
| s.mangi.fr |
Shlink |
Let's Encrypt ✅ |
| plex.mangi.fr |
Plex/Emby |
Let's Encrypt ✅ |
| seed.mangi.fr |
Seedbox |
Let's Encrypt ✅ |
| rbnb.mangi.fr |
Airbnb tools |
Let's Encrypt ✅ |
| tgtg.top |
TGTG |
Let's Encrypt ✅ |
| go.airdazur.com |
Redirection |
Let's Encrypt ✅ |
| etang-de-fontmerle.fr |
Site web |
Let's Encrypt ✅ |
Mapping des ports
Ports publics (0.0.0.0)
| Port |
Protocole |
Service |
| 25 |
TCP |
SMTP (Mailu) |
| 80 |
TCP |
HTTP (NPM) |
| 81 |
TCP |
NPM Admin |
| 110 |
TCP |
POP3 (Mailu) |
| 143 |
TCP |
IMAP (Mailu) |
| 443 |
TCP |
HTTPS (NPM) |
| 465 |
TCP |
SMTPS (Mailu) |
| 587 |
TCP |
Submission (Mailu) |
| 993 |
TCP |
IMAPS (Mailu) |
| 995 |
TCP |
POP3S (Mailu) |
| 1194 |
UDP |
OpenVPN |
| 5678 |
TCP |
N8N |
| 18080 |
TCP |
Shlink API |
| 18081 |
TCP |
Shlink Web |
Ports locaux (127.0.0.1)
| Port |
Service |
| 8080 |
Mailu Admin |
| 8443 |
Mailu Webmail |
| 12633 |
FileBrowser |
Configuration DNS requise pour un nouveau domaine
1. Enregistrements DNS (OVH)
# MX - Serveur mail
@ MX 10 mail.mangi.fr. TTL 3600
# SPF - Autorisation d'envoi
@ TXT "v=spf1 mx:mail.mangi.fr ~all" TTL 3600
# DMARC - Politique de validation
_dmarc TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@DOMAIN" TTL 3600
# DKIM - Signature cryptographique (clé publique extraite de Mailu)
dkim._domainkey TXT "v=DKIM1; k=rsa; p=<CLE_PUBLIQUE>" TTL 3600
2. Ajouter le domaine dans Mailu
ssh -p 51372 root@ovh.mangi.fr
docker exec mailu-admin-1 flask mailu domain nouveau-domaine.com
3. Générer la clé DKIM
# Générer
openssl genrsa 2048 | docker exec -i mailu-admin-1 tee /dkim/nouveau-domaine.com.dkim.key > /dev/null
docker exec mailu-admin-1 chown mailu:mailu /dkim/nouveau-domaine.com.dkim.key
# Extraire la clé publique
docker exec mailu-admin-1 cat /dkim/nouveau-domaine.com.dkim.key | openssl rsa -pubout 2>/dev/null | grep -v '^-' | tr -d '\n'
4. Redémarrer SMTP
cd /opt/mailu && docker compose restart smtp
Vérification DNS
# MX
dig MX example.com +short
# SPF
dig TXT example.com +short
# DKIM
dig TXT dkim._domainkey.example.com +short
# DMARC
dig TXT _dmarc.example.com +short
# Reverse DNS
dig -x 37.187.110.9 +short
Outils en ligne :
- https://www.mail-tester.com - Score global
- https://mxtoolbox.com - Vérification MX et blacklists
- https://www.learndmarc.com - Test DKIM/SPF/DMARC
Réseaux Docker
| Réseau |
Plage IP |
Conteneurs |
| mailu_default |
192.168.203.0/24 |
Mailu + NPM |
| docker-npm_default |
192.168.64.0/20 |
NPM + DB |
| withpostgres_default |
172.22.0.0/16 |
N8N + PostgreSQL |
| docker-shlink_default |
172.x.0.0/16 |
Shlink |
| ownfoil_network |
172.x.0.0/16 |
Ownfoil |
Stockage
| Chemin |
Taille |
Contenu |
/home/jeremie/torrents/ |
778 Go |
Bibliothèque jeux Switch |
/root/docker/docker-npm/ |
261 Mo |
NPM + certificats SSL |
/opt/mailu/ |
620 Ko |
Configuration Mailu |
/root/docker/n8n-hosting/ |
420 Ko |
Configuration N8N |
/home/jeremie/ownfoil/ |
160 Ko |
Configuration Ownfoil |
Maintenance
Commandes utiles
# État des conteneurs
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# Espace disque Docker
docker system df
# Nettoyage Docker (conteneurs/images orphelins)
docker system prune -a
# Logs d'un conteneur
docker logs <container_name> --tail 100 -f
# Redémarrer un stack
cd /opt/mailu && docker compose restart
cd /root/docker/docker-npm && docker compose restart
cd /root/docker/n8n-hosting && docker compose restart
Renouvellement SSL
Les certificats Let's Encrypt sont gérés automatiquement par NPM. En cas d'échec :
# Vérifier les logs NPM
docker logs docker-npm-app-1 --tail 200
# Forcer le renouvellement via l'interface web
# http://ovh.mangi.fr:81 → SSL Certificates → Renew
Alertes et recommandations
⚠️ Points d'attention
| Problème |
Impact |
Action recommandée |
| Swap saturé (100%) |
Ralentissement système |
Augmenter swap ou réduire charge |
| CPU limité (Atom N2800) |
Performance |
Surveiller la charge |
| 778 Go non sauvegardés |
Perte de données |
Mettre en place backup |
| Certificats SSL en erreur |
Sites inaccessibles |
Vérifier npm-13, npm-17 |
| Conteneurs orphelins |
Espace disque |
docker system prune |
Monitoring recommandé
# Mémoire et swap
free -h
# Charge CPU
uptime
# Espace disque
df -h
# Processus gourmands
top -o %MEM
Architecture réseau
INTERNET (37.187.110.9)
│
┌──────────────────┴──────────────────┐
│ │
[Nginx Hôte] [OpenVPN]
(5380,5480,51080,51443) (1194/UDP)
│
│
┌────┴────────────────────────────────────────┐
│ Docker NPM Reverse Proxy │
│ Ports: 80, 81, 443 │
│ Let's Encrypt SSL │
├──────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ MAILU Stack │ │ N8N Stack │ │
│ │ (7 conteneurs) │ │ (2 conteneurs) │ │
│ │ mail.mangi.fr │ │ n8n.mangi.fr │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Shlink Stack │ │ Ownfoil │ │
│ │ (3 conteneurs) │ │ (1 conteneur) │ │
│ │ s.mangi.fr │ │ switch.mangi.fr│ │
│ └─────────────────┘ └─────────────────┘ │
│ │
└──────────────────────────────────────────────┘
Services natifs (hôte):
├─ rtorrent (torrent)
├─ FileBrowser (fichiers)
├─ ProFTPD (FTP)
└─ EmbyServer (media)