How to Self-Host Tautulli with Docker
What Is Tautulli?
Tautulli is a monitoring and tracking tool for Plex Media Server. It shows you who’s watching what, viewing history, server statistics, and library analytics. It can also send notifications when users start streaming, when new content is added, or when your server has issues. Official site
Prerequisites
- A Linux server (Ubuntu 22.04+ recommended)
- Docker and Docker Compose installed (guide)
- 500 MB of free disk space
- 256 MB of RAM (minimum)
- A running Plex Media Server
Docker Compose Configuration
Create a docker-compose.yml file:
services:
tautulli:
image: lscr.io/linuxserver/tautulli:2.15.2
container_name: tautulli
environment:
- PUID=1000 # User ID for file permissions
- PGID=1000 # Group ID for file permissions
- TZ=America/New_York # Your timezone
ports:
- "8181:8181" # Web UI
volumes:
- tautulli-config:/config # Configuration and database
restart: unless-stopped
volumes:
tautulli-config:
Start the stack:
docker compose up -d
Initial Setup
- Open
http://your-server:8181in your browser - Follow the setup wizard
- Connect to Plex: Enter your Plex server URL (e.g.,
http://plex-ip:32400) and your Plex authentication token - To get your Plex token: In Plex Web, open any media item → Get Info → View XML → look for
X-Plex-Tokenin the URL - Tautulli will start syncing viewing history — historical data import can take a while for large libraries
Configuration
Getting Your Plex Token
The easiest method:
- Sign in to plex.tv/claim (not used here, but helpful)
- In Plex Web UI, open a browser developer tools (F12)
- Go to any media item page
- In the Network tab, find a request to your Plex server
- Look for the
X-Plex-Tokenparameter in the URL
Or use the Plex API:
curl -X POST 'https://plex.tv/users/sign_in.json' \
-H 'X-Plex-Client-Identifier: tautulli' \
-d 'user[login]=YOUR_PLEX_EMAIL&user[password]=YOUR_PLEX_PASSWORD'
Notifications
Tautulli supports 20+ notification agents:
- Discord — webhook URL
- Telegram — bot token + chat ID
- Email — SMTP settings
- Slack — webhook URL
- Pushover/Pushbullet — API keys
- Gotify — server URL + app token
- Webhook — custom HTTP requests
Configure under Settings → Notification Agents. Each agent supports customizable triggers:
- Playback start/stop/pause/resume
- New content added to library
- Server down/up
- Plex updates available
- Concurrent stream limit reached
Newsletter
Tautulli can generate HTML newsletters showing recently added content. Configure under Settings → Newsletters. Send via email or Discord.
Advanced Configuration (Optional)
Accessing Plex on the same Docker network
If Plex runs in Docker, add Tautulli to the same network:
services:
tautulli:
image: lscr.io/linuxserver/tautulli:2.15.2
container_name: tautulli
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
ports:
- "8181:8181"
volumes:
- tautulli-config:/config
networks:
- media-network
restart: unless-stopped
networks:
media-network:
external: true
volumes:
tautulli-config:
Use http://plex:32400 as the Plex URL in Tautulli settings.
Custom Scripts
Tautulli can run custom scripts on events. Under Settings → Notification Agents → Script, configure:
- Script folder: Mount a volume with your scripts
- Triggers: Same as notifications (playback start, new content, etc.)
- Arguments: Tautulli passes media metadata as script arguments
Common use cases: auto-kill transcodes over a certain quality, notify specific users about new content in their favorite genres, track bandwidth usage.
Reverse Proxy
Tautulli works behind a reverse proxy on port 8181. Enable Settings → Web Interface → HTTP Root if hosting under a subpath.
For more reverse proxy options, see Reverse Proxy Setup.
Backup
Back up the config volume:
docker compose stop tautulli
tar -czf tautulli-backup-$(date +%Y%m%d).tar.gz /var/lib/docker/volumes/tautulli-config/
docker compose start tautulli
The config directory contains the SQLite database with all viewing history. Losing this means losing your statistics.
See Backup Strategy for a complete approach.
Troubleshooting
Tautulli not connecting to Plex
Symptom: “Could not connect to Plex server” error.
Fix: Verify your Plex URL and token. If both are in Docker, ensure they share a network. Test with curl http://plex-ip:32400/identity from inside the Tautulli container.
Viewing history not showing
Symptom: Dashboard shows no activity, but Plex is actively being used. Fix: Check that the Plex token hasn’t expired. Re-authenticate under Settings → Plex Media Server. Also check that Tautulli’s IP is allowed in Plex’s Settings → Network → List of IP addresses and networks that are allowed without auth.
High CPU usage during initial sync
Symptom: CPU spikes when first connecting to Plex. Fix: This is normal during the initial history import. Let it complete. For servers with years of history, this can take 30-60 minutes. CPU usage drops to near zero after sync.
Resource Requirements
- RAM: ~80-150 MB idle, ~200 MB during sync
- CPU: Very low — near zero during normal operation
- Disk: ~100 MB for application, database grows with history (typically 50-200 MB for years of data)
Verdict
Tautulli is essential if you run Plex. It answers questions Plex can’t: who’s watching the most, which libraries get the most use, when your server is busiest, and whether specific media is actually worth keeping. The notification system is flexible enough to automate almost any Plex-related alert.
The only catch: Tautulli only works with Plex. If you use Jellyfin, look at Jellystat or the built-in Jellyfin dashboard instead.
FAQ
Does Tautulli work with Jellyfin?
No. Tautulli is Plex-only. For Jellyfin monitoring, check out Jellystat or the built-in Jellyfin Playback Reporting Plugin.
Does Tautulli affect Plex performance?
No. Tautulli reads data from Plex’s API — it doesn’t modify anything or intercept streams. The impact on Plex is negligible.
Can I see what was watched before installing Tautulli?
Yes. During initial setup, Tautulli imports Plex’s built-in viewing history. The depth depends on Plex’s X-Plex-Container-Size and how much history Plex retains.
Related
Get self-hosting tips in your inbox
New guides, comparisons, and setup tutorials — delivered weekly. No spam.