Skip to content

Xique

Xique is a self-hosted "what should I watch next?" application. It reads your watch history from your own Jellyfin server (read-only), keeps a permanent local ledger of everything you have watched, and recommends movies and TV you have not seen — without depending on any hosted tracking platform.

How it works

One container image, two cooperating processes, one sqlite database on a volume:

  • xique-web — a FastAPI server rendering the zero-JavaScript UI: recommendations, item details, rating, hiding, marking watched, and the settings pages that connect Jellyfin and accept Trakt exports.
  • xique-worker — an asyncio loop that owns all slow work: Jellyfin delta sync, Trakt import jobs, recommendation pre-computation, and a WAL checkpoint of the database every cycle.
  • xique.db — the only state that matters. The worker runs schema migrations; the web process verifies the schema version and refuses to serve if it is behind.

The two processes run as rootless podman containers in a single pod, served to your tailnet by a Tailscale sidecar with automatic HTTPS.

Where to go next

The source of truth for behaviour is the repository; these pages document the operator-facing surface of the latest release.