--- type: reference description: "Tautulli is the statistics, monitoring, and notification companion for" tags: - dankserver - tautulli timestamp: 2026-09-01 --- # Tautulli Tautulli is the statistics, monitoring, and notification companion for Plex Media Server. On Dankserver it runs as a **podman quadlet** (`tautulli.service`) under the systemd **user** generator, generated from `dankserver/tautulli/quadlet/tautulli.container` — migrated from the snap (2026-09; the snap carried zero config, so the cutover was a fresh install). **Host:** Dankserver — **Depends on:** [[Plex]] (it is pointless without it; it talks to PMS over the appnet at `http://plex:32400`). ## Facts | Item | Value | |------|-------| | Runtime | podman quadlet, `tautulli.service` (user manager) — migrated from snap `snap.tautulli.tautulli.service` | | Image | `lscr.io/linuxserver/tautulli:v2.18.1-ls245` (pinned; verified == the ghcr `latest` manifest digest at pin time) | | Data root | `/home/dank/Containers/tautulli` bind-mounted as `/config` (fresh at cutover — the snap's `/var/snap/tautulli/common` was empty) | | Identity | fleet rootless model — container root maps to the `dank` user (1000:1000) | | Port | `8181/tcp` published on `0.0.0.0` | | Network | `dankserver_appnet`, alias `tautulli` | | PMS URL | `http://plex:32400` — seeded into `config.ini` by the deployer on first start | | Health | in-container `curl -fs http://localhost:8181/home` probe, 30 s interval / 3 retries | | Deploy | `./scripts/deploy.sh dankserver --service tautulli` | | Docs | https://github.com/Tautulli/Tautulli/wiki | ## What it buys this fleet - Concurrent-stream dashboard and history: who is watching what, right now, on which client — the only tool that answers "is the CPU busy transcoding for someone?" without SSHing in. - Notifications: library updates, download completions, player watch sessions — wire them to whatever notifier the fleet standardizes on (Discord/ntfy/Telegram are all one dropdown away). - Health signal for the *arr stack downstream: completed downloads that never become plays, or streams failing at a fixed bitrate, show up here first. ## Gotchas 1. **Unauthenticated on the LAN.** `0.0.0.0:8181` with no auth wall — anyone on the LAN can read the whole watch history. Fine while LAN-only; if a public vhost is ever pointed at it, put the Authentik + Anubis chain in front first ([[Authentik]], [[Anubis]]). 2. **First boot shows the setup wizard** — expected pre-token behavior; the wizard also answers 200 on `/home`, so the health gate stays green before any token exists. Enter the PMS claim token through the web UI after cutover; it is stored inside the config bind, never in this repo. 3. **Snap-era paths are gone.** Logs and config live under the config bind (`/home/dank/Containers/tautulli/...`), not `/var/snap/tautulli/common` — Grafana/Loki log-shipping paths must account for it ([[Loki]], [[Alloy]]). 4. **Updates are commit-driven** — pin a new `-ls` tag in the unit file and redeploy; never run `:latest`.