turnstone/docs/tautulli-setup.md
pyr0ball 828b69768a refactor: rename ingest → glean throughout codebase
Renames the app/ingest/ package to app/glean/ and updates all
references across Python modules, shell scripts, Vue components,
tests, and documentation.

Intentionally preserved:
- SQLite column name ingest_time (avoids schema migration)
- RetrievedEntry.ingest_time field (maps to the column above)
- Any public-facing JSON keys that reference ingest_time

Changes by category:
- app/ingest/ → app/glean/ (full package move, all parsers)
- app/tasks/ingest_scheduler.py → app/tasks/glean_scheduler.py
- scripts/ingest_corpus.py → scripts/glean_corpus.py
- tests/test_ingest_*.py → tests/test_glean_*.py
- Docstrings, log messages, comments: ingest → glean
- Env var: TURNSTONE_INGEST_INTERVAL → TURNSTONE_GLEAN_INTERVAL
- Shell scripts: glean.log, glean_corpus.py references
- README.md: multi-source ingest → multi-source glean
- .env.example: updated env var name
- patterns/: new diagnostic patterns from 2026-05-20 SSH incident
  (service_crash_loop, pkg_daemon_restart, ssh_forward_conflict)
- SourcesView.vue: pipeline label updated
- All test import paths updated to app.glean.*

285 tests passing.
2026-05-20 23:02:55 -07:00

1.6 KiB

Tautulli Webhook Setup

Tautulli is a Plex Media Server (PMS) monitoring application. This guide shows how to configure Tautulli to send playback events to Turnstone.

Triggers to enable

In your notification agent, enable these triggers:

  • Playback Start
  • Playback Stop
  • Playback Pause
  • Playback Resume
  • Playback Error
  • Playback Buffering

JSON body template

Paste this into the JSON Data field of the Tautulli Custom Script / Webhook notification agent:

{
  "action": "{action}",
  "timestamp": "{timestamp}",
  "user": "{user}",
  "player": "{player}",
  "media_type": "{media_type}",
  "title": "{title}",
  "grandparent_title": "{grandparent_title}",
  "quality": "{quality}",
  "video_decision": "{video_decision}",
  "audio_decision": "{audio_decision}",
  "error_message": "{error_message}",
  "session_key": "{session_key}"
}

Webhook URL

http://<turnstone-host>:8534/turnstone/api/glean/tautulli

Replace <turnstone-host> with the hostname or IP of the machine running Turnstone. (8534 is the default port; adjust if you're using a reverse proxy or changed the port)

Optional token authentication

If you set tautulli_token in Turnstone settings, every webhook request must include a matching header:

X-Tautulli-Token: <your-token>

Add this header in the Tautulli notification agent's Headers section. Requests with a missing or wrong token are rejected with HTTP 403.

Searching events

All events are stored under source tautulli and are immediately searchable in Turnstone after each webhook is received.