[Tuto] Installation de JellyWatchWise en Docker

EVO

Administreur
Membre du personnel
25 Novembre 2019
9 989
2 093
293
/var/run/docker.sock
Bonjour,
Voici un petit tuto, pour ceux qui souhaiterai installer JellyWatchWise en Docker.

JellyWatchWise, c'est quoi ? :giggle:
JellyWatchWise est une application Python conçue pour vous aider à gérer et à faire respecter les limites de temps de visionnage pour les utilisateurs qui accèdent à votre serveur Jellyfin. En s'intégrant à l'API Jellyfin, l'application surveille le temps de visionnage total des utilisateurs et restreint l'accès aux médiathèques lorsque les limites de temps définies sont dépassées.

1731867272002.png

Retrouvez plus d'informations sur JellyWatchWise ici : https://github.com/Joker-KP/jelly-watch-wise

Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert de docker/docker compose, n’hésiter pas à répondre à ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...

Pour un support sur JellyWatchWise ne concernant pas une installation via ce tutoriel, merci de poster votre question dans Applications.


Pré-requis :
Avoir Docker et Docker Compose installé sur sa machine, voir [Tuto] Installation de Docker, Docker-compose et Portainer sur Debian 11
Et avoir un serveur Jellyfin, forcément :)

A modifier selon votre installation :
Toute mon installation, va ce faire dans un dossier "jellywatchwise " inclus dans mon dossier "docker"
Je vais donc installer JellyWatchWise dans docker/jellywatchwise

Sommaire :
1/ Création des dossiers nécessaire
2/ Récupérer la clé API
3/ Création & Configuration du fichier de configuration
4/ Création & Configuration du fichier "docker-compose.yml"
5/ Création et démarrage du conteneur
6/ Accès a JellyWatchWise
Annexe 1 : Connaitre l'ID d'un utilisateur
Annexe 2 : Fonctionnement et Limitations de JellyWatchWise


Aller go :)



1/ Création des dossiers nécessaire
Sur le NAS nous allons devoir créer un dossier jellywatchwise contenant un dossier config.

En SSH, avec la commande cd nous allons accéder au dossier ou vous souhaitez installer les fichiers de configuration du conteneur. Dans mon cas c'est /home/tuto/docker, j’exécute donc la commande suivante pour accéder au dossier docker :

cd /home/tuto/docker

Vous pouvez aussi créer le dossier jellywatchwise, contenant un dossier config avec cette commande : mkdir -p jellywatchwise/config

Ensuite, avec la commande cd jellywatchwise, rendez-vous dans le dossier principal de JellyWatchWise que nous venons de créer.

Note : A partir de maintenant, toutes les commandes du tutoriel partirons du principe que vous les exécuter depuis le dossier /jellywatchwise




2/ Récupérer la clé API
le plugin Playback Reporting est obligatoire pour le fonctionnement de JellyWatchWise. Assurez vous que le plugin est bien présent sur votre serveur Jellyfin.

Ensuite pour récupérer la clé API, rendez vous dans l'interface d'administration :

[OUPS TUTO EN COURS]



3/ Création & Configuration du fichier de configuration

Dans le dossier config, nous allons créer un fichier config.yaml avec la configuration de notre instance JellyWatchWise.

Vous pouvez créer et modifier ce fichier avec la commande : nano config/config.yaml

Voici un exemple :
YAML:
server:
  host: http://192.168.1.100:8096          # Jellyfin server address
  token: 3490000000000000000000000000057b  # token used for authorization (api key for admin account)

limits:                                    # all time values are in minutes
  default_limit: [75, 120]
  user_limits:
    7ad00000000000000000000000000999: 45
    bc10000000000000000000000000084c: 120
  no_limit_users:                          # users that will not be shown for limit checks (put admin accounts here)
    - 6d300000000000000000000000000f1a
  account_enable_on_day_reset: true
  polling_interval: 1.2                    # time between refreshing state from Jellyfin server
                                           # (can be 0 when webhooks are defined to call http://yourWatchWise/trigger)

