dflow

Your cloud. PaaS speed.

Ship like a PaaS.Keep the bill on your cloud.

dFlow is for three teams: startups sitting on credits with no DevOps hire, enterprises juggling vendors with different processes, and CTOs who can ship features but still pay more than $200 a month just to keep a site online.

Stack

Designed for the stack you already run

Railpack reads the repo. Dockerfile if you bring one. Static if it is a folder.

detecting

Next.js

runtime

runtimes

data

Your bill

compute
your cloud account
databases
same node
markup on compute
none

Who this is for

If one of these is you, the rest of the market is noise.

01

Startup

Are you a startup that has credits and no DevOps team?

AWS, GCP, or Azure credits are sitting unused. You do not have a platform engineer, and you should not hire one to ship v1. Connect the cloud you already have, push the repo, and go live on those credits — PaaS speed, no PaaS landlord.

  • Burn the credits you already negotiated, not a second compute bill
  • Git push to a live URL with nobody named DevOps in the room
  • Add managed workers later without rewriting how you deploy
Start on your credits

02

Enterprise

Are you an enterprise with multiple vendors working with you, each with different processes?

Agencies, contractors, and internal teams each bring their own deploy ritual. That is how you get five ways to ship, five ways to break, and no single owner. dFlow is one control plane on infrastructure you control — SSO, roles, and a process every vendor actually shares.

  • One deploy path for internal teams and outside vendors
  • Workloads stay on your servers, not a shared PaaS pool
  • SSO, custom roles, and a guided rollout when you are ready
Talk to sales

03

Team lead / CTO

Are you a team lead or CTO who can increase developer velocity — but still pays more than $200 just to keep the site live?

Your team can ship features. Infrastructure has not caught up. If Railway, Render, or Heroku is charging more than $200 a month just to stay online, you are renting keep-alive on a box you could already own. dFlow keeps the git-push workflow and puts that invoice back on your cloud.

  • Stop paying PaaS markup for a site that just needs to stay up
  • Same git-push flow your developers already expect
  • Databases, logs, and domains beside the app — on your nodes
Cut the keep-alive bill

How it works

Three steps. No platform tax.

Connect a server you already pay for, push code, get a URL. The invoice stays on your cloud account.

  1. 01 · connect

    Connect a server

    Any VPS, AWS instance, or on-prem machine. dFlow installs a scoped agent. Credentials stay yours.

    agent scoped · credentials stay yours

  2. 02 · build

    Push your code

    Git push, or prompt Cursor via MCP. We detect the stack, build on your node, and return a preview URL.

    stack detected · preview URL ready

  3. 03 · live

    Stay live on your bill

    Zero-downtime deploys, databases beside the app, custom domains. You are not paying a second landlord to keep the site up.

    invoice · your cloud account

Application

Create an application. Pick an environment.

That is where the wizard starts. An application holds environments. An environment is bound to compute. Services — apps, databases, images — live under it, on machines that stay yours.

You push

Git push

GitHub · GitLab · Bitbucket

Docker image

Any registry

Archive upload

zip · tar · tar.gz

AI editor

MCP over OAuth

dFlow control plane
active
  1. 01Detect stack and builder
  2. 02Inject encrypted variables
  3. 03Build image, tag a version
  4. 04Stream to node over SSH
  5. 05Swap traffic, keep the old release warm

no agent daemon left behind · credentials stay in your account

It runs here

Any VPS

Hetzner · Contabo · bare metal

Your cloud account

AWS · Azure · DO

On-prem box

SSH or Tailscale

Object model
  • Workspaceorganisation, roles, SSO
  • Applicationthe product you name
  • Environmentproduction · staging · development · custom
  • Service · appgit, image, archive
  • Service · databasesix engines
  • Service · dockerany image

Worker nodes

Your machines, fully instrumented.

Attach a server over SSH or Tailscale. dFlow installs the runtime, watches the metrics, and keeps versions pinned.

node-fra-01
healthy
Hetzner
SSH
CPU34%
Memory58%
Disk47%

12 services · region fra

node-iad-02
healthy
AWS EC2
SSH
CPU55%
Memory45%
Disk29%

8 services · region iad

node-lab-03
healthy
On-prem
Tailscale
CPU17%
Memory35%
Disk71%

5 services · region lan

installed runtime · version pinned
DokkuDockerRailpackBuildKitResticTailscaleNetdataBeszel

Guided onboarding

Preparation, Dokku install, default domain, monitoring, build tools, backup tools.

Monitoring built in

Beszel by default, Netdata when you want deeper metrics.

Plugin management

Postgres, MySQL, Mongo, MariaDB, Redis, ClickHouse, RabbitMQ, Let’s Encrypt.

Deploy concurrency

Cap parallel builds per node so a release never starves the box.

Bring a node fromAWSDigitalOceanAzureGCPdFlow CloudAnything else

Ship anything

Bring a repo, an image, or a folder.

dFlow reads the project and picks the builder. Override any of it when you need to.

Builders

BuildPacks· RecommendedRailpack· Fast detectDockerfile· Full controlStatic· Ship a folder
new service · git
storefront / production

