SELF-HOSTED WATCH HISTORY

The local brain for your
media stack.

Keep Plex, Emby, and Jellyfin in sync from one private watch-history archive. Plekt preserves watched status, playback progress, and rewatches, ready to restore after a library rebuild.

Public demo login: demo / demo · actions are simulated and nothing is saved.

v2.2.4 · one process · one SQLite file · your hardware

THE DASHBOARD

Your whole media stack, at a glance.

See what is playing, what is next, and what you watched across Plex, Emby, and Jellyfin, all in one private dashboard.

Explore the dashboard
Plekt dashboard showing an Up Next row and recent watch history for TV and movies

DOCKER QUICK START

Running in five minutes

Start Plekt with Docker Compose, then finish connecting your media servers in Guided Setup.

docker-compose.yml
services:
  plekt:
    image: ghcr.io/lasikiewicz/plekt:latest
    container_name: plekt
    ports:
      - "5056:5055"
    volumes:
      # Database, cached artwork and generated config live here. Keep this folder.
      - ./data:/data
    environment:
      # Host port Plekt is published on.
      PLEKT_PUBLISHED_PORT: "5056"
      # Dashboard login. Set ADMIN_PASSWORD in the .env file beside this file.
      ADMIN_USERNAME: admin
      ADMIN_PASSWORD: "${ADMIN_PASSWORD:?Set ADMIN_PASSWORD in .env before starting}"
    restart: unless-stopped

START PLEKT

  1. echo "ADMIN_PASSWORD=change-me" > .env
  2. docker compose up -d

Then open http://localhost:5056.

Read the setup guide

PICK THE RIGHT FIT

How does Plekt compare?

Different tools solve different parts of media tracking and sync.

CapabilityPlektYamtrackFloppyPlexTraktSyncWatchStateCrossWatchJellyPlex-Watched
Self-hosted✓✓✓✓✓✓✓
Quick easy setup✓✓✓✓
Connects to Plex✓✓✓✓✓✓✓
Connects to Emby✓✓✓✓✓✓
Connects to Jellyfin✓✓✓✓✓✓
Syncs watch state across media servers✓✓✓✓
Syncs resume progress across media servers✓✓✓✓
Connects to or imports from Trakt✓✓✓✓✓
Tracks books, games, or other media✓✓
Includes personal history or stats✓✓✓✓
Snapshot-based rollback of watch state✓✓
Restores watch state to rebuilt libraries✓✓✓
Up Next queue for movies and episodes✓
Discover rails and requests through Seerr✓✓
Single process, one SQLite file✓

* Ticks mark each app’s documented core capabilities, accurate as of 5 November 2026. Other projects release updates often, so check their documentation for the latest.

UP NEXT

Pick up right where you left off.

Bring in-progress films and episodes from your servers into one queue. Check resume progress, jump to the right player, or restore anything you dismissed.

Explore the Up Next queue
Plekt Up Next queue showing movie and TV continuation cards with real resume context and provider Watch now links

PLAYLISTS

One playlist. Every server.

Create hand-picked playlists or set rules to build them for you. Plekt keeps them in sync across Plex, Emby, and Jellyfin, with automatic playlists refreshing hourly.

Explore playlists
Plekt Playlists page with automatic and hand-picked playlists, each showing its type, synced apps, and item count

THE LOOP

Track it. Remember it. Sync it back.

Every play is tracked, saved, and synced.

Your watch history survives library rebuilds, server moves, and outages. Local and remote backups keep it protected.

MORE THAN SYNC

It is also the app you browse.

Posters, cast, air dates, and viewing stats.

BUILT AROUND YOUR STACK

Everything talks to Plekt.

Watch state syncs across your servers and Trakt. Metadata and request tools connect through Plekt.

PlexEmbyJellyfinTrakt
See all features
Diagram connecting Plekt to Plex, Emby, Jellyfin, and Trakt for two-way watch state, and to TMDB, TheTVDB, Fanart.tv, OMDb, and Seerr for metadata and requests

Image preview