All notable changes to Zook are documented here. Format follows Keep a Changelog; this project adheres to Semantic Versioning.
Unreleased
Added
zook servedaemon: HTTP API withPOST /deploy/POST /rollback(async jobs, bearer-token auth, fail-closed when unset),GET /stacks,GET /stacks/{name},GET /jobs/{id}, andGET /healthz.- GitHub webhook receiver (
POST /hooks/github) with HMAC-SHA256 signature verification; push events auto-deploy stacks configured viadeploy_on.github(branch:exact match ortag:glob) inzook.yaml. - Per-stack deploy serialization in the daemon (one in-flight deploy per
stack,
409on conflict).
0.1.0 - 2026-09-03
Added
- CLI:
deploy,rollback,status,releases,list,logs,version. - Docker Compose runtime with health-gated deploys (
up -d --wait). - Preflight that refuses to deploy stacks whose active services lack a healthcheck.
- Automatic, health-gated rollback on failed deploys; halts for manual intervention when a rollback also fails.
- Per-stack release state (
.zook/state.json) and per-deploy logs. - Native/systemd runtime: deploy prebuilt binaries via release directories, a
currentsymlink, andsystemctl restart, with zook-managed health polling. zook.yamlper-stack config: selects the runtime (dockerdefault, ornative) and sets overrides (health_timeout,rollback_on_fail).- HTTP/command health prober used by the native runtime.
- HTTP artifact fetcher (
.tar.gzor single binary) for native releases. RUNTIMEcolumn inzook listandzook status.- Static site generator (
site/gen,make site) that renders the handbook. - Homebrew distribution via GoReleaser: darwin/linux x amd64/arm64 archives,
a GitHub release, and a cask pushed to
oti-adjei/homebrew-tap. - CI workflow running gofmt,
go vet,go test, and a build on push and PR.
Fixed
- Stack discovery follows symlinked stack directories, so a stack linked into
the stacks root from an application repo appears in
zook listandzook status, not justzook deploy.
Licensing
- Released under the PolyForm Noncommercial License 1.0.0.