dflow

Ship without a DevOps hire

Deploy anything.Run it anywhere.

Push a repo. dFlow builds it, wires up the database, issues the certificate, and keeps it running.

repo scan
detecting

Stack

Designed for the stack you already run

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

Next.js

runtime · Railpack

runtimes

data

Compute

dflow compute
provisioned for you
your cloud
aws · azure · gcp · any vps
same deploy flow
whichever you pick

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

How it works

Three steps. No DevOps hire.

Pick where it runs, push your code, get a URL with a certificate already on it.

  1. 01

    compute

    Pick your compute

    Buy a worker node from dFlow, provision one in your own cloud account, or attach a machine you already run. dFlow installs the runtime for you.

    node ready · setup automated

  2. 02

    build

    Push your code

    Git push, or prompt Cursor via MCP. dFlow detects the stack, builds it on your node, and returns a preview URL.

    stack detected · preview URL ready

  3. 03

    live

    Go live and stay live

    Zero-downtime releases, databases beside the app, custom domains with automatic SSL, logs and backups in the same place.

    https live · zero downtime

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 the worker node behind the environment. 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 node behind your environment. Drive it from the dashboard, git, or MCP in the editor you already use.

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

    + dFlow compute · VPS · on-prem

    dflow
    hub
    dflow

    control plane

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

    on the node bound to the environment

    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 node bound to that environment.

    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.

    57

    included

    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

    Team9

    • 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

    ready

    Free plan, no card. Deploy today.

    startupenterprisecto

    Our compute or yours. Same platform either way.