Après avoir exploré un premier VPS puis un cluster K3s, j’ai fait évoluer mon infrastructure vers un homelab physique plus complet et plus adapté à mes besoins quotidiens.
Aujourd’hui, ce serveur héberge une trentaine de services conteneurisés : multimédia, cloud personnel, outils d’automatisation et supervision. Mon but était d’avoir un environnement simple à maintenir, sécurisé de l’extérieur et monitoré en continu.
Vue d’ensemble des flux
flowchart TD
User["1. Connexion depuis l'extérieur
(Accès chiffré en HTTPS)"] --> Secu["2. Filtrage & Sécurité
(Bloque les attaques et demande un code 2FA pour l'administration)"] Secu --> Web["Services Web & Cloud
Nextcloud, Portfolio, Wiki"] Secu --> Media["Multimédia
Films, séries et mangas"] Secu --> Admin["Tableaux de bord & Suivi
Surveillance des serveurs"] Admin -.-> Alerte["Surveillance continue
(Notification Discord en cas de panne)"]
(Accès chiffré en HTTPS)"] --> Secu["2. Filtrage & Sécurité
(Bloque les attaques et demande un code 2FA pour l'administration)"] Secu --> Web["Services Web & Cloud
Nextcloud, Portfolio, Wiki"] Secu --> Media["Multimédia
Films, séries et mangas"] Secu --> Admin["Tableaux de bord & Suivi
Surveillance des serveurs"] Admin -.-> Alerte["Surveillance continue
(Notification Discord en cas de panne)"]
Choix techniques et organisation
1. Pourquoi Docker et Dockge ?
Même si K3s était très formateur, gérer un cluster Kubernetes complet pour un serveur unique demandait trop de maintenance.
- J’utilise Dockge pour gérer mes stacks Docker Compose : c’est léger, chaque stack est isolée dans son dossier avec son propre
docker-compose.yml, et les mises à jour se font en un clic. - Chaque stack a son propre réseau virtuel Docker étanche, et seuls les services web sont raccordés au réseau commun
traefik-net.
2. Sécurisation des accès (Traefik, CrowdSec, Authelia)
Tous les services sont accessibles avec des sous-domaines en HTTPS propre, sans ouvrir de ports inutiles :
- Traefik v3 : Sert de reverse-proxy unique et génère automatiquement les certificats SSL wildcard Let’s Encrypt via l’API Cloudflare.
- CrowdSec : Analyse en continu les requêtes qui arrivent sur Traefik. Si une adresse IP tente des attaques par force brute ou scanne le serveur, elle est immédiatement bannie au niveau du proxy.
- Authelia : Ajoute une couche d’authentification centralisée (SSO) avec validation double facteur (2FA) sur toutes les applications sensibles (dashboards d’admin, monitoring).
- Gluetun VPN : Pour les conteneurs qui ont besoin de masquer leur trafic, tout passe à travers Gluetun avec un kill-switch strict (si la connexion VPN coupe, le trafic s’arrête net).
3. Supervision proactive et alertes
Pour surveiller la santé de l’infrastructure en temps réel :
- Prometheus + Node Exporter + cAdvisor : Récupèrent l’utilisation du processeur, de la mémoire vive et l’état de l’ensemble des conteneurs.
- Loki & Promtail : Centralisent les journaux de logs.
- Grafana : Regroupe toutes les métriques sur des tableaux de bord clairs et synthétiques.
- Alertes Discord : Si un conteneur plante ou qu’un disque dur dépasse 85% d’utilisation, une notification détaillée est immédiatement envoyée sur mon serveur Discord.
