Aujourd’hui, il pleut, alors c’est le temps d’une nouvelle aventure numérique ! L’objectif ? Mettre en place un service de streaming 100% maison avec deux contraintes :
- Ce service de streaming doit pouvoir être accessible sur tous les appareils facilement (PC, TV et téléphone).
- Le dépôt de médias doit pouvoir se faire simplement et rapidement.
Les logiciels utilisés
Pour déposer les différents médias, j’ai été confronté à 2 solutions intéressantes :
- Samba : Un simple système de dossier exposé sur le réseau avec une gestion d’accès sécurisé
- NextCloud : Une application très complète permettant la création d’un drive complet avec un tas de plugins
Pour cette aventure maison, j’ai décidé d’utiliser Samba, car je n’ai pas besoin de tous les ajouts proposés par NextCloud (bien qu’ils soient très chouettes, allez jeter un coup d’œil si vous ne connaissez pas !)
Concernant le streaming, j’ai utilisé Jellyfin, une application de streaming avec des supports multiplateforme (Android, application de bureau et service Web), parfaite pour mon utilisation.
Installation et configuration de Samba
Le paquet Samba est présent dans les dépôts officiels de Debian, ainsi l’installation a été très facile :
# as root
apt install samba
Ensuite, on crée un dossier que nous partagerons avec Samba
mkdir /data/sambashare
Ce dossier sera accessible par plusieurs utilisateurs, pour gérer qui possède les accès, j’utilise le groupe sambashare créé à l’installation de Samba.
# as root
chown -R root:sambashare /data/sambashare
# On ajoute l'utilisateur au groupe
usermod -aG sambashare $USER
Il faut ensuite déclarer notre dossier partagé dans le fichier dans la configuration de Samba /etc/samba/smb.conf. Voici ma configuration actuelle :
# [...] rest of the file
[sambashare]
comment = Samba on Debian
path = /data/sambashare
read only = no
browsable = yes
writable = yes
valid users = @sambashare
create mask = 0660
directory mask = 2770
Pour terminer, on crée des accès utilisateurs pour Samba. Ces utilisateurs doivent exister au niveau système avant d’être ajouté à Samba. Dans mon cas, je rajoute simplement $USER :
# root
smbpasswd -a $USER
service smbd restart
Et voilà un dossier partagé ! Pour le rendre accessible, puisque nous sommes dans un cas d’usage local, nous devons simplement ouvrir le port sur le pare-feu :
# as root
ufw allow samba
P.S : Dans le cas ou, nous souhaitons créer un autre utilisateur pour le groupe samba, voici les étapes :
# root
# On crée un utilisateurs sans $HOME car il faut simplement qu'il ait une existence au niveau système
useradd -r -s /bin/false user2
usermod -aG sambashare user2
smbpasswd -a user2
service smbd restart
Installation de Jellyfin
Jellyfin est également très simple d’installation :
# Tiré de la documentation officielle
curl -s https://repo.jellyfin.org/install-debuntu.sh | sudo bash
L’installation crée un utilisateur jellyfin, que nous allons ajouter au groupe sambashare pour laisser l’accès au dossier partagé (vous ne l’aviez pas vu venir, avouez-le ;P) :
useradd -r -s /bin/false jellyfin
Pour cette fois, pas besoin de créer un utilisateur Samba, car jellyfin a besoin de pouvoir lire les informations directement sur le système (et pas de déposer des fichiers à distance)
On a fini notre installation de Jellyfin, la configuration se fera sur l’interface web une fois le port adapté ouvert :
# as root
ufw allow 8096 # Port par défaut de Jellyfin
Configuration de Jellyfin
On se rend sur http://$SERVER_IP:8096 et on suit les différentes étapes. Lorsque arrive la question concernant le dossier des médias, on rentre le dossier samba /data/sambashare/.
Une fois Jellyfin configuré, je crée un utilisateur lecture seule afin de permettre un accès minimal des autres appareils.
Accès au service
- Samba Pour accéder à Samba sur n’importe quel appareil, il vous suffit de créer un lecteur réseau avec l’adresse suivante :
# Linux/MacOS/Android
smb://$SERVER_IP/sambashare
# Windows
\\$SERVER_IP\sambashare
L’utilisateur et le mot de passe demandé ensuite correspond aux utilisateurs définit avec la commande
smbpasswd -a $USER
- Jellyfin
Pour accéder au service, l’adresse est http://$SERVER_IP:8096 (quel que soit le support) et on se connecte avec l’utilisateur lecture.
Conclusion
Maintenant, quand je récupère un film, je le dépose depuis mon ordiphone sur le dossier Samba et je peux le regarder sur la télé directement, quel plaisir !
Nous voilà arrivé au bout de cette aventure, et le soleil repointe le bout de son nez. Avec tout ce travail, je n’ai pas eu le temps de regarder un film sur mon installation. Tant pis, ça sera pour une prochaine fois !
Au plaisir,
Romb38 - Standouda