Virtualisation / Outil

Générateur docker-compose pour homelab : Jellyfin, Nextcloud, Pi-hole, Vaultwarden…

Cochez les services de votre homelab parmi 19 applications courantes : l'outil écrit le compose.yaml, le fichier .env avec des mots de passe tirés au sort et, si vous le souhaitez, la configuration du proxy inverse Caddy avec HTTPS. Les conflits de ports sont résolus automatiquement.

Virtualisation Outil Intermédiaire Publié le 21 octobre 2026 5 min de lecture
Conteneurs de fret colorés empilés dans un terminal portuaire
Photo : Bernd Dittrich sur Unsplash

Avant de commencer

En clair

Un fichier compose.yaml est la liste de courses de votre serveur : quelles applications installer, où ranger leurs données, par quelle porte on y entre. L'écrire à la main demande de connaître les habitudes de chaque application (sa base de données, ses dossiers, ses variables). L'outil remplit la liste pour vous : vous cochez, il écrit des fichiers propres, commentés et cohérents entre eux.

Ce que produit l'outil

Fichier Contenu
compose.yaml Un service par application, avec ses dépendances (PostgreSQL, Redis ou Valkey), ses volumes sous le dossier de données et restart: unless-stopped.
.env Les réglages communs (dossier, fuseau horaire, UID et GID) et des mots de passe de 32 caractères tirés au sort dans votre navigateur.
Caddyfile En mode « nom de domaine » : un sous-domaine par service, avec un certificat Let's Encrypt ou de l'autorité interne de Caddy.

Deux façons d'accéder aux services :

  • Par l'IP et un port : les interfaces web sont publiées sur l'adresse du serveur seulement (192.168.1.10:8096), pas sur toutes ses cartes réseau. Simple, adapté à un réseau local.
  • Par un nom de domaine, via Caddy : seul Caddy publie les ports 80 et 443 ; les applications restent sur le réseau Docker interne et ne sont joignables qu'à travers lui, en HTTPS. C'est le mode à choisir pour Vaultwarden et pour tout accès depuis l'extérieur.

Images à jour, mais versions maîtrisées

L'outil utilise les étiquettes recommandées par chaque projet (souvent latest). Pour un serveur que vous ne surveillez pas de près, remplacez-les par une version précise (jellyfin/jellyfin:10.11) : les mises à jour deviennent un choix, pas une surprise. Mettez à jour avec docker compose pull && docker compose up -d.

Avant le premier démarrage

  1. Vérifiez le fichier avec docker compose config --quiet : aucune sortie signifie que la syntaxe et les variables sont correctes.
  2. Gardez le .env privé (chmod 600 .env) et sauvegardez-le avec le dossier de données : sans lui, les bases de données ne s'ouvrent plus.
  3. Ouvrez les ports nécessaires dans le pare-feu de l'hôte. Attention : Docker contourne ufw et firewalld pour les ports publiés, d'où la publication sur l'IP du serveur. Le générateur de règles de pare-feu détaille ce point.
  4. Sauvegardez régulièrement le dossier de données ; pour PostgreSQL, un pg_dump est plus sûr qu'une copie des fichiers à chaud (voir Docker Compose).

Ce que l'outil ne fait pas

Il ne vérifie ni l'espace disque, ni les droits sur vos dossiers de médias, ni la redirection de ports de votre box. Les mots de passe générés ne protègent que si le .env reste privé. Relisez toujours un fichier généré avant de le lancer.

Pour comprendre chaque ligne : Docker Compose : décrire ses services dans un fichier, puis Monter son homelab pour l'organisation d'ensemble.

À lire aussi