Sign inSign up

iampuid0/dmb

By iampuid0

•Updated about 1 year ago
Archived

An All-In-One image for the unified deployment of Riven, Zurg, and rclone

Image
6

100K+

iampuid0/dmb repository overview

⁠🎬 Debrid Media Bridge 🎬

DMB ⁠

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](https://docs.docker.com/storage/bind-mounts/#configure-bind-propagation) required for rclone mounts.

image

Caution

See the DMB Docs for [alternative deployment options](https://i-am-puid-0.github.io/DMB/deployment/wsl) 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.

⁠🌟 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 the `depends_on` parameter 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_on to 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:

VariableDefaultDescription
PUID1000Your User ID
PGID1000Your 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 portProtocolDescription
3005TCPDMB frontend - a web UI is accessible at the assigned port
3000TCPRiven frontend - A web UI is accessible at the assigned port
8080TCPRiven backend - The API is accessible at the assigned port
5432TCPPostgreSQL - The SQL server is accessible at the assigned port
5050TCPpgAdmin 4 - A web UI is accessible at the assigned port
8182TCPZilean - The API and Web Ui (/swagger/index.html) is accessible at the assigned port
9090TCPZurg - A web UI is accessible at the assigned port
5000TCPCLI Debrid - A web UI is accessible at the assigned port
8888TCPPhalanx DB - The API is accessible at the assigned port
8282TCPDecypharr - 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 pathPermissionsDescription
/configrwThis 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
/logrwThis is where the application stores its log files
/zurg/RDrwThis is where Zurg will store the active configuration and data for RealDebrid.
/riven/backend/datarwThis is where Riven will store its data.
/postgres_datarwThis is where PostgreSQL will store its data.
/pgadmin/datarwThis is where pgAdmin 4 will store its data.
/plex_debrid/configrwThis is where plex_debrid will store its data.
/cli_debrid/datarwThis is where cli_debrid will store its data.
/phalanx_db/datarwThis is where phalanx_db will store its data.
/decypharrrwThis is where decypharr will store its data.
/mnt/debridrsharedThis 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

⁠✅ GitHub Workflow Status

GitHub Workflow Status

Tag summary

Content type

Image

Digest

sha256:a36d170b9…

Size

1.6 GB

Last updated

about 1 year ago

docker pull iampuid0/dmb