Aller au contenu

Serveur OVH (ovh.mangi.fr)

Informations de connexion

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


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)