Distributed Unlimited Media Bridge (DUMB) is an All-In-One (AIO) platform for building and operating a complete automated media stack. It brings together Debrid and Usenet workflows, Arr automation, media servers, request/watchlist tools, service management, logs, metrics, notifications, updates, and embedded service UIs behind a guided setup experience. The maintained container image remains the normal deployment, while the Proxmox Community Scripts integration installs the same controller and managed services natively in an LXC.
DUMB is designed to reduce the glue work that usually comes with multi-service media deployments. You can choose the services that fit your workflow, let DUMB wire the required dependencies, manage them from the DUMB dashboard, and optionally expose selected UIs or public routes through the bundled Traefik access layer.
You are free to use whichever components you like. Not all are required, and some may provide overlapping functionality in different ways.
DUMB is licensed under GNU GPLv3. Copyright and license notices for third-party components redistributed in the container image are collected in THIRD_PARTY_NOTICES.md. Package-manager and runtime license files are also retained in their standard locations inside the image.
DUMB provides a guided, single-deployment control plane for configurable media stacks, including:
- Debrid and Usenet workflows, Arr automation, media servers, and request tools
- Service installation, configuration, lifecycle management, logs, health checks, updates, and recovery automation
- Embedded service UIs with optional Traefik and Cloudflare access tooling
- Optional DUMB-managed Authelia identity provider with DUMB and Traefik Proxy Admin OIDC linking plus reusable Traefik ForwardAuth protection
- Metrics, database-health diagnostics, alerts, notifications, and operator migration or repair utilities
This README intentionally keeps the overview brief. See the DUMB Features documentation for the comprehensive capability, configuration, and settings reference.
A prebuilt image is hosted on Docker Hub.
The Community Scripts helper installs DUMB and its managed services directly in a Debian LXC without Docker. See the Proxmox deployment guide for the recommended all-in-one topology, native paths, updates, backups, and the additional considerations for Plex or Arr applications in other LXCs.
A prebuilt image is hosted on GitHub Container Registry.
Note
The below "ports" section of the compose should be updated based on the service ports used when needing to be exposed. See the below Default Ports Used section for more details
services:
DUMB:
container_name: DUMB
image: iampuid0/dumb:latest
stop_grace_period: 30s
shm_size: 128mb
stdin_open: true
tty: true
volumes:
- /home/username/docker/DUMB/config:/config
- /home/username/docker/DUMB/log:/log
- /home/username/docker/DUMB/data:/data
- /home/username/docker/DUMB/mnt/debrid:/mnt/debrid
environment:
- TZ=
- PUID=
- PGID=
ports:
- "3005:3005"
devices:
- /dev/fuse:/dev/fuse:rwm
- /dev/dri:/dev/dri
cap_add:
- SYS_ADMIN
security_opt:
- apparmor:unconfinedThe 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 DUMB:
| Variable | Default | Description |
|---|---|---|
PUID |
1000 |
Managed-service user ID; must be greater than 0 |
PGID |
1000 |
Managed-service group ID; must be greater than 0 |
TZ |
(null) |
Your time zone listed as Area/Location |
See the .env.example
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 |
|---|---|---|
5000 |
TCP | CLI Debrid - Web UI accessible at the assigned port |
5001 |
TCP | CLI Battery - The API is accessible at the assigned port |
8000 |
TCP | DUMB API - The API is accessible at the assigned port |
3005 |
TCP | DUMB frontend - Web UI accessible at the assigned port |
8282 |
TCP | Decypharr - Web UI accessible at the assigned port |
8096 |
TCP | Emby Media Server - Web UI accessible at the assigned port (default HTTP) |
8096 |
TCP | Jellyfin Media Server - Web UI accessible at the assigned port (default HTTP) |
8686 |
TCP | Lidarr - Web UI accessible at the assigned port |
8088 |
TCP | AltMount - Web UI/API accessible at the assigned port |
3000 |
TCP | InfiniDysk frontend - Web UI accessible at the assigned port |
3003 |
TCP | Pulsarr - Web UI accessible at the assigned port |
3006 |
TCP | AIOStreams - Web UI/API accessible at the assigned port |
6246 |
TCP | Maintainerr - Web UI accessible at the assigned port |
6767 |
TCP | Bazarr - Web UI accessible at the assigned port |
3004 |
TCP | Traefik Proxy Admin - Web UI/API accessible at the assigned port |
9091 |
TCP | Authelia - Identity portal/API accessible at the assigned port |
18080 |
TCP | Traefik - Reverse proxy entrypoint for embedded UIs and TPA-managed routes |
18081 |
TCP | Traefik - Dashboard/API used by Traefik Proxy Admin diagnostics |
8080 |
TCP | InfiniDysk backend - The API is accessible at the assigned port |
5050 |
TCP | pgAdmin 4 - Web UI accessible at the assigned port |
5055 |
TCP | Seerr - Web UI accessible at the assigned port |
8888 |
TCP | Phalanx DB - The API is accessible at the assigned port |
32400 |
TCP | Plex Media Server - Web UI accessible at the assigned port |
5432 |
TCP | PostgreSQL - The SQL server is accessible at the assigned port |
9696 |
TCP | Prowlarr - Web UI accessible at the assigned port |
9705 |
TCP | NeutArr - Web UI accessible at the assigned port |
7878 |
TCP | Radarr - Web UI accessible at the assigned port |
3000 |
TCP | Riven frontend - Web UI accessible at the assigned port |
8080 |
TCP | Riven backend - The API is accessible at the assigned port |
8989 |
TCP | Sonarr - Web UI accessible at the assigned port |
8181 |
TCP | Tautulli - Web UI accessible at the assigned port |
6868 |
TCP | Profilarr - Web UI accessible at the assigned port |
6969 |
TCP | Whisparr - Web UI 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 - Web UI accessible at the assigned port |
cloudflared does not expose a local web UI port. It opens an outbound Cloudflare Tunnel connection and forwards public hostname traffic to DUMB Traefik.
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 dumb_config.json and rclone.config |
/log |
rw | This is where the application stores its log files |
/data |
rw | This is where all services will store their data |
/mnt/debrid |
rw | This is where the symlinks and rclone mounts will be stored |
See the DUMB roadmap for a list of planned features and enhancements.
DUMB allows for the simultaneous or individual deployment of any of the services
For additional details on deployment, see the DUMB Docs
- For questions related to DUMB, see the GitHub discussions
- or create a new issue if you find a bug or have an idea for an improvement.
- or join the DUMB discord server