Introduction
What is Riven and how does it work?
Riven is a self-hosted media automation system. It discovers content you want, finds streams through debrid services, and serves them through a virtual file system (VFS) to your media server (Plex or Jellyfin).
How It Works
- Content Discovery — Plugins like Seerr, MDBList, or Listrr tell Riven what media you want
- Indexing — TMDB and TVDB fetch metadata for requested items
- Scraping — Torrentio or Comet find available torrents
- Downloading — StremThru caches those torrents on your debrid store (Real-Debrid, AllDebrid, TorBox, and others)
- VFS — A FUSE virtual file system mounts the debrid content as local files
- Library Update — Your media server picks up the new files
You request a movie or show, and it appears in your media server.
Key Features
- Plugin Architecture — Modular and extensible. Every integration is a plugin.
- Virtual File System — No symlinks or file copies. Clean FUSE mount.
- GraphQL API — Powerful API for querying and managing your library.
- State Machines — XState-powered workflows for reliable media processing.
- Job Queue — BullMQ with Redis for async, resilient processing.
Quick Links
Versions
Understanding the different Riven versions
Getting Started
Install and configure Riven with Docker
Running from Source
Run Riven directly on the host instead
Architecture
How the system works under the hood
Configuration
All settings and environment variables
Plugins
Available plugins and their settings
Plugin SDK
Build your own plugins