Self-hosting overview

Why self-host the dFlow control plane, core Compose components, and links to install guides.

Written By Zoro

Last updated 25 days ago

Self-hosting

Self-hosting means you run the dFlow control plane (dashboard, API, and related services) on your infrastructure, typically with Docker Compose as in the repository root docker-compose.yml. You still use Worker Nodes for application Services; those can be the same cluster or separate machines.

Operator responsibilities vs application team

Area

Operators (platform / infra)

Application teams (inside dFlow)

Control plane

Install and run Compose (or equivalent), TLS, backups of MongoDB / volumes, upgrades, secrets for email and integrations

Use the dashboard; no host access required

Networking

Traefik (or your edge), DNS, Tailscale keys for the app container, firewall rules

Configure Services, custom domains for apps (see Domains and SSL under Deployments and Operations in the sidebar)

Data plane

Optionally the same team operates Worker Nodes; sizing, SSH, Dokku, disk

Create Applications, Environments, Services, env vars, deploys

Compliance

Prove residency, retention, and access controls for the stack you run

Follow org policies for app data and secrets in the product

If your org splits roles, hand this section to whoever owns the Linux hosts and Compose files. Everyone else should start with How dFlow is structured under Core Concepts in the sidebar and Quick start for Self-Hosted dFlow under Getting Started in the sidebar.

Why self-host

  • Data and control-plane residency; keep metadata and UI inside your network when policy requires it.

  • Custom networking; integrate Tailscale, private DNS, and internal-only endpoints; Tailscale and networking.

  • Avoid cloud control-plane fees; trade vendor hosting for your own ops effort.

  • Flexibility; deploy on your chosen Linux host or VM provider.

Core components (reference stack)

The published docker-compose.yml commonly includes:

Component

Role

Traefik

Reverse proxy, HTTP(S), TLS

Config generator

Dynamic proxy configuration

Beszel + agent

Host monitoring (as wired in Compose)

Redis

Cache and job-related usage

MongoDB

Application database

dFlow app (payload-app)

Next.js / Payload control plane

Exact services and image tags can change by release; always prefer your checked-in file.

Requirements snapshot

  • Docker 20.10+ and Compose v2+ on a Linux host

  • Ports 80 and 443 open for HTTP(S) when serving the UI and proxy

  • Environment variables for MongoDB, Redis, Tailscale (if used), email, and public URLs; see DOCKER.md and Environment configuration

For sizing, read System requirements.

Next steps

  1. Installation options

  2. Install with Docker / Docker Compose

  3. Quick start for Self-Hosted dFlow (first Organisation, Worker Node, Application)

  4. How dFlow is structured and Platform architecture

Related