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 :

  1. Ce service de streaming doit pouvoir être accessible sur tous les appareils facilement (PC, TV et téléphone).
  2. 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

  1. 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
  1. 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