This reference documents all ports used by DUMB services. Use this guide to configure firewall rules, reverse proxies, and understand network requirements.
Service UI access
Most service UIs require the port to be exposed in your compose file before you
can access them directly. The exceptions are when you route traffic through a
reverse proxy or use DUMB’s embedded UIs via Traefik.
Zurg (typical second instance; dynamically reassigned on conflict)
API
9696
Prowlarr
Web UI
9705
NeutArr
Web UI
18080
Traefik
Proxy
18081
Traefik Dashboard/API
Web UI/API
32400
Plex Media Server
Web UI
Dynamic port reassignment
On startup, DUMB checks enabled-service ports for conflicts and availability.
If a port is already in use, DUMB automatically shifts that service to the next free port and saves the updated value to dumb_config.json.
This applies to single-port services and InfiniDysk's frontend_port/backend_port.
The backend API that powers service management, configuration, and monitoring. It listens on 127.0.0.1 inside the container and is not host-published by the maintained Compose file.
http://localhost:8000/process/processes # backend-native, from inside the container
http://localhost:3005/api/process/processes # normal frontend proxy
The same listener exposes backend REST routes under /api/* and WebSocket
routes under /ws/*. REST requests have /api removed before they are sent to
the loopback-only backend on port 8000.
The default InfiniDysk ports (3000 and 8080) overlap with Riven defaults.
DUMB's startup port allocator normally moves a conflicting enabled service to the next free port and persists the result. Use the runtime configuration/UI—not this default table—as the authority for a running stack.
The Arr applications support multiple instances for different workflows (for example Decypharr, InfiniDysk, or AltMount). The first instance starts from the application's base default; additional/conflicting instances are assigned the next free port and saved to /config/dumb_config.json.
Remote Stremio clients require the AIOStreams base_url to use a stable trusted HTTPS origin. Do not use DUMB's embedded /ui/aiostreams route as that public base URL. See the AIOStreams deployment guide.
Cloudflared does not expose a local web UI port. It opens an outbound tunnel connection to Cloudflare and forwards public hostname traffic to DUMB Traefik.
The backend port 8000 is loopback-only and unpublished by default. Expose it only when a direct API consumer requires it, after changing dumb.api_service.host to 0.0.0.0, enabling authentication, and restricting network access.
Use Traefik for consolidated access
Instead of exposing all service ports, enable embedded UIs and access services through Traefik on port 18080. See Embedded UIs.