Self-hosted · No Docker · No debrid

Stream torrents straight into Jellyfin

JellyFreedom turns torrent-streamable movies & TV into playable items in your Jellyfin library — watch on any device, behind a fail-closed WireGuard kill switch, with a cache that never bloats your disk.

Up and running in one line

Debian / Ubuntu. Installs the orchestrator, TorrServer, FlareSolverr, Jellyfin & Prowlarr.

$ curl -fsSL https://github.com/MoonTheRipper/JellyFreedom/releases/latest/download/get.sh | sudo bash

Then open http://<host>:1990/dashboard/, add your keys, and upload a WireGuard config from any provider.

Why JellyFreedom

Built for the living room — and for staying private.

📺

Every device

Jellyfin is the frontend, so Apple TV, phone, and browser all work natively. No per-device app to build.

💾

No disk bloat

A bounded RAM ring-buffer streams the playhead window and evicts the rest. Disk usage stays flat.

🛡️

Fail-closed VPN

Torrent traffic is confined to a network namespace whose only route is WireGuard. If the VPN drops, it's blocked — not leaked.

🔁

Self-healing

Resolve-at-play: links point at a stable identity, not a frozen hash, so the library re-picks a live release when seeders decay.

🎛️

One dashboard

Search, a request queue, a release picker, VPN config upload/activate, health, and tasks — all in one admin UI.

🧩

No Docker, any VPN

Native single binaries and systemd units. Bring a WireGuard config from any provider or self-hosted.

How it works

Search → pick a healthy release → stream on demand → it appears in Jellyfin.

Search

TMDB for metadata, Prowlarr for releases — seeder-aware picking, CAM rips rejected.

Resolve

The best currently-live release is handed to TorrServer behind the VPN kill switch.

Point

A tiny .strm file lands in your Jellyfin library — instant "availability."

Play

Press play on any device; it streams on demand and drops when you're done.