👍 On aime
- ✓Facilite la gestion de plusieurs conteneurs en même temps.
- ✓Permet une configuration centralisée et réutilisable pour différents homelab.
- ✓Optimise l'utilisation des ressources du système d'exploitation hôte.
👎 On regrette
- ✕Nécessite une bonne compréhension de Docker et YAML.
- ✕Peut être complexe à mettre en place pour les débutants.
- ✕La gestion des sauvegardes doit être manuelle ou automatisée avec des outils supplémentaires.
🏆 Notre sélection
Liens affiliés · prix identique pour toiSynology DS2419+ NAS
🔒 Amazon · prix vérifié régulièrement
Crucial P3 Plus SSD 500GB
🔒 Amazon · prix vérifié régulièrement
Retrouve tout notre matériel recommandé dans la boutique.
📑 Sommaire ▾
- 01 Prérequis
- 02 Installation pas à pas
- · Étape 1 : Installation des dépendances Docker
- · Étape 2 : Téléchargement et configuration de Docker Compose
- · Étape 3 : Création du fichier docker-compose.yml
- · Étape 4 : Configuration des services
- · Étape 5 : Démarrage du stack Docker Compose
- · Étape 6 : Configuration SSL avec Certbot
- · Étape 7 : Vérification du fonctionnement des services
- 10 Vérifications
- 11 Sécurité et bonnes pratiques
- 12 Dépannage : erreurs courantes
- · Erreur : Certificat SSL non renouvelé
- 14 FAQ
- · La question ? Comment puis-je minimiser l’utilisation de ressources du système avec Docker Compose?
- · La question ? Comment puis-je ajouter de nouveaux services à mon stack Docker Compose?
- 17 A lire aussi
- 18 Heberger ce service
Bienvenue dans ce tutoriel dédié à l’implantation de votre premier stack Docker Compose pour un homelab moderne en 2026. Nous allons vous guider pas à pas pour installer et configurer une suite complète d’applications, y compris un serveur web, une base de données et un système de gestion des fichiers. Cette configuration optimisée garantira la sécurité, l’efficacité et le confort de votre homelab tout en minimisant les efforts nécessaires pour sa maintenance quotidienne.
Prérequis
- OS: Ubuntu Server 24.04 LTS ou Debian 12
- Docker installé et activé
- Port 80 disponible sur votre serveur (pour le web)
- Nom de domaine configuré pointant vers l’IP publique de votre serveur
Installation pas à pas
Étape 1 : Installation des dépendances Docker
Avant d’installer Docker Compose, assurez-vous que Docker est installé et fonctionnel sur votre système. Exécutez la commande suivante pour installer les paquets nécessaires:
sudo apt update && sudo apt install -y docker.io curl wget python3-pip
Vérifiez l’installation avec docker --version.
Étape 2 : Téléchargement et configuration de Docker Compose
Téléchargez le dernier fichier binaires Docker Compose pour votre système. Cette étape doit être effectuée sur le serveur où vous souhaitez déployer votre stack homelab:
curl -L https://github.com/docker/compose/releases/download/2.19.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Étape 3 : Création du fichier docker-compose.yml
Créez un répertoire pour votre homelab et y déposez un fichier docker-compose.yml avec le contenu suivant, qui configure des services pour Nginx (serveur web), MySQL (base de données) et Certbot (pour HTTPS):
docker-compose.yml:
services:
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- php
mysql:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: rootpassword123
MYSQL_DATABASE: mydatabase
MYSQL_USER: user
MYSQL_PASSWORD: userpass
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- mysql
ports:
- "8080:80"
environment:
PMA_HOST: mysql
Étape 4 : Configuration des services
Configurez un fichier nginx.conf pour rediriger les requêtes HTTPS vers votre serveur web et ajoutez une configuration de sécurité minimale. Vous pouvez utiliser le contenu suivant comme point de départ:
nameserver: nginx.conf
user nginx;
enabled = maintenance off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
gzip on;
gzip_types text/plain application/xml text/css image/png image/jpeg;
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
service nginx reload
Étape 5 : Démarrage du stack Docker Compose
Dans le répertoire où vous avez placé votre fichier docker-compose.yml, démarrez tous les services en exécutant la commande:
docker-compose up -d
Vérifiez que vos conteneurs sont bien démarrés avec l’outil de gestion Docker Compose et inspectez le statut du service Nginx à l’aide de docker ps.
Étape 6 : Configuration SSL avec Certbot
Pour sécuriser votre homelab en HTTPS, vous pouvez utiliser Certbot pour obtenir un certificat SSL gratuit. Installez Certbot et configurez-le pour votre domaine:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
Vérifiez que le fichier de configuration Nginx a été mis à jour avec la commande cat /etc/nginx/sites-enabled/example.conf.
Étape 7 : Vérification du fonctionnement des services
Assurez-vous que tous les services sont bien en cours d’exécution et accessibles depuis votre navigateur. Vous pouvez vérifier le statut de Nginx via l’URL HTTPS et accéder à PHPMyAdmin via http://example.com:8080.
Vérifications
Vérifiez le bon fonctionnement des services avec ces commandes:
docker ps
curl -I https://example.com
cat /var/log/nginx/access.log
La sortie devrait indiquer un statut HTTP 200 OK pour les requêtes web et l’accès enregistré dans les logs Nginx.
Sécurité et bonnes pratiques
Pour sécuriser votre stack Docker Compose, envisagez d’activer le HTTPS via Certbot comme décrit précédemment. Utilisez des mots de passe forts pour vos services et activez la 2FA (Two-Factor Authentication) lorsque c’est possible. Assurez-vous également que les sauvegardes automatiques sont configurées pour toutes vos données importantes.
Dépannage : erreurs courantes
Symptôme: Les conteneurs Docker ne se lancent pas ou arrêtent de fonctionner.
Cause: Configurations incorrectes dans le fichier docker-compose.yml ou erreurs lors de l’installation de Docker Compose.
Correctif: Vérifiez que le chemin et la configuration du docker-compose.yml sont corrects, réinstallez Docker Compose si nécessaire et utilisez docker logs pour obtenir des informations d’erreur détaillées.
Erreur : Certificat SSL non renouvelé
Symptôme: Votre certificat SSL arrive à expiration sans être automatiquement renouvelé par Certbot.
Cause: Erreurs dans la configuration de la récurrence du script Certbot ou erreurs lors de l’initialisation du certificat.
Correctif: Vérifiez les crons d’expiration et assurez-vous que les permissions sont correctes pour le répertoire des clés SSL. Utilisez certbot renew --dry-run pour tester la configuration sans risque.
FAQ
La question ? Comment puis-je minimiser l’utilisation de ressources du système avec Docker Compose?
La réponse: Vous pouvez ajuster les limites mémoire et CPU dans le fichier docker-compose.yml en spécifiant des options comme deploy.resources.limits. Cette approche permet d’optimiser la performance tout en évitant une utilisation excessive des ressources.
La question ? Comment puis-je ajouter de nouveaux services à mon stack Docker Compose?
La réponse: Ajoutez simplement un nouvel objet service dans votre fichier docker-compose.yml avec les détails du nouveau conteneur, puis redémarrez le stack avec docker-compose up -d pour l’ajouter.
A lire aussi
Heberger ce service
Pas envie de gerer le materiel ni la maintenance ? Ce type de service s’auto-heberge sur un VPS manage, pret en quelques minutes. Voir les offres PlanetHoster