
30 décembre 2025
Migration vers un NAS : Jellyfin, NPM et sécurisation avec Teleport
Mon ancienne infrastructure commençait à atteindre ses limites : plusieurs Raspberry Pi, un NAS qui ne m’appartenait pas, des services répartis sur trop de machines et une maintenance qui devenait lourde. J’ai donc migré vers un NAS Ugreen DXP4800 Plus pour regrouper le stockage, Jellyfin, les automatisations média et une partie de mes sauvegardes, avec un accès sécurisé via Teleport.
Le problème de départ
Le setup précédent fonctionnait, mais il reposait sur plusieurs compromis : un Raspberry Pi pour Jellyfin, un autre pour Nextcloud, et un NAS Synology partagé pour une partie du stockage. Dès que plusieurs personnes utilisaient Jellyfin ou que je devais intervenir sur les sauvegardes, les limites devenaient visibles.
- Le transcodage vidéo était trop lourd pour le Raspberry Pi.
- Le stockage était dispersé entre plusieurs machines.
- La maintenance demandait trop d’interventions manuelles.
- Le partage avec des proches posait une vraie question de sécurité.
Choix du NAS
J’ai retenu le Ugreen DXP4800 Plus parce qu’il me donnait assez de marge pour héberger mes services sans exploser la consommation électrique. Le processeur Intel, les 4 baies et la possibilité d’utiliser Docker répondaient mieux à mon besoin qu’un simple NAS de stockage.
- 4 baies 3,5 pouces, avec deux disques de 14 To en RAID 1 pour commencer.
- Un processeur Intel compatible avec le transcodage matériel.
- Une consommation raisonnable pour une machine allumée en continu.

Jellyfin et organisation des médias
La migration de Jellyfin a été l’occasion de repartir sur une organisation plus claire des fichiers. J’ai séparé les bibliothèques par type de média, activé le transcodage matériel avec Intel Quick Sync et demandé aux utilisateurs externes d’utiliser des clients compatibles avec le direct play quand c’est possible.
- Jellyfin tourne dans Docker, avec les volumes médias montés directement depuis le NAS.
- Les métadonnées sont récupérées automatiquement depuis TheMovieDB et IMDb.
- Les fichiers temporaires et téléchargements terminés sont nettoyés par script après quelques jours.

Proxy, domaines et certificats
Pour exposer certains services proprement, j’ai installé Nginx Proxy Manager en conteneur Docker. L’intérêt principal est de gérer les domaines, les certificats Let’s Encrypt et les règles de redirection depuis une interface simple, sans maintenir une configuration Nginx entièrement à la main.
- Certificats SSL renouvelés automatiquement.
- Redirections centralisées pour les services exposés.
- Restrictions d’accès lorsque le service n’a pas besoin d’être public.

Sauvegardes distantes
Pour éviter qu’un incident local ne compromette mes données, j’ai mis en place une sauvegarde incrémentielle vers un second NAS situé chez un proche. Les deux machines communiquent dans un tunnel WireGuard, puis rsync transfère uniquement les fichiers modifiés.
- Tunnel WireGuard dédié entre les deux NAS.
- Synchronisation nocturne avec rsync.
- Volume distant chiffré avec LUKS et notification en cas d’échec.

Accès sécurisé avec Teleport
Je ne voulais pas exposer Jellyfin directement sur Internet avec de simples comptes applicatifs. Teleport me sert de point d’entrée unique : chaque proche a son compte, la double authentification est obligatoire, et je peux retirer un accès sans toucher à toute l’infrastructure.
- Comptes séparés avec rôles limités.
- 2FA obligatoire pour tous les accès externes.
- Jellyfin n’est plus accessible directement sans passer par le bastion.

Bilan
Cette migration a surtout réduit la dispersion. Les services principaux sont regroupés sur une machine plus adaptée, les sauvegardes sont plus lisibles, et l’accès externe est mieux contrôlé. Il reste toujours des points à surveiller, notamment la documentation et les tests de restauration, mais l’infrastructure est beaucoup plus simple à faire évoluer qu’avant.