Back to Skills
    🦞

    coolify

    Manage Coolify deployments, applications, databases, and services

    By @visiongeist
    View on GitHub
    SKILL.md
    ---
    name: coolify
    description: 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.
    homepage: https://coolify.io
    user-invocable: true
    metadata: {"openclaw":{"emoji":"🚀","requires":{"bins":["node"],"env":["COOLIFY_TOKEN"]},"primaryEnv":"COOLIFY_TOKEN"}}
    ---
    
    # Coolify API Skill
    
    Comprehensive management of Coolify deployments, applications, databases, services, and infrastructure via the Coolify API.
    
    ## When to Use This Skill
    
    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
    
    ## Prerequisites
    
    1. **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
    
    2. **bash, curl, jq** — Required for running bash scripts
    
    3. **API Access** — Coolify Cloud (`app.coolify.io`) or self-hosted instance
    
    ## Quick Start
    
    ### Basic Commands
    
    ```bash
    # 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
    ```
    
    ---
    
    ## Applications
    
    ### List Applications
    
    ```bash
    {baseDir}/scripts/coolify applications list
    ```
    
    **Output:**
    ```json
    {
      "success": true,
      "data": [
        {
          "uuid": "abc-123",
          "name": "my-app",
          "status": "running",
          "fqdn": "https://app.example.com"
        }
      ],
      "count": 1
    }
    ```
    
    ### Get Application Details
    
    ```bash
    {baseDir}/scripts/coolify applications get --uuid abc-123
    ```
    
    ### Application Lifecycle
    
    ```bash
    # 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
    ```
    
    ### View Logs
    
    ```bash
    {baseDir}/scripts/coolify applications logs --uuid abc-123
    ```
    
    ### Environment Variables
    
    ```bash
    # 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
    ```
    
    ### Create Applications
    
    ```bash
    # 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"
    ```
    
    ---
    
    ## Databases
    
    ### List Databases
    
    ```bash
    {baseDir}/scripts/coolify databases list
    ```
    
    ### Get Database Details
    
    ```bash
    {baseDir}/scripts/coolify databases get --uuid db-123
    ```
    
    ### Database Lifecycle
    
    ```bash
    # 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
    ```
    
    ### Create Databases
    
    ```bash
    # 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"
    ```
    
    ### Backups
    
    ```bash
    # 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
    ```
    
    ---
    
    ## Services (Docker Compose)
    
    ### List Services
    
    ```bash
    {baseDir}/scripts/coolify services list
    ```
    
    ### Get Service Details
    
    ```bash
    {baseDir}/scripts/coolify services get --uuid service-123
    ```
    
    ### Service Lifecycle
    
    ```bash
    # 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
    ```
    
    ### Create Service
    
    ```bash
    {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"}}}'
    ```
    
    ### Environment Variables
    
    ```bash
    # 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
    ```
    
    ---
    
    ## Deployments
    
    ### Deploy Application
    
    ```bash
    # 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 Deployments
    
    ```bash
    # List all running deployments
    {baseDir}/scripts/coolify deployments list
    
    # List deployments for specific application
    {baseDir}/scripts/coolify deployments list-for-app --uuid abc-123
    ```
    
    ### Get Deployment Details
    
    ```bash
    {baseDir}/scripts/coolify deployments get --uuid deploy-456
    ```
    
    ### Cancel Deployment
    
    ```bash
    {baseDir}/scripts/coolify deployments cancel --uuid deploy-456
    ```
    
    ---
    
    ## Servers
    
    ### List Servers
    
    ```bash
    {baseDir}/scripts/coolify servers list
    ```
    
    ### Get Server Details
    
    ```bash
    {baseDir}/scripts/coolify servers get --uuid server-123
    ```
    
    ### Create Server
    
    ```bash
    {baseDir}/scripts/coolify servers create \
      --name "Production Server" \
      --ip "192.168.1.100" \
      --port 22 \
      --user root \
      --private-key-uuid key-456
    ```
    
    ### Update Server
    
    ```bash
    {baseDir}/scripts/coolify servers update \
      --uuid server-123 \
      --name "Updated Name" \
      --description "Production environment"
    ```
    
    ### Validate Server
    
    ```bash
    {baseDir}/scripts/coolify servers validate --uuid server-123
    ```
    
    ### Get Server Resources
    
    ```bash
    # List all resources on server
    {baseDir}/scripts/coolify servers resources --uuid server-123
    
    # Get domains con
    
    ... (truncated)