Avant de commencer
- Docker et son plugin Compose installés (voir installer Docker sur Debian ou Ubuntu)
- Un serveur avec une adresse IP fixe sur le réseau local
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
- Vérifiez le fichier avec
docker compose config --quiet: aucune sortie signifie que la syntaxe et les variables sont correctes. - Gardez le
.envprivé (chmod 600 .env) et sauvegardez-le avec le dossier de données : sans lui, les bases de données ne s'ouvrent plus. - 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.
- Sauvegardez régulièrement le dossier de données ; pour PostgreSQL, un
pg_dumpest 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.