Files
2026-06-09 18:40:21 +02:00

5.0 KiB

title, created, updated, type, tags, confidence, contested, sources
title created updated type tags confidence contested sources
Tracearr 2026-06-07 2026-06-07 app
catalogue
media-streaming
tracearr
analytics
monitoring
audit
high false
https://selfh.st/apps/?tag=Media+Streaming
https://github.com/Tracearr/Tracearr
https://tracearr.dev/

🎬 Tracearr

Tracker d'accès pour serveurs de streaming : logue qui a regardé quoi, où, quand et depuis quel appareil, pour Plex, Jellyfin, Emby et plus.

📋 Informations Générales

Attribut Valeur
Nom Tracearr
Slug app-tracearr
Description Agrégateur de logs d'accès multi-serveurs média, avec dashboard, alertes Telegram/Discord et analytics utilisateur
Site officiel https://tracearr.dev/
Repository https://github.com/Tracearr/Tracearr
Stars 1 980
Licence AGPL-3.0
Langage principal TypeScript
Catégorie Media Streaming
Tags [catalogue, media-streaming, tracearr, analytics, monitoring, audit]

📝 Description

Tracearr répond à un besoin très concret pour les admins Plex/Jellyfin/Emby : savoir exactement qui consomme quelle ressource, depuis quel appareil, avec quel débit, et détecter les abus (comptes partagés au-delà du nombre autorisé, accès depuis des pays inattendus, transcodages excessifs, etc.). Le projet est né d'un fork/spirit de Tautulli (Python, mono-source) mais en plus moderne, plus rapide, et multi-sources.

Tracearr se branche via webhooks sur Plex, Jellyfin, Emby, et même des sources custom (API Sonarr/Radarr). Il stocke les événements dans une base (Postgres ou SQLite), puis expose un dashboard web avec : top utilisateurs, top médias, sessions actives, géolocalisation IP, stats transcodage, et graphiques d'usage dans le temps. Les alertes (Telegram, Discord, Webhook, Gotify) sont paramétrables par règle.

L'API REST permet d'exporter les données vers Grafana ou d'autres outils. Limites : la reconnaissance device reste basique (user-agent parsing), pas d'authentification native pour le dashboard (à coupler avec un SSO), et le projet est jeune (breaking changes possibles entre versions).

🚀 Installation

Via Docker (recommandé)

# docker-compose.yml
version: "3.8"

services:
  tracearr:
    image: ghcr.io/tracearr/tracearr:latest
    container_name: tracearr
    restart: unless-stopped
    ports:
      - "4000:4000"   # Web UI + API
    environment:
      DATABASE_URL: postgres://tracearr:ChangeM3_TT@db:5432/tracearr
      JWT_SECRET: ChangeM3_JWT_LONG_SECRET
      TZ: Europe/Paris
    volumes:
      - ./config:/app/config
    depends_on:
      - db

  db:
    image: postgres:16-alpine
    container_name: tracearr-db
    restart: unless-stopped
    environment:
      POSTGRES_USER: tracearr
      POSTGRES_PASSWORD: ChangeM3_TT
      POSTGRES_DB: tracearr
    volumes:
      - ./db:/var/lib/postgresql/data

Installation manuelle

Node 20+, Postgres 15+. Cloner, pnpm install, pnpm build, lancer node dist/server.js. Le projet est aussi distribuable en binaire standalone via pkg.

⚙️ Configuration

  • Sources : ajouter Plex (token X-Plex-Token + URL), Jellyfin (API key), Emby (API key). Pointer sur les webhooks émis par chaque serveur.
  • Webhooks Plex : dans Plex > Settings > Webhooks, ajouter http://tracearr:4000/webhook/plex.
  • Webhooks Jellyfin : Administration > Plugins > Webhook, ajouter URL http://tracearr:4000/webhook/jellyfin.
  • Géolocalisation : clé API MaxMind GeoLite2 gratuite (téléchargeable sur le site MaxMind).
  • Alertes : règles par utilisateur (max sessions, pays autorisés), webhook Telegram/Discord/Gotify.
  • Authentification : aucun système natif : à protéger par reverse proxy authentifié.

🔗 Alternatives

  • Tautulli — Le pionnier, Python, mature, mono-source (Plex uniquement).
  • Jellystat — Équivalent moderne dédié Jellyfin, tableau de bord similaire.
  • Wizarr / Manage Users — Gestion des invitations et des utilisateurs, pas le tracking.
  • Statuzer — Plus modeste, en cours de développement, Python.

🔒 Sécurité

  • Le dashboard ne supporte pas l'auth en natif → obligatoire de placer Tracearr derrière app-traefik + Authelia/Authentik.
  • Limiter l'accès par IP au port 4000 si exposition directe.
  • Changer le JWT_SECRET (sinon les tokens sessions sont prévisibles).
  • Stocker les clés API Plex/Jellyfin dans des secrets Docker (docker secret ou .env non versionné).

📚 Ressources

🔗 Pages Liées