Deployment
Deployments are automated, traceable, and reversible. GitHub Actions builds immutable Docker images; Coolify promotes the configured image; Cloudflare and AWS provide edge and platform services as documented by each project.
Delivery flow
flowchart LR
A[PR] --> B[Lint, typecheck, tests]
B --> C[Merge to main]
C --> D[Build signed/immutable image]
D --> E[Deploy via Coolify]
E --> F[Smoke test + monitoring]
F --> G[Announce outcome]
Before deployment
- [ ] CI is green and the PR is approved.
- [ ] Database migrations are backward compatible, tested on representative data, and have a rollback plan.
- [ ] Required secrets are present in the deployment environment, never in the repository.
- [ ] Feature flags and configuration changes have an owner and removal date.
- [ ] Dashboards, alerts, and logs can confirm the expected behavior.
After deployment
- [ ] Check health endpoint, key user path, error rate, and logs.
- [ ] Verify map data loads at expected coordinates and zoom ranges.
- [ ] Confirm background jobs, webhooks, and migrations if relevant.
- [ ] Update the PR and issue with verification evidence.
Rollback
- Stop further promotion and tell the project channel what is affected.
- Roll back to the last known-good immutable image or release in Coolify.
- Disable the feature flag or mitigate traffic at Cloudflare if that reduces impact.
- Do not roll back destructive data migrations blindly; use the documented recovery plan.
- Verify recovery, record the incident timeline, and create follow-up issues.
Documentation deployment
This handbook publishes to GitHub Pages on every successful push to main. The workflow uses the repository’s Pages settings and requires no long-lived deployment token.