selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Scrob logo

Self-host Scrob

v2.34.2

Self-hosted media tracker for Jellyfin, Plex, Emby and more

ReleaseOpen SourceGPL-3.0
Docker ComposeCompose file & guide
docker compose up -d
Updated10 hours ago
LanguagePython
Setup difficultyModerate
MobilePWA
ThemeDark mode
Stars
566
Ports
7330 (HTTP web interface), 7331 (Internal backend API (bare metal override))
Requires
PostgreSQL, TMDB API
Docker
bellamy/scrob
Scrob dashboard showing media tracking overviewMovie detail page with cast, ratings, and file detailsLight mode discover pageMobile watch history in dark modeMobile watch history in light modeScrob screenshot collageDashboard in dark modeExplore page in light modeMovie page in light modeShow page in dark mode

What is Scrob?

Scrob is a self-hosted dashboard that consolidates your viewing history from several media servers into one place. It connects to Jellyfin, Plex, Emby, and other platforms to import libraries and playback data, then keeps watch status, ratings, and collections synchronized both ways. Live webhooks from media centers and Kodi update progress in real time. External services such as Trakt, Simkl, and MDBList can feed in past activity and receive new entries. Radarr and Sonarr integration adds one-click download requests. The interface runs on phones and desktops as an installable web app. Docker deployment uses PostgreSQL, available as a two-container stack or a single omnibus image. The code is GPL-3.0 licensed and actively maintained.

Should you self-host Scrob?

Scrob scores 55/100 on selfhost.directory (how scoring works) and ranks #42 of 142 in Media Management. It has 566 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v2.34.2, came out on 24 October 2026.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is NeoDB (55/100, 902 stars). Scrob scores higher overall. See Scrob vs NeoDB side by side.

Features

  • Bingebase integration
  • Manual scrobble sessions
  • MDBList integration
  • Multi-source library sync
  • Personal lists
  • Radarr and Sonarr integration
  • Real-time scrobbling via webhooks
  • Rewatch tracking
  • Season ratings
  • Simkl integration
  • Social Features
  • Trakt integrationLive connection requires Trakt VIP subscription; export import works without VIP
  • Two-factor authentication (TOTP)
  • Two-way provider synchronization
  • Watch history and ratings

Scrob README

How to install Scrob

Install Scrob with Docker

Docker; TMDB Read Access Token
Environment variables
DATABASE_URL, SECRET_KEY, TZ, ENABLE_REGISTRATIONS, REGISTRATION_MAX_ALLOWED_USERS, SESSION_REMEMBER_DAYS, PUID, PGID, BACKEND_PORT, OIDC_*, SMTP_*, REQUIRE_EMAIL_VALIDATION, SERVER_URL, ARVIO_APP_ANON_KEY, NUVIO_APP_ANON_KEY

Create a dedicated network

docker network create scrob-net

Start the database

docker run -d
--name scrob-db
--network scrob-net
--restart unless-stopped
-e POSTGRES_USER=scrob
-e POSTGRES_PASSWORD=changeme
-e POSTGRES_DB=scrob
-v scrob_db:/var/lib/postgresql/data
postgres:16-alpine

Start Scrob

docker run -d
--name scrob
--network scrob-net
--restart unless-stopped
-p 7330:7330
-e DATABASE_URL="postgresql+asyncpg://scrob:changeme@scrob-db:5432/scrob"
-e SECRET_KEY="$(openssl rand -hex 32)"
-e TZ=UTC
-v scrob_data:/app/backend/data
bellamy/scrob:latest

Omnibus image (PostgreSQL included - no separate container needed):

docker run -d
--name scrob
--restart unless-stopped
-p 7330:7330
-e SECRET_KEY="$(openssl rand -hex 32)"
-e TZ=UTC
-v scrob_data:/app/backend/data
-v scrob_db:/app/postgres/data
bellamy/scrob:latest-omnibus

Standard image requires separate PostgreSQL; omnibus includes embedded PostgreSQL

Scrob releases & version history

More in Media Server

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…