daoflow templates
daoflow templates is the curated app-template catalog for operators and agents who want a normal DaoFlow Compose plan without hand-writing the initial compose file.
The catalog is shipped with the CLI and dashboard. Today it includes representative:
- databases: PostgreSQL
- cache and queue services: Redis, RabbitMQ
- applications: n8n, Uptime Kuma
Each template carries structured metadata for:
- parameterized fields
- secret inputs
- domain inputs
- named volumes
- health-check expectations
- source, pinned version, and last review date
- freshness status and review change notes
Key Principle
Templates do not introduce a second deployment system.
plan renders a template into a standard direct Compose deployment plan, and apply queues the same /api/v1/deploy/compose workflow DaoFlow already uses for direct stack deploys.
List Templates
daoflow templates list
daoflow templates list --json
This is a local catalog read and does not require API access.
Inspect A Template
daoflow templates show postgres
daoflow templates show n8n --json
show returns the template metadata: services, required fields, volumes, and health checks.
It also includes:
- the source used to review the starter
- the pinned version or upstream tag reflected in the starter
- freshness status based on the last review window
- the latest template review notes
Preview A Template Deployment
daoflow templates plan postgres \
--server srv_db_1 \
--project-name analytics-db \
--set postgres_db=analytics \
--set postgres_user=analytics \
--set postgres_password=replace-me
This uses the normal planning lane and requires deploy:read.
You receive a regular Compose deployment plan, including:
- whether DaoFlow will create or reuse the project, environment, and service scope
- the target server and rollout mode
- pre-flight checks
- the final execute command
Apply A Template
daoflow templates apply n8n \
--server srv_apps_1 \
--project-name team-automation \
--set n8n_domain=n8n.example.com \
--set n8n_encryption_key=replace-me \
--yes
This queues a normal direct Compose deployment and requires deploy:start.
apply keeps the usual DaoFlow write guardrails:
--yesis required--idempotency-keyis forwarded on the write request--jsonreturns a structured success envelope with the deployment ID
Input Rules
- Template overrides use repeated
--set key=value - Unknown keys fail fast
- Required fields must be present
- Port fields must be valid TCP ports
- Domain fields must be bare
hostorhost:portvalues
Secret fields are masked in CLI output, but the real values are rendered into the queued compose payload.
Catalog Freshness
DaoFlow keeps the built-in catalog in source control and does not fetch remote template content at runtime.
Maintainers can review and refresh the starter catalog with:
bun run templates:report
bun run templates:check
templates:report prints the current source, version, last review date, and freshness state for every starter. templates:check fails on malformed or incomplete metadata and warns when a starter is overdue for review.