A self-hosted movie and TV browser built on the full IMDb datasets. Everything lives on your own server, so it keeps working at home even when the internet is down.
- Browse and search all 12M+ IMDb titles and the people credited on them
- Title pages with plot, trailer, full cast and crew, streaming availability and more from TMDB
- Rate titles and people (half-star steps), mark titles watched or add them to your watchlist
- Custom lists with CSV/JSON export
- Recommendations based on your ratings, watched titles, watchlist, a list or a single title
- Follow directors and actors to see their upcoming and recent releases
- Letterboxd sync (daily watchlist sync plus full import from a Letterboxd export zip)
- Filter by the streaming services you subscribe to
- Offline: posters, details and all assets are stored locally and pre-cached for the most popular titles
- Weekly automatic IMDb rebuilds, swapped in atomically while the site stays up
- Infinite scroll, keyboard shortcuts (press
?) and a mobile-friendly layout
- Linux with systemd
- Python 3.12+
- About 20 GB of free disk space (11 GB database, a temporary copy during rebuilds, plus the image cache)
- A free TMDB API key for posters, plots, credits and streaming data (optional but recommended)
./setup.shThis creates a venv, installs the dependencies, writes .env, and installs and starts an moviedb systemd service. The IMDb database builds on first start, which takes about 30 minutes.
Then open http://<server-ip>:5000, go to Settings, and add your TMDB key, Letterboxd username and streaming services.
python3 -m venv venv
venv/bin/pip install -r requirements.txt
venv/bin/python app.pyTo build or update the database by hand, run venv/bin/python importer.py.
Set in .env (see .env.example):
| Variable | Default | Description |
|---|---|---|
HOST |
0.0.0.0 |
Address to bind to |
PORT |
5000 |
Port to listen on |
Everything else is set in the web interface under Settings.
| Path | Description |
|---|---|
app.py |
Web app (Quart), background scheduler, TMDB and Letterboxd |
importer.py |
Downloads the IMDb datasets and builds imdb.db |
setup.sh |
Installer and systemd service setup |
imdb.db |
IMDb database, rebuilt weekly |
user.db |
Your ratings, lists, watched/watchlist, settings and caches |
data/ |
Downloaded datasets, importer status and cached images |
templates/ |
Page templates |
static/ |
CSS, JS, icons and bundled front-end libraries |
Back up user.db. Everything else can be rebuilt.
- IMDb non-commercial datasets (personal, non-commercial use only)
- TMDB for plots, images, credits, trailers and streaming availability (streaming data provided by JustWatch)
- Letterboxd for watchlist and watched sync, and as a poster fallback