Retour au portfolio

Projet : Serveur Multimédia Personnel

Mise en place d'une solution complète de gestion et de diffusion de contenu multimédia à domicile

Serveur Multimédia
Technologies Utilisées
DockerDocker ComposePlex Media ServerRadarrJackettTransmissionFlareSolverrLinux
Contexte et Objectifs

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.

Fonctionnalités Principales

Gestion de Contenu

  • • Centralisation des films et séries
  • • Organisation automatique des médias
  • • Accès et diffusion via Plex

Automatisation

  • • Récupération automatisée de nouveaux contenus
  • • Indexation et métadonnées enrichies
  • • Contournement des protections anti-bot (FlareSolverr)
Architecture Technique (Docker Compose)

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
Résultats et Apprentissages

Réalisations

  • • Centralisation et organisation des contenus multimédias.
  • • Automatisation du processus de récupération et de gestion des médias.
  • • Accès distant et diffusion fluide via Plex.
  • • Mise en place d'une architecture conteneurisée pour une meilleure portabilité et gestion.
  • • Optimisation des ressources et stabilité du système.

Compétences Développées

  • • Maîtrise de Docker et Docker Compose pour l'orchestration de services.
  • • Configuration et optimisation de serveurs multimédias.
  • • Gestion des volumes persistants et des réseaux Docker.
  • • Dépannage et maintenance d'environnements conteneurisés.