coollabsio
coolify-cli
Go

CLI for Coolify

Last updated Jul 8, 2026
396
Stars
59
Forks
8
Issues
+5
Stars/day
Attention Score
83
Language breakdown
Go 96.4%
Shell 2.3%
PowerShell 1.3%
โ–ธ Files click to expand
README

CLI for Coolify API

Installation

Install script (recommended)

Linux/macOS

curl -fsSL https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.sh | bash

It will install the CLI in /usr/local/bin/coolify and the configuration file in ~/.config/coolify/config.json

Homebrew (macOS/Linux)

brew install coollabsio/coolify-cli/coolify-cli

Windows (PowerShell)

irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex

It will install the CLI in %ProgramFiles%\Coolify\coolify.exe and the configuration file in %USERPROFILE%\.config\coolify\config.json

For user installation (no admin rights required):

$env:COOLIFYUSERINSTALL=1; irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex

For a specific version:

$env:COOLIFY_VERSION='v1.0.0'; irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex

Using go install

go install github.com/coollabsio/coolify-cli/coolify@latest

This will install the coolify binary in your $GOPATH/bin directory (usually ~/go/bin). Make sure this directory is in your $PATH.

Using the install script

Getting Started

  • Get a <token> from your Coolify dashboard (Cloud or self-hosted) at /security/api-tokens

Cloud

  • Add the token with coolify context set-token cloud <token>

Self-hosted

  • Add the token with coolify context add -d <context_name> <url> <token>
Replace <context_name> with the name you want to give to the context.
>
Replace <url> with the fully qualified domain name of your Coolify instance.

Now you can use the CLI with the token you just added.

For LLMs / AI agents

go run ./coolify docs llms

Change default context

You can change the default context with coolify context use <contextname> or coolify context set-default <contextname>

Currently Supported Commands

Update

  • coolify update - Update the CLI to the latest version

Configuration

  • coolify config - Show configuration file location

Shell Completion

  • coolify completion <shell> - Generate shell completion script
- Supported shells: bash, zsh, fish, powershell

Context Management

  • coolify context list - List all configured contexts
  • coolify context add <context_name> <url> <token> - Add a new context
- -d, --default - Set as default context - -f, --force - Force overwrite if context already exists
  • coolify context delete <context_name> - Delete a context
  • coolify context get <context_name> - Get details of a specific context
  • coolify context set-token <context_name> <token> - Update the API token for a context
  • coolify context set-default <context_name> - Set a context as the default
  • coolify context update <context_name> - Update a context's properties
- --name <new_name> - Change the context name - --url <new_url> - Change the context URL - --token <new_token> - Change the context token
  • coolify context use <context_name> - Switch to a different context (set as default)
  • coolify context verify - Verify current context connection and authentication
  • coolify context version - Get the Coolify API version of the current context

Servers

Commands can use server or servers interchangeably.

  • coolify server list - List all servers
  • coolify server get <uuid> - Get a server by UUID
- --resources - Get the resources and their status of a server
  • coolify server add <name> <ip> <privatekeyuuid> - Add a new server
- -p, --port <port> - SSH port (default: 22) - -u, --user <user> - SSH user (default: root) - --validate - Validate server immediately after adding
  • coolify server remove <uuid> - Remove a server
  • coolify server validate <uuid> - Validate a server connection
  • coolify server domains <uuid> - Get server domains by UUID

Projects

  • coolify projects list - List all projects
  • coolify projects get <uuid> - Get project environments

Resources

  • coolify resources list - List all resources

Applications

  • coolify app list - List all applications
  • coolify app get <uuid> - Get application details
  • coolify app update <uuid> - Update application configuration
- --name <name> - Application name - --description <description> - Application description - --git-branch <branch> - Git branch - --git-repository <url> - Git repository URL - --domains <domains> - Domains (comma-separated) - --build-command <cmd> - Build command - --start-command <cmd> - Start command - --install-command <cmd> - Install command - --base-directory <path> - Base directory - --publish-directory <path> - Publish directory - --dockerfile <content> - Dockerfile content - --docker-image <image> - Docker image name - --docker-tag <tag> - Docker image tag - --ports-exposes <ports> - Exposed ports - --ports-mappings <mappings> - Port mappings - --health-check-enabled - Enable health check - --health-check-path <path> - Health check path
  • coolify app delete <uuid> - Delete an application
