
dFlow is a open source alternative to Railway, Heroku & Vercel. With full
control over your infrastructure and data. Host and Scale Apps
, Databases
&
Storage
in your own cloud. Automated deployment workflows, container
orchestration, and infrastructure management tools, all within your private
network.
This guide will walk you through setting up and running your own self-hosted instance of dFlow.
Prefer not to self-host? Try dFlow Cloud for a fully managed experience.
Make sure you have the following:
- Docker installed
- A Tailscale account
- A domain name
- A server (recommended: 2 vCPUs, 8GB RAM)
Run the following command to begin setup. It will guide you through configuring everything needed for your dFlow instance:
# run command as root user
curl -fsSL https://get.dflow.sh | bash
dFlow uses Tailscale for Zero Trust networking — enabling secure SSH and internal communication via your private tailnet.
You'll be prompted to enter:
-
Tailnet name Found in the header after logging into Tailscale, e.g.,
johndoe.github
-
Access Control Update it under Access Control Tab > JSON editor. use this configuration.
-
Auth Key Create one under Settings > Personal > Keys. Enable
Reusable
andEphemeral
. -
OAuth Client Key Go to Settings > Tailnet > OAuth clients. Enable all
read
scopes andwrite
forAuth Keys
, then create the key.
dFlow uses Traefik as a reverse proxy. The email you provide will be used to generate SSL certificates for your domain.
You’ll be asked to:
Enter your email for SSL certificate generation
>
Enable custom domain support for your services:
-
Add a DNS A record:
- Type: A
- Name:
*.up
- Value:
<your-server-ip>
- Proxy: OFF
-
When prompted, enter your domain, e.g.,
up.johndoe.com
dFlow uses Payload CMS under the hood. A JWT secret is required for:
- Authentication
- Encrypting sensitive data like environment variables
⚠️ Use a strong, persistent secret. Do not change this between deployments.
When prompted:
Enter your JWT secret (keep it safe and consistent)
>
Once all configuration steps are complete, the necessary files will be generated. Follow the remaining prompts in your terminal to launch your instance of dFlow.
Thanks to all who have contributed to dFlow!