Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/rivenmedia/riven/llms.txt

Use this file to discover all available pages before exploring further.

After Riven mounts a new file into the virtual filesystem, it notifies your media server so the library is refreshed immediately — no manual scan required. This is handled by the updaters subsystem, which maps the mounted path to the correct library section and triggers a targeted scan rather than a full library refresh. All updater configuration lives under the updaters key in AppModel.
updaters.updater_interval
integer
default:"120"
Seconds between library update cycles. The updater collects all items that became available since the last cycle and dispatches path-scoped scan requests to the configured media server. Minimum 1 second.
updaters.library_path
string
default:"\"/path/to/library/mount\""
Filesystem path where your media server can see the mounted library. This is the path that Plex, Jellyfin, or Emby has mapped as a library root — it must correspond to the same directory that Riven writes into via the VFS.
Riven communicates with Plex using the PlexAPI library. It identifies the library section that contains the updated path and calls a section-scoped refresh, so Plex only scans the affected folder rather than the entire library.
updaters.plex.enabled
boolean
default:"false"
Enable Plex library updates. When false, Riven will not notify Plex after mounting new items.
updaters.plex.url
string
default:"\"http://localhost:32400\""
URL of your Plex Media Server, including protocol and port. For remote access, use the full LAN or FQDN address visible from the Riven container.
updaters.plex.token
string
default:"\"\""
Plex authentication token (X-Plex-Token). To find your token, open Plex Web, play any item, and look for X-Plex-Token in the streaming URL, or use the official instructions.
Required Plex library setupPlex must have libraries whose scan paths include the paths Riven mounts under. Riven expects:
  • A Movies library (movies, anime_movies) scanning the movies portion of the mount.
  • A TV Shows library (shows, anime_shows) scanning the shows portion of the mount.
Riven matches the path of a newly mounted item against every configured library section path; the first match triggers a scan of that section. If no section path matches, the update is skipped and a warning is logged.Docker volume mount requirementWhen running inside Docker, the Plex container must have access to the same mounted path as Riven with the correct propagation flags. Add the Riven mount volume to your Plex container with the rslave propagation and the z SELinux label:
volumes:
  - /path/to/riven/mount:/path/to/riven/mount:rslave,z
Without rslave propagation, Plex will not see FUSE-mounted files created by the Riven VFS, even though the path exists on the host. This is the most common cause of Plex not finding newly added media.
Example configuration
{
  "updaters": {
    "updater_interval": 120,
    "library_path": "/mnt/library",
    "plex": {
      "enabled": true,
      "url": "http://plex:32400",
      "token": "YOUR_PLEX_TOKEN"
    }
  }
}
Enable via API
curl -X POST "http://localhost:8080/api/v1/settings/set/all" \
  -H "Authorization: Bearer YOUR_RIVEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "updaters": {
      "plex": {
        "enabled": true,
        "url": "http://plex:32400",
        "token": "YOUR_PLEX_TOKEN"
      }
    }
  }'
Only one updater needs to be enabled. If you enable multiple, Riven will send library update notifications to each one independently after every mount event.

Build docs developers (and LLMs) love