All apps · 0 apps
dmb-fastapi
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-fastapi on Unraid in a few clicks.
Find dmb-fastapi 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.
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allLinks
Details
iampuid0/dmb:FastAPIRuntime arguments
- Web UI
http://[IP]:[PORT:3000]- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
-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
- Value
- America/New_York
Directory where your rclone config file will be stored.
- Target
- /config
- Default
- /mnt/user/appdata/dmb-fastapi/config
- Value
- /mnt/user/appdata/dmb-fastapi/config
Directory where your DMB logs will be found.
- Target
- /log
- Default
- /mnt/user/appdata/dmb-fastapi/log
- Value
- /mnt/user/appdata/dmb-fastapi/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-fastapi/zurg/RD
- Value
- /mnt/user/appdata/dmb-fastapi/zurg/RD
Directory for the riven backend.
- Target
- /riven/backend/data
- Default
- /mnt/user/appdata/dmb-fastapi/riven/data
- Value
- /mnt/user/appdata/dmb-fastapi/riven/data
MUST BE 'Read/Write - Shared'!!! You must add the full host path above to your plex container. The container path in Plex can be named how you wish. DO NOT ADD THIS AS A LIBRARY! ONLY ADD THE PATH TO PLEX! THAT'S ALL!
- Target
- /data
- Default
- /mnt/user/DMB/dmb-fastapi/zurg/mnt
- Value
- /mnt/user/DMB/dmb-fastapi/zurg/mnt
- Target
- /mnt
- Default
- /mnt/user/DMB/dmb-fastapi/riven/mnt
- Value
- /mnt/user/DMB/dmb-fastapi/riven/mnt
Directory for the postgreSQL database files used with DMB.
- Target
- /postgres_data
- Default
- /mnt/user/appdata/dmb-fastapi/postgres/data
- Value
- /mnt/user/appdata/dmb-fastapi/postgres/data
pgAdmin is used to provide a GUI to explore databases in postgreSQL
- Target
- /pgadmin/data
- Default
- /mnt/user/appdata/dmb-fastapi/pgadmin/data
- Value
- /mnt/user/appdata/dmb-fastapi/pgadmin/data
Zilean is a scraper used to find good quality cached media. Optional. Can be removed if not used.
- Target
- /zilean/app/data
- Default
- /mnt/user/DMB/zilean/data
- Value
- /mnt/user/DMB/zilean/data
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
- DEBUG
- Value
- DEBUG
Enter your RealDebrid API token. Get it here: https://real-debrid.com/apitoken
- Target
- ZURG_INSTANCES_REALDEBRID_API_KEY
- Default
- YOUR-REALDEBRID-API-KEY-HERE
- Value
- YOUR-REALDEBRID-API-KEY-HERE
Set to your machine/host IP ex. http://192.168.1.0:3000 else you'll get cross-site POST error
- Target
- ORIGIN
- Default
- http://0.0.0.0:3000
- Value
- http://YOUR-IP-ADDRESS:3000
Enter your Github token for repo access. This is only relevant if you're a Yowmamasita patreon supporter and have access to the private Zurg repo otherwise remove variable.
- Target
- DMB_GITHUB_TOKEN
- Default
- YOUR-GITHUB-TOKEN-HERE
- Value
- YOUR-GITHUB-TOKEN-HERE
This specifies which branch of zurg to use. If you subscribe via Patreon, keep this set as zurg. If you don't subscribe, remove this variable.
- Target
- ZURG_INSTANCES_REALDEBRID_REPO_NAME
- Default
- zurg
- Value
- zurg
Is Specific Zurg Version applied? If yes, then set to true. Can remove otherwise
- Target
- ZURG_INSTANCES_REALDEBRID_RELEASE_VERSION_ENABLED
- Default
- true
- Value
- true
2024.12.26.0027-nightly is the latest version for private Zurg repo. If non patreon supporter latest is: v0.9.3-final This is for pinning specific releases - You can remove this if you just want latest
- Target
- ZURG_INSTANCES_REALDEBRID_RELEASE_VERSION
- Default
- 2024.12.26.0027-nightly
- Value
- 2024.12.26.0027-nightly
has to be included otherwise fuser fails to mount.
- Target
- /dev/fuse:/dev/fuse:rwm
- Value
- /dev/fuse:/dev/fuse:rwm
3000 by default
- Target
- 3000
- Value
- 3000
Maybe not required. This port is used to access the new json editing functions in fastapi. Your webUI URL will be http://your-server-ip:3005
- Target
- 3005
- Value
- 3005
set the system PID. unraid uses nobody:users (99:100). docker should match the OS if possible.
- Default
- 99
- Value
- 99
set the system PID. unraid uses nobody:users (99:100). docker should match the OS if possible.
- Default
- 100
- Value
- 100