Documentations Orange PiTransformer votre Orange Pi en Alternative à Netflix, Plex, Ect.. avec Jellyfin

Documentation pour transformer votre Orange Pi en Alternative à Netflix, Plex, Ect.. avec Jellyfin

Dans un monde où tout est plus chère, Depuis des années, et de plus en plus ces derniers temps, Netflix, Disney +, et bien d’autres nous font payer des prix injustifiés pour regarder nos series, films. C’est pourquoi, aujourd’hui, je vous propose de mettre en place facilement Jellyfin chez vous sur votre Orange Pi.

Jellyfin est un serveur de streaming multimédia open source et auto-hébergé qui vous permet d’accéder à votre collection cinématographique, etc .. depuis n’importe quel navigateur web ou appareil mobile. En quelques clics, vous pouvez installer Jellyfin sur votre Orange Pi ou sur un Raspberry Pi, et profiter de vos films, series préférés sans limite. De plus, Jellyfin est compatible avec tous les appareils IOS, Android, Ect..

L’un des avantages majeurs de Jellyfin est qu’il vous permet de profiter de votre collection de DVD, Blu-ray en les numérisants et en les rendants accessibles partout. Vous pouvez ainsi regarder vos films, series préférés où que vous soyez, sans dépendre d’un service de streaming payant.

Mise en place de Jellyfin

💡

Avant de commencer ce tutoriel, vous aurez besoin d’avoir déjà configurer votre Orange Pi !

Une fois connecté à votre Orange Pi à votre orangepi.

Installation de Docker

Nous allons mettre en place Jellyfin avec Docker. C’est pourquoi nous devons d’abord installer Docker.

Configurer le dépôt apt de Docker

Pour que Docker puisse être géré par votre gestionnaire de paquets, vous devez utiliser le dépôt officiel apt. Pour cela, vous devez d’abord installer les dépendances nécessaires et ajouter la clé GPG de Docker :

apt update 
apt install ca-certificates curl 
install -m 0755 -d /etc/apt/keyrings 
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc 
chmod a+r /etc/apt/keyrings/docker.asc

Vous pouvez maintenant ajouter le dépôt à vos sources apt :

echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
    $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
    tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update

Installation de Docker

apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Mise en place de Jellyfin

Pour organiser notre Jellyfin, nous allons créer un dossier dans /etc. Pour cela, exécutez la commande suivante :

mkdir /etc/jellyfin

Vous pouvez aller dans le dossier Jellyfin. Pour cela, exécutez la commande suivante :

cd /etc/jellyfin

Vous avez donc besoin de crée les dossiers :

mkdir cache ; mkdir config

Pour mettre en place Jellyfin, je vous invite à utiliser ce docker-compose :

services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    ports:
      - 8096:8096/tcp
    volumes:
      - /etc/jellyfin/config:/config
      - /etc/jellyfin/cache:/cache
      - type: bind
        source: /mnt/disques
        target: /media
        read_only: true
    restart: 'unless-stopped'
    environment:
      - JELLYFIN_PublishedServerUrl=http://example.com
    extra_hosts:
      - 'host.docker.internal:host-gateway'

Vous pouvez donc créer un fichier dans /etc/jellyfin nommé docker-compose.yml en utilisant la commande suivante :

nano docker-compose.yml

Une fois la commande exécutée, vous serez dans le fichier. Copiez le contenu du docker-compose.yml ci-dessus, puis appuyez sur CTRL + X et validez avec Y pour enregistrer les modifications.

Avant de démarrer le docker-compose, vous devez créer un dossier dans /mnt/ que nous allons appeler disques, car c’est l’endroit où l’on pourra, si on le souhaite, monter les disques durs pour stocker les films et les séries. Vous pouvez donc créer le dossier en utilisant la commande suivante :

mkdir /mnt/disques

Pour démarrer Jellyfin, exécutez simplement :

docker compose up -d

Une fois cela fait, c’est très rapide : il vous suffit de vous connecter à l’adresse IP de votre serveur Docker, sur le port 8096. Par exemple : http://192.168.1.20:8096