view:
  default_user: 7ad00000000000000000000000000999
  language: en

access:
  limit_clients: false           # when true the client IP address has to start with
  accepted_clients:              # one of the 'accepted client' items
    - "127.0.0."
    - "192.168."
    - "10."

# optional address and API key of JellyStat server; it replaces Playtime Reporting requirement
# stats:
#  host: https://mystats.somedomain.com
#  token: 26700000000000000000000000000543

general:
  log_level: info                 # critical, error, warning, info, or debug

Ce que vous devez modifier :
- host: >> Remplacer http://192.168.1.100:8096 par l'url de votre serveur Jellyfin
- token: >> Remplacer 3490000000000000000000000000057b par le token obtenu au point 2l'url de votre serveur Jellyfin

- default_limit: 75 >> Ici 75 représente la limitation en minute la limitation journalière par défaut pour l'ensemble des utilisateurs.
Il faut comprendre que par défaut, tous les utilisateurs sont limités par cela. En dessous nous allons voir comment appliquer une limite personnalisée pour certains utilisateurs, et comment exclure des utilisateurs du systeme de limitation.

- user_limits: vous devez indiquer les id des utilisateurs* que vous souhaitez surveiller, et leur limite journalière.
Dans l'exemple si dessus, 7ad00000000000000000000000000999 à une limite de 45 min, et bc10000000000000000000000000084c une limite de 120 min.

Vous pouvez aussi spécifier des limitations différentes pour les jours travaillés / weekend, ou pour chaques jours de la semaine, voir : https://github.com/Joker-KP/jelly-watch-wise/blob/main/config/config-sample.yaml

- no_limit_users: vous devez indiquer les id des utilisateurs* que vous souhaitez surveiller, et leur limite journalière.
Dans l'exemple si dessus, 6d300000000000000000000000000f1a n'a pas de limitation ( je vous conseille de le mettre en place au moins sur votre compte de gestion )

- default_user: >> Remplacer 7ad00000000000000000000000000999 par l'ID de l'utilisateur a afficher par défaut sur la page web de gestion de JellyWatchWise

* Pour connaitre des IDs des utilisateurs, voir l'annexe 1. ( en cours de rédaction ).

[OUPS TUTO EN COURS]



4/ Création & Configuration du fichier "docker-compose.yml"

Nous allons maintenant créer le fichier docker-compose.yml, c'est lui qui contiendra la configuration de notre conteneur.

Pour le créer nous exécutons la commande suivante : nano docker-compose.yml

L'éditeur s'ouvre, dedans nous allons copier/coller le code suivant :

Code:
services:
  jelly-watch-wise:
    image: macjoker/jelly-watch-wise
    container_name: jelly-watch-wise
    ports:
      - 5057:8080
    volumes:
      - ./config:/app/config
    restart: unless-stopped

Vous pouvez ensuite quitter l'éditeur avec Ctrl+X et confirmer les modifications.[/B]



5/ Création et démarrage du conteneur
Rappel : Nous sommes toujours en SSH, dans notre dossier jelly-watch-wise

Pour créer le conteneur et le démarrer exécuter la commande suivante : docker compose up -d

Note : Si vous exécuter une veille version de docker-compose ( version 1 ) , la commande sera : docker-compose up -d

Note 2 : Les commandes docker doivent s’exécuter avec les droits root


Si la commande vous retourne "done" ou "Running", c'est que le conteneur est bien lancé !




6/ Accès a JellyWatchWise

Depuis votre navigateur, il vous suffit maintenant de taper l'adresse ip de votre NAS suivi du port 5057 pour se connecter a l'interface Web de JellyWatchWise.
Exemple : Si l'ip de votre NAS est 192.168.1.20 alors l'adresse est http://192.168.1.20:5057


1731867272002.png

ANNEXES a venir .... 🚧😅

2024-11-21 - Ajout de précision sur le réglage des limites suite à l'ajout d'une fonction par le dev
2024-11-18 - Correction d'une faute de frappe dans l'adresse (6/)
2024-11-17 - Création du tutoriel
 
Dernière édition: