Deploy to Coolify with Nixpacks. See docs/coolify.md for the full step-by-step guide.
| Build command | npm run build |
| Start command | npm run start |
| Port | 3000 |
| Build pack | Nixpacks (auto-detected) |
| Protocol | HTTP (not HTTPS — SSL terminates at the proxy) |
| Port | 3000 |
| Path | /api/health |
| Expected status | 200 |
| Interval | 30s (recommended) |
Example response: {"status":"ok","db":"up","version":"1.0.0"}
| Module | Required vars |
|---|---|
| Always | APP_VERSION (optional, defaults to package.json version) |
| Database | DATABASE_URL=file:./data/app.db |
| Auth | AUTH_SECRET, BETTER_AUTH_URL, EMAIL_* vars |
| AI (Anthropic) | AI_PROVIDER=anthropic, ANTHROPIC_API_KEY |
| AI (OpenAI) | AI_PROVIDER=openai, OPENAI_API_KEY |
Full list in .env.example in the repository root.
| Source path (host) | /data/coolify/volumes/<app-name>/data |
| Destination path (container) | /app/data |
For production backups consider Litestream (continuous replication to S3 / R2 / B2).
Check the health endpoint: GET https://your-app.com/api/health
Verify the persistent volume is mounted (database tools only)
Test the login flow if auth is active
Set up a backup schedule if your database data is critical