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.
59d12c86-1022-4b0e-92a0-70474db3ef41

⭐ Star this repository to get updates

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

Website Wiki Reddit

CrossWatch (CW) is a synchronization engine that act as a bridge and keeps your Plex, Jellyfin, Emby, SIMKL, Floppy, Trakt, AniList, TMDb, MDBList, PublicMetaDB, PunchPlay, BingeBase, Scrob, Tautulli, Kodi, Nuvio, Stremio and CW local tracker 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.
    • Managed user support (multi-users)
  • Web User Interface and/or Command Line Interface (CLI)
  • Multi media-server and multi tracker support with profiles.
  • Synchronization
    • Watchlists, Ratings, History and Progress
    • Rewatches: keep separate plays in sync for supported trackers.
    • Anime ID mapping (powered by AniBridge and animeApi) for AniList and SIMKL pairs, with custom mappings.
  • Scrobble (tracks your activity)
    • Watcher (Plex/Emby/Jellyfin/Kodi/Scrob to supported trackers)
      • Does not require Plex Pass or Emby Premiere. Yay!
    • Webhooks (Plex/Emby/Jellyfin to supported trackers)
  • 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.
    • Events Viewer: Search and inspect sync runs.
    • Captures: Rollback tool for provider watchlist, ratings, and history.

And much, 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

Want no web UI? Add -e CW_CLI_ONLY=1 or CW_CLI_ONLY: "1" in Compose. The API, CLI, webhooks and auth callbacks keep working.

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

16,554
Total Downloads

Related apps

Details

Repository
ghcr.io/cenodude/crosswatch:latest
Last Updated2026-07-23
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