- -f, --force - Skip confirmation prompt
  • coolify app start <uuid> - Start an application
  • coolify app stop <uuid> - Stop an application
  • coolify app restart <uuid> - Restart an application
  • coolify app logs <uuid> - Get application logs

Application Environment Variables

  • coolify app env list <app_uuid> - List all environment variables
  • coolify app env get <appuuid> <envuuidorkey> - Get a specific environment variable
  • coolify app env create <app_uuid> - Create a new environment variable
- --key <key> - Variable key (required) - --value <value> - Variable value (required) - --preview - Available in preview deployments - --build-time - Available at build time - --is-literal - Treat value as literal (don't interpolate variables) - --is-multiline - Value is multiline
  • coolify app env update <appuuid> <envuuidorkey> - Update an environment variable
- --value <value> - Variable value (required) - --key <key> - New variable key (optional, for renaming) - --preview - Available in preview deployments - --build-time - Available at build time - --is-literal - Treat value as literal (don't interpolate variables) - --is-multiline - Value is multiline - --runtime - Available at runtime
  • coolify app env delete <appuuid> <envuuid> - Delete an environment variable
  • coolify app env sync <app_uuid> - Sync environment variables from a .env file
- --file <path> - Path to .env file (required) - --build-time - Make all variables available at build time - --preview - Make all variables available in preview deployments - --is-literal - Treat all values as literal (don't interpolate variables) - Behavior: Updates existing variables, creates missing ones. Does NOT delete variables not in the file.

Application Deployments

  • coolify app deployments list <app-uuid> - List all deployments for an application
  • coolify app deployments logs <app-uuid> [deployment-uuid] - Get deployment logs (formatted as human-readable text)
- If only app-uuid is provided: retrieves logs from the latest/most recent deployment only - If deployment-uuid is also provided: retrieves logs for that specific deployment - -n, --lines <n> - Number of log lines to display (default: 0 = all lines) - -f, --follow - Follow log output in real-time (like tail -f) - --debuglogs - Show debug logs (includes hidden commands and internal operations)

Databases

  • coolify database list - List all databases
  • coolify database get <uuid> - Get database details
  • coolify database create <type> - Create a new database
- Supported types: postgresql, mysql, mariadb, mongodb, redis, keydb, clickhouse, dragonfly - --server-uuid <uuid> - Server UUID (required) - --project-uuid <uuid> - Project UUID (required) - --environment-name <name> - Environment name (required unless using --environment-uuid) - --environment-uuid <uuid> - Environment UUID (required unless using --environment-name) - --destination-uuid <uuid> - Destination UUID if server has multiple destinations - --name <name> - Database name - --description <description> - Database description - --image <image> - Docker image - --instant-deploy - Deploy immediately after creation - --is-public - Make database publicly accessible - --public-port <port> - Public port number - --limits-memory <size> - Memory limit (e.g., '512m', '2g') - --limits-cpus <cpus> - CPU limit (e.g., '0.5', '2') - Database-specific flags (postgres-user, mysql-root-password, etc.)
  • coolify database update <uuid> - Update database configuration
  • coolify database delete <uuid> - Delete a database
- --delete-configurations - Delete configurations (default: true) - --delete-volumes - Delete volumes (default: true) - --docker-cleanup - Run docker cleanup (default: true) - --delete-connected-networks - Delete connected networks (default: true)
  • coolify database start <uuid> - Start a database
  • coolify database stop <uuid> - Stop a database
  • coolify database restart <uuid> - Restart a database

Database Backups

  • coolify database backup list <database_uuid> - List all backup configurations
  • coolify database backup create <database_uuid> - Create a new backup configuration
- --frequency <cron> - Backup frequency (cron expression) - --enabled - Enable backup schedule - --save-s3 - Save backups to S3 - --s3-storage-uuid <uuid> - S3 storage UUID - --databases-to-backup <list> - Comma-separated list of databases to backup - --dump-all - Dump all databases - --retention-amount-local <n> - Number of backups to retain locally - --retention-days-local <n> - Days to retain backups locally - --retention-storage-local <size> - Max storage for local backups (e.g., '1GB', '500MB') - --retention-amount-s3 <n> - Number of backups to retain in S3 - --retention-days-s3 <n> - Days to retain backups in S3 - --retention-storage-s3 <size> - Max storage for S3 backups (e.g., '1GB', '500MB') - --timeout <seconds> - Backup timeout in seconds - --disable-local - Disable local backup storage
  • coolify database backup update <databaseuuid> <backupuuid> - Update a backup configuration
  • coolify database backup delete <databaseuuid> <backupuuid> - Delete a backup configuration
  • coolify database backup trigger <databaseuuid> <backupuuid> - Trigger an immediate backup
  • coolify database backup executions <databaseuuid> <backupuuid> - List backup executions
  • coolify database backup delete-execution <databaseuuid> <backupuuid> <execution_uuid> - Delete a backup execution

Services

  • coolify service list - List all services
  • coolify service get <uuid> - Get service details
  • coolify service start <uuid> - Start a service
  • coolify service stop <uuid> - Stop a service
  • coolify service restart <uuid> - Restart a service
  • coolify service delete <uuid> - Delete a service

Service Environment Variables

  • coolify service env list <service_uuid> - List all environment variables
  • coolify service env get <serviceuuid> <envuuidorkey> - Get a specific environment variable
  • coolify service env create <service_uuid> - Create a new environment variable
- Same flags as application environment variables
  • coolify service env update <serviceuuid> <envuuidorkey> - Update an environment variable
- --value <value> - Variable value (required) - --key <key> - New variable key (optional, for renaming) - --build-time - Available at build time - --is-literal - Treat value as literal (don't interpolate variables) - --is-multiline - Value is multiline - --runtime - Available at runtime
  • coolify service env delete <serviceuuid> <envuuid> - Delete an environment variable
  • coolify service env sync <service_uuid> - Sync environment variables from a .env file
- --file <path> - Path to .env file (required) - --build-time - Make all variables available at build time - --preview - Make all variables available in preview deployments - --is-literal - Treat all values as literal (don't interpolate variables) - Behavior: Updates existing variables, creates missing ones. Does NOT delete variables not in the file.

Deployments

  • coolify deploy uuid <uuid> - Deploy a resource by UUID
- -f, --force - Force deployment - --pull-request-id <id> - Pull request ID for preview deployments - --docker-tag <tag> - Docker image tag override for the deployment (requires Coolify 4.0.0-beta.471+)
  • coolify deploy name <name> - Deploy a resource by name
- -f, --force - Force deployment - --pull-request-id <id> - Pull request ID for preview deployments - --docker-tag <tag> - Docker image tag override for the deployment (requires Coolify 4.0.0-beta.471+)
  • coolify deploy batch <name1,name2,...> - Deploy multiple resources at once
- -f, --force - Force all deployments - --pull-request-id <id> - Pull request ID for preview deployments - --docker-tag <tag> - Docker image tag override for the deployment (requires Coolify 4.0.0-beta.471+)
  • coolify deploy list - List all deployments
  • coolify deploy get <uuid> - Get deployment details
  • coolify deploy cancel <uuid> - Cancel a deployment
- -f, --force - Skip confirmation prompt

GitHub Apps

  • coolify github list - List all GitHub App integrations
  • coolify github get <app_uuid> - Get GitHub App details
  • coolify github create - Create a new GitHub App integration
- --name <name> - GitHub App name (required) - --api-url <url> - GitHub API URL (required, e.g., https://api.github.com) - --html-url <url> - GitHub HTML URL (required, e.g., https://github.com) - --app-id <id> - GitHub App ID (required) - --installation-id <id> - GitHub Installation ID (required) - --client-id <id> - GitHub OAuth Client ID (required) - --client-secret <secret> - GitHub OAuth Client Secret (required) - --private-key-uuid <uuid> - UUID of existing private key (required) - --organization <org> - GitHub organization - --custom-user <user> - Custom user for SSH (default: git) - --custom-port <port> - Custom port for SSH (default: 22) - --webhook-secret <secret> - GitHub Webhook Secret - --system-wide - Is this app system-wide (cloud only)
  • coolify github update <app_uuid> - Update a GitHub App
  • coolify github delete <app_uuid> - Delete a GitHub App
- -f, --force - Skip confirmation prompt
  • coolify github repos <app_uuid> - List repositories accessible by a GitHub App
  • coolify github branches <app_uuid> <owner/repo> - List branches for a repository

Teams

  • coolify team list - List all teams
  • coolify team get <team_id> - Get team details
  • coolify team current - Get current team
  • coolify team members list [team_id] - List team members

Private Keys

Commands can use private-key, private-keys, key, or keys interchangeably.

  • coolify private-key list - List all private keys
  • coolify private-key add <key_name> <private-key> - Add a new private key
- Use @filename to read from file: coolify private-key add mykey @~/.ssh/id_rsa
  • coolify private-key remove <uuid> - Remove a private key

Global Flags

All commands support these global flags:

  • --context <name> - Use a specific context instead of default
  • --host <fqdn> - Override the Coolify instance hostname
  • --token <token> - Override the authentication token
  • --format <format> - Output format: table (default), json, or pretty
  • -s, --show-sensitive - Show sensitive information (tokens, IPs, etc.)
  • -f, --force - Force operation (skip confirmations)
  • --debug - Enable debug mode

Examples

Multi-Environment Workflows

# Add multiple contexts
coolify context add prod https://prod.coolify.io <prod-token>
coolify context add staging https://staging.coolify.io <staging-token>
coolify context add dev https://dev.coolify.io <dev-token>

Set default

coolify context use prod

Use different contexts

coolify --context=staging servers list coolify --context=prod deploy name api coolify --context=dev resources list

Default context (prod in this case)

coolify servers list

Application Management

# List all applications
coolify app list

Get application details

coolify app get <uuid>

Manage application lifecycle

coolify app start <uuid> coolify app stop <uuid> coolify app restart <uuid>

View application logs

coolify app logs <uuid>

Environment variables

coolify app env list <uuid> coolify app env create <uuid> --key API_KEY --value secret123

Sync from .env file (updates existing, creates new, keeps others unchanged)

coolify app env sync <uuid> --file .env coolify app env sync <uuid> --file .env.production --build-time --preview

Database Management

# List databases
coolify database list

Create a PostgreSQL database

coolify database create postgresql \ --server-uuid <server-uuid> \ --project-uuid <project-uuid> \ --name mydb \ --instant-deploy

Manage database lifecycle

coolify database start <uuid> coolify database stop <uuid> coolify database restart <uuid>

Backup management

coolify database backup list <database-uuid> coolify database backup create <database-uuid> \ --frequency "0 2 *" \ --enabled \ --save-s3 \ --retention-days-locally 7 coolify database backup trigger <database-uuid> <backup-uuid>

Service Management

# List services
coolify service list

Get service details

coolify service get <uuid>

Manage services

coolify service start <uuid> coolify service restart <uuid>

Environment variables (same as applications)

coolify service env sync <uuid> --file .env

Deploy Workflows

# Deploy single app by name (easier than UUID)
coolify deploy name my-application

Deploy multiple apps at once

coolify deploy batch api,worker,frontend

Force deploy with specific context

coolify --context=prod deploy batch api,worker --force

Deploy a preview with an explicit docker tag

coolify deploy uuid u5ualfp30j27qtfpgcen8p03 --pull-request-id 2345 --docker-tag 1.28.3

Traditional UUID deployment still works

coolify deploy uuid abc123-def456-...

Monitor deployments

coolify deploy list coolify deploy get <deployment-uuid>

Cancel a deployment

coolify deploy cancel <deployment-uuid>

GitHub Apps Integration

# List GitHub Apps
coolify github list

Create a GitHub App integration

coolify github create \ --name "My GitHub App" \ --api-url "https://api.github.com" \ --html-url "https://github.com" \ --app-id 123456 \ --installation-id 789012 \ --client-id "Iv1.abc123" \ --client-secret "secret" \ --private-key-uuid <key-uuid>

List repositories accessible by the app

coolify github repos <app-uuid>

List branches for a repository

coolify github branches <app-uuid> owner/repo

Delete a GitHub App

coolify github delete <app-uuid>

Team Management

# List teams
coolify team list

Get current team

coolify team current

List team members

coolify team members list

Server Management

# List servers in production
coolify --context=prod server list

Add a server with validation

coolify server add myserver 192.168.1.100 <key-uuid> --validate

Get server details with resources

coolify server get <uuid> --resources

Output Formats

The CLI supports three output formats:

# Table format (default, human-readable)
coolify server list

JSON format (for scripts)

coolify server list --format=json

Pretty JSON (for debugging)

coolify server list --format=pretty

Architecture

This CLI follows a clean architecture with:

  • Service Layer: Business logic and API interactions
  • Output Layer: Consistent formatting across all commands
  • Config Layer: Multi-context configuration management
  • Models Layer: Type-safe data structures

Development

# Build
go build -o coolify ./coolify

Run tests

go test ./...

Run with coverage

go test -cover ./...

Install locally

go install ./coolify

Contributing

Contributions are welcome!

License

MIT

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท coollabsio/coolify-cli ยท Updated daily from GitHub