Docker Deployment
Ticku ships as a multi-stage Docker build with a Docker Compose stack. One stack serves the whole platform — all tenants share this single app + database deployment (see Deployment Architecture).
The Stack
| Service | Image | Purpose |
|---|---|---|
app | Ticku (multi-stage, node:22-alpine → standalone runtime) | The Next.js application |
db | postgres:16-alpine | Database (skip if using managed Postgres) |
Build & Run
# from the project root, with .env.production filled in
docker compose --env-file .env.production up -d --build
Health Check
The app exposes GET /api/health; the container HEALTHCHECK uses it. Verify:
curl https://<your-domain>/api/health
docker compose ps # app should report "healthy"
Updating to a New Release
git pull # or pull the new image
docker compose up -d --build # rebuild and restart
npm run db:migrate # apply any new migrations
Check the Release Notes for release-specific migration steps before updating.
Logs
docker compose logs -f app