Installer Tautulli avec Docker
guide d'installation de Tautulli, une application tierce pour mesurer les statistiques et l'activité de votre serveur Plex
Au sommaire :
- 1-Qu'est-ce que Tautulli ?
- 2-Prérequis
- 3-Déploiement
- 4-Configuration
- 5-Exposer son instance avec Traefik
1-Qu'est-ce que Tautulli ?
Tautulli est une application tierce qui permet de mesurer les statistiques et l'activité de votre serveur Plex.
Vous allez pouvoir savoir entre autre sur vos utilisateurs :
- Qu'est-ce qu'ils regardent ?
- Qui regarde ?
- Quand ils regardent ?
- Où ils regardent ?
- Comment ils regardent ?
Le tout présenté dans une belle interface web.
Cerise sur le gâteau, tout comme Plex, Tautulli est disponible su Android et iOS.
2-Prérequis
Pour déployer Plex, vous devez disposer d'une machine virtuelle fonctionnant sous Ubuntu Server.
Création de la machine virtuelle :
Virtualisation avec Proxmox VE : Si vous partez de zéro, suivez mon guide détaillé pour virtualiser Ubuntu sur Proxmox VE avec des réglages optimisés.
Automatisation avec Cloud-Init : Pour gagner du temps lors de la configuration, utilisez un template Cloud-Init. Cela permet d'automatiser et de simplifier l'initialisation de vos machines virtuelles. Retrouvez les instructions dans ce guide.
Installation des outils nécessaires :
Docker et Docker Compose : Une fois la machine virtuelle prête, installez Docker et Docker Compose, indispensables pour gérer et orchestrer vos conteneurs. Ce guide vous accompagnera dans l'installation.
Exposition de l'application :
Proxy inverse avec Traefik : Pour exposer vos applications sur Internet de manière sécurisée, configurez un proxy inverse. Traefik est une solution recommandée. Suivez ce guide pour l'installation.
Instance Plex nécessaire
Enfin, pour utiliser Tautulli, vous devrez disposer d'une instance Plex opérationnelle. Tautulli nécessite Plex pour surveiller et analyser l'activité des utilisateurs. Si vous n'avez pas encore installé Plex, vous trouverez un guide pour l'installer sous Docker ici.
3-Déploiement
Commencez par créer un dossier "docker" à la racine du dossier utilisateur"
mkdir -p ~/docker
Créez un fichier nommé "compose.yml"
touch ~/docker/compose.yml
Ouvrez le fichier "compose.yml" et copiez cette configuration.
networks:
# Docker Bridge Network
default:
driver: bridge
services:
tautulli:
image: lscr.io/linuxserver/tautulli:latest
container_name: tautulli
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
ports:
- 8181:8181
volumes:
- ${APPDATA}/tautulli:/config
restart: unless-stopped
Pour les options communes :
- network : en bridge (l'adresse IP sera celle de la machine virtuelle ou du conteneur LXC)
- services : c'est là qu'il faudra ajouter les configurations de vos conteneurs
- image : nom du registry suivi du nom de l'application (lscr.io/linuxserver/app_name)
- container_name : le nom du conteneur, sinon Docker en choisira un de manière aléatoire (mieux vaut le nommer vous même)
- environment : il y a les variables de base (PUID, PGID, TZ) qui correspondent à l'utilisateur, le groupe et le fuseau horaire.
- volumes : variable ${APPDATA) (/home/user_name/appdata) suivi du nom de l'application (/app_name)
- ports : le port d'écoute pour accéder à l'interface web (désactivé en local)
- restart : unless-stopped par défaut. Le daemon de Docker redémarrera automatiquement le conteneur sauf si vous l'arretez, il faudra le démarrer manuellement
Téléchargez l'image et déployez le conteneur.
docker compose pull && docker compose create
Puis démarrez à la fois Tautulli et Plex (si vous avez suivi le tutoriel précédent, l'un ne va pas sans l'autre).
docker start tautulli plex
4-Configuration
Une fois les deux applications démarrés, tapez l'adresse IP de votre machine virtuelle suivi du numéro de port (8181).
Cliquez sur "Next".
Ajoutez un identifiant et un mot de passe. Pour ma part, je génére le tout via l'extension web de Bitwarden (voir partie 4 du tutoriel ci-dessous))
Authentifiez-vous avec le site Plex en cliquant sur "Sign In with Plex".
Cliquez sur "Connexion".
Une fois authentifié, cliquez sur "Next"
Indiquez l'adresse IP locale suivi du numéro de port de votre instance (ils sont sur le même réseau nul besoin d'indiquer le nom de domaine), cliquez sur "Verify" puis sur "Next".
Laissez par défaut (cela concerne le stockage des activités de streaming).
Tautulli vous avertira via des notifications sur l'activité de votre serveur Plex. Cliquez sur "Next".
On a pas de base de données à importer donc cliquez sur "Next".
Installation terminé.
Vous avez le choix entre vous authentifier avec Plex ou Tautulli. À vous de voir sachant que pour ma part, si je devais utiliser Plex comme serveur multimédia, je l'exposerai directement sur internet (via Traefik) avec un nom de domaine sans passer par les serveurs de Plex (débit limité comme expliqué dans mon tutoriel) et c'est pareil pour Tautulli, je n'utiliserai pas les services d'authentification de Plex, tout en local pour moi.
Si je joue un morceau sur Plex et que je retourne sur Tautulli, ce dernier va m'afficher toutes sortes d'informations comme :
- La version de Plex que j'utilise (la version web)
- Le navigateur utilisé (Brave, basé sur Chrome)
- La qualité (Direct Play donc aucun transcodage, on est sur du stream au format FLAC d'origine)
- Si c'est en local ou via internet
- La bande passante utilisée
- Le système utilisé (on vois le logo Ubuntu)
- L'utilisateur qui écoute
Sur un film comme Akira, là on est plus sur du "Direct Play" mais "Direct Stream" avec un transcodage MKV vers MP4 et AC3 5.1 vers ACC Stereo.
Si je clique sur la jaquette, je vais pouvoir obtenir des statistiques d'écoute/visionnage sur mes contenus.
- Libraries : liste les contenus disponible
- Users : liste les utilisateurs
- History : liste l'activité de votre serveur Plex
- Graphs : affiche des graphiques de l'activité de votre serveur Plex
5-Exposer son instance avec Traefik
networks:
# default network
default:
driver: bridge
# Traefik network
web:
name: web
driver: bridge
services:
tautulli:
image: lscr.io/linuxserver/tautulli:latest
container_name: tautulli
environment:
PUID: ${PUID}
PGID: ${PGID}
TZ: ${TZ}
volumes:
- ${APPDATA}/tautulli:/config
labels:
- traefik.enable=true
- traefik.http.routers.tautulli.entrypoints=websecure
- traefik.http.routers.tautulli.rule=Host(`tautulli.<domain_name>`)
- traefik.http.routers.tautulli.service=tautulli-svc
- traefik.http.services.tautulli-svc.loadbalancer.server.port=8181
- traefik.http.routers.tautulli.tls.certresolver=letsencrypt