Riven
Overview
Riven is under active development, expect breaking changes and bugs.
Riven is an advanced media management and streaming solution designed to integrate with various media servers and third-party services. It automates the process of finding, downloading, and organizing media content, making it instantly available for streaming through your preferred media server.
Riven streamlines your media consumption experience by:
- Automatically discovering new content based on your preferences and watchlists.
- Efficiently searching for and downloading high-quality media files.
- Organizing your media library using a smart symlink system.
- Seamlessly integrating with your chosen media server for immediate streaming access.
- Providing a user-friendly web interface for easy management and configuration.
Whether you're a casual viewer or a media enthusiast, Riven offers a powerful, automated solution to keep your media library up-to-date and easily accessible.
Prerequisites
Before installing Riven, ensure you have the following prerequisites:
Linux
Riven only supports Linux-based operating systems and Windows Subsystem for Linux (WSL) in Windows
Rclone
Required to mount debrid service. Additionally Zurg is preferred for Real-Debrid users
Media Server
Currently only Plex Media Server is supported
Docker
Required to run Riven in a containerized environment
Currently only Real-Debrid, All-Debrid and Torbox are supported. More services will be added in the future.
Setup
Before we begin, we need to set up the required folders and files for Riven.
Clone repository and create folders
riven
folder consists of data
folder and docker-compose.yml
file which will be used later.
Setup Library folder
What is Library folder?
Library folder is the folder where Riven will store movie/show files and symlinks. These point to the actual files on the rclone mount
For this example, we are assuming /mnt/zurg
is the rclone mount path.
Installation
docker-compose.yml
file is used to run Riven in a containerized environment. It consists of three services:
riven
: The main Riven application.riven-frontend
: The web interface for Riven.riven-db
: The database for Riven.
Now this won't work as is, you need to modify the docker-compose.yml
file to match your setup.
- Change
TZ
to your timezone. - Change
ORIGIN
to the URL you will be accessing the web interface from. For example, if you are planning to run Riven onhttps://riven.example.com
, change it tohttps://riven.example.com
. This is not required if you are running riven behind a reverse proxy likenginx
,caddy
,cosmos
etc. - Change
BACKEND_URL
to the URL where the frontend can access the backend. This is not required here as we are running both frontend and backend in the same network (stack). - Change
RIVEN_DATABASE_HOST
to the URL where the backend can access the database. This is not required here as we are running both backend and database in the same network (stack). - Change
DIALECT
andDATABASE_URL
to use the same database as the backend. This is not required here as we are running both backend and database in the same network (stack). - Change
volumes
to match your setup. Riven requires access to the library folder and rclone mount path.
Running Riven
To run Riven, execute the following command:
This command will start the Riven services in the background. You can access the Riven web interface by navigating to the specified ORIGIN
URL or reverse proxy URL.
Configuration
Once Riven is running, you can configure it by accessing the web interface. You will be prompted with onboarding steps to set up your debrid service, media server, content services and scraper services.
There are 4 steps in the onboarding process:
General Settings
In this step you configure the downloaders (debrid services), rclone mount path, library path, subtitles, etc. See the image below for an example.
Media Server
In this step you configure the media server and updater settings. See the image below for an example.
Content Services
In this step you configure the content services like trakt, overseerr, etc. See the image below for an example.
Scraper Services
In this step you configure the scraper services like torrentio, zilean, prowlarr, jackett, etc. See the image below for an example.
Once you have completed the onboarding process, you will be greeted with a beautiful dashboard where you can manage your media library, request items, settings and many more in the future.