Dockflow deploys your Docker Compose applications, as written, to your own server: zero downtime, a plan before every change, a rollback that always finishes. From your laptop or your CI.
Documentation: dockflow.shawiizz.dev.
Milestones M1 (walking skeleton) and M2 (shipping real apps) are implemented: a Compose app deploys to one server with zero downtime, a plan, releases and rollbacks; its images are built (buildx bake, Podman, or on the server) and sent through an SSH tunnel to a registry on the server; jobs, health checks, hooks, templates, uploads and the day-2 commands work, from a laptop or any CI. Not for general production use yet: secrets files, server provisioning and backups come in the next milestones (roadmap).
You need a Linux server with Docker 27 or later, reachable over SSH by a user that may use Docker, with ports 80 and 443 free (or another web server in front: see the external edge in the configuration).
curl -fsSL https://raw.githubusercontent.com/Shawiizz/dockflow/main/install.sh | sh # from a release
make build # or from source: ./dockflowdockflow.yml, next to your compose.yml:
version: 1
app: shop
environments:
production:
server:
host: 203.0.113.10
user: deploy
host_key: SHA256:… # ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub, on the serverRoute a service through the switch in compose.yml:
services:
web:
image: ghcr.io/acme/web:1.4
deploy:
replicas: 2
x-dockflow:
routes:
- domains: [shop.example.com]
port: 3000Then:
dockflow server init production # installs the switch (Caddy) on the server
dockflow plan production
dockflow deploy production
dockflow status production
dockflow releases production
dockflow rollback productionThe SSH key comes from DOCKFLOW_SSH_KEY, ssh-agent or ~/.ssh. In CI, a single PRODUCTION_CONNECTION secret replaces the server block.
Start with:
- Vision: what Dockflow is, who it is for, what it will not do
- Architecture decisions: one record per decision
- Specifications: configuration, server state, events, CLI
- Roadmap: milestones and their exit criteria
- Parity with 1.x: every 1.x feature and its v2 equivalent
MIT