# Coolify API Integration for CEO Agents ## API Authentication Coolify exposes a REST API at `https:///api/v1/`. ### Creating API Tokens 1. Coolify UI → Settings → Keys & Tokens → API Tokens 2. Create one token per CEO agent/project 3. Tokens can be scoped — create project-level tokens so each CEO only sees its own resources ### Using the API ```bash curl -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ https://coolify.cloonar.com/api/v1/ ``` ## Key Endpoints ### Deploy Application ``` POST /api/v1/deploy Body: { "uuid": "" } # or by tag: Body: { "tag": "" } ``` ### List Applications ``` GET /api/v1/applications ``` ### Get Application ``` GET /api/v1/applications/{uuid} ``` ### Update Application Environment ``` PATCH /api/v1/applications/{uuid}/envs Body: { "key": "VAR_NAME", "value": "new_value" } ``` ### Application Actions ``` POST /api/v1/applications/{uuid}/start POST /api/v1/applications/{uuid}/stop POST /api/v1/applications/{uuid}/restart ``` ### Databases ``` GET /api/v1/databases GET /api/v1/databases/{uuid} POST /api/v1/databases/{uuid}/start POST /api/v1/databases/{uuid}/stop ``` ### Servers ``` GET /api/v1/servers GET /api/v1/servers/{uuid} GET /api/v1/servers/{uuid}/resources ``` ## CEO Agent Integration Pattern Each CEO agent should have a CLI helper script (like `bin/docfast-deploy`) that wraps the Coolify API: ```bash #!/bin/bash # Example: bin/docfast-deploy source ~/.openclaw/workspace/.credentials/coolify.env # COOLIFY_URL=https://coolify.cloonar.com # COOLIFY_TOKEN= # DOCFAST_APP_UUID= curl -s -X POST \ -H "Authorization: Bearer $COOLIFY_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"uuid\": \"$DOCFAST_APP_UUID\"}" \ "$COOLIFY_URL/api/v1/deploy" ``` ### What CEO Agents Can Do via API - Trigger deploys after code changes - Check application status/health - Restart services if unhealthy - Update environment variables - Monitor server resources (disk, memory) - Scale up/down (start/stop additional instances) ### What CEO Agents Should NOT Do - Manage other projects' resources (token scoping prevents this) - Delete servers or applications - Modify infrastructure-level settings ## Webhook Deploys (Alternative) Instead of API-triggered deploys, Coolify supports webhook-based deploys: 1. In Coolify, enable webhook for the application 2. Get the webhook URL (unique per app) 3. Add as Forgejo webhook → auto-deploy on push This is simpler for CI/CD but less controllable than API deploys. ## Monitoring Integration CEO agents can check their application's health: ```bash # Get app status curl -s -H "Authorization: Bearer $TOKEN" \ "$COOLIFY_URL/api/v1/applications/$APP_UUID" | jq '.status' # Get server resources curl -s -H "Authorization: Bearer $TOKEN" \ "$COOLIFY_URL/api/v1/servers/$SERVER_UUID" | jq '.settings' ``` Combine with existing uptime monitoring (health endpoint checks) for comprehensive monitoring.