About this project

Tracearr is a self-hosted monitoring platform for media servers, covering Plex, Jellyfin and Emby from a single interface. It is aimed at administrators who run one or more of these servers and want stream visibility, playback analytics and account-sharing detection in one place. Core capabilities described in the README: - Multi-server dashboard: connect Plex, Jellyfin and Emby together; active streams, server health and per-server CPU, memory and bandwidth charts on one page. Plex reports metrics natively; Jellyfin and Emby report through a companion SSE plugin, otherwise polling is used. - Session tracking: full history of who watched what, when, where and on which device, with geolocation including ASN, continent and postal code. - Stream analytics: transcode versus direct play, bandwidth usage, codec and resolution breakdowns, device compatibility scores. - Cross-server identities: one person with multiple server logins can be merged into a single identity, with manual merge/split and suggestions. An identity's trust score is the lowest of its active accounts. - Media catalog: one record per title matched across servers by IMDb, TMDB or TVDB id, with pages for overview, browse, genres, quality, storage and watch metrics, including duplicate detection and storage predictions. - Live TV and music tracking alongside movies and shows. - Self-hosted stream map using MapLibre GL with a bundled PMTiles basemap, so no third-party tile keys or outbound tile requests are required. - Automations: triggers, conditions and actions, with 22 built-in templates such as impossible travel, too many simultaneous streams, device velocity and geo restrictions. Actions can notify, adjust trust, message clients or stop streams; automations can be exported as share codes. - Trust scores starting at 100, lowered by violations and adjustable by automations. - Destinations: Discord, generic JSON webhook, ntfy, Gotify, Apprise, Pushover, SMTP email, mobile push and in-app toasts. - Newsletters: scheduled emails about newly added movies, shows, albums and optionally most-watched content, with unsubscribe and view-in-browser links plus per-recipient send history. - Public REST API v1 and v2 with key authentication and an interactive Scalar reference at /api-docs. - Bulk actions across tables and data import from Tautulli, Jellystat backups or the Jellyfin/Emby Playback Reporting plugin. Deployment is Docker-based. A quick start uses a compose file with generated JWT and cookie secrets, exposing the web UI on port 3000. Image tags include stable, supervised (all-in-one app, TimescaleDB and Redis in one container), prerelease and nightly variants. Proxmox VE LXC and Unraid are also mentioned. The stack is React 19, TypeScript, Vite, Tailwind, Fastify, TimescaleDB with Drizzle ORM, Redis/BullMQ, Socket.io and React Email. The project is AGPL-3.0 licensed and includes GeoLite2 data from MaxMind. A separate mobile app repository exists for iOS and Android.