---
title: "Deploy Scrob"
description: "Self-hosted media tracking app that syncs from Jellyfin, Plex, and Emby"
category: "Analytics"
url: https://railway.com/deploy/scrob
---

# Deploy Scrob

Self-hosted media tracking app that syncs from Jellyfin, Plex, and Emby

**[Deploy Scrob on Railway](https://railway.com/template/scrob)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/scrob/manifest.json

- **Creator:** shiruken's Projects
- **Category:** Analytics
- **Total deploys:** 1

## Template content

### Scrob https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/scrob.svg

- **Image:** ghcr.io/ellite/scrob:latest
- **Health check:** /login
- **Public domain:** Yes

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:16

## Documentation

# Deploy and Host Scrob on Railway

Scrob is a self-hosted media tracking and scrobbling application that functions as your own private Trakt and Letterboxd combined. It syncs libraries, watch history, and ratings across Jellyfin, Plex, Emby, and Kodi, supports two-way Trakt syncing, and integrates directly with Radarr and Sonarr to manage media requests and watchlists.

* [Website](https://scrob.app/)
* [GitHub](https://github.com/ellite/scrob)

## About Hosting Scrob

This template deploys the standard Scrob application container (`ghcr.io/ellite/scrob:latest`, running an Astro frontend on port `7330` and FastAPI backend on port `7331`) paired with a managed PostgreSQL 16 database (`postgres-ssl:16`) over Railway's private network. Application data is persisted in a volume mounted at `/app/backend/data`.

### Deployment Tips & Configuration

- **Initial Admin Account & Registration:** Even with `ENABLE_REGISTRATIONS="false"` set by default for security, **the first user can always register** on a fresh instance. Simply open your Railway public domain, click **Register** to create your administrator account, and your instance will automatically remain closed to public sign-ups. To invite friends or family later, set `ENABLE_REGISTRATIONS="true"`.
- **TMDB API Key (Required for Onboarding):** After logging in for the first time, Scrob's onboarding guide will prompt you to add a [TMDB API Read Access Token](https://www.themoviedb.org/settings/api) (use the longer *API Read Access Token*, not the shorter API Key) in **Settings** to fetch posters, backdrops, cast data, and episode metadata. You can also optionally add a TVDB API key.
- **Connecting Media Servers & Webhooks:** From the Scrob Settings menu, you can add connections to Jellyfin, Plex, and Emby for scheduled library and watch-state syncing, or configure real-time scrobbling webhooks pointing to your Railway domain.
- **OIDC / Single Sign-On:** Scrob natively supports OpenID Connect (Authelia, Authentik, Keycloak, Pocket ID) as well as built-in TOTP Two-Factor Authentication (2FA). Refer to the [Scrob GitHub README](https://github.com/ellite/scrob) for `OIDC_*` environment variables.
- **Backups & Recovery:** Scrob natively supports exporting a full SQL dump of your database directly from the settings interface, which can be restored seamlessly on a fresh install. Combine this with [Railway's native Volume Backups](https://docs.railway.com/reference/volumes#backups) to snapshot your `/app/backend/data` storage for complete peace of mind.

*Note: This is a community-made template and therefore not officially supported by the Scrob developer. Please direct template-specific help requests to the [Railway thread for the template](https://station.railway.com/templates/scrob-795da565).*

## Common Use Cases

- **Private Trakt & Letterboxd Alternative:** Track every movie, show, season, and episode you watch, rate titles on a 10-point scale, write reviews, and curate personal or public lists.
- **Multi-Server Watch History Sync:** Keep watched status and playback progress automatically synchronized across multiple Jellyfin, Plex, and Emby servers.
- **Real-Time Webhook Scrobbling:** Automatically scrobble live playback from Plex, Jellyfin, Emby, or the official [Scrob Kodi Addon](https://github.com/ellite/scrob-kodi).
- **Radarr & Sonarr Request Automation:** Add movies and shows directly to Radarr and Sonarr from the Scrob UI and automatically forward your Plex Watchlist to your *arr stack.

## Dependencies for Scrob Hosting

- **Scrob (`ghcr.io/ellite/scrob:latest`):** Combined Astro frontend and Python FastAPI backend container with a persistent volume mounted at `/app/backend/data`.
- **PostgreSQL (`ghcr.io/railwayapp-templates/postgres-ssl:16`):** Primary relational database accessed via `asyncpg` over Railway's private network.

### Deployment Dependencies

- [Scrob Official Website](https://scrob.app/)
- [Scrob GitHub Repository & Documentation](https://github.com/ellite/scrob)
- [TMDB API Settings (For Metadata Token)](https://www.themoviedb.org/settings/api)

## Why Deploy Scrob on Railway?

Deploying Scrob on Railway provisions the application container, PostgreSQL 16 database, persistent storage volume, and public HTTPS domain for real-time media server webhooks in a single click, without needing to manage reverse proxies or multi-container Docker Compose files.

## Similar templates

- [Formbricks | Open-Source Typeform & Qualtrics Alternative](https://railway.com/deploy/formbricks-surveys) — Surveys, NPS and in-app feedback on your own Postgres, Hub and Cube
- [Typesense PHP](https://railway.com/deploy/typesense-php) — official PHP client against Railway
- [Typesense vs Meilisearch](https://railway.com/deploy/typesense-vs-meilisearch) — self-hosted Typesense vs Meilisearch

Open this page in a browser: https://railway.com/deploy/scrob
