GitHub - DaoFlow-dev/DaoFlow: Instead of AWS wrapper, we're building bare metal / VM wrappers for you. Open source alternative to AWS/Vercel/Heroku. Hosting your flow, from Vibe Coding to IPO.

4 min read Original article ↗

Goal: DaoFlow aims to make self-hosted Docker Compose deployments dependable enough for a small team to operate without a dedicated platform team.

DaoFlow is an open-source Agentic DevOps project for AI agents and humans. It is being built to deploy, inspect, diagnose, and recover Docker Compose applications on operator-owned VPS and bare-metal servers.

Verified in this repository: The CLI publishes structured JSON contracts, scoped permission metadata, and dry-run behavior in the generated CLI contract.

Verified in this repository: The API separates read, planning, and command procedures under the documented command audit contract.

Current limitation: Compose deployment records and recovery behavior are not yet independently verified across a real remote deployment, failure, and rollback lifecycle.

Current limitation: Agent permissions and destructive-action controls are under active verification and are not yet an unconditional production-safety guarantee.

Current limitation: DaoFlow has not yet proved that every command-lane mutation creates a complete immutable audit record.

Current limitation: Backup and restore workflows have not yet been proven through a current real-infrastructure round trip with verified data integrity.

Current public readiness evidence and the active dependencies behind these limitations are tracked in PRODUCTION_READINESS.md.

Quick Start

Production Install

curl -fsSL https://raw.githubusercontent.com/DaoFlow-dev/DaoFlow/main/scripts/install.sh | sh

This downloads the daoflow CLI, checks Docker, and runs the interactive installer — creates /opt/daoflow/ with .env, docker-compose.yml, and starts the configured services.

Re-running the script refreshes the local daoflow binary before starting the installer.

Non-interactive (CI / agent-friendly):

curl -fsSL https://raw.githubusercontent.com/DaoFlow-dev/DaoFlow/main/scripts/install.sh | sh -s -- \
  --domain deploy.example.com \
  --email admin@example.com \
  --password 'YourSecurePassword123' \
  --yes

Optional dashboard exposure during install:

# Tailnet-only HTTPS URL
curl -fsSL https://raw.githubusercontent.com/DaoFlow-dev/DaoFlow/main/scripts/install.sh | sh -s -- \
  --email admin@example.com \
  --password 'YourSecurePassword123' \
  --expose tailscale-serve \
  --yes

# Public HTTPS URL via Tailscale Funnel
curl -fsSL https://raw.githubusercontent.com/DaoFlow-dev/DaoFlow/main/scripts/install.sh | sh -s -- \
  --email admin@example.com \
  --password 'YourSecurePassword123' \
  --expose tailscale-funnel \
  --yes

# Public ephemeral URL via Cloudflare Quick Tunnel
curl -fsSL https://raw.githubusercontent.com/DaoFlow-dev/DaoFlow/main/scripts/install.sh | sh -s -- \
  --email admin@example.com \
  --password 'YourSecurePassword123' \
  --expose cloudflare-quick \
  --yes

CLI-Only Install

# macOS (Apple Silicon)
curl -fsSL -o /usr/local/bin/daoflow \
  https://github.com/DaoFlow-dev/DaoFlow/releases/latest/download/daoflow-darwin-arm64
chmod +x /usr/local/bin/daoflow

# Linux (x64)
curl -fsSL -o /usr/local/bin/daoflow \
  https://github.com/DaoFlow-dev/DaoFlow/releases/latest/download/daoflow-linux-x64
chmod +x /usr/local/bin/daoflow

Verify:

daoflow --cli-version
daoflow whoami --json

Current Stack

Component Technology
Runtime Bun
API Layer Hono + tRPC
Auth Better Auth
ORM Drizzle ORM
Database PostgreSQL 17
Cache/Queue Redis 7
Web UI React + Vite + shadcn/ui
TypeScript TypeScript 7 native
Testing Vitest + Playwright
Packaging Docker multi-stage build
CI GitHub Actions

Development

Requirements: Bun 1.3.14 via the repo packageManager pin, Docker with Compose v2.

Type checks run on the Go-based TypeScript 7.0.2 compiler. The root install also keeps TypeScript 6 for ESLint's compiler API and editor language services until those tools support the native TypeScript 7 implementation.

git clone https://github.com/DaoFlow-dev/DaoFlow.git
cd DaoFlow
bun install
docker compose -f docker-compose.dev.yml up -d
cp .env.example .env
bun run db:migrate
bun run dev
  • API server: http://localhost:3000
  • Vite web UI: http://localhost:5173

Auth notes:

  • BETTER_AUTH_SECRET is optional locally, required in production
  • BETTER_AUTH_URL must match the externally reachable origin in production
  • First account created becomes owner; subsequent sign-ups default to viewer

Quality Gates

bun lint                      # ESLint
bun typecheck                 # TypeScript
bun test:unit                 # Unit tests
bun test:e2e                  # Playwright
bun verify                    # All of the above

bun run test:e2e reuses docker-compose.dev.yml for Postgres, Redis, and Temporal, then runs the E2E-specific DB reset/seed setup scripts before Playwright starts the app on the host.

Production Build

bun run build                 # Build client + server
bun start                     # Start production server

Docker:

docker build --target runtime -t ghcr.io/daoflow-dev/daoflow:local .

The Dockerfile's final target is the development-task runner, so application builds must select the runtime target explicitly. Set DAOFLOW_VERSION=local in the production Compose .env, then run the stack so PostgreSQL, Redis, health checks, persistent volumes, and required secrets are configured together. See the local-source staging workflow.

Documentation

Full docs at daoflow-dev.github.io/DaoFlow.

Topic Description
Getting Started Install, configure, deploy your first app
Vision & Principles Why DaoFlow — open-source philosophy
CLI Reference Commands, flags, and exit codes
Comparisons vs Vercel, Coolify, Dokploy, AWS, Kamal
Agent Integration Using DaoFlow with AI coding agents
Security & RBAC Roles, scopes, tokens, audit

Product Direction

The product charter for contributors and coding agents lives in AGENTS.md.

License

Verified in this repository: DaoFlow is published under the Apache License 2.0, and the repository source is available for inspection.