Self-hosting overview

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

Written By Zoro

Last updated 3 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

AreaOperators (platform / infra)Application teams (inside dFlow)
Control planeInstall and run Compose (or equivalent), TLS, backups of MongoDB / volumes, upgrades, secrets for email and integrationsUse the dashboard; no host access required
NetworkingTraefik (or your edge), DNS, Tailscale keys for the app container, firewall rulesConfigure Services, custom domains for apps (see Domains and SSL under Deployments and Operations in the sidebar)
Data planeOptionally the same team operates Worker Nodes; sizing, SSH, Dokku, diskCreate Applications, Environments, Services, env vars, deploys
ComplianceProve residency, retention, and access controls for the stack you runFollow 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:

ComponentRole
TraefikReverse proxy, HTTP(S), TLS
Config generatorDynamic proxy configuration
Beszel + agentHost monitoring (as wired in Compose)
RedisCache and job-related usage
MongoDBApplication 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