Tautulli is a self-hosted web application that monitors and analyses a Plex Media Server. It keeps its own database of everything played — sessions, users, libraries, stream types, bandwidth — and presents it as live activity, searchable history, per-user and per-library statistics, and graphs. It is written in Python, distributed under the GPL-3.0 licence, and ships as a Docker image, a snap, Windows and macOS installers, or from source.
Plex itself shows what is streaming right now and very little else. Tautulli records the detail behind each play (direct play, direct stream or transcode, container and codec, player, LAN or WAN) and keeps that record across library rescans and metadata refreshes, so the history stays comparable over time.
Plex answers “what is playing now”; Tautulli answers “what was watched last month, by whom, and how”. For a shared server that is the difference between guessing who uses the box and knowing: which libraries nobody opens, which accounts transcode everything, which titles justify the storage they occupy. Because the data lives in Tautulli’s own database rather than in Plex, the answers survive rescans, metadata fixes and re-imports, and they can be exported before a migration.
Tautulli needs Python 3.10 or newer and a Plex Media Server it can read from; the first-run setup asks you to sign in to Plex so it can fetch the server token. Installation options are a Docker image (tautulli/tautulli, publishing the internal port 8181), sudo snap install tautulli on most Linux distributions, Windows and macOS installers from the GitHub releases, FreeBSD packages, or running from source. The web interface then listens on http://localhost:8181. Releases move through master (stable), beta and nightly tracks, so pin the track you have tested.
Related: Jellyfin is the open source media server alternative, and Jellystat provides the equivalent statistics dashboard for Jellyfin. Ombi handles media requests for the same stack.