Premier VPS & Découverte de Docker

Pendant mon BTS SIO, les travaux pratiques se limitaient à des machines virtuelles locales dans VirtualBox. Bien que formateur, cela restait un environnement fermé. Pour me confronter aux réalités d’une machine accessible depuis Internet, j’ai loué mon premier serveur VPS avec une adresse IP publique dédiée chez Contabo.

L’objectif était clair : partir de zéro sur une distribution Linux nue, sécuriser le serveur et apprendre à déployer des services conteneurisés fiables.

Durcissement initial du serveur (Hardening)

Avant d’installer la moindre application, j’ai mis en pratique les règles fondamentales de sécurisation système sur Debian :

  • Accès SSH sécurisé : création d’un utilisateur dédié avec privilèges sudo, désactivation de l’authentification par mot de passe au profit de clés Ed25519, et désactivation de la connexion directe en root.
  • Filtrage réseau : configuration du pare-feu ufw en rejet par défaut (default deny) pour n’ouvrir que les ports strictement nécessaires (SSH, HTTP, HTTPS).
  • Protection anti-intrusion : mise en place de fail2ban pour bannir automatiquement les adresses IP tentant des attaques par force brute.

Prise en main de Docker & Docker Compose

Plutôt que d’installer des logiciels directement sur l’OS au risque de polluer le système, j’ai fait le choix de tout conteneuriser :

  • Gestion des volumes : séparation stricte entre les binaires applicatifs et les données persistantes (fichiers de config, bases de données, médias).
  • Réseaux isolés : création de réseaux Docker internes (bridge) pour que les conteneurs puissent communiquer entre eux sans être exposés directement sur le réseau hôte.
  • Variables d’environnement : utilisation de fichiers .env pour externaliser les secrets et les identifiants en dehors des fichiers de configuration.

Évolution du Reverse-Proxy : de Nginx à Traefik

C’est sur ce serveur que j’ai découvert le rôle pivot du reverse-proxy :

  1. Étape 1 avec Nginx : j’ai débuté en configurant manuellement des blocs virtuels Nginx et en générant des certificats SSL avec Certbot. Cela m’a permis de bien assimiler le fonctionnement des en-têtes HTTP, des websockets et du chiffrement TLS.
  2. Étape 2 avec Traefik : éditer un fichier de configuration Nginx et recharger le service à chaque nouveau conteneur devenait vite contraignant. J’ai alors migré vers Traefik. Grâce aux labels intégrés dans les fichiers docker-compose.yml, Traefik détecte automatiquement les nouveaux services et génère leurs certificats Let’s Encrypt à la volée.

Services déployés & Retours d’expérience

Ce VPS a servi de bac à sable pour mes premiers déploiements en conditions réelles :

  • Supervision avec Uptime Kuma pour surveiller la disponibilité des services et recevoir des alertes en cas de panne.
  • Multimédia avec Plex pour diffuser mes médias personnels.
  • Hébergement web pour mes premières pages de portfolio.

Ce premier projet a été le véritable déclic de mon parcours : il a consolidé mes bases en administration Linux, m’a familiarisé avec la conteneurisation et a posé les fondations pour concevoir mon homelab actuel.