MCPcopy Index your code
hub / github.com/dflow-sh/dflow

github.com/dflow-sh/dflow @0.4.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.4.4 ↗ · + Follow
1,915 symbols 5,372 edges 804 files 32 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

dFlow

dFlow Architecture diagram

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.

🚀 Self-Hosting Guide

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.

✅ Prerequisites

Make sure you have the following:

  • Docker installed
  • A Tailscale account
  • A domain name
  • A server (recommended: 2 vCPUs, 8GB RAM)

📥 Installation

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

⛓️ Tailscale Setup

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 and Ephemeral.

  • OAuth Client Key Go to Settings > Tailnet > OAuth clients. Enable all read scopes and write for Auth Keys, then create the key.

✉️ Email Configuration

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
>

🌐 Domain Configuration

Enable custom domain support for your services:

  1. Add a DNS A record:

  2. Type: A

  3. Name: *.up
  4. Value: <your-server-ip>
  5. Proxy: OFF

  6. When prompted, enter your domain, e.g., up.johndoe.com

🔑 JWT Configuration

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.

🤝 Contributors

Thanks to all who have contributed to dFlow!

Extension points exported contracts — how you extend this code

MultiSelectProps (Interface)
* Props for MultiSelect component
src/components/ui/multi-select.tsx
ServerType (Interface)
(no doc)
src/payload-types-overrides.ts
Config (Interface)
(no doc)
src/payload-types.ts
TerminalPreferences (Interface)
(no doc)
src/providers/TerminalProvider.tsx
UserEmailTemplateProps (Interface)
(no doc)
src/emails/reset-password/index.tsx
LogEntry (Interface)
(no doc)
src/stores/useTerminalStore.ts
CreateVpsQueueArgs (Interface)
(no doc)
src/queues/dFlow/addCreateVpsQueue.ts
FilterOption (Interface)
(no doc)
src/lib/filter.utils.ts

Core symbols most depended-on inside this repo

sendEvent
called by 362
src/lib/sendEvent.ts
cn
called by 251
src/lib/utils.ts
update
called by 115
src/lib/beszel/client/BeszelClient.ts
create
called by 56
src/lib/beszel/client/BeszelClient.ts
dynamicSSH
called by 53
src/lib/ssh.ts
netdataAPI
called by 51
src/lib/netdata/netdataAPI.ts
extractSSHDetails
called by 50
src/lib/ssh.ts
sendActionEvent
called by 49
src/lib/sendEvent.ts

Shape

Function 1,483
Interface 324
Method 89
Class 16
Enum 3

Languages

TypeScript100%

Modules by API surface

src/payload-types.ts55 symbols
src/lib/beszel/client/BeszelClient.ts50 symbols
src/components/icons.tsx31 symbols
src/lib/filter.utils.ts28 symbols
src/components/servers/ServerForm.tsx27 symbols
src/components/ui/sidebar.tsx25 symbols
src/lib/beszel/client/typedHelpers.ts24 symbols
src/lib/netdata/types.ts17 symbols
src/components/bubble/TerminalPanel.tsx17 symbols
src/components/service/ScalingTab.tsx16 symbols
src/components/ui/multiselect.tsx15 symbols
src/components/ui/dropdown-menu.tsx15 symbols

Datastores touched

(mongodb)Database · 1 repos
(mysql)Database · 1 repos

For agents

$ claude mcp add dflow \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact