Mise en place d'une solution complète de gestion et de diffusion de contenu multimédia à domicile
Ce projet consiste en la conception et le déploiement d'un serveur multimédia personnel robuste et automatisé, permettant de centraliser, organiser et diffuser des films, séries et autres contenus. L'objectif était de créer une infrastructure flexible et facile à maintenir grâce à la conteneurisation.
J'ai utilisé Docker et Docker Compose pour orchestrer plusieurs services, chacun ayant un rôle spécifique dans la chaîne de gestion multimédia : Plex pour la diffusion, Radarr pour la gestion des films, Jackett pour l'indexation, Transmission pour le téléchargement, et Flaresolverr pour contourner les protections anti-bot. Cette approche modulaire assure une grande scalabilité et une maintenance simplifiée.
Voici un extrait simplifié de la configuration Docker Compose utilisée pour orchestrer les services :
version: "3.8"
services:
plex:
image: lscr.io/linuxserver/plex:latest
container_name: plex
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- TZ=${TZ:-Europe/Paris}
- VERSION=docker
ports:
- 32400:32400
volumes:
- ./data/plex:/config
- /mnt/f/Films:/data/movies
networks:
- media_network
restart: unless-stopped
radarr:
image: lscr.io/linuxserver/radarr:4.7.5
container_name: radarr
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- TZ=${TZ:-Europe/Paris}
ports:
- "7878:7878"
volumes:
- ./data/radarr:/config
- /mnt/f/Films:/movies
- ./data/downloads:/downloads/temp
networks:
- media_network
depends_on:
- transmission
restart: unless-stopped
jackett:
image: lscr.io/linuxserver/jackett:latest
container_name: jackett
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- TZ=${TZ:-Europe/Paris}
ports:
- "9117:9117"
volumes:
- ./data/jackett:/config
- ./data/downloads:/downloads
networks:
- media_network
restart: unless-stopped
transmission:
image: lscr.io/linuxserver/transmission:latest
container_name: transmission
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
- TZ=${TZ:-Europe/Paris}
- USER=admin
- PASS=adminadmin
ports:
- "9091:9091"
- "51413:51413"
- "51413:51413/udp"
volumes:
- ./data/transmission:/config
- ./data/downloads:/data/downloads/temp
networks:
- media_network
restart: unless-stopped
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- LOG_LEVEL=info
- LOG_HTML=false
- CAPTCHA_SOLVER=none
- TZ=${TZ:-Europe/Paris}
dns:
- 9.9.9.9
- 2620:fe::9
ports:
- "8191:8191"
networks:
- media_network
restart: unless-stopped
networks:
media_network:
driver: bridge