A simple self-hosted media hub for Jellyfin, with support for more media servers planned.
Find a movie or TV show, compare available releases, choose one, and track the download in real time.
Easy to run. Easy to use.
- Find a movie or TV show
- Compare available releases
- Choose the one you want
- Track the download in real time
- Watch it in your media server
Go from a fresh machine to a working media setup in minutes with the guided setup.
Linux / macOS
curl -fsSL https://raw.githubusercontent.com/Nort1346/Lode/main/setup.sh | bashWindows (PowerShell)
irm https://raw.githubusercontent.com/Nort1346/Lode/main/setup.ps1 | iexThe setup checks Docker, generates the required secrets, and guides you through service configuration and API keys.
Lode keeps the media workflow simple without requiring the full *arr stack.
- Users can compare and choose releases themselves
- Discovery, release selection, and downloading in one workflow
- Guided setup with minimal configuration
| Feature | Description |
|---|---|
| Browse & Search | Discover movies and TV shows through TMDB |
| Release Ranking | Compare available releases using configurable scoring |
| Direct Download | Choose a release and send it to qBittorrent |
| Requests & Wishlist | Save titles for later, or request them when no torrents are available or a download limit is reached |
| Manual Torrent Add | Optional direct torrent and magnet support |
| Private Trackers | Support for authenticated indexers |
| User Management | Per-user permissions, sessions, and account expiry |
| Download Controls | Limit active downloads, daily downloads, download size, and private tracker usage |
| Media Servers | Jellyfin support, with more planned |
| Notifications | Real-time updates, Discord, and browser push |
| Guided Setup | One-command setup with Docker and service configuration |
| PWA | Install Lode as a standalone web app |
Lode ranks available releases using configurable weighted criteria such as resolution, language, seeders, size, source, and release group.
Users can see the score and the factors behind it before choosing a release.
Lode is for people who want a simple self-hosted media setup without having to learn or maintain the full *arr stack.
If you already rely on advanced Radarr/Sonarr automation, Lode is not a direct replacement. It intentionally offers a simpler workflow.
Seerr is a request and media management layer that works with Sonarr and Radarr.
Lode handles media discovery, release selection, and downloading directly in one workflow.
| Lode | Seerr | |
|---|---|---|
| Media discovery | Built in | Built in |
| Release selection | User chooses directly | Via *arr |
| Release ranking | Built in | Via *arr |
| Download | Direct to qBittorrent | Via Sonarr/Radarr |
| Radarr/Sonarr required | No | Yes |
| Media servers | Jellyfin, more planned | Jellyfin, Emby, Plex |
The main difference is who controls the release selection and download flow. Lode lets users see the available releases and choose what gets downloaded without adding Radarr or Sonarr to the setup.
Requirements:
- Node.js 24+
- pnpm 11+
- qBittorrent with WebUI API key enabled
- Prowlarr
- TMDB API key
git clone https://github.com/Nort1346/Lode.git
cd Lode
pnpm install
cp .env.example .env # then edit with your settings
pnpm devOpen http://localhost:5757.
Default user: admin. The auto-generated password is printed in the terminal on first start. Create users in Admin > Users.
The default image is:
ghcr.io/nort1346/lode:latest
Lode supports SQLite and PostgreSQL. The stack uses a base compose file plus optional overlays:
| Service | Overlay | Port | Purpose |
|---|---|---|---|
lode |
base | 5757 | Application |
redis |
base | 6379 | Caching (optional) |
qbittorrent |
docker-compose.qbittorrent.yml |
8080 | Torrent client |
prowlarr |
docker-compose.prowlarr.yml |
9900 | Indexer manager |
flaresolverr |
docker-compose.flaresolverr.yml |
8191 | CAPTCHA solver (optional) |
jellyfin |
docker-compose.jellyfin.yml |
8096 | Media server (optional) |
postgres |
docker-compose.postgres.yml |
5432 | Database (optional) |
dozzle |
docker-compose.dozzle.yml |
8082 | Live log viewer (optional) |
| Layer | Technology |
|---|---|
| Framework | Nuxt 4 + Nuxt UI 4 + Tailwind CSS v4 |
| Database | Drizzle ORM - SQLite (default) or PostgreSQL |
| Auth | nuxt-auth-utils (cookie sessions, bcrypt) |
| Integrations | TMDB, Prowlarr, qBittorrent, Jellyfin, Discord |
| Notifications | SSE + Web Push (VAPID) + Discord webhooks |
| PWA | @vite-pwa/nuxt (auto-update, Workbox) |
Full documentation lives in docs/:
- Getting Started - setup, prerequisites, first run
- Configuration - environment variables and settings
- Deployment - Docker setup and production tips
- Architecture - project structure and data flow
- API Reference - endpoint documentation
- Plex support (additional media server)
- Emby support (additional media server)
- Prowlarr indexer management (add/configure indexers from Lode admin)
- Home Assistant integration (webhook, sensors, automations)
Have an idea? Open a feature request.
Contributions are welcome.
See CONTRIBUTING.md for development setup and contribution guidelines.
AGPL-3.0 © 2026 Nort1346
If you find Lode useful, consider giving the repository a star.