Pour ceux qui ne se préoccupent pas de la sécurité, vous pouvez vous arrêter ici. Mais pour les autres, je vous invite à poursuivre pour comprendre comment activer le HTTPS sur votre Jellyfin.

Mise en place de Jellyfin en HTTPS

Vous avez donc besoin de crée les dossiers supplémentaire dans /etc/jellyfin:

mkdir haproxy ; cd haproxy ;mkdir certs

Ajouter le haproxy.cfg dans /etc/jellyfin/haproxy :

nano /etc/jellyfin/haproxy/haproxy.cfg
global
    log stdout format raw local0
    maxconn 4000
    tune.ssl.default-dh-param 2048
 
defaults
    log global
    mode http
    option httplog
    timeout connect 5000
    timeout client 50000
    timeout server 50000
 
# Redirection HTTP --> HTTPS
frontend jellyfin_http
    bind *:80
    redirect scheme https code 301 if !{ ssl_fc }
 
# Frontend HTTPS pour jellyfin
frontend jellyfin_https
    bind *:443 ssl crt /usr/local/etc/haproxy/certs/jellyfin-selfsigned.pem
    default_backend jellyfin
 
# Backend vers jellyfin
backend jellyfin
    server jellyfin jellyfin:8096 check

Si vous avez déjà créé le fichier docker-compose.yml précédemment, il faut le remplacer par celui-ci en utilisant la commande suivante :

rm docker-compose.yml ; nano docker-compose.yml
services:
  haproxy:
    image: haproxy:latest
    container_name: haproxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /etc/jellyfin/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
      - /etc/jellyfin/haproxy/certs:/usr/local/etc/haproxy/certs:ro
    networks:
      - internal_network
 
 
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    volumes:
      - /etc/jellyfin/config:/config
      - /etc/jellyfin/cache:/cache
      - type: bind
        source: /mnt/disques
        target: /media
        read_only: true
    restart: 'unless-stopped'
    environment:
      - JELLYFIN_PublishedServerUrl=http://example.com
    extra_hosts:
      - 'host.docker.internal:host-gateway'
    networks:
      - internal_network
 
 
networks:
  internal_network:
    driver: bridge

Générer un certificat SSL auto-signé (pour le HTTPS local) :

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/jellyfin/haproxy/certs/jellyfin-selfsigned.key -out /etc/jellyfin/haproxy/certs/jellyfin-selfsigned.crt

Fusionner le certificat et la clé :

cat /etc/jellyfin/haproxy/certs/jellyfin-selfsigned.crt /etc/jellyfin/haproxy/certs/jellyfin-selfsigned.key > /etc/jellyfin/haproxy/certs/jellyfin-selfsigned.pem

Pour démarrer jellyfin, exécutez simplement :

docker compose up -d

Vous avez maintenant mis en place Jellyfin en HTTPS !

Si vous vous connectez et que le navigateur vous indique que la page n’est pas sécurisée, pas d’inquiétude, c’est normal. Cela signifie simplement que votre navigateur ne peut pas certifier l’authenticité du certificat, car il s’agit d’un certificat autosigné. Vous pouvez passer outre en cliquant sur “Avancé” puis sur “Continuer vers”.

Configuration de jellyfin

Une fois Jellyfin installé, vous arriverez sur la page d’accueil. Vous pourrez alors créer votre compte administrateur en remplissant les informations de votre choix. Jellyfin Vous pouvez donc choisir la langue d’affichage, tandis que le choix du nom du serveur est accessoire. Jellyfin Vous pouvez donc ensuite ajouter votre nom d’utilisateur, qui sera administrateur, ainsi que son mot de passe. Je vous invite à choisir un mot de passe fort. Vous pouvez utiliser Minp pour générer un mot de passe sécurisé. Jellyfin Vous pouvez passer à l’ajout d’une médiathèque, nous y reviendrons un peu plus tard. Jellyfin Vous pouvez choisir les langues de vos métadonnées. Jellyfin Jellyfin Validez l’accès à distance. Jellyfin Voilà, c’est terminé. Vous avez configuré votre compte administrateur. Jellyfin Vous pouvez ensuite vous connecter. Jellyfin Jellyfin Vous voilà connecté à Jellyfin ! Jellyfin

Ajout d’un utilisateur

