CrossWatch

CrossWatch

Docker app from Cenodude's Repository

Overview

CrossWatch synchronizes media activity between Plex, Jellyfin, Emby and supported tracking services, with scheduled syncs, realtime monitoring, webhooks, captures and management tools.
CrossWatch

⭐ Star this repository to get updates

Latest Release GHCR Pulls Must-read: Quick Start
Docker Pulls Image Size Docker Version

Website Wiki

CrossWatch/CW is a synchronization engine that keeps your Plex, Jellyfin, PublicMetaDB, Emby, SIMKL, Trakt, AniList, TMDb, MDBList and Tautulli in sync. It runs locally with a web UI where you link accounts, define sync pairs, run them manually or on a schedule, and review stats and history. CW also includes its own tracker to keep your data safe with snapshots. With Profiles, you can manage separate sync setups for yourself and for friends or family too, with their own servers and/or tracker API's.

CW in a nutshell:

  • One brain for all your media syncs A single place to configure everything.
  • Be your own Sync Hub Create profiles for seperate media servers/users/trackers.
  • Multi media-server and multi tracker support with profiles.
  • Synchronization
    • Watchlists, ratings and History
    • Progress sync your progress status between Plex, Emby, Jellyfin and PublicMetaDB.
    • Anime ID mapping (powered AniBridge) for better AniList matching across providers.
  • Scrobble (tracks your activity)
    • Watcher (Plex/Emby/Jellyfin to Trakt/SIMKL/MDBList)
      • Does not require any Plex Pass, Emby Premiere,etc.
    • Webhooks (Plex/Emby/Jellyfin to Trakt)
    • Watchlist Auto-Remove Clears items from your Watchlist after a verified finish.
  • Tools
    • Analyzer: Finds items that are stuck or inconsistent between providers.
    • Playback Progress Manager: View and edit unfinished playback sessions across providers.
    • Editor: Inspect and adjust your items and add or block items.
    • Captures: Rollback tool for provider watchlist, ratings, and history.
    • Backup & Restore: Create, validate, import and restore configuration.

And much more...such as:

  • Simple and advanced scheduling: From standard to more detailed pair schedules
  • CW Tracker Keeps snapshots/backups from your media servers and trackers.
  • Unified Watchlist: View all watchlist items in one place.
  • Player card: Shows what you are currently watching in real time.
  • Fallback GUID: Revives old items from your Plex library.

Download

Guide: Installation

  • Docker:

    docker pull ghcr.io/cenodude/crosswatch:latest
    

Run as Container

docker run -d \
  --name crosswatch \
  -p 8787:8787 \
  -v crosswatch_config:/config \
  -e TZ=Europe/Amsterdam \
  --restart unless-stopped \
  ghcr.io/cenodude/crosswatch:latest

or

services:
  crosswatch:
    image: ghcr.io/cenodude/crosswatch:latest
    container_name: crosswatch
    ports:
      - "8787:8787"
    environment:
      TZ: Europe/Amsterdam
    volumes:
      - type: volume
        source: crosswatch_config
        target: /config
    restart: unless-stopped

volumes:
  crosswatch_config:

The container exposes the web UI at:
http://localhost:8787

Sponsors

Buy Me a Coffee
Every cent goes to the ALS Foundation in the Netherlands

GitBook

Huge thanks to our sponsors for keeping this project moving.

Install CrossWatch on Unraid in a few clicks.

Find CrossWatch in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for CrossWatch Review the template variables and paths Click Install

Requirements

At least one supported media server or tracking service account.

Download Statistics

12,946
Total Downloads

Related apps

Details

Repository
ghcr.io/cenodude/crosswatch:latest
Last Updated2026-06-26
First Seen2026-06-29

Runtime arguments

Web UI
http://[IP]:[PORT:8787]
Network
bridge
Shell
bash
Privileged
false

Template configuration

WebUI PortPorttcp

HTTP port used to access the CrossWatch web interface.

Target
8787
Default
8787
AppdataPathrw

Persistent CrossWatch configuration and application data, mounted inside the container at /config.

Target
/config
Default
/mnt/user/appdata/crosswatch
TimezoneVariable

Timezone used for scheduling and displayed timestamps.

Target
TZ
Default
Europe/Amsterdam
User IDVariable

Numeric user ID used to run CrossWatch. The Unraid default is 99.

Target
APP_UID
Default
99
Group IDVariable

Numeric group ID used to run CrossWatch. The Unraid default is 100.

Target
APP_GID
Default
100