Table des matières
MediaBoxDockerCompose : Une pile média reliée par volumes et réseaux
MediaBoxDockerCompose rassemble des services homelab avec Docker Compose. Les définitions de services, chemins partagés et connexions réseau décrivent leur fonctionnement commun.
- Langages
- 0Répartition du code
- Composants documentés
- 2Explorer les modules
- Documents source
- 1Lire les instructions
Langages du dépôt
Parts calculées à partir des octets GitHub Linguist.
GitHub ne recense aucun octet de langage pour ce dépôt.
1. Aperçu
1.1. Pourquoi il existe
Stack GitOps complète combinant réseau sécurisé WireGuard VPN et plus de 15 microservices d'automatisation homelab.
1.2. Cas d’usage
Serveur multimédia privé conteneurisé avec accès distant chiffré et routage sécurisé.
2. Cas d’utilisation
Pile Docker Compose pour un serveur multimédia maison : téléchargements automatisés, Plex/Jellyfin, outils d’admin et proxy Caddy.
- Démarrer la pile multimédia
- Admin du homelabHôte Docker
docker-compose.yml définit une vingtaine de conteneurs qui lisent PUID, PGID, TZ et ROOT dans .env ; docker-compose up -d les lance tous.
- Automatiser le téléchargement
- Admin du homelabHôte Docker
Sonarr, Radarr, Lidarr et Bazarr gèrent séries, films, musique et sous-titres, alimentés par Jackett, Prowlarr ou NZBHydra2 et confiés à Deluge ou NZBGet, le tout sous ${ROOT}.
- Regarder ou demander un titre
- SpectateurHôte Docker
Plex (port 32400) et Jellyfin (port 8096) diffusent la bibliothèque ; Ombi et Jellyseerr reçoivent les demandes et Tautulli suit l’activité de Plex.
- Surveiller et parcourir l’hôte
- Admin du homelabHôte Docker
Netdata (port 19999) affiche les métriques, FileBrowser donne accès aux fichiers et Dashmachine (port 5000) sert de page d’accueil configurée par dashmachine/config.ini.
- Publier via Caddy
- Admin du homelab
caddy/Caddyfile relie des sous-domaines comme sonarr.{$DOMAIN} aux ports locaux, avec journaux, limite de débit, liste d’IP permises et authentification de base tirée de caddy/.env.
- Ajouter des services en option
- Admin du homelabHôte Docker
Des fichiers compose distincts sous extra/ ajoutent un partage Samba, un serveur d’accès WireGuard et Portainer ; whisper/docker-compose.yml lance un service Whisper ASR sur le port 9000.
2.1. Scénario : Monter un serveur séries et films sur une machine
- Installer Docker et Docker Compose, puis cloner le dépôt.
- Modifier .env : régler TZ, PUID, PGID, ROOT (par exemple /media/MediaBox) et PLEX_CLAIM.
- Lancer docker-compose up -d à la racine du dépôt.
- Ouvrir Prowlarr sur le port 9696 et Sonarr sur le port 8989 pour relier indexeurs et client de téléchargement.
- Pointer Plex (port 32400) ou Jellyfin (port 8096) vers les dossiers terminés sous ROOT, puis regarder.
Fichiers consultésREADME.mddocker-compose.yml.envcaddy/Caddyfilecaddy/.envdashmachine/config.iniextra/samba/docker-compose.ymlextra/wireguard-access-server/docker-compose.ymlextra/portainer/docker-compose.ymlwhisper/docker-compose.yml
3. Démarrage
Ces commandes viennent de la documentation du dépôt. Elles n’ont pas été exécutées pendant cette revue.
docker-compose up -d4. Références du dépôt
Extraits des guides du dépôt, dans leur langue d’origine. Les liens ouvrent la version du code consultée.
Prérequis et premier essai
4.1. Installation
README.md
- Install Docker and Docker Compose on your system.
- Clone or download this repository to your system.
Configuration et utilisation
4.2. Usage
README.md
- Navigate to the cloned/downloaded directory.
- Customize the configuration files in the config directory to your needs.
- Run the following command to start the containers:
- Access the web interfaces for the services by navigating to the URLs mentioned below.
Développement et contributions
4.3. Contributing
README.md
5. Fonctions et composants 2
- Rôles des services
- Le fichier Compose contient des clients de téléchargement et gestionnaires comme Deluge, Jackett, Sonarr et Radarr. Chaque conteneur a son image et sa configuration. Les liens du README doivent être distingués des services réellement activés.
- Chemins persistants
- Les volumes relient les chemins des conteneurs au stockage hôte. Les services doivent s’accorder sur les chemins lors d’un déplacement de fichiers. Réseau et persistance résolvent deux problèmes d’intégration différents.
6. Architecture
Ouvrez un composant pour suivre ses connexions, ou explorez le diagramme complet.
Définitions Compose
Conteneurs de téléchargement
- Depuis Définitions Compose
- Vers Stockage hôte partagé
Gestionnaires média
- Depuis Définitions Compose
- Vers Stockage hôte partagé
Stockage hôte partagé
- Depuis Conteneurs de téléchargement
- Depuis Gestionnaires média
Mermaid Diagramme interactif
Vue générale des composants et des échanges vérifiés dans le dépôt.

