diff --git a/README.md b/README.md index 933a69f..a95acce 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,9 @@ You can change the default context with `coolify context use ` or ### 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 @@ -123,6 +126,9 @@ Commands can use `server` or `servers` interchangeably. ### 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 @@ -154,6 +160,60 @@ Commands can use `server` or `servers` interchangeably. - `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) + +#### 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 @@ -162,21 +222,26 @@ Commands can use `server` or `servers` interchangeably. - `--key ` - Variable key (required) - `--value ` - Variable value (required) - `--preview` - Available in preview deployments - - `--build-time` - Available at build time + - `--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 + - `--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 - - `--runtime` - Available at runtime - `coolify app env delete ` - Delete an environment variable + - `--force` - Skip confirmation prompt - `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 + - `-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. @@ -228,23 +293,62 @@ Commands can use `server` or `servers` interchangeably. - `--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-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-storage-s3 ` - Max storage for S3 backups (e.g., '1GB', '500MB') + - `--retention-max-storage-s3 ` - Max storage for S3 backups (e.g., '1GB', '500MB') - `--timeout ` - Backup timeout in seconds - - `--disable-local` - Disable local backup storage + - `--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 @@ -254,33 +358,43 @@ Commands can use `server` or `servers` interchangeably. - `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 + - 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 + - `--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 - - `--runtime` - Available at runtime - `coolify service env delete ` - Delete an environment variable + - `--force` - Skip confirmation prompt - `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 + - `-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 + - Same flags 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 - - `-f, --force` - Force deployment + - `--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 - - `-f, --force` - Force deployment + - `--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 - - `-f, --force` - Force all deployments + - `--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 @@ -322,20 +436,33 @@ Commands can use `server` or `servers` interchangeably. 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 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 +### Coolify v5 Mesh (alpha) + +These commands are an early preview of Coolify v5 fleet provisioning. Unlike the rest of the CLI they don't talk to the Coolify API: they connect to your servers over SSH to set up a WireGuard mesh with Podman and to manage cross-host container firewall rules. + +- `coolify init plan` - Show WireGuard mesh changes without applying them +- `coolify init bootstrap` - First-time mesh install across all servers +- `coolify init extend` - Add new hosts to an existing mesh (existing hosts stay untouched) +- `coolify init upgrade` - Bump agent binary versions on every host +- `coolify firewall containers` - List containers on the Coolify mesh bridge across all servers +- `coolify firewall list` - List installed allow rules across all servers +- `coolify firewall allow` - Add an allow rule between containers +- `coolify firewall revoke` - Remove an allow rule + +Both command trees require `--servers` and `--ssh-key` and take many more flags; run `coolify init --help` / `coolify firewall --help` or see [`llms-full.txt`](./llms-full.txt) for the full reference. + ## 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 @@ -369,6 +496,14 @@ 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 @@ -423,6 +558,12 @@ 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