GitHub and GitLab connect as full integrations, so Auto Deploy ships every push. Turn on Require Approval Before Deploy when a human should sign off first.

sourceacme/storefront
branchmain
builderrailpack
auto_deployenabled
GitHubGitLabBitbucketAzure DevOpsGitea

Data layer

Six engines, provisioned beside the app.

Databases run on the same worker node as the service that needs them, on a private network, wired in by reference.

service · database · postgres
running

Image version

or any tag on Docker Hub
hostorders-db.internal
port5432
connectionpostgres://acme:••••••@orders-db:5432
env keyPOSTGRES_URI

Any service in the environment can reference this key instead of copying the credentials.

Backup schedule
restic · encrypted
  • Hourlykeeps 24
  • Dailykeeps 7
  • Weeklykeeps 4
  • Monthlykeeps 3

Keep backups on the node, or push them to object storage you own. ClickHouse backups are not available yet.

AWS S3Cloudflare R2Backblaze B2WasabiMinIOAny S3-compatible

Deploy pipeline

Push. Watch the whole thing.

Builds run on your worker node, on your bill. Every line is streamed back while it happens.

deployment · storefront-api
queued

    Triggered by

    4f1c9ae

    checkout: retry failed payment intents

    priya pushed to main

    You stay in control

    • Redeploy any past deployment
    • Approve gated deploys
    • Cancel a running build
    • Discard from the queue
    Statespending_approvalqueuedbuildingsuccessfailedcanceleddiscarded

    Variables

    Config that wires itself.

    Static values, references to other services, and generated secrets. Written as templates, resolved on the node at release time.

    service · storefront-api · variables
    encrypted
    • NODE_ENVstatic

      production

      production

    • DATABASE_URIreference

      {{ orders-db.POSTGRES_URI }}

      postgres://acme:••••••@orders-db:5432

    • APP_URLreference

      {{ storefront-api.DFLOW_PUBLIC_DOMAIN }}

      https://api.acme.com

    • JWT_SECRETgenerated

      {{ secret(64, "aA1!") }}

      •••••••••••••••••••••

    • DFLOW_USER_IDstatic

      1000

      1000

    Encrypted at rest

    Values are encrypted in the database and never live in your repo.

    Redacted for agents

    An MCP client reads the key. It does not read the resolved secret.

    Generated once

    A secret() value is kept across later edits while its template is unchanged.

    Applied on release

    Changing a variable prompts a redeploy or a restart to take effect.

    Domains and SSL

    A domain, a certificate, no ticket.

    Point DNS at your node. dFlow validates the record, issues the certificate, and keeps it renewed.

    domain · api.acme.com
    provisioning
    1. 01

      Add the domain

      api.acme.com attached to storefront-api

    2. 02

      DNS checked

      CNAME resolves to node-fra-01

    3. 03

      Let's Encrypt issued

      Auto-regenerate enabled

    4. 04

      Serving traffic

      Nginx routing, zero-downtime swaps

    tls certificate

    Awaiting issuance

    renews without a reminder

    subjectapi.acme.com
    issuerLet's Encrypt
    protocolTLS 1.3
    renewalAutomatic

    Free default domain

    service.node.up.dflow.sh

    Wildcard dev domains

    nip.io · sslip.io

    Proxy

    Per-app Nginx config

    Domains per service

    Unlimited, one default

    Scale

    Scale by preset, or by the core.

    Presets cover most services. When one needs more, set CPU, memory, and replicas per process type.

    service · scaling · web
    applies on next release

    CPU limit

    0.5cores

    Memory limit

    1,024MB

    Replicas

    2 of 5 running

    CPU0.5 – 2 cores
    Memory512 – 4096 MB
    Replicas1 – 5 per process
    web

    HTTP traffic

    worker

    Background jobs

    scheduler

    Timed work

    Limits and reserves are set per process type, then applied on the next release.

    Templates

    Stand up a stack in one move.

    A template describes services, builders, variables, and wiring. Deploy it into any environment, or compose your own and publish it.

    Official templates
    Maintained by dFlow

    Deploy flow

    1. 01Pick a template
    2. 02Choose application and environment
    3. 03Services are created and wired
    4. 04Deployed in order, automatically

    Compose your own template from services you already run, keep it private to the workspace, or publish it to the community.

    Operating layer

    Your cloud. Your stack. Your editor.

    dFlow sits on the worker you already pay for. Drive it from the dashboard, git, or MCP in the editor you already use.

    Your cloud
    • AWS
    • GCP
    • Azure
    • Hetzner
    • DigitalOcean

    + bare metal · VPS · on-prem

    dflow
    hub
    dflow

    control plane

    1. 01Dashboardthe same UI
    2. 02Gitpush to your node
    3. 03EditorMCP over OAuth

    on the worker you already pay for

    Your stack
    • Postgres
    • MySQL
    • n8n
    • WordPress
    • Redis

    + any Docker image · templates

    Your editor
    • Antigravity
    • Cursor
    • Claude Code
    • Codex
    • GitHub Copilot

    From the editor

    Prompt it. Land on your node.

    Ask Cursor, Claude, or Copilot to deploy. The agent calls the same tools you would click in the dashboard — on the server you already pay for.

    ide · dflow mcp
    connected
    layout.tsx
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    import type { Metadata } from 'next'
    import { Geist, Geist_Mono } from 'next/font/google'
    import { ThemeProvider } from '@/providers/theme'
    import { QueryProvider } from '@/providers/query'
    import { Toaster } from '@/components/ui/sonner'
    import './globals.css'
    const geist = Geist({ subsets: ['latin'] })
    const mono = Geist_Mono({ subsets: ['latin'] })
    export const metadata: Metadata = {
    title: 'dFlow',
    description: 'Ship from your IDE.',
    }
    export default function RootLayout({ children }) {
    return (
    <html lang='en'>
    <body>
    <ThemeProvider>{children}</ThemeProvider>
    </body>
    </html>
    )
    }

    deploy my ecommerce site on AWS EC2 using dflow MCPdflow MCP

    AI workflow

    Your editor can drive it.

    dFlow ships an MCP server behind OAuth. Cursor, Claude, or any MCP client gets the same scoped tools your team has — nothing more.

    dflow mcp server · oauth
    connected
    exposed tool groups

    Applications

    6 tools

    Environments

    5 tools

    Services

    24 tools

    Deployments

    6 tools

    Git providers

    6 tools

    Templates

    5 tools

    Docker registries

    3 tools

    Worker nodes

    2 tools

    Guardrails

    • OAuth consent per client, revocable
    • Secrets are redacted on read
    • Agents inherit your roles, not admin

    Teams and vendors

    One process, however many agencies.

    Custom roles start read-only. Grant create, update, and delete exactly where a contractor needs it, and take it back when the engagement ends.

    role · agency-contractor
    scoped to 1 application
    ResourceCreateReadUpdateDelete
    Applications
    Services
    Deployments
    Worker nodes
    Backups
    Roles

    Example: an agency role scoped to one application.

    Enterprise SSO

    OIDC and SAML — Entra, Okta, Auth0, Google Workspace, Keycloak.

    Invitations

    Invite by email with pending, accepted, revoked, and expired states.

    Gated deploys

    Require approval before a vendor push reaches production.

    Encrypted variables

    Values are encrypted at rest and redacted from agent reads.

    The whole surface

    Everything that ships in the box.

    No add-on tier for the basics. This is what a workspace can do on day one.

    58

    included

    Deploy

    Run

    Data

    Infrastructure

    Edge

    Team

    Deploy10

    • Git deploys from GitHub, GitLab, Bitbucket, Azure DevOps, Gitea
    • Auto Deploy on push for GitHub and GitLab
    • Require approval before deploy
    • BuildPacks, Railpack, Dockerfile, and Static builders
    • Custom build, install, and start commands
    • Docker image services from any registry
    • Archive upload deploys — zip, tar, tar.gz
    • Redeploy any previous deployment
    • Cancel, discard, and approve from the queue
    • Commit metadata on every deployment

    Run10

    • Zero-downtime releases
    • Scaling presets and per-process limits
    • CPU and memory limits plus reserves
    • Replicas per process type
    • Persistent volumes mounted into services
    • Encrypted environment variables
    • Cross-service reference variables
    • Live runtime log streaming
    • Full build and deploy logs retained
    • Deploy concurrency caps per node

    Data10

    • Postgres, MongoDB, Redis, MySQL, MariaDB, ClickHouse
    • Pinned image versions, or your own tag
    • Hourly, daily, weekly, and monthly backups
    • Retention of 24, 7, 4, and 3 by tier
    • Manual backups on demand
    • Backups to S3, R2, B2, Wasabi, MinIO
    • Restore and download from the dashboard
    • Private networking between services
    • Exposed ports when you need them
    • Connection strings generated on deploy

    Infrastructure10

    • Attach any VPS, cloud instance, or on-prem box
    • SSH or Tailscale connectivity
    • Guided worker node onboarding
    • Pinned runtime package versions
    • Beszel monitoring by default
    • Optional Netdata install
    • Live CPU, memory, and disk telemetry
    • Dokku plugin management
    • SSH key management
    • Cloud security groups

    Edge8

    • Unlimited custom domains per service
    • Let's Encrypt certificates
    • Automatic certificate regeneration
    • DNS record validation
    • Free default domain on up.dflow.sh
    • Wildcard dev domains via nip.io and sslip.io
    • Per-app Nginx proxy configuration
    • Default domain selection

    Team10

    • Multiple workspaces per account
    • Custom roles with per-resource permissions
    • Read-only by default, writes granted per resource
    • Email invitations with expiry
    • Enterprise SSO — OIDC and SAML
    • GitHub, Google, magic link, and password sign-in
    • MCP access over OAuth consent
    • In-app notification inbox
    • Notification preferences per category
    • Self-host license management

    ready

    If that is you, connect a node.

    startupenterprisecto

    Same product. Your infrastructure.