flowchart LR
n0["Définitions Compose"]
n1["Conteneurs de téléchargement"]
n2["Gestionnaires média"]
n3["Stockage hôte partagé"]
n0 --> n1
n0 --> n2
n1 --> n3
n2 --> n3
Version texte du diagramme
- Définitions Compose → Conteneurs de téléchargement
- Définitions Compose → Gestionnaires média
- Conteneurs de téléchargement → Stockage hôte partagé
- Gestionnaires média → Stockage hôte partagé
Suivre un parcours dans le code
Choisissez un service et comparez ses volumes de téléchargement et bibliothèque à ceux du consommateur. Vérifiez ensuite réseau et ports. Deux conteneurs en bon état peuvent ne pas partager la même vue des fichiers.
7. Dossier technique
Établi à partir du code au commit 57d930a (7 fichiers). Chaque élément vient d’une correspondance de motif dans le code: ouvrez le fichier lié avant de vous y fier.
7.1. Couches et modules
Les dossiers sont classés par couche selon leur nom, de l’interface utilisateur jusqu’à l’accès aux données. Comme le classement repose sur les noms seulement, le diagramme ne dit rien des appels entre couches.
Mermaid Vue en couches
flowchart TB
subgraph L_hosting["Build, CI et hébergement"]
direction TB
hosting_0["extra<br/>3 fichiers"]
hosting_1[".github<br/>2 fichiers"]
hosting_2["(root)<br/>1 fichier"]
hosting_3["whisper<br/>1 fichier"]
end
7.2. Modèle C4
Du contexte du système aux déclarations du code. Chaque niveau conserve les limites des sources disponibles.
UML 1 · Contexte du système
La vue C4 la plus large : qui utilise le projet et sur quels systèmes et stockages externes il s’appuie. Rendu avec uml-mcp.
Source PlantUML
@startuml
!include <C4/C4_Context>
LAYOUT_LEFT_RIGHT()
System(SYS, "MediaBoxDockerCompose", "MediaBoxDockerCompose rassemble des services homelab avec Docker Comp…")
@enduml
UML 2 · Conteneurs
Un niveau plus près : les parties qui s’exécutent séparément dans le projet, leur langage principal et le chemin des appels entre elles. Rendu avec uml-mcp.
Source PlantUML
@startuml
!include <C4/C4_Container>
LAYOUT_LEFT_RIGHT()
System_Boundary(SYS, "MediaBoxDockerCompose") {
Container(C0, "portainer", "Docker")
Container(C1, "samba", "Docker")
Container(C2, "wg-access-server", "Docker")
Container(C3, "whisper-asr", "Docker")
}
@enduml
UML 3 · Composants et couches
Modules regroupés par couche du code. Les limites indiquent l’organisation, sans affirmer une isolation à l’exécution ni des appels. Rendu avec uml-mcp.
Source PlantUML
@startuml
!include <C4/C4_Component>
LAYOUT_TOP_DOWN()
System_Boundary(SYS, "MediaBoxDockerCompose") {
Boundary(L0, "Build, CI et hébergement", "layer") {
Component(M0_0, "extra", ".yml", "3 fichiers")
Component(M0_1, ".github", ".md", "2 fichiers")
Component(M0_2, "(root)", ".yml", "1 fichiers")
Component(M0_3, "whisper", ".yml", "1 fichiers")
}
}
@enduml
Niveau 4: les sources disponibles ne permettent pas de tracer cette vue.
7.3. Pipeline CI/CD
Aucun pipeline CI/CD dans le dépôt. Le code se construit et se lance à la main, comme décrit plus haut.
7.4. Déploiement
Mermaid Schéma de déploiement
flowchart LR
repo[("Dépôt GitHub")]
subgraph compose["Docker Compose"]
svc_portainer["portainer"]
svc_samba["samba"]
svc_wg_access_server["wg-access-server"]
svc_whisper_asr["whisper-asr"]
end
repo -->|"docker compose up"| compose
UML Déploiement
Le nœud extérieur est l’endroit où le code s’exécute. Chaque image de base pointe vers ce qu’elle construit, les flèches pleines mènent aux bases de données et les pointillées aux services externes. Rendu avec uml-mcp.
Source PlantUML
@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam roundCorner 10
skinparam defaultFontName Arial
skinparam defaultFontSize 13
skinparam ArrowColor #4e6070
skinparam ArrowFontColor #3d4f5f
skinparam titleFontSize 14
skinparam actorBorderColor #006a62
skinparam actorBackgroundColor #e9f3f4
skinparam usecaseBorderColor #006a62
skinparam usecaseBackgroundColor #e9f3f4
skinparam componentBorderColor #006a62
skinparam componentBackgroundColor #e9f3f4
skinparam interfaceBorderColor #006a62
skinparam interfaceBackgroundColor #ffffff
skinparam nodeBorderColor #4e6070
skinparam nodeBackgroundColor #f4f8fb
skinparam databaseBorderColor #006a62
skinparam databaseBackgroundColor #ffffff
skinparam cloudBorderColor #4e6070
skinparam cloudBackgroundColor #f0f5fa
skinparam artifactBorderColor #006a62
skinparam artifactBackgroundColor #ffffff
skinparam rectangleBorderColor #b0c2d3
skinparam activityBorderColor #006a62
skinparam activityBackgroundColor #e9f3f4
skinparam partitionBorderColor #b0c2d3
skinparam stereotypeCBackgroundColor #ffffff
node "Docker Compose" as H {
node "portainer" as N0 <<container>>
node "samba" as N1 <<container>>
node "wg-access-server" as N2 <<container>>
node "whisper-asr" as N3 <<container>>
}
@enduml
Où il s’exécute
7.5. Sécurité
Chaîne d’approvisionnement
Les sources disponibles ne documentent pas les autres sections.
8. Déploiement et exploitation
Les ports, le stockage et les relations de démarrage ci-dessous viennent de la configuration du dépôt. depends_on indique l’ordre de démarrage, pas la disponibilité du service.
Réseau. Isolated Docker bridge network routed through WireGuard VPN gateway.
Carte du déploiement
Topologie Compose des services, ports et dépendances de démarrage documentés.

