--- name: coolify-manager description: >- Coolify Server Manager. Use this skill when you need to perform commands on user's server on user's behalf --- ## Overview Use this skill when you need to: - Report server/resource/application status - Cnahge server/resource/application setting ## Tool Commands for [Coolify](https://coolify.io) API ### Servers Commands can use `server` or `servers` interchangeably. - `coolify server list` - List all servers - `coolify server get ` - Get a server by UUID - `--resources` - Get the resources and their status of a server - `coolify server add ` - Add a new server - `-p, --port ` - SSH port (default: 22) - `-u, --user ` - SSH user (default: root) - `--validate` - Validate server immediately after adding - `coolify server remove ` - Remove a server - `coolify server validate ` - Validate a server connection - `coolify server domains ` - Get server domains by UUID ### Projects - `coolify projects list` - List all projects - `coolify projects get ` - Get project environments ### Resources - `coolify resources list` - List all resources ### Applications - `coolify app list` - List all applications - `coolify app get ` - Get application details - `coolify app update ` - Update application configuration - `--name ` - Application name - `--description ` - Application description - `--git-branch ` - Git branch - `--git-repository ` - Git repository URL - `--domains ` - Domains (comma-separated) - `--build-command ` - Build command - `--start-command ` - Start command - `--install-command ` - Install command - `--base-directory ` - Base directory - `--publish-directory ` - Publish directory - `--dockerfile ` - Dockerfile content - `--docker-image ` - Docker image name - `--docker-tag ` - Docker image tag - `--ports-exposes ` - Exposed ports - `--ports-mappings ` - Port mappings - `--health-check-enabled` - Enable health check - `--health-check-path ` - Health check path - `coolify app delete ` - Delete an application - `-f, --force` - Skip confirmation prompt - `coolify app start ` - Start an application - `coolify app stop ` - Stop an application - `coolify app restart ` - Restart an application - `coolify app logs ` - Get application logs #### Application Environment Variables - `coolify app env list ` - List all environment variables - `coolify app env get ` - Get a specific environment variable - `coolify app env create ` - Create a new environment variable - `--key ` - Variable key (required) - `--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 ` - Update an environment variable - `coolify app env delete ` - Delete an environment variable - `coolify app env sync ` - Sync environment variables from a .env file - `--file ` - 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 ` - List all deployments for an application - `coolify app deployments logs [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 ` - 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 ` - Get database details - `coolify database create ` - Create a new database - Supported types: `postgresql`, `mysql`, `mariadb`, `mongodb`, `redis`, `keydb`, `clickhouse`, `dragonfly` - `--server-uuid ` - Server UUID (required) - `--project-uuid ` - Project UUID (required) - `--environment-name ` - Environment name (required unless using --environment-uuid) - `--environment-uuid ` - Environment UUID (required unless using --environment-name) - `--destination-uuid ` - Destination UUID if server has multiple destinations - `--name ` - Database name - `--description ` - Database description - `--image ` - Docker image - `--instant-deploy` - Deploy immediately after creation - `--is-public` - Make database publicly accessible - `--public-port ` - Public port number - `--limits-memory ` - Memory limit (e.g., '512m', '2g') - `--limits-cpus ` - CPU limit (e.g., '0.5', '2') - Database-specific flags (postgres-user, mysql-root-password, etc.) - `coolify database update ` - Update database configuration - `coolify database delete ` - 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 ` - Start a database - `coolify database stop ` - Stop a database - `coolify database restart ` - Restart a database #### Database Backups - `coolify database backup list ` - List all backup configurations - `coolify database backup create ` - Create a new backup configuration - `--frequency ` - Backup frequency (cron expression) - `--enabled` - Enable backup schedule - `--save-s3` - Save backups to S3 - `--s3-storage-uuid ` - S3 storage UUID - `--databases-to-backup ` - Comma-separated list of databases to backup - `--dump-all` - Dump all databases - `--retention-amount-local ` - Number of backups to retain locally - `--retention-days-local ` - Days to retain backups locally - `--retention-storage-local ` - Max storage for local backups (e.g., '1GB', '500MB') - `--retention-amount-s3 ` - Number of backups to retain in S3 - `--retention-days-s3 ` - Days to retain backups in S3 - `--retention-storage-s3 ` - Max storage for S3 backups (e.g., '1GB', '500MB') - `--timeout ` - Backup timeout in seconds - `--disable-local` - Disable local backup storage - `coolify database backup update ` - Update a backup configuration - `coolify database backup delete ` - Delete a backup configuration - `coolify database backup trigger ` - Trigger an immediate backup - `coolify database backup executions ` - List backup executions - `coolify database backup delete-execution ` - Delete a backup execution ### Services - `coolify service list` - List all services - `coolify service get ` - Get service details - `coolify service start ` - Start a service - `coolify service stop ` - Stop a service - `coolify service restart ` - Restart a service - `coolify service delete ` - Delete a service #### Service Environment Variables - `coolify service env list ` - List all environment variables - `coolify service env get ` - Get a specific environment variable - `coolify service env create ` - Create a new environment variable - Same flags as application environment variables - `coolify service env update ` - Update an environment variable - `coolify service env delete ` - Delete an environment variable - `coolify service env sync ` - Sync environment variables from a .env file - `--file ` - 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 ` - Deploy a resource by UUID - `-f, --force` - Force deployment - `coolify deploy name ` - Deploy a resource by name - `-f, --force` - Force deployment - `coolify deploy batch ` - Deploy multiple resources at once - `-f, --force` - Force all deployments - `coolify deploy list` - List all deployments - `coolify deploy get ` - Get deployment details - `coolify deploy cancel ` - Cancel a deployment - `-f, --force` - Skip confirmation prompt ### GitHub Apps - `coolify github list` - List all GitHub App integrations - `coolify github get ` - Get GitHub App details - `coolify github create` - Create a new GitHub App integration - `--name ` - GitHub App name (required) - `--api-url ` - GitHub API URL (required, e.g., https://api.github.com) - `--html-url ` - GitHub HTML URL (required, e.g., https://github.com) - `--app-id ` - GitHub App ID (required) - `--installation-id ` - GitHub Installation ID (required) - `--client-id ` - GitHub OAuth Client ID (required) - `--client-secret ` - GitHub OAuth Client Secret (required) - `--private-key-uuid ` - UUID of existing private key (required) - `--organization ` - GitHub organization - `--custom-user ` - Custom user for SSH (default: git) - `--custom-port ` - Custom port for SSH (default: 22) - `--webhook-secret ` - GitHub Webhook Secret - `--system-wide` - Is this app system-wide (cloud only) - `coolify github update ` - Update a GitHub App - `coolify github delete ` - Delete a GitHub App - `-f, --force` - Skip confirmation prompt - `coolify github repos ` - List repositories accessible by a GitHub App - `coolify github branches ` - List branches for a repository ### Teams - `coolify team list` - List all teams - `coolify team get ` - 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 ` - Add a new private key - Use `@filename` to read from file: `coolify private-key add mykey @~/.ssh/id_rsa` - `coolify private-key remove ` - Remove a private key ## Global Flags All commands support these global flags: - `--context ` - Use a specific context instead of default - `--host ` - Override the Coolify instance hostname - `--token ` - Override the authentication token - `--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 ```bash # Add multiple contexts coolify context add prod https://prod.coolify.io coolify context add staging https://staging.coolify.io coolify context add dev https://dev.coolify.io # 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 ```bash # List all applications coolify app list # Get application details coolify app get # Manage application lifecycle coolify app start coolify app stop coolify app restart # View application logs coolify app logs # Environment variables coolify app env list coolify app env create --key API_KEY --value secret123 # Sync from .env file (updates existing, creates new, keeps others unchanged) coolify app env sync --file .env coolify app env sync --file .env.production --build-time --preview ``` ### Database Management ```bash # List databases coolify database list # Create a PostgreSQL database coolify database create postgresql \ --server-uuid \ --project-uuid \ --name mydb \ --instant-deploy # Manage database lifecycle coolify database start coolify database stop coolify database restart # Backup management coolify database backup list coolify database backup create \ --frequency "0 2 * * *" \ --enabled \ --save-s3 \ --retention-days-locally 7 coolify database backup trigger ``` ### Service Management ```bash # List services coolify service list # Get service details coolify service get # Manage services coolify service start coolify service restart # Environment variables (same as applications) coolify service env sync --file .env ``` ### Deploy Workflows ```bash # 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 # Traditional UUID deployment still works coolify deploy uuid abc123-def456-... # Monitor deployments coolify deploy list coolify deploy get # Cancel a deployment coolify deploy cancel ``` ### GitHub Apps Integration ```bash # 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 # List repositories accessible by the app coolify github repos # List branches for a repository coolify github branches owner/repo # Delete a GitHub App coolify github delete ``` ### Team Management ```bash # List teams coolify team list # Get current team coolify team current # List team members coolify team members list ``` ### Server Management ```bash # List servers in production coolify --context=prod server list # Add a server with validation coolify server add myserver 192.168.1.100 --validate # Get server details with resources coolify server get --resources ``` ## Output Formats The CLI supports three output formats: ```bash # 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 ```