All apps · 0 apps
dmb
Docker app from UnJustice's Repository
Overview
Readme
View on GitHub[!WARNING]
⚠️ Project Status: Deprecated
Debrid Media Bridge (DMB) is now deprecated.
DMB may continue to function, but it is no longer under active development and will not receive new features or ongoing support.
➡️ The recommended successor is DUMB (Debrid Unlimited Media Bridge):
📌 What DUMB Offers
DUMB is a consolidated media orchestration platform delivered as a single Docker image, with optional deployment of the following components:
- Integrated media servers: Plex, Jellyfin, Emby
- Arr ecosystem automation: Sonarr, Radarr, Lidarr, Prowlarr, Huntarr, Whisparr
- Debrid / Usenet workflow tooling: CLI Debrid, Riven, Decypharr, NzbDAV
- Storage and mount management: rclone, Zurg
- Database services and tooling: PostgreSQL, pgAdmin, pgAgent
- Service orchestration & operations: process supervision, health checks, embedded UIs, automatic restarts, managed updates
DUMB is actively maintained and supersedes DMB by consolidating service orchestration, automation, and operational control into a single, supported platform.
[!CAUTION] Docker Desktop CANNOT be used to run DMB. Docker Desktop does not support the mount propagation required for rclone mounts.
[!CAUTION] See the DMB Docs for alternative deployment options to run DMB on Windows through WSL2.
📜 Description
Debrid Media Bridge (DMB) is an All-In-One (AIO) docker image for the unified deployment of the following projects/tools.
📦 Projects Included
[!NOTE] You are free to use whichever components you like. Not all are required, and some may provide overlapping functionality in different ways.
| Project | Author | Community / Docs / Support | 🍻 Support Dev |
|---|---|---|---|
| cli_debrid | godver3 | Discord | Sponsor |
| dmbdb | nicocapalbo | Issues | — |
| Decypharr | Mukhtar Akere | Docs • Issues | Sponsor |
| pgAdmin 4 | pgAdmin Team | Docs • Support | Donate |
| phalanx_db | godver3 | Discord | Sponsor |
| plex_debrid | itsToggle | Discord • Issues | Affiliate • PayPal |
| PostgreSQL | Michael Stonebraker | Docs | Donate |
| rclone | Nick Craig-Wood | Docs | Sponsor |
| Riven | Riven Media | Discord • Discussions | Sponsor |
| Zilean | iPromKnight | Docs • Issues | — |
| Zurg | yowmamasita | Wiki | Sponsor |
🌟 Features
See the DMB Docs for a full list of features and settings.
🐳 Docker Hub
A prebuilt image is hosted on Docker Hub.
🏷️ GitHub Container Registry
A prebuilt image is hosted on GitHub Container Registry.
🐳 Docker-compose
[!NOTE] The below examples are not exhaustive and are intended to provide a starting point for deployment.
services:
DMB:
container_name: DMB
image: iampuid0/dmb:latest ## Optionally, specify a specific version of DMB w/ image: iampuid0/dmb:2.0.0
stop_grace_period: 30s ## Adjust as need to allow for graceful shutdown of the container
shm_size: 128mb ## Increased for PostgreSQL
stdin_open: true ## docker run -i
tty: true ## docker run -t
volumes:
- /home/username/docker/DMB/config:/config ## Location of configuration files. If a Zurg config.yml and/or Zurg app is placed here, it will be used to override the default configuration and/or app used at startup.
- /home/username/docker/DMB/log:/log ## Location for logs
- /home/username/docker/DMB/Zurg/RD:/zurg/RD ## Location for Zurg RealDebrid active configuration
- /home/username/docker/DMB/Riven/data:/riven/backend/data ## Location for Riven backend data
- /home/username/docker/DMB/PostgreSQL/data:/postgres_data ## Location for PostgreSQL database
- /home/username/docker/DMB/pgAdmin4/data:/pgadmin/data ## Location for pgAdmin 4 data
- /home/username/docker/DMB/Zilean/data:/zilean/app/data ## Location for Zilean data
- /home/username/docker/DMB/plex_debrid:/plex_debrid/config ## Location for plex_debrid data
- /home/username/docker/DMB/cli_debrid:/cli_debrid/data ## Location for cli_debrid data
- /home/username/docker/DMB/phalanx_db:/phalanx_db/data ## Location for phalanx_db data
- /home/username/docker/DMB/decypharr:/decypharr ## Location for decypharr data
- /home/username/docker/DMB/mnt/debrid:/mnt/debrid:rshared ## Location for all symlinks and rclone mounts
environment:
- TZ=
- PUID=
- PGID=
# network_mode: container:gluetun ## Example to attach to gluetun vpn container if realdebrid blocks IP address
ports:
- "3005:3005" ## DMB Frontend
- "3000:3000" ## Riven Frontend
- "5050:5050" ## pgAdmin 4
- "5000:5000" ## CLI Debrid Frontend
- "8282:8282" ## Decypharr Frontend
devices:
- /dev/fuse:/dev/fuse:rwm
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfined
- no-new-privileges
🎥 Example Plex Docker-compose
[!IMPORTANT] The Plex server must be started after the rclone mount is available.
The below example uses thedepends_onparameter to delay the start of the Plex server until the rclone mount is available.
The rclone mount must be shared to the Plex container.
The rclone mount location should not be added to the Plex library.
The Riven (If being used) symlink location must be shared to the Plex container and added to the Plex library.Note: for
depends_onto work this needs to be within the same docker compose file.
services:
plex:
image: plexinc/pms-docker:latest
container_name: plex
devices:
- /dev/dri:/dev/dri
volumes:
- /home/username/docker/plex/library:/config
- /home/username/docker/plex/transcode:/transcode
- /home/username/docker/DMB/mnt/debrid:/mnt/debrid ## mount location from DMB must be shared to Plex container. Add the symlinks directories to the Plex Libraries
environment:
- TZ=
- PLEX_UID= ## Same as PUID
- PLEX_GID= ## Same as PGID
- PLEX_CLAIM=claimToken ## Need for the first run of Plex - get claimToken here https://www.plex.tv/claim/
ports:
- "32400:32400"
healthcheck:
test: curl --connect-timeout 15 --silent --show-error --fail http://localhost:32400/identity
interval: 1m00s
timeout: 15s
retries: 3
start_period: 1m00s
depends_on: ## Used to delay the startup of plex to ensure the rclone mount is available.
DMB: ## The name of the container running rclone
condition: service_healthy
restart: true ## Will automatically restart the plex container if the DMB container restarts
🌐 Environment Variables
The following table lists the required environment variables used by the container.
The environment variables are set via the -e parameter or via the docker-compose file within the environment: section or with a .env file saved to the config directory.
Value of this parameter is listed as <VARIABLE_NAME>=<Value>
Variables required by DMB:
| Variable | Default | Description |
|---|---|---|
PUID |
1000 |
Your User ID |
PGID |
1000 |
Your Group ID |
TZ |
(null) |
Your time zone listed as Area/Location |
See the .env.example for more.
🌐 Ports Used
[!NOTE] The below examples are default and may be configurable with the use of additional environment variables.
The following table describes the ports used by the container. The mappings are set via the -p parameter or via the docker-compose file within the ports: section. Each mapping is specified with the following format: <HOST_PORT>:<CONTAINER_PORT>[:PROTOCOL].
| Container port | Protocol | Description |
|---|---|---|
3005 |
TCP | DMB frontend - a web UI is accessible at the assigned port |
3000 |
TCP | Riven frontend - A web UI is accessible at the assigned port |
8080 |
TCP | Riven backend - The API is accessible at the assigned port |
5432 |
TCP | PostgreSQL - The SQL server is accessible at the assigned port |
5050 |
TCP | pgAdmin 4 - A web UI is accessible at the assigned port |
8182 |
TCP | Zilean - The API and Web Ui (/swagger/index.html) is accessible at the assigned port |
9090 |
TCP | Zurg - A web UI is accessible at the assigned port |
5000 |
TCP | CLI Debrid - A web UI is accessible at the assigned port |
8888 |
TCP | Phalanx DB - The API is accessible at the assigned port |
8282 |
TCP | Decypharr - A web UI is accessible at the assigned port |
📂 Data Volumes
The following table describes the data volumes used by the container. The mappings
are set via the -v parameter or via the docker-compose file within the volumes: section. Each mapping is specified with the following
format: <HOST_DIR>:<CONTAINER_DIR>[:PERMISSIONS].
| Container path | Permissions | Description |
|---|---|---|
/config |
rw | This is where the application stores the rclone.conf, and any files needing persistence. CAUTION: rclone.conf is overwritten upon start/restart of the container. Do NOT use an existing rclone.conf file if you have other rclone services |
/log |
rw | This is where the application stores its log files |
/zurg/RD |
rw | This is where Zurg will store the active configuration and data for RealDebrid. |
/riven/backend/data |
rw | This is where Riven will store its data. |
/postgres_data |
rw | This is where PostgreSQL will store its data. |
/pgadmin/data |
rw | This is where pgAdmin 4 will store its data. |
/plex_debrid/config |
rw | This is where plex_debrid will store its data. |
/cli_debrid/data |
rw | This is where cli_debrid will store its data. |
/phalanx_db/data |
rw | This is where phalanx_db will store its data. |
/decypharr |
rw | This is where decypharr will store its data. |
/mnt/debrid |
rshared | This is where the symlinks and rclone mounts will be stored |
📝 TODO
See the DMB roadmap for a list of planned features and enhancements.
🚀 Deployment
DMB allows for the simultaneous or individual deployment of any of the services
For additional details on deployment, see the DMB Docs
🌍 Community
- For questions related to DMB, see the GitHub discussions
- or create a new issue if you find a bug or have an idea for an improvement.
- or join the DMB discord server
✅ GitHub Workflow Status
Install Dmb on Unraid in a few clicks.
Find Dmb 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.
Requirements
Method 1 CLI
1. stop the docker container fully. Wait to see it fully stopped.
2. access the terminal as root user
3. run the command chown -R 99:100 /mnt/user/appdata/DMB
4. run the above command again for any other directories used by DMB eg /mnt/user/DMB (skip if you only have one directory-this template has two directories by default)
5. Restart the container. Check logs. You might need to stop container and run the chown command two times during the first setup only.
Method 2 unRAID GUI
1. stop the docker container fully. Wait to see it fully stopped.
2. login to unRAID GUI as root user
3. Locate your ./appdata/DMB directory (if you setup shares (most people do) then click shares, go into appdata, you'll see DMB there after the first run)
4. click the + sign on the right side of the ./appdata/DMB directory. Change owner. Choose nobody in the drop down menu (it is called just that: nobody) as the owner. Apply the change
5. repeat above steps if you have other directories used by DMB eg /mnt/user/DMB (this template has two directories by default)
6. Restart the container. Check logs. You might need to stop container and do the steps twice during the first setup only.
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allDetails
iampuid0/dmb:latestRuntime arguments
- Web UI
http://[IP]:[PORT:3005]- Network
bridge- Privileged
- false
- Extra Params
--shm-size=128MB -it --cap-add SYS_ADMIN --security-opt apparmor:unconfined
Template configuration
Enter your timezone. List here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
- Target
- TZ
Directory where your rclone config file will be stored.
- Target
- /config
- Default
- /mnt/user/appdata/DMB/config
Directory where your DMB logs will be found.
- Target
- /log
- Default
- /mnt/user/appdata/DMB/log
Directory for Real-Debrid config related files. These are used by the Zurg rclone mount of your Real-Debrid webDAV (read support documents for more info)
- Target
- /zurg/RD
- Default
- /mnt/user/appdata/DMB/Zurg/RD
Directory for the postgreSQL database files used with DMB.
- Target
- /postgres_data
- Default
- /mnt/user/appdata/DMB/PostgreSQL/data
Directory for the riven backend.
- Target
- /riven/backend/data
- Default
- /mnt/user/appdata/DMB/Riven/data
MUST BE 'Read/Write - Shared'!!! You must add the full host path above to your plex container. DO NOT ADD THIS AS A LIBRARY! ONLY ADD THE PATH TO PLEX! THAT'S ALL!
- Target
- /data
- Default
- /mnt/user/DMB/Zurg/mnt
Directory for the riven symlinks. This directory is where Plex/Jellyfin/Emby will be looking to see your shows/movies! ADD THIS DIRECTORY TO Plex/Jellyfin/Emby! ADD IT AS A LIBRARY! eg in Plex it would be a library to '/mnt/movies' and '/mnt/shows'
- Target
- /mnt
- Default
- /mnt/user/DMB/Riven/mnt
origin URL http://[ip address]:[port] format No trailing slash!
- Target
- RIVEN_FRONTEND_ENV_ORIGIN
- Default
- http://0.0.0.0:3000
https://real-debrid.com/apitoken Enter your real-debrid token from the link. Keep this token/key SAFE! Treat it as you would a password. If others obtain it, they can access your real-debrid account.
- Target
- ZURG_INSTANCES_REALDEBRID_API_KEY
Ziilean is highly recommended to grab high quality cached torrent lists!
- Target
- /zilean/app/data
- Default
- /mnt/user/DMB/zilean/data
Maybe not required. Added because the container wasn't creating it automatically and causing errors.
- Target
- /zilean/wwwroot
- Default
- /mnt/user/DMB/zilean/wwwroot/
Data directory for PGAdmin. Optional tool for managing the PostgreSQL database.
- Target
- /pgadmin/data
- Default
- /mnt/user/appdata/DMB/pgadmin/data
Optional. Similiar to plex_debrid. Read: https://github.com/godver3/cli_debrid
- Target
- /cli_debrid/data
- Default
- /mnt/user/appdata/DMB/cli_debrid
Optional. Recommended if using cli_debrid. Read: https://github.com/godver3/phalanx_db_hyperswarm
- Target
- /phalanx_db/data
- Default
- /mnt/user/appdata/DMB/phalanx_db
Optional. Read: https://github.com/sirrobot01/decypharr
- Target
- /decypharr
- Default
- /mnt/user/appdata/DMB/decypharr
Optional. Needed for running PGAdmin in non-host network mode. Port for pgAdmin 4. Can be removed if you aren't using pgAdmin. Host port number can be changed if required. Keep container port 5050.
- Target
- 5050
- Default
- 5050
Only needed if running in non-host network. If running in Host network mode, this can be deleted
- Target
- 3005
- Default
- 3005
Set this to DEBUG for extensive info for ex troubleshooting. Can be set to NOTICE for less info in the log.
- Target
- DMB_LOG_LEVEL
- Default
- INFO
This is the port the Riven webUI will show up on.
- Target
- 3000
- Default
- 3000
This is the port the Decypharr webUI will show up on.
- Target
- 8282
- Default
- 8282
Path to docker fuse on the unraid host. Has to be included otherwise fuser fails to mount.
- Target
- /dev/fuse:/dev/fuse:rwm
- Default
- /dev/fuse:/dev/fuse:rwm
Set the system PID. unraid uses nobody:users (99:100). docker should match the OS if possible. recommended to not change this unless you have a reason.
- Default
- 99
Set the system PGID. unraid uses nobody:users (99:100). docker should match the OS if possible. recommended to not change this unless you have a reason.
- Default
- 100