flowchart LR
classDef svc fill:#1b3040,stroke:#6fdbd0,color:#edf4fb
plex["plex<br/>32400:32400"]:::svc
wireguard["wireguard<br/>51820:51820/udp"]:::svc
whisper["whisper<br/>9000:9000"]:::svc
portainer["portainer<br/>9443:9443"]:::svc
samba["samba<br/>139:139, 445:445"]:::svcVersion texte du diagramme
- plex — plexinc/pms-docker · 32400:32400
- wireguard — linuxserver/wireguard · 51820:51820/udp
- whisper — local build / compose · 9000:9000
- portainer — portainer/portainer-ce · 9443:9443
- samba — dperson/samba · 139:139, 445:445
| Service | Image ou build | Ports publiés | Démarrage | Stockage |
|---|---|---|---|---|
| plex | plexinc/pms-docker | 32400:32400 | /media -> /data/movies | |
| wireguard | linuxserver/wireguard | 51820:51820/udp | /config bind mount | |
| whisper | local build / compose | 9000:9000 | Audio buffer volume | |
| portainer | portainer/portainer-ce | 9443:9443 | /var/run/docker.sock | |
| samba | dperson/samba | 139:139, 445:445 | Shared ZFS pool |
9. Référence
6 / 6 fichiers admissibles lus (22 dans l’arbre); 0 trop volumineux, 0 échec de lecture et 0 diagnostic de syntaxe.
Ce que couvre l’analyse
Les dossiers connus de dépendances et de compilation, les fichiers d’identifiants et les binaires sont exclus. La collecte couvre les README, les manifestes reconnus et les fichiers source pris en charge.
Les statistiques Linguist couvrent l’ensemble du dépôt et peuvent inclure d’autres langages.
11. Fichiers à lire 2
12. Glossaire
Dépôt
Les fichiers source, la configuration et l’historique versionné d’un projet.
README
Le document d’entrée du dépôt, qui présente généralement son rôle et son installation.
Dépendance
Une bibliothèque, un outil ou un service nécessaire à la compilation ou à l’exécution d’un composant.
Conteneur
Un environnement de processus isolé créé à partir d’une image. Les données persistantes nécessitent un stockage hors de son système de fichiers temporaire.
Docker Compose
Un format de configuration et un outil pour lancer des conteneurs, réseaux et volumes associés. L’ordre de démarrage ne garantit pas qu’un service est prêt.
Volume et montage de dossier
Un volume est un stockage géré par la plateforme de conteneurs ; un montage de dossier expose un chemin de l’hôte dans un conteneur.
Port publié
Un port de l’hôte associé au port d’un service dans un conteneur. Sa publication peut rendre le service accessible hors du réseau des conteneurs.
13. Références
- antoinebou12. (2026, 5 novembre). MediaBoxDockerCompose. [Software repository] github.com.
- antoinebou12. (2026, 5 novembre). MediaBoxDockerCompose: README. [Repository documentation] github.com.
- antoinebou12. (2026, 5 novembre). docker-compose.yml. [Source file] github.com.
- antoinebou12. (2026, 5 novembre). README.md. [Source file] github.com.
- Boucher, A. (2021, 6 septembre). Évolution réseau — monter un lab à la maison. [Project article] antoineboucher.info.
- Boucher, A. (2024, 15 mars). MediaBox homelab — ce que je fais tourner en Docker (et le reste en signet). [Project article] antoineboucher.info.
- Boucher, A. (2024, 1 janvier). MediaBoxDockerCompose. [Project article] antoineboucher.info.
- Boucher, A. (2026, 23 octobre). MediaBoxDockerCompose : Une pile média reliée par volumes et réseaux. [Project article] antoineboucher.info.
Les sources sans date de publication indiquent la date de leur dernière vérification, le 5 novembre 2026. Les liens des fichiers conservent la révision inspectée lorsqu’elle est disponible.
Fiche projet