Une fois connecté en tant qu’administrateur, allez dans l’icône du petit bonhomme en haut à droite, cliquez dessus. Jellyfin Puis sélectionnez “Tableau de bord”. Jellyfin Puis sélectionnez “Utilisateurs”. Jellyfin Cliquez ensuite sur le ”+”. Cela ouvrira une page où vous pourrez entrer les informations de l’utilisateur. Une fois terminé, il vous suffira de cliquer sur “Sauvegarder”, et l’utilisateur apparaîtra dans la liste des utilisateurs. Jellyfin

Ajout d’une médiathèque

Une fois connecté en tant qu’administrateur, allez dans l’icône du petit bonhomme en haut à droite, cliquez dessus. Jellyfin Puis sélectionnez “Tableau de bord”. Jellyfin Puis sélectionnez “Médiathèques”. Jellyfin Cliquez ensuite sur le ”+ Ajouter une médiathèque”. Cela ouvrira une page où vous pourrez entrer les informations de la médiathèque Jellyfin Vous pouvez choisir le type de contenu. Jellyfin Vous pourrez ensuite retrouver vos disques montés dans /mnt/disques, dans le dossier /media de votre Jellyfin. Jellyfin Jellyfin Vous pouvez valider, et votre médiathèque sera créée et ajoutée à la liste des médiathèques. Jellyfin

💡

Je vous conseille de vous organiser ainsi dans le dossier /mnt/disques/HDDX ou SSDX/Films ou Séries. Cela sera plus simple pour vous retrouver dans Jellyfin et configurer vos médiathèques.

Configuration pour ajout des films/series via WinSCP

Je vous conseille d’utiliser WinSCP pour vous connecter à jellyfin, c’est plus simple et plus rapide.

Installation de WinSCP pour windows

Vous pouvez télécharger WinSCP ici. Exécutez-le une fois installé : WinSCP Faites l’installation pour tous. WinSCP Faites “Accepter”. WinSCP Faites “Installation typique”. WinSCP Faites “Commander”. WinSCP Ensuite faites “Installer” WinSCP Vous pouvez décocher l’option “Aller à la page de démarrage”.

Vous pouvez le laisser ouvert, nous y reviendrons plus tard.

Création du compte jellyfin pour WinSCP

Sur votre Orange Pi, vous allez créer un compte et lui affecter les droits sur le dossier /mnt/disques

Pour ajouter l’utilisateur:

useradd -d /mnt/disques -s /bin/bash jellyfin

Pour lui affecter les droits:

chown jellyfin:jellyfin /mnt/disques

Pour lui changer son mot de passe :

passwd jellyfin
⚠️

Il est préférable de lui attribuer un mot de passe fort afin d’éviter un accès non autorisé via ce compte.

Ajout des Films/Séries via WinSCP avec le compte jellyfin

Retournez sur WinSCP et changez le protocole de fichier en SCP. WinSCP Ensuite, entrez vos informations de connexion : dans “Nom d’hôte” mettez l’adresse IP de votre serveur, dans “Utilisateur” entrez “jellyfin” et dans “Mot de passe” saisissez le mot de passe que vous lui avez attribué. WinSCP Vous pouvez donc cliquer sur “Connexion”. Vous serez alors dans le répertoire de votre Orange Pi /mnt/disques. WinSCP Vous pouvez alors glisser vos films/series dedans, et elles seront directement transférées sur votre Orange Pi, puis ajoutés à votre Jellyfin. Vous pourrez ainsi profiter de vos Films et Séries. WinSCP Une fois que vous avez ajouté les films et séries que vous souhaitez, vous pouvez actualiser les médiathèques en allant dans le tableau de bord, puis dans ‘Médiathèques’, et en cliquant sur ‘Actualiser toutes les médiathèques’

Une fois que vous avez fait cela, vous pouvez retourner sur la page principale et vous verrez alors vos films et séries apparaître. Jellyfin En cliquant sur vos films et séries, vous devriez voir vos films et séries, les métadonnées se mettre automatiquement. Si ce n’est pas le cas, respectez le format conseillé de nommage ou rechargez les métadonnées. En dernier recours, vous pouvez les entrer manuellement. Jellyfin