121 lines
5.0 KiB
Markdown
121 lines
5.0 KiB
Markdown
---
|
|
title: Tracearr
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, media-streaming, tracearr, analytics, monitoring, audit]
|
|
confidence: high
|
|
contested: false
|
|
sources:
|
|
- 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é)
|
|
|
|
```yaml
|
|
# 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
|
|
|
|
- Site officiel : https://tracearr.dev/
|
|
- Repository : https://github.com/Tracearr/Tracearr
|
|
- Documentation : https://docs.tracearr.dev/
|
|
- Discord communautaire : https://discord.gg/tracearr
|
|
|
|
## 🔗 Pages Liées
|
|
|
|
- [[cat-media-streaming]] (catégorie parente)
|
|
- [[app-jellyfin]] — Source principale typique
|
|
- [[app-plex]] — Source alternative
|
|
- [[app-watchstate]] — Complément (sync watch state)
|
|
- [[app-traefik]] — Reverse proxy + auth
|
|
- [[recettes-docker-compose]] — Templates
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|