Files
calminer-docs/admin/runbooks/coolify_deployment.md

2.0 KiB

Coolify Deployment Reference

This note captures the current production deployment inputs so the automated Coolify workflow can be wired up consistently.

Compose bundle

  • Use docker-compose.prod.yml as the base service definition.
  • The compose file expects the following variables supplied by the deployment runner (either through an .env file or Coolify secret variables):
    • DATABASE_HOST
    • DATABASE_PORT (defaults to 5432 if omitted)
    • DATABASE_USER
    • DATABASE_PASSWORD
    • DATABASE_NAME
    • Optional APT_CACHE_URL build arg when a proxy is required.
  • Expose port 8003 for the FastAPI service and 5432 for PostgreSQL.

Runtime expectations

  • Application container runs with ENVIRONMENT=production, LOG_LEVEL=WARNING, and enables large import/export limits via:
    • CALMINER_EXPORT_MAX_ROWS
    • CALMINER_IMPORT_MAX_ROWS
    • CALMINER_EXPORT_METADATA
    • CALMINER_IMPORT_STAGING_TTL
  • PostgreSQL container requires persistent storage (volume postgres_data).
  • The app health check hits http://localhost:8003/health.

Coolify integration inputs (to provision secrets later)

  • Coolify instance URL (e.g. https://coolify.example.com) and target project/app identifier.
  • API token or CLI credentials with permission to trigger deployments.
  • SSH key or repository token already configured in Coolify to pull this repository.
  • Optional: webhook/event endpoint if we want to observe deployment status from CI.

Manual deployment checklist (current state)

  1. Ensure the compose environment variables above are defined in Coolify under the application settings.
  2. Rebuild the application image with the latest commit (using docker-compose.prod.yml).
  3. Trigger a deployment in Coolify so the platform pulls the new image and restarts the service.
  4. Confirm the health check passes and review logs in Coolify.

These details will feed into the new deploy-coolify workflow so it can authenticate, trigger the deployment, and surface logs automatically.