🛠 Serveur multimédia et Domotique avec Docker
Objectifs
Transformer le Raspberry Pi 5 en serveur multimédia et domotique conteneurisé : installer Docker, déployer Jellyfin (le GPU VideoCore VII apporte un décodeur HEVC 4Kp60 et deux sorties micro-HDMI 4Kp60) et Home Assistant, avec persistance des données sur NVMe pour les charges lourdes.
Matériel
- Raspberry Pi 5 (8 GB conseillés) + alimentation officielle 27 W
- SSD NVMe sur le connecteur PCIe (recommandé pour la base de données et la médiathèque)
- Active Cooler ou boîtier ventilé (transcodage soutenu = plage 80-85 °C)
- Réseau Gigabit ; TV sur l'un des deux ports micro-HDMI
Code complet
# 1) Installer Docker (dépôt officiel)
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER && newgrp docker
# 2) Jellyfin avec accès au périphérique V4L2 (décodage/encodage matériel)
mkdir -p ~/jellyfin/config ~/jellyfin/media
sudo docker run -d --name jellyfin --restart unless-stopped \
-p 8096:8096 \
-v ~/jellyfin/config:/config \
-v ~/jellyfin/media:/media \
--device /dev/dri:/dev/dri \
jellyfin/jellyfin
# 3) Home Assistant OS ou conteneur supervisor
sudo docker run -d --name homeassistant --restart unless-stopped \
--privileged --network host \
-v ~/ha/config:/config \
ghcr.io/home-assistant/home-assistant:stable
# 4) Vérifier l'accès GPU côté conteneur
sudo docker exec -it jellyfin ls -l /dev/dri
Vérification attendue
docker ps liste les deux conteneurs en Up. L'interface Jellyfin sur http://IP_DU_PI:8096 détecte le périphérique /dev/dri/renderD* et propose le transcodage matériel ; une vidéo 4K HEVC se lit sur le client web sans saturer les quatre cœurs. Home Assistant répond sur le port 8123.
Erreurs fréquentes
- Oublier
--device /dev/dri: Jellyfin transcode en logiciel et les quatre Cortex-A76 saturent sur du 4K. - Permissions du groupe docker non appliquées : relancer la session après
usermodou utilisernewgrp docker. - Médiathèque sur microSD : les I/O de la base de données usent la carte ; préférer NVMe (voir le tuto boot NVMe).
- Ports en conflit avec le système hôte (8096/8123 déjà pris) : vérifier avec
ss -tlnpavant de publier. - Surchauffe en transcodage continu : sans refroidissement actif, le bridage thermique 80-85 °C dégrade les débits ; monter le Active Cooler.
- Anciennes images ARM 32 bits : le Pi 5 (BCM2712) exige des images arm64 ; vérifier
docker image inspectavant de déployer.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_blink.pyPythonbutton_led.pyPythonservo_sweep.pyPythondht_temp.pyPythonoled_i2c.pyPythonmcp3008_read.pyPython