Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Manage Coolify deployments, applications, databases, and services via the Coolify API. Use when the user wants to deploy, start, stop, restart, or manage applications hosted on Coolify.
Manage Coolify deployments, applications, databases, and services via the Coolify API. Use when the user wants to deploy, start, stop, restart, or manage applications hosted on Coolify.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Comprehensive management of Coolify deployments, applications, databases, services, and infrastructure via the Coolify API.
Use this skill when the user needs to: Deploy applications to Coolify Manage application lifecycle (start, stop, restart) View application logs Create and manage databases (PostgreSQL, MySQL, MongoDB, Redis, etc.) Deploy Docker Compose services Manage servers and infrastructure Configure environment variables Trigger and monitor deployments Manage GitHub App integrations Configure SSH private keys
Coolify API Token β Generate from Coolify dashboard: Navigate to Keys & Tokens β API tokens Create token with appropriate permissions (read, write, deploy) Set COOLIFY_TOKEN environment variable bash, curl, jq β Required for running bash scripts API Access β Coolify Cloud (app.coolify.io) or self-hosted instance
# List all applications {baseDir}/scripts/coolify applications list # Get application details {baseDir}/scripts/coolify applications get --uuid abc-123 # Deploy an application {baseDir}/scripts/coolify deploy --uuid abc-123 --force # View application logs {baseDir}/scripts/coolify applications logs --uuid abc-123 # Restart an application {baseDir}/scripts/coolify applications restart --uuid abc-123
{baseDir}/scripts/coolify applications list Output: { "success": true, "data": [ { "uuid": "abc-123", "name": "my-app", "status": "running", "fqdn": "https://app.example.com" } ], "count": 1 }
{baseDir}/scripts/coolify applications get --uuid abc-123
# Start {baseDir}/scripts/coolify applications start --uuid abc-123 # Stop {baseDir}/scripts/coolify applications stop --uuid abc-123 # Restart {baseDir}/scripts/coolify applications restart --uuid abc-123
{baseDir}/scripts/coolify applications logs --uuid abc-123
# List environment variables {baseDir}/scripts/coolify applications envs list --uuid abc-123 # Create environment variable {baseDir}/scripts/coolify applications envs create \ --uuid abc-123 \ --key DATABASE_URL \ --value "postgres://user:pass@host:5432/db" \ --is-runtime true \ --is-buildtime false # Update environment variable {baseDir}/scripts/coolify applications envs update \ --uuid abc-123 \ --env-uuid env-456 \ --value "new-value" # Bulk update environment variables {baseDir}/scripts/coolify applications envs bulk-update \ --uuid abc-123 \ --json '{"DATABASE_URL":"postgres://...","API_KEY":"..."}' # Delete environment variable {baseDir}/scripts/coolify applications envs delete \ --uuid abc-123 \ --env-uuid env-456
# Public Git repository {baseDir}/scripts/coolify applications create-public \ --project-uuid proj-123 \ --server-uuid server-456 \ --git-repository "https://github.com/user/repo" \ --git-branch main \ --name "My App" # Private GitHub App {baseDir}/scripts/coolify applications create-private-github-app \ --project-uuid proj-123 \ --server-uuid server-456 \ --github-app-uuid gh-789 \ --git-repository "user/repo" \ --git-branch main # Dockerfile {baseDir}/scripts/coolify applications create-dockerfile \ --project-uuid proj-123 \ --server-uuid server-456 \ --dockerfile-location "./Dockerfile" \ --name "My Docker App" # Docker Image {baseDir}/scripts/coolify applications create-dockerimage \ --project-uuid proj-123 \ --server-uuid server-456 \ --docker-image "nginx:latest" \ --name "Nginx" # Docker Compose {baseDir}/scripts/coolify applications create-dockercompose \ --project-uuid proj-123 \ --server-uuid server-456 \ --docker-compose-location "./docker-compose.yml"
{baseDir}/scripts/coolify databases list
{baseDir}/scripts/coolify databases get --uuid db-123
# Start {baseDir}/scripts/coolify databases start --uuid db-123 # Stop {baseDir}/scripts/coolify databases stop --uuid db-123 # Restart {baseDir}/scripts/coolify databases restart --uuid db-123 # Delete {baseDir}/scripts/coolify databases delete --uuid db-123
# PostgreSQL {baseDir}/scripts/coolify databases create-postgresql \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "my-postgres" \ --postgres-user admin \ --postgres-password secret \ --postgres-db myapp # MySQL {baseDir}/scripts/coolify databases create-mysql \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "my-mysql" # MariaDB {baseDir}/scripts/coolify databases create-mariadb \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "my-mariadb" # MongoDB {baseDir}/scripts/coolify databases create-mongodb \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "my-mongo" # Redis {baseDir}/scripts/coolify databases create-redis \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "my-redis" # KeyDB {baseDir}/scripts/coolify databases create-keydb \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "my-keydb" # ClickHouse {baseDir}/scripts/coolify databases create-clickhouse \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "my-clickhouse" # Dragonfly {baseDir}/scripts/coolify databases create-dragonfly \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "my-dragonfly"
# List backup configurations {baseDir}/scripts/coolify databases backups list --uuid db-123 # Create backup configuration {baseDir}/scripts/coolify databases backups create \ --uuid db-123 \ --frequency "0 2 * * *" \ --enabled true # Get backup details {baseDir}/scripts/coolify databases backups get \ --uuid db-123 \ --backup-uuid backup-456 # Update backup {baseDir}/scripts/coolify databases backups update \ --uuid db-123 \ --backup-uuid backup-456 \ --frequency "0 3 * * *" # Trigger manual backup {baseDir}/scripts/coolify databases backups trigger \ --uuid db-123 \ --backup-uuid backup-456 # List backup executions {baseDir}/scripts/coolify databases backups executions \ --uuid db-123 \ --backup-uuid backup-456 # Delete backup configuration {baseDir}/scripts/coolify databases backups delete \ --uuid db-123 \ --backup-uuid backup-456
{baseDir}/scripts/coolify services list
{baseDir}/scripts/coolify services get --uuid service-123
# Start {baseDir}/scripts/coolify services start --uuid service-123 # Stop {baseDir}/scripts/coolify services stop --uuid service-123 # Restart {baseDir}/scripts/coolify services restart --uuid service-123 # Delete {baseDir}/scripts/coolify services delete --uuid service-123
{baseDir}/scripts/coolify services create \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "My Service" \ --docker-compose '{"version":"3.8","services":{"web":{"image":"nginx"}}}'
# List {baseDir}/scripts/coolify services envs list --uuid service-123 # Create {baseDir}/scripts/coolify services envs create \ --uuid service-123 \ --key API_KEY \ --value "secret" # Update {baseDir}/scripts/coolify services envs update \ --uuid service-123 \ --env-uuid env-456 \ --value "new-secret" # Bulk update {baseDir}/scripts/coolify services envs bulk-update \ --uuid service-123 \ --json '{"API_KEY":"secret","DB_HOST":"localhost"}' # Delete {baseDir}/scripts/coolify services envs delete \ --uuid service-123 \ --env-uuid env-456
# Deploy by UUID {baseDir}/scripts/coolify deploy --uuid abc-123 # Force rebuild {baseDir}/scripts/coolify deploy --uuid abc-123 --force # Deploy by tag {baseDir}/scripts/coolify deploy --tag production # Instant deploy (skip queue) {baseDir}/scripts/coolify deploy --uuid abc-123 --instant-deploy
# List all running deployments {baseDir}/scripts/coolify deployments list # List deployments for specific application {baseDir}/scripts/coolify deployments list-for-app --uuid abc-123
{baseDir}/scripts/coolify deployments get --uuid deploy-456
{baseDir}/scripts/coolify deployments cancel --uuid deploy-456
{baseDir}/scripts/coolify servers list
{baseDir}/scripts/coolify servers get --uuid server-123
{baseDir}/scripts/coolify servers create \ --name "Production Server" \ --ip "192.168.1.100" \ --port 22 \ --user root \ --private-key-uuid key-456
{baseDir}/scripts/coolify servers update \ --uuid server-123 \ --name "Updated Name" \ --description "Production environment"
{baseDir}/scripts/coolify servers validate --uuid server-123
# List all resources on server {baseDir}/scripts/coolify servers resources --uuid server-123 # Get domains configured on server {baseDir}/scripts/coolify servers domains --uuid server-123
{baseDir}/scripts/coolify servers delete --uuid server-123
{baseDir}/scripts/coolify projects list
{baseDir}/scripts/coolify projects get --uuid proj-123
{baseDir}/scripts/coolify projects create \ --name "My Project" \ --description "Production project"
{baseDir}/scripts/coolify projects update \ --uuid proj-123 \ --name "Updated Name"
{baseDir}/scripts/coolify projects delete --uuid proj-123
# List environments {baseDir}/scripts/coolify projects environments list --uuid proj-123 # Create environment {baseDir}/scripts/coolify projects environments create \ --uuid proj-123 \ --name "staging" # Get environment details {baseDir}/scripts/coolify projects environments get \ --uuid proj-123 \ --environment staging # Delete environment {baseDir}/scripts/coolify projects environments delete \ --uuid proj-123 \ --environment staging
{baseDir}/scripts/coolify teams list
{baseDir}/scripts/coolify teams current
{baseDir}/scripts/coolify teams members
{baseDir}/scripts/coolify teams get --id 1
{baseDir}/scripts/coolify security keys list
{baseDir}/scripts/coolify security keys get --uuid key-123
{baseDir}/scripts/coolify security keys create \ --name "Production Key" \ --description "SSH key for production servers" \ --private-key "$(cat ~/.ssh/id_rsa)"
{baseDir}/scripts/coolify security keys update \ --uuid key-123 \ --name "Updated Key Name"
{baseDir}/scripts/coolify security keys delete --uuid key-123
{baseDir}/scripts/coolify github-apps list
{baseDir}/scripts/coolify github-apps get --uuid gh-123
{baseDir}/scripts/coolify github-apps create \ --name "My GitHub App" \ --app-id 123456 \ --installation-id 789012 \ --private-key "$(cat github-app-key.pem)"
{baseDir}/scripts/coolify github-apps update \ --uuid gh-123 \ --name "Updated App Name"
{baseDir}/scripts/coolify github-apps delete --uuid gh-123
{baseDir}/scripts/coolify github-apps repos --uuid gh-123
{baseDir}/scripts/coolify github-apps branches \ --uuid gh-123 \ --owner myorg \ --repo myrepo
List available servers: {baseDir}/scripts/coolify servers list Create application: {baseDir}/scripts/coolify applications create-public \ --project-uuid proj-123 \ --server-uuid server-456 \ --git-repository "https://github.com/user/repo" \ --git-branch main \ --name "My App" Configure environment variables: {baseDir}/scripts/coolify applications envs create \ --uuid <new-app-uuid> \ --key DATABASE_URL \ --value "postgres://..." \ --is-runtime true Deploy: {baseDir}/scripts/coolify deploy --uuid <new-app-uuid>
Create database: {baseDir}/scripts/coolify databases create-postgresql \ --project-uuid proj-123 \ --server-uuid server-456 \ --name "production-db" Configure daily backups: {baseDir}/scripts/coolify databases backups create \ --uuid <db-uuid> \ --frequency "0 2 * * *" \ --enabled true Trigger manual backup: {baseDir}/scripts/coolify databases backups trigger \ --uuid <db-uuid> \ --backup-uuid <backup-uuid>
Check application status: {baseDir}/scripts/coolify applications get --uuid abc-123 View recent logs: {baseDir}/scripts/coolify applications logs --uuid abc-123 List recent deployments: {baseDir}/scripts/coolify deployments list-for-app --uuid abc-123
Cause: COOLIFY_TOKEN environment variable not set. Solution: export COOLIFY_TOKEN="your-token-here" Or configure in OpenClaw config at ~/.openclaw/openclaw.json: { "skills": { "entries": { "coolify": { "apiKey": "your-token-here" } } } }
Cause: Too many API requests in a short time. Solution: The client automatically retries with exponential backoff. Wait for the retry or reduce request frequency.
Cause: Invalid or non-existent UUID. Solution: # List all applications to find correct UUID {baseDir}/scripts/coolify applications list
Cause: Cannot connect to Coolify API. Solution for self-hosted: # Set custom API URL export COOLIFY_API_URL="https://your-coolify.example.com/api/v1" Solution for cloud: Verify internet connection and that app.coolify.io is accessible.
Cause: Build or deployment error. Solution: Check deployment logs: {baseDir}/scripts/coolify deployments get --uuid deploy-456 Check application logs: {baseDir}/scripts/coolify applications logs --uuid abc-123 Verify environment variables are correct: {baseDir}/scripts/coolify applications envs list --uuid abc-123
Cause: Node.js not installed or not in PATH. Solution: # macOS (via Homebrew) brew install node # Verify installation node --version
All commands return structured JSON:
{ "success": true, "data": { ... }, "count": 42 }
{ "success": false, "error": { "type": "APIError", "message": "Application not found", "hint": "Use 'applications list' to find valid UUIDs" } }
VariableRequiredDefaultDescriptionCOOLIFY_TOKENYesβAPI token from Coolify dashboardCOOLIFY_API_URLNohttps://app.coolify.io/api/v1API base URL (for self-hosted)
For self-hosted instances, set the API URL: export COOLIFY_API_URL="https://coolify.example.com/api/v1" export COOLIFY_TOKEN="your-token-here"
Coolify Documentation: https://coolify.io/docs/ API Reference: See {baseDir}/references/API.md GitHub: https://github.com/coollabsio/coolify Discord: https://coollabs.io/discord
Most commands require UUIDs, not names. Always use list commands first to find UUIDs: # Bad: Using name (will fail) {baseDir}/scripts/coolify applications get --uuid "my-app" # Good: Using UUID {baseDir}/scripts/coolify applications list # Find UUID first {baseDir}/scripts/coolify applications get --uuid abc-123
Use --force flag carefully as it rebuilds from scratch: # Normal deployment (uses cache) {baseDir}/scripts/coolify deploy --uuid abc-123 # Force rebuild (slower, but ensures clean build) {baseDir}/scripts/coolify deploy --uuid abc-123 --force
After updating environment variables, restart the application: # Update env var {baseDir}/scripts/coolify applications envs update \ --uuid abc-123 \ --env-uuid env-456 \ --value "new-value" # Restart to apply changes {baseDir}/scripts/coolify applications restart --uuid abc-123
Use cron expressions for backup schedules: ExpressionDescription0 2 * * *Daily at 2 AM0 */6 * * *Every 6 hours0 0 * * 0Weekly on Sunday at midnight0 0 1 * *Monthly on 1st at midnight
This skill provides complete access to Coolify's API across: Applications β Deployment, lifecycle, logs, environment variables Databases β 8 database types, backups, lifecycle management Services β Docker Compose orchestration Deployments β Trigger, monitor, cancel Servers β Infrastructure management and validation Projects β Organization and environment management Teams β Access control and collaboration Security β SSH key management GitHub Apps β Repository integration All operations return structured JSON for easy agent consumption.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.