Serveur de production auto-géré, construit de A à Z : reverse proxy, monitoring, automatisation et une dizaine de services en Docker.
- Ubuntu 24.04
- Docker
- Nginx Proxy Manager
- Prometheus
- Grafana
- Uptime Kuma
- n8n
- PostgreSQL
- WireGuard
- Fail2Ban
Contexte
Un VPS Hetzner CPX32 (4 vCPU AMD, 8 Go RAM, 160 Go SSD, Ubuntu 24.04) qui héberge tous mes projets sous adambellanger.pro : dashboards, automatisations, API et applications web, chacun sur son sous-domaine en HTTPS.
Rôle
Administration système et réseau en solo : installation, durcissement, DNS et certificats, déploiement des services, supervision et maintenance. Toute la mise en place est documentée dans un repo dédié.
Défis
Faire cohabiter une dizaine de services derrière un seul point d'entrée (Nginx Proxy Manager, DNS wildcard, SSL par sous-domaine) en n'exposant que le strict nécessaire. Plusieurs incidents réels, tous documentés : un crash mémoire au premier démarrage qui a imposé un rebuild complet depuis la console Hetzner (corrigé en ajoutant du swap) ; une console VNC en clavier QWERTZ qui empêchait de taper certaines commandes ; un VPN qui reroutait tout le trafic et coupait la session SSH (whitelist du port 22, OpenVPN --route-nopull, proxychains et Cloudflare Warp testés) ; un conflit de ports 80/443 entre Nginx système et Nginx Proxy Manager.
Résultat
Une infra stable qui sert de socle à tous mes projets : monitoring Prometheus/Grafana, disponibilité suivie par Uptime Kuma, notifications Ntfy, mises à jour automatiques des conteneurs avec Watchtower, et des services Node gérés par PM2.
Points clés
- Grafana, Prometheus, Uptime Kuma, n8n, Portainer, IT-Tools, Ntfy, PostgreSQL
- Reverse proxy + SSL par sous-domaine via Nginx Proxy Manager
- Accès sécurisé : clé SSH, WireGuard, Fail2Ban
- Setup scripté et documenté pour être reproductible