zurg

zurg

Docker app from grtgbln's Repository

Overview

A self-hosted Real-Debrid webdav server. Together with rclone it can mount your Real-Debrid torrent library into your file system like Dropbox. It's meant to be used with Infuse (webdav server) and Plex (mount zurg webdav with rclone).

zurg

A self-hosted Real-Debrid webdav server written from scratch. Together with rclone it can mount your Real-Debrid torrent library into your file system like Dropbox. It's meant to be used with Infuse (webdav server) and Plex (mount zurg webdav with rclone).

This repository holds the public release and the quick-start bundle — config.yml, docker-compose.yml, rclone.conf and the Plex update scripts. The binaries live under Releases.

Requirements

  • A Real-Debrid account and API token
  • rclone and ffprobe are automatically downloaded on first run if not already installed

Download

Release Cycle

Stable version: v1.0.0 (Public)

The current release, and what this repository documents.

Download the binary or use docker

docker pull ghcr.io/debridmediamanager/zurg-testing:latest
# or pin the release
docker pull ghcr.io/debridmediamanager/zurg-testing:v1.0.0

The image name is still zurg-testing, from before this repository was renamed to zurg-public. It is the current and correct image for stable releases, and :latest on it always points at the newest one.

Nightly (Sponsors only)

Date-stamped nightlies — YYYY.MM.DD.HHMM-nightly — carrying work that has not landed in a stable release yet, including backends beyond Real-Debrid (TorBox, AllDebrid and Usenet).

Nightlies need an active sponsorship on GitHub Sponsors or Patreon, linked to the GitHub account that should receive access:

  1. Sponsor on GitHub Sponsors or Patreon.
  2. Go to gatekeeper.debridmediamanager.com and press Connect GitHub Account — that account is the one granted access.
  3. Sponsoring through Patreon? Press Connect Patreon Account too, so the pledge can be matched to you. GitHub sponsors need no second link.
  4. Press Complete Registration.

Sponsoring on Patreon and stopping there grants nothing, because a pledge on its own cannot say which GitHub account is yours. Until access is granted the private repo answers 404 rather than a permission error, which is what a private repo looks like to an account that cannot see it — not a broken link. Access is removed again if the sponsorship lapses.

Download the binary or use docker

Instructions on HOW TO PULL THE PRIVATE DOCKER IMAGE

docker pull ghcr.io/debridmediamanager/zurg:latest

How to run zurg in 5 steps for Plex with Docker

  1. Clone the repo git clone https://github.com/debridmediamanager/zurg-public.git
  2. Add your token in config.yml
  3. sudo mkdir -p /mnt/zurg
  4. Run docker compose up -d
  5. time ls -1R /mnt/zurg You're done! If you do edits on your config.yml just do docker compose restart zurg.

A web server is now running at localhost:9999, with the dashboard at localhost:9999/config/.

Binary

Download the binary, run it, and zurg handles the rest — it auto-creates a default config and downloads ffprobe and rclone for you.

./zurg                           # creates config.yml, downloads bin/ffprobe + bin/rclone
# edit config.yml → add your Real-Debrid token
./zurg                           # starts the server on http://localhost:9999

The TOKEN (or RD_TOKEN) environment variable auto-creates a config on first run, so Docker users can skip the config file entirely. PORT overrides the configured port.

Note: when using zurg in a server outside of your home network, ensure that "Use my Remote Traffic automatically when needed" is unchecked on your Account page

Command-line utility

Usage:
  zurg [flags]
  zurg [command]

Available Commands:
  download-requirements Download ffprobe and rclone into a directory and update config paths
  clear-downloads Clear all downloads (unrestricted links) in your account
  clear-torrents  Clear all torrents in your account
  completion      Generate the autocompletion script for the specified shell
  help            Help about any command
  network-test    Run a network test
  version         Prints zurg's current version

Flags:
  -c, --config string   config file path (default "./config.yml")
  -h, --help            help for zurg

Use "zurg [command] --help" for more information about a command.

Why zurg? Why not X?

  • Better performance than anything out there; changes in your library appear instantly (assuming Plex picks it up fast enough)
  • You can configure a flexible directory structure in config.yml, filtering torrents by name, file contents, size, age and more. Need help?
  • If you've ever experienced Plex scanner being stuck on a file and thereby freezing Plex completely, it should not happen anymore because zurg does a comprehensive check if a torrent is dead or not. You can run ps aux --sort=-time | grep "Plex Media Scanner" to check for stuck scanner processes.
  • zurg guarantees that your library is always available because of its repair abilities! Dead links are detected on-demand when content is accessed and automatically repaired — no background polling of the RD API required.

Windows

Windows needs WinFsp and one extra rclone flag. See WINDOWS.md.

Please read our wiki for more information!

zurg's version history

Install Zurg on Unraid in a few clicks.

Find Zurg in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Zurg Review the template variables and paths Click Install

Requirements


        Expects a `config.yml` file to be mounted at `/app/config.yml` before starting the container. See configuration details: https://github.com/debridmediamanager/zurg-public/blob/main/config.yml
        
        Expects a `plex_update.sh` script to be mounted at `/app/plex_update.sh` if Plex integration is desired. See script details: https://github.com/debridmediamanager/zurg-public/blob/main/scripts/plex_update.sh
    

Details

Repository
ghcr.io/debridmediamanager/zurg-public:latest
Last Updated2026-08-31
First Seen2026-08-19

Runtime arguments

Network
bridge
Privileged
false

Template configuration

API PortPorttcp

Container Port: 9999

Target
9999
Default
9999
Value
9999
Config File PathPath

Path to the config file

Target
/app/config.yml
Default
/mnt/user/appdata/zurg/config.yml
Value
/mnt/user/appdata/zurg/config.yml
Plex Update ScriptPath

Path to Plex update script: https://github.com/debridmediamanager/zurg-public/blob/main/scripts/plex_update.sh

Target
/app/plex_update.sh
App DataPath

Path to the app data folder

Target
/app/data
Default
/mnt/user/appdata/zurg/data
Value
/mnt/user/appdata/zurg/data