# CLI for [Coolify](https://coolify.io) API ## Installation ### Install script (recommended) #### Linux/macOS ```bash 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) ```bash brew install coollabsio/coolify-cli/coolify-cli ``` #### Windows (PowerShell) ```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): ```powershell $env:COOLIFY_USER_INSTALL=1; irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex ``` For a specific version: ```powershell $env:COOLIFY_VERSION='v1.0.0'; irm https://raw.githubusercontent.com/coollabsio/coolify-cli/main/scripts/install.ps1 | iex ``` ### Using `go install` ```bash 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 1. Get a `` from your Coolify dashboard (Cloud or self-hosted) at `/security/api-tokens` ### Cloud 2. Add the token with `coolify context set-token cloud ` ### Self-hosted 2. Add the token with `coolify context add -d ` > Replace `` with the name you want to give to the context. > > Replace `` 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 - Quick instructions: [`llms.txt`](./llms.txt) - Full command catalog: [`llms-full.txt`](./llms-full.txt) - Regenerate both files: ```bash go run ./coolify docs llms ``` ## Change default context You can change the default context with `coolify context use ` or `coolify context set-default ` ## Currently Supported Commands ### Update - `coolify update` - Update the CLI to the latest version ### Version - `coolify version` - Show the current CLI version ### Configuration - `coolify config` - Show configuration file location ### Instance Email Settings - `coolify settings email get` - Get instance-wide SMTP and Resend settings - `coolify settings email update --json ''` - Update instance email settings using a root-team admin/owner token with `write:sensitive` - Example: `coolify settings email update --json '{"smtp_ehlo_domain":"coolify.example.com"}'` - Set the EHLO domain to `null` to use the system default ### Shell Completion - `coolify completion ` - Generate shell completion script - Supported shells: `bash`, `zsh`, `fish`, `powershell` ### Context Management - `coolify context list` - List all configured contexts - `coolify context add ` - Add a new context - `-d, --default` - Set as default context - `-f, --force` - Force overwrite if context already exists - `coolify context delete ` - Delete a context - `coolify context get ` - Get details of a specific context - `coolify context set-token ` - Update the API token for a context - `coolify context set-default ` - Set a context as the default - `coolify context update ` - Update a context's properties - `--name ` - Change the context name - `--url ` - Change the context URL - `--token ` - Change the context token - `coolify context use ` - 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 ` - 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 - `coolify server destinations list ` - List a server's destinations - `coolify server destinations create ` - Create a server destination - `coolify server hetzner|digitalocean|vultr` - List provider options and provision a server ### Projects - `coolify projects list` - List all projects - `coolify projects get ` - Get project environments - `coolify projects create` - Create a new project - `--name ` - Project name (required) - `--description ` - Project description ### 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) - `--compose-domain =[,]` - Docker Compose service domains (repeatable; update replaces the existing mapping) - `--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 - `-f, --follow` - Follow log output (like tail -f) - `-n, --lines ` - Number of log lines to retrieve (default: 100) - `--show-timestamps` - Include timestamps in logs - `--service ` - Docker Compose service name (select one container in multi-service compose apps) - `coolify app move --environment-uuid ` - Move an application to another environment - `coolify app tag list|add|remove` - Manage application tags - Git-backed application create variants (`public`, `github`, and `deploy-key`) and `app update` support repeatable `--compose-domain =[,]` flags for Docker Compose routing. On update, the supplied entries replace the existing mapping. - All application create variants support `--tag` and `--tags`; create and update expose the full application settings surface. #### Application Creation - `coolify app create public` - Create an application from a public git repository - `--server-uuid ` - Server UUID (required) - `--project-uuid ` - Project UUID (required) - `--environment-name ` - Environment name (or use `--environment-uuid `) - `--git-repository ` - Git repository URL (required) - `--git-branch ` - Git branch (required) - `--build-pack ` - Build pack: `nixpacks`, `static`, `dockerfile`, `dockercompose` (required) - `--ports-exposes ` - Exposed ports, e.g., '3000' or '3000,8080' (required) - `--domains ` - Domain(s) for the application - `--instant-deploy` - Deploy immediately after creation - More flags: `--name`, `--description`, `--base-directory`, `--publish-directory`, `--build-command`, `--start-command`, `--install-command`, `--health-check-enabled`, `--health-check-path`, `--limits-memory`, `--limits-cpus`, `--ports-mappings`, `--git-commit-sha`, `--destination-uuid`, `--dockerfile-target-build` - `coolify app create github` - Create an application from a private repository using a GitHub App - Same flags as `public`, plus `--github-app-uuid ` (required) - `--git-repository` takes the `owner/repo` format - `coolify app create deploy-key` - Create an application from a private repository using an SSH deploy key - Same flags as `public`, plus `--private-key-uuid ` (required) - `--git-repository` takes an SSH URL, e.g., `git@github.com:owner/repo.git` - `coolify app create dockerfile` - Create an application from a custom Dockerfile - `--dockerfile ` - Dockerfile content (required) - `--server-uuid ` - Server UUID (required) - `--project-uuid ` - Project UUID (required) - `--environment-name ` - Environment name (or use `--environment-uuid `) - `coolify app create dockerimage` - Create an application from a pre-built Docker image - `--docker-registry-image-name ` - Docker image name from registry (required) - `--docker-registry-image-tag ` - Docker image tag (defaults to `latest`) - `--ports-exposes ` - Exposed ports (required) - `--server-uuid ` - Server UUID (required) - `--project-uuid ` - Project UUID (required) - `--environment-name ` - Environment name (or use `--environment-uuid `) #### Application Previews - `coolify app previews delete ` - Delete a preview deployment - `--force` - Skip confirmation prompt #### Application Storage - `coolify app storage list ` - List all storages for an application - `coolify app storage create ` - Create a storage for an application - `--type ` - Storage type: `persistent` or `file` (required) - `--mount-path ` - Mount path inside the container (required) - `--name ` - Volume name (persistent only) - `--host-path ` - Host path (persistent only) - `--content ` - File content (file only) - `--is-directory` - Whether this is a directory mount (file only) - `--fs-path ` - Host directory path (file only, required when `--is-directory` is set) - `coolify app storage update ` - Update a storage for an application - `--uuid ` - Storage UUID (required, use `storage list` to find) - `--type ` - Storage type: `persistent` or `file` (required) - `--is-preview-suffix-enabled` - Enable preview suffix for this storage - Other flags same as `create` - `coolify app storage delete ` - Delete a storage from an application #### 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 (default: true) - `--runtime` - Available at runtime (default: true) - `--comment ` - Comment for the environment variable - `--is-literal` - Treat value as literal (don't interpolate variables) - `--is-multiline` - Value is multiline - `coolify app env update ` - Update an environment variable - `--value ` - Variable value (required) - `--key ` - New variable key (optional, for renaming) - `--preview` - Available in preview deployments - `--build-time` - Available at build time (default: true) - `--runtime` - Available at runtime (default: true) - `--comment ` - Comment for the environment variable - `--is-literal` - Treat value as literal (don't interpolate variables) - `--is-multiline` - Value is multiline - `coolify app env delete ` - Delete an environment variable - `--force` - Skip confirmation prompt - `coolify app env sync ` - Sync environment variables from a .env file - `-f, --file ` - Path to .env file (required) - `--build-time` - Make all variables available at build time (default: true) - `--runtime` - Make all variables available at runtime (default: true) - `--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 - `coolify database logs ` - Get database logs - `coolify database move --environment-uuid ` - Move a database to another environment - `coolify database tag list|add|remove` - Manage database tags - Database creation supports repeatable `--tag` and comma-separated `--tags`. #### 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-locally ` - Number of backups to retain locally - `--retention-days-locally ` - Days to retain backups locally - `--retention-max-storage-locally ` - 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-max-storage-s3 ` - Max storage for S3 backups (e.g., '1GB', '500MB') - `--timeout ` - Backup timeout in seconds - `--disable-local-backup` - 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 #### Database Environment Variables - `coolify database env list ` - List all environment variables - `coolify database env get ` - Get a specific environment variable - `coolify database env create ` - Create a new environment variable - `--key ` - Variable key (required) - `--value ` - Variable value (required) - `--comment ` - Comment for the environment variable - `--is-literal` - Treat value as literal (don't interpolate variables) - `--is-multiline` - Value is multiline - `--is-shown-once` - Only show value once - `coolify database env update ` - Update an environment variable - `--value ` - New variable value (required) - `--key ` - New variable key (optional, for renaming) - Other flags same as `create` - `coolify database env delete ` - Delete an environment variable - `--force` - Skip confirmation prompt - `coolify database env sync ` - Sync environment variables from a .env file - `-f, --file ` - Path to .env file (required) - `--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. #### Database Storage - `coolify database storage list ` - List all storages for a database - `coolify database storage create ` - Create a storage for a database - Same flags as `coolify app storage create` - `coolify database storage update ` - Update a storage for a database - Same flags as `coolify app storage update` - `coolify database storage delete ` - Delete a storage from a database ### Services - `coolify service list` - List all services - `coolify service get ` - Get service details - `coolify service create ` - Create a new one-click service (e.g., `wordpress-with-mysql`, `ghost`, `n8n`) - `--list-types` - List all available service types - `--server-uuid ` - Server UUID (required) - `--project-uuid ` - Project UUID (required) - `--environment-name ` - Environment name (or use `--environment-uuid `) - `--name ` - Service name - `--description ` - Service description - `--docker-compose ` - Custom Docker Compose content (for advanced customization) - `--destination-uuid ` - Destination UUID if server has multiple destinations - `--instant-deploy` - Deploy immediately after creation - `coolify service start ` - Start a service - `coolify service stop ` - Stop a service - `coolify service restart ` - Restart a service - `coolify service delete ` - Delete a service - `coolify service logs --sub-service-name ` - Get logs for a service application or database - `coolify service move --environment-uuid ` - Move a service to another environment - `coolify service tag list|add|remove` - Manage service tags - Service creation supports repeatable `--tag` and comma-separated `--tags`. #### Service Applications - `coolify service application list ` - List applications in a service - `coolify service application get ` - Get a service application - `coolify service application update ` - Update a service application - `coolify service application logs ` - Get application logs - `coolify service application start|restart|stop ` - Manage its lifecycle #### Service Databases - `coolify service database list ` - List databases in a service - `coolify service database get ` - Get a service database - `coolify service database update ` - Update metadata, image, log drain, or public access - `coolify service database logs ` - Get database logs - `coolify service database start|restart|stop ` - Manage its lifecycle #### 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, except `--preview` (not available for services) - `coolify service env update ` - Update an environment variable - `--value ` - Variable value (required) - `--key ` - New variable key (optional, for renaming) - `--build-time` - Available at build time (default: true) - `--runtime` - Available at runtime (default: true) - `--comment ` - Comment for the environment variable - `--is-literal` - Treat value as literal (don't interpolate variables) - `--is-multiline` - Value is multiline - `coolify service env delete ` - Delete an environment variable - `--force` - Skip confirmation prompt - `coolify service env sync ` - Sync environment variables from a .env file - `-f, --file ` - Path to .env file (required) - `--build-time` - Make all variables available at build time (default: true) - `--runtime` - Make all variables available at runtime (default: true) - `--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. #### Service Storage - `coolify service storage list ` - List all storages for a service - `coolify service storage create ` - Create a storage for a service - `--resource-uuid ` - UUID of the service application or database that owns the storage (required) - Other flags are the same as `coolify app storage create` - `coolify service storage update ` - Update a storage for a service - Same flags as `coolify app storage update` - `coolify service storage delete ` - Delete a storage from a service ### Deployments - `coolify deploy uuid ` - Deploy a resource by UUID - `--force` - Force deployment - `--pull-request-id ` - Pull request ID for preview deployments - `--docker-tag ` - Docker image tag override for the deployment (requires Coolify `4.0.0-beta.471+`) - `coolify deploy name ` - Deploy a resource by name - `--force` - Force deployment - `--pull-request-id ` - Pull request ID for preview deployments - `--docker-tag ` - Docker image tag override for the deployment (requires Coolify `4.0.0-beta.471+`) - `coolify deploy batch ` - Deploy multiple resources at once - `--force` - Force all deployments - `--pull-request-id ` - Pull request ID for preview deployments - `--docker-tag ` - Docker image tag override for the deployment (requires Coolify `4.0.0-beta.471+`) - `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 (optional; defaults to GitHub's public API) - `--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 ### Tags - `coolify tag list` - List all tags for the current team ### Destinations - `coolify destination list [--server ]` - List Docker network destinations - `coolify destination get ` - Get a destination - `coolify destination create --server --network [--type standalone|swarm]` - Create a destination - `coolify destination delete ` - Delete an unused destination ### Cloud Provider Tokens - `coolify cloud-token list|get|create|update|delete|validate` - Manage Hetzner, DigitalOcean, and Vultr API tokens - Token values are redacted by default. `--show-sensitive` can reveal them only when the Coolify API token has sensitive-data permission. ### 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 - Pass the key content directly or a path to a key 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 - `--token ` - Override the authentication token - `--format ` - Output format: `table` (default), `json`, or `pretty` - `-s, --show-sensitive` - Show sensitive information (tokens, IPs, etc.) - `--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 # Create an application from a public git repository coolify app create public --server-uuid --project-uuid --environment-name production \ --git-repository "https://github.com/user/repo" --git-branch main --build-pack nixpacks --ports-exposes 3000 # Create an application from a pre-built Docker image coolify app create dockerimage --server-uuid --project-uuid --environment-name production \ --docker-registry-image-name "nginx:latest" --ports-exposes 80 # Manage application lifecycle coolify app start coolify app stop coolify app restart # View application logs coolify app logs # View logs for one service in a Docker Compose application coolify app logs --service web # 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 # See all available one-click service types coolify service create --list-types # Create a one-click service coolify service create wordpress-with-mysql --server-uuid= --project-uuid= --environment-name=production # 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 # 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 # 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 ``` ## 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 ```bash # 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