Skip to content

Deploy with QNAP Container Station#

QNAP Container Station can create a Docker Compose application from YAML. The labels can vary slightly by Container Station/QTS version, but the official flow is Create → Create Application → paste and validate the Compose YAML.

Prerequisites#

  • A QNAP model/architecture supported by the DUMB image (amd64 or arm64)
  • Container Station installed and current
  • Shared folders for persistent DUMB data
  • A QNAP user UID/GID with read/write access to those folders
  • FUSE device/capability support if the selected workflow creates FUSE mounts

See QNAP's Creating an Application instructions for the Compose application workflow.

Prepare the shared folders#

Create a DUMB directory under a persistent share, with these subdirectories:

/share/Container/DUMB/
├── config/
├── data/
├── log/
└── mnt/debrid/

Your QNAP share name can differ. Use its absolute host path in the Compose file and grant the selected PUID:PGID ownership or read/write access.

Create the application#

  1. Download or copy the current DUMB Compose file.
  2. In Container Station, open Create → Create Application.
  3. Name the application dumb and paste the YAML.
  4. Replace /home/username/docker/DUMB with /share/Container/DUMB (or your actual share path).
  5. Set TZ, PUID, and PGID.
  6. Validate the YAML and create the application.

The persistent mounts should be:

volumes:
  - /share/Container/DUMB/config:/config
  - /share/Container/DUMB/log:/log
  - /share/Container/DUMB/data:/data
  - /share/Container/DUMB/mnt/debrid:/mnt/debrid

The maintained Compose file publishes the DUMB frontend on 3005. Open http://<qnap-address>:3005 after the application becomes healthy.

FUSE and external consumers#

The maintained Compose file requests /dev/fuse, SYS_ADMIN, and an unconfined AppArmor profile. Keep those entries for workflows that mount with rclone/FUSE. Availability depends on the QNAP kernel and Container Station version; if the application rejects them, check the QNAP host before removing the settings.

When another container must see a DUMB-created submount, use :rshared on the DUMB /mnt/debrid bind and :rslave on the consumer bind. If Container Station cannot preserve those propagation modes, use an all-in-one DUMB workflow or a workflow based on ordinary files/symlinks instead of assuming external FUSE mounts will propagate.

Update and recover#

  • Pull iampuid0/dumb:latest, then recreate/redeploy the application.
  • Preserve /share/Container/DUMB/config, data, log, and mnt/debrid.
  • Use Container Station logs first; then review Troubleshooting and Service ports.

Do not publish backend port 8000 for normal use. The frontend proxies the API under http://<qnap-address>:3005/api.