---
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
