coolify_applications
Manage applications in Coolify by performing CRUD operations: list, create, update, get, and delete applications across various types including public, private GitHub, Docker, and Docker Compose deployments.
Instructions
Application CRUD operations - list, create, update, get, and delete applications of all types
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list (list all applications), create (create new application), update (update application), get (get application by UUID), delete (delete application) | |
| type | No | Application type (required for create action): public, private_github, private_deploy_key, dockerfile, dockerimage, dockercompose | |
| uuid | No | Application UUID (required for update, get, delete actions) | |
| name | No | Application name (required for create, optional for update) | |
| description | No | Application description (optional for create and update) | |
| page | No | Page number (optional for list action) | |
| per_page | No | Items per page (optional for list action) | |
| project_uuid | No | Project UUID (required for create) | |
| server_uuid | No | Server UUID (required for create) | |
| environment_name | No | Environment name (required for create) | |
| git_repository | No | Git repository URL (required for create) | |
| git_branch | No | Git branch (optional for create, default: main) | |
| build_pack | No | Build pack type (required for create) | |
| ports_exposes | No | Port configuration (required for create) | |
| github_app_uuid | No | GitHub App UUID (required for private_github type) | |
| private_key_uuid | No | Private key UUID (required for private_deploy_key type) | |
| docker_registry_image_name | No | Docker registry image name (required for dockerimage type) | |
| docker_registry_image_tag | No | Docker registry image tag (optional for dockerimage type, default: latest) | |
| docker_compose_raw | No | Docker Compose configuration (required for dockercompose type) | |
| dockerfile_location | No | Dockerfile location (optional for dockerfile type, default: /Dockerfile) | |
| destination_uuid | No | Destination UUID (optional for private_deploy_key type) | |
| domains | No | Domains configuration (optional for private_deploy_key type) | |
| git_commit_sha | No | Git commit SHA (optional for private_deploy_key type) | |
| is_static | No | Is static application (optional for private_deploy_key type) | |
| static_image | No | Static image (optional for private_deploy_key type) | |
| install_command | No | Install command (optional for private_deploy_key type) | |
| build_command | No | Build command (optional for private_deploy_key type) | |
| start_command | No | Start command (optional for private_deploy_key type) | |
| ports_mappings | No | Port mappings (optional for private_deploy_key type) | |
| base_directory | No | Base directory (optional for private_deploy_key type) | |
| publish_directory | No | Publish directory (optional for private_deploy_key type) | |
| health_check_enabled | No | Enable health checks (optional for private_deploy_key type) | |
| health_check_path | No | Health check path (optional for private_deploy_key type) | |
| health_check_port | No | Health check port (optional for private_deploy_key type) | |
| health_check_host | No | Health check host (optional for private_deploy_key type) | |
| health_check_method | No | Health check method (optional for private_deploy_key type) | |
| health_check_return_code | No | Health check return code (optional for private_deploy_key type) | |
| health_check_scheme | No | Health check scheme (optional for private_deploy_key type) | |
| health_check_response_text | No | Health check response text (optional for private_deploy_key type) | |
| health_check_interval | No | Health check interval (optional for private_deploy_key type) | |
| health_check_timeout | No | Health check timeout (optional for private_deploy_key type) | |
| health_check_retries | No | Health check retries (optional for private_deploy_key type) | |
| health_check_start_period | No | Health check start period (optional for private_deploy_key type) | |
| limits_memory | No | Memory limits (optional for private_deploy_key type) | |
| limits_memory_swap | No | Memory swap limits (optional for private_deploy_key type) | |
| limits_memory_swappiness | No | Memory swappiness (optional for private_deploy_key type) | |
| limits_memory_reservation | No | Memory reservation (optional for private_deploy_key type) | |
| limits_cpus | No | CPU limits (optional for private_deploy_key type) | |
| limits_cpuset | No | CPU set limits (optional for private_deploy_key type) | |
| limits_cpu_shares | No | CPU shares (optional for private_deploy_key type) | |
| custom_labels | No | Custom labels (optional for private_deploy_key type) | |
| custom_docker_run_options | No | Custom Docker run options (optional for private_deploy_key type) | |
| post_deployment_command | No | Post deployment command (optional for private_deploy_key type) | |
| post_deployment_command_container | No | Post deployment command container (optional for private_deploy_key type) | |
| pre_deployment_command | No | Pre deployment command (optional for private_deploy_key type) | |
| pre_deployment_command_container | No | Pre deployment command container (optional for private_deploy_key type) | |
| manual_webhook_secret_github | No | GitHub webhook secret (optional for private_deploy_key type) | |
| manual_webhook_secret_gitlab | No | GitLab webhook secret (optional for private_deploy_key type) | |
| manual_webhook_secret_bitbucket | No | Bitbucket webhook secret (optional for private_deploy_key type) | |
| manual_webhook_secret_gitea | No | Gitea webhook secret (optional for private_deploy_key type) | |
| redirect | No | Redirect configuration (optional for private_deploy_key type) | |
| instant_deploy | No | Instant deploy (optional for private_deploy_key type) | |
| dockerfile | No | Dockerfile content (optional for private_deploy_key type) | |
| docker_compose_location | No | Docker Compose location (optional for private_deploy_key type) | |
| docker_compose_custom_start_command | No | Docker Compose custom start command (optional for private_deploy_key type) | |
| docker_compose_custom_build_command | No | Docker Compose custom build command (optional for private_deploy_key type) | |
| docker_compose_domains | No | Docker Compose domains (optional for private_deploy_key type) | |
| watch_paths | No | Watch paths (optional for private_deploy_key type) | |
| use_build_server | No | Use build server (optional for private_deploy_key type) | |
| is_http_basic_auth_enabled | No | Enable HTTP basic auth (optional for private_deploy_key type) | |
| http_basic_auth_username | No | HTTP basic auth username (optional for private_deploy_key type) | |
| http_basic_auth_password | No | HTTP basic auth password (optional for private_deploy_key type) | |
| connect_to_docker_network | No | Connect to Docker network (optional for private_deploy_key type) | |
| force_domain_override | No | Force domain override (optional for private_deploy_key type) |
Implementation Reference
- src/handlers.ts:113-143 (handler)Handler function that executes the coolify_applications tool logic based on the action (list, create, get, update, delete). Uses API client to interact with Coolify endpoints.// Application Management async applications(action: string, args: any) { switch (action) { case 'list': const queryString = this.apiClient.buildQueryString(args); const response = await this.apiClient.get(`/applications?${queryString}`); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }] }; case 'create': if (!args.type) throw new Error('Application type is required for create action'); const endpoint = this.getApplicationCreateEndpoint(args.type); const createResponse = await this.apiClient.post(endpoint, args); return { content: [{ type: 'text', text: JSON.stringify(createResponse.data, null, 2) }] }; case 'get': if (!args.uuid) throw new Error('Application UUID is required for get action'); const getResponse = await this.apiClient.get(`/applications/${args.uuid}`); return { content: [{ type: 'text', text: JSON.stringify(getResponse.data, null, 2) }] }; case 'update': if (!args.uuid) throw new Error('Application UUID is required for update action'); const updateResponse = await this.apiClient.patch(`/applications/${args.uuid}`, { name: args.name, description: args.description, }); return { content: [{ type: 'text', text: JSON.stringify(updateResponse.data, null, 2) }] }; case 'delete': if (!args.uuid) throw new Error('Application UUID is required for delete action'); await this.apiClient.delete(`/applications/${args.uuid}`); return { content: [{ type: 'text', text: 'Application deleted successfully' }] }; default: throw new Error(`Unknown applications action: ${action}`); } }
- src/handlers.ts:145-155 (helper)Supporting utility method used by the applications handler to map application types to specific API create endpoints.private getApplicationCreateEndpoint(type: string): string { switch (type) { case 'public': return '/applications/public'; case 'private_github': return '/applications/private-github-app'; case 'private_deploy_key': return '/applications/private-deploy-key'; case 'dockerfile': return '/applications/dockerfile'; case 'dockerimage': return '/applications/dockerimage'; case 'dockercompose': return '/applications/dockercompose'; default: throw new Error(`Unknown application type: ${type}`); } }
- src/index.ts:102-103 (registration)Registration/dispatch point in the main tool call handler switch statement that routes 'coolify_applications' calls to the applications handler method.case 'coolify_applications': return await this.handlers.applications(args.action, args);
- src/tools.ts:107-224 (schema)Input schema definition for the coolify_applications tool, including all parameters for different actions and application types.{ name: 'coolify_applications', description: 'Application CRUD operations - list, create, update, get, and delete applications of all types', inputSchema: { type: 'object', properties: { action: { type: 'string', enum: ['list', 'create', 'update', 'get', 'delete'], description: 'Action to perform: list (list all applications), create (create new application), update (update application), get (get application by UUID), delete (delete application)' }, type: { type: 'string', enum: ['public', 'private_github', 'private_deploy_key', 'dockerfile', 'dockerimage', 'dockercompose'], description: 'Application type (required for create action): public, private_github, private_deploy_key, dockerfile, dockerimage, dockercompose' }, uuid: { type: 'string', description: 'Application UUID (required for update, get, delete actions)' }, name: { type: 'string', description: 'Application name (required for create, optional for update)' }, description: { type: 'string', description: 'Application description (optional for create and update)' }, page: { type: 'number', description: 'Page number (optional for list action)' }, per_page: { type: 'number', description: 'Items per page (optional for list action)' }, // Common application creation parameters project_uuid: { type: 'string', description: 'Project UUID (required for create)' }, server_uuid: { type: 'string', description: 'Server UUID (required for create)' }, environment_name: { type: 'string', description: 'Environment name (required for create)' }, git_repository: { type: 'string', description: 'Git repository URL (required for create)' }, git_branch: { type: 'string', description: 'Git branch (optional for create, default: main)' }, build_pack: { type: 'string', enum: ['nixpacks', 'static', 'dockerfile', 'dockercompose'], description: 'Build pack type (required for create)' }, ports_exposes: { type: 'string', description: 'Port configuration (required for create)' }, // Type-specific parameters github_app_uuid: { type: 'string', description: 'GitHub App UUID (required for private_github type)' }, private_key_uuid: { type: 'string', description: 'Private key UUID (required for private_deploy_key type)' }, docker_registry_image_name: { type: 'string', description: 'Docker registry image name (required for dockerimage type)' }, docker_registry_image_tag: { type: 'string', description: 'Docker registry image tag (optional for dockerimage type, default: latest)' }, docker_compose_raw: { type: 'string', description: 'Docker Compose configuration (required for dockercompose type)' }, dockerfile_location: { type: 'string', description: 'Dockerfile location (optional for dockerfile type, default: /Dockerfile)' }, // Additional optional parameters for private_deploy_key type destination_uuid: { type: 'string', description: 'Destination UUID (optional for private_deploy_key type)' }, domains: { type: 'string', description: 'Domains configuration (optional for private_deploy_key type)' }, git_commit_sha: { type: 'string', description: 'Git commit SHA (optional for private_deploy_key type)' }, is_static: { type: 'boolean', description: 'Is static application (optional for private_deploy_key type)' }, static_image: { type: 'string', description: 'Static image (optional for private_deploy_key type)' }, install_command: { type: 'string', description: 'Install command (optional for private_deploy_key type)' }, build_command: { type: 'string', description: 'Build command (optional for private_deploy_key type)' }, start_command: { type: 'string', description: 'Start command (optional for private_deploy_key type)' }, ports_mappings: { type: 'string', description: 'Port mappings (optional for private_deploy_key type)' }, base_directory: { type: 'string', description: 'Base directory (optional for private_deploy_key type)' }, publish_directory: { type: 'string', description: 'Publish directory (optional for private_deploy_key type)' }, health_check_enabled: { type: 'boolean', description: 'Enable health checks (optional for private_deploy_key type)' }, health_check_path: { type: 'string', description: 'Health check path (optional for private_deploy_key type)' }, health_check_port: { type: 'string', description: 'Health check port (optional for private_deploy_key type)' }, health_check_host: { type: 'string', description: 'Health check host (optional for private_deploy_key type)' }, health_check_method: { type: 'string', description: 'Health check method (optional for private_deploy_key type)' }, health_check_return_code: { type: 'number', description: 'Health check return code (optional for private_deploy_key type)' }, health_check_scheme: { type: 'string', description: 'Health check scheme (optional for private_deploy_key type)' }, health_check_response_text: { type: 'string', description: 'Health check response text (optional for private_deploy_key type)' }, health_check_interval: { type: 'number', description: 'Health check interval (optional for private_deploy_key type)' }, health_check_timeout: { type: 'number', description: 'Health check timeout (optional for private_deploy_key type)' }, health_check_retries: { type: 'number', description: 'Health check retries (optional for private_deploy_key type)' }, health_check_start_period: { type: 'number', description: 'Health check start period (optional for private_deploy_key type)' }, limits_memory: { type: 'string', description: 'Memory limits (optional for private_deploy_key type)' }, limits_memory_swap: { type: 'string', description: 'Memory swap limits (optional for private_deploy_key type)' }, limits_memory_swappiness: { type: 'number', description: 'Memory swappiness (optional for private_deploy_key type)' }, limits_memory_reservation: { type: 'string', description: 'Memory reservation (optional for private_deploy_key type)' }, limits_cpus: { type: 'string', description: 'CPU limits (optional for private_deploy_key type)' }, limits_cpuset: { type: 'string', description: 'CPU set limits (optional for private_deploy_key type)' }, limits_cpu_shares: { type: 'number', description: 'CPU shares (optional for private_deploy_key type)' }, custom_labels: { type: 'string', description: 'Custom labels (optional for private_deploy_key type)' }, custom_docker_run_options: { type: 'string', description: 'Custom Docker run options (optional for private_deploy_key type)' }, post_deployment_command: { type: 'string', description: 'Post deployment command (optional for private_deploy_key type)' }, post_deployment_command_container: { type: 'string', description: 'Post deployment command container (optional for private_deploy_key type)' }, pre_deployment_command: { type: 'string', description: 'Pre deployment command (optional for private_deploy_key type)' }, pre_deployment_command_container: { type: 'string', description: 'Pre deployment command container (optional for private_deploy_key type)' }, manual_webhook_secret_github: { type: 'string', description: 'GitHub webhook secret (optional for private_deploy_key type)' }, manual_webhook_secret_gitlab: { type: 'string', description: 'GitLab webhook secret (optional for private_deploy_key type)' }, manual_webhook_secret_bitbucket: { type: 'string', description: 'Bitbucket webhook secret (optional for private_deploy_key type)' }, manual_webhook_secret_gitea: { type: 'string', description: 'Gitea webhook secret (optional for private_deploy_key type)' }, redirect: { type: 'string', description: 'Redirect configuration (optional for private_deploy_key type)' }, instant_deploy: { type: 'boolean', description: 'Instant deploy (optional for private_deploy_key type)' }, dockerfile: { type: 'string', description: 'Dockerfile content (optional for private_deploy_key type)' }, docker_compose_location: { type: 'string', description: 'Docker Compose location (optional for private_deploy_key type)' }, docker_compose_custom_start_command: { type: 'string', description: 'Docker Compose custom start command (optional for private_deploy_key type)' }, docker_compose_custom_build_command: { type: 'string', description: 'Docker Compose custom build command (optional for private_deploy_key type)' }, docker_compose_domains: { type: 'array', items: { type: 'string' }, description: 'Docker Compose domains (optional for private_deploy_key type)' }, watch_paths: { type: 'string', description: 'Watch paths (optional for private_deploy_key type)' }, use_build_server: { type: 'boolean', description: 'Use build server (optional for private_deploy_key type)' }, is_http_basic_auth_enabled: { type: 'boolean', description: 'Enable HTTP basic auth (optional for private_deploy_key type)' }, http_basic_auth_username: { type: 'string', description: 'HTTP basic auth username (optional for private_deploy_key type)' }, http_basic_auth_password: { type: 'string', description: 'HTTP basic auth password (optional for private_deploy_key type)' }, connect_to_docker_network: { type: 'boolean', description: 'Connect to Docker network (optional for private_deploy_key type)' }, force_domain_override: { type: 'boolean', description: 'Force domain override (optional for private_deploy_key type)' }, }, required: ['action'], }, },