openapi: 3.0.0 info: title: Coolify version: '0.1' servers: - url: 'https://app.coolify.io/api/v1' paths: /applications: get: tags: - Applications summary: List description: 'List all applications.' operationId: 02978e79fc0b54d573b2359f2a1f7d86 responses: '200': description: 'Get all applications.' content: application/json: schema: type: array items: $ref: '#/components/schemas/Application' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] patch: tags: - Applications summary: Update description: 'Update application by UUID.' operationId: ff28a22d25b1f658c40b54d2073abbca requestBody: description: 'Application updated.' required: true content: application/json: schema: properties: project_uuid: type: string description: 'The project UUID.' server_uuid: type: string description: 'The server UUID.' environment_name: type: string description: 'The environment name.' github_app_uuid: type: string description: 'The Github App UUID.' git_repository: type: string description: 'The git repository URL.' git_branch: type: string description: 'The git branch.' ports_exposes: type: string description: 'The ports to expose.' destination_uuid: type: string description: 'The destination UUID.' build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] description: 'The build pack type.' name: type: string description: 'The application name.' description: type: string description: 'The application description.' domains: type: string description: 'The application domains.' git_commit_sha: type: string description: 'The git commit SHA.' docker_registry_image_name: type: string description: 'The docker registry image name.' docker_registry_image_tag: type: string description: 'The docker registry image tag.' is_static: type: boolean description: 'The flag to indicate if the application is static.' install_command: type: string description: 'The install command.' build_command: type: string description: 'The build command.' start_command: type: string description: 'The start command.' ports_mappings: type: string description: 'The ports mappings.' base_directory: type: string description: 'The base directory for all commands.' publish_directory: type: string description: 'The publish directory.' health_check_enabled: type: boolean description: 'Health check enabled.' health_check_path: type: string description: 'Health check path.' health_check_port: type: string nullable: true description: 'Health check port.' health_check_host: type: string nullable: true description: 'Health check host.' health_check_method: type: string description: 'Health check method.' health_check_return_code: type: integer description: 'Health check return code.' health_check_scheme: type: string description: 'Health check scheme.' health_check_response_text: type: string nullable: true description: 'Health check response text.' health_check_interval: type: integer description: 'Health check interval in seconds.' health_check_timeout: type: integer description: 'Health check timeout in seconds.' health_check_retries: type: integer description: 'Health check retries count.' health_check_start_period: type: integer description: 'Health check start period in seconds.' limits_memory: type: string description: 'Memory limit.' limits_memory_swap: type: string description: 'Memory swap limit.' limits_memory_swappiness: type: integer description: 'Memory swappiness.' limits_memory_reservation: type: string description: 'Memory reservation.' limits_cpus: type: string description: 'CPU limit.' limits_cpuset: type: string nullable: true description: 'CPU set.' limits_cpu_shares: type: integer description: 'CPU shares.' custom_labels: type: string description: 'Custom labels.' custom_docker_run_options: type: string description: 'Custom docker run options.' post_deployment_command: type: string description: 'Post deployment command.' post_deployment_command_container: type: string description: 'Post deployment command container.' pre_deployment_command: type: string description: 'Pre deployment command.' pre_deployment_command_container: type: string description: 'Pre deployment command container.' manual_webhook_secret_github: type: string description: 'Manual webhook secret for Github.' manual_webhook_secret_gitlab: type: string description: 'Manual webhook secret for Gitlab.' manual_webhook_secret_bitbucket: type: string description: 'Manual webhook secret for Bitbucket.' manual_webhook_secret_gitea: type: string description: 'Manual webhook secret for Gitea.' redirect: type: string nullable: true description: 'How to set redirect with Traefik / Caddy. www<->non-www.' enum: [www, non-www, both] instant_deploy: type: boolean description: 'The flag to indicate if the application should be deployed instantly.' dockerfile: type: string description: 'The Dockerfile content.' docker_compose_location: type: string description: 'The Docker Compose location.' docker_compose_raw: type: string description: 'The Docker Compose raw content.' docker_compose_custom_start_command: type: string description: 'The Docker Compose custom start command.' docker_compose_custom_build_command: type: string description: 'The Docker Compose custom build command.' docker_compose_domains: type: array description: 'The Docker Compose domains.' watch_paths: type: string description: 'The watch paths.' type: object responses: '200': description: 'Application updated.' content: application/json: schema: properties: uuid: { type: string } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /applications/public: post: tags: - Applications summary: 'Create (Public)' description: 'Create new application based on a public git repository.' operationId: cb56324ad19693469b4461d3f6065a5b requestBody: description: 'Application object that needs to be created.' required: true content: application/json: schema: required: - project_uuid - server_uuid - environment_name - git_repository - git_branch - build_pack - ports_exposes properties: project_uuid: type: string description: 'The project UUID.' server_uuid: type: string description: 'The server UUID.' environment_name: type: string description: 'The environment name.' git_repository: type: string description: 'The git repository URL.' git_branch: type: string description: 'The git branch.' build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] description: 'The build pack type.' ports_exposes: type: string description: 'The ports to expose.' destination_uuid: type: string description: 'The destination UUID.' name: type: string description: 'The application name.' description: type: string description: 'The application description.' domains: type: string description: 'The application domains.' git_commit_sha: type: string description: 'The git commit SHA.' docker_registry_image_name: type: string description: 'The docker registry image name.' docker_registry_image_tag: type: string description: 'The docker registry image tag.' is_static: type: boolean description: 'The flag to indicate if the application is static.' install_command: type: string description: 'The install command.' build_command: type: string description: 'The build command.' start_command: type: string description: 'The start command.' ports_mappings: type: string description: 'The ports mappings.' base_directory: type: string description: 'The base directory for all commands.' publish_directory: type: string description: 'The publish directory.' health_check_enabled: type: boolean description: 'Health check enabled.' health_check_path: type: string description: 'Health check path.' health_check_port: type: string nullable: true description: 'Health check port.' health_check_host: type: string nullable: true description: 'Health check host.' health_check_method: type: string description: 'Health check method.' health_check_return_code: type: integer description: 'Health check return code.' health_check_scheme: type: string description: 'Health check scheme.' health_check_response_text: type: string nullable: true description: 'Health check response text.' health_check_interval: type: integer description: 'Health check interval in seconds.' health_check_timeout: type: integer description: 'Health check timeout in seconds.' health_check_retries: type: integer description: 'Health check retries count.' health_check_start_period: type: integer description: 'Health check start period in seconds.' limits_memory: type: string description: 'Memory limit.' limits_memory_swap: type: string description: 'Memory swap limit.' limits_memory_swappiness: type: integer description: 'Memory swappiness.' limits_memory_reservation: type: string description: 'Memory reservation.' limits_cpus: type: string description: 'CPU limit.' limits_cpuset: type: string nullable: true description: 'CPU set.' limits_cpu_shares: type: integer description: 'CPU shares.' custom_labels: type: string description: 'Custom labels.' custom_docker_run_options: type: string description: 'Custom docker run options.' post_deployment_command: type: string description: 'Post deployment command.' post_deployment_command_container: type: string description: 'Post deployment command container.' pre_deployment_command: type: string description: 'Pre deployment command.' pre_deployment_command_container: type: string description: 'Pre deployment command container.' manual_webhook_secret_github: type: string description: 'Manual webhook secret for Github.' manual_webhook_secret_gitlab: type: string description: 'Manual webhook secret for Gitlab.' manual_webhook_secret_bitbucket: type: string description: 'Manual webhook secret for Bitbucket.' manual_webhook_secret_gitea: type: string description: 'Manual webhook secret for Gitea.' redirect: type: string nullable: true description: 'How to set redirect with Traefik / Caddy. www<->non-www.' enum: [www, non-www, both] instant_deploy: type: boolean description: 'The flag to indicate if the application should be deployed instantly.' dockerfile: type: string description: 'The Dockerfile content.' docker_compose_location: type: string description: 'The Docker Compose location.' docker_compose_raw: type: string description: 'The Docker Compose raw content.' docker_compose_custom_start_command: type: string description: 'The Docker Compose custom start command.' docker_compose_custom_build_command: type: string description: 'The Docker Compose custom build command.' docker_compose_domains: type: array description: 'The Docker Compose domains.' watch_paths: type: string description: 'The watch paths.' type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/private-gh-app: post: tags: - Applications summary: 'Create (Private - GH App)' description: 'Create new application based on a private repository through a Github App.' operationId: 4d46c84bda4f1a411f6dda15fce4061f requestBody: description: 'Application object that needs to be created.' required: true content: application/json: schema: required: - project_uuid - server_uuid - environment_name - github_app_uuid - git_repository - git_branch - build_pack - ports_exposes properties: project_uuid: type: string description: 'The project UUID.' server_uuid: type: string description: 'The server UUID.' environment_name: type: string description: 'The environment name.' github_app_uuid: type: string description: 'The Github App UUID.' git_repository: type: string description: 'The git repository URL.' git_branch: type: string description: 'The git branch.' ports_exposes: type: string description: 'The ports to expose.' destination_uuid: type: string description: 'The destination UUID.' build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] description: 'The build pack type.' name: type: string description: 'The application name.' description: type: string description: 'The application description.' domains: type: string description: 'The application domains.' git_commit_sha: type: string description: 'The git commit SHA.' docker_registry_image_name: type: string description: 'The docker registry image name.' docker_registry_image_tag: type: string description: 'The docker registry image tag.' is_static: type: boolean description: 'The flag to indicate if the application is static.' install_command: type: string description: 'The install command.' build_command: type: string description: 'The build command.' start_command: type: string description: 'The start command.' ports_mappings: type: string description: 'The ports mappings.' base_directory: type: string description: 'The base directory for all commands.' publish_directory: type: string description: 'The publish directory.' health_check_enabled: type: boolean description: 'Health check enabled.' health_check_path: type: string description: 'Health check path.' health_check_port: type: string nullable: true description: 'Health check port.' health_check_host: type: string nullable: true description: 'Health check host.' health_check_method: type: string description: 'Health check method.' health_check_return_code: type: integer description: 'Health check return code.' health_check_scheme: type: string description: 'Health check scheme.' health_check_response_text: type: string nullable: true description: 'Health check response text.' health_check_interval: type: integer description: 'Health check interval in seconds.' health_check_timeout: type: integer description: 'Health check timeout in seconds.' health_check_retries: type: integer description: 'Health check retries count.' health_check_start_period: type: integer description: 'Health check start period in seconds.' limits_memory: type: string description: 'Memory limit.' limits_memory_swap: type: string description: 'Memory swap limit.' limits_memory_swappiness: type: integer description: 'Memory swappiness.' limits_memory_reservation: type: string description: 'Memory reservation.' limits_cpus: type: string description: 'CPU limit.' limits_cpuset: type: string nullable: true description: 'CPU set.' limits_cpu_shares: type: integer description: 'CPU shares.' custom_labels: type: string description: 'Custom labels.' custom_docker_run_options: type: string description: 'Custom docker run options.' post_deployment_command: type: string description: 'Post deployment command.' post_deployment_command_container: type: string description: 'Post deployment command container.' pre_deployment_command: type: string description: 'Pre deployment command.' pre_deployment_command_container: type: string description: 'Pre deployment command container.' manual_webhook_secret_github: type: string description: 'Manual webhook secret for Github.' manual_webhook_secret_gitlab: type: string description: 'Manual webhook secret for Gitlab.' manual_webhook_secret_bitbucket: type: string description: 'Manual webhook secret for Bitbucket.' manual_webhook_secret_gitea: type: string description: 'Manual webhook secret for Gitea.' redirect: type: string nullable: true description: 'How to set redirect with Traefik / Caddy. www<->non-www.' enum: [www, non-www, both] instant_deploy: type: boolean description: 'The flag to indicate if the application should be deployed instantly.' dockerfile: type: string description: 'The Dockerfile content.' docker_compose_location: type: string description: 'The Docker Compose location.' docker_compose_raw: type: string description: 'The Docker Compose raw content.' docker_compose_custom_start_command: type: string description: 'The Docker Compose custom start command.' docker_compose_custom_build_command: type: string description: 'The Docker Compose custom build command.' docker_compose_domains: type: array description: 'The Docker Compose domains.' watch_paths: type: string description: 'The watch paths.' type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/private-deploy-key: post: tags: - Applications summary: 'Create (Private - Deploy Key)' description: 'Create new application based on a private repository through a Deploy Key.' operationId: e3eaa989ffb05366247a00cdfd551efa requestBody: description: 'Application object that needs to be created.' required: true content: application/json: schema: required: - project_uuid - server_uuid - environment_name - private_key_uuid - git_repository - git_branch - build_pack - ports_exposes properties: project_uuid: type: string description: 'The project UUID.' server_uuid: type: string description: 'The server UUID.' environment_name: type: string description: 'The environment name.' private_key_uuid: type: string description: 'The private key UUID.' git_repository: type: string description: 'The git repository URL.' git_branch: type: string description: 'The git branch.' ports_exposes: type: string description: 'The ports to expose.' destination_uuid: type: string description: 'The destination UUID.' build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] description: 'The build pack type.' name: type: string description: 'The application name.' description: type: string description: 'The application description.' domains: type: string description: 'The application domains.' git_commit_sha: type: string description: 'The git commit SHA.' docker_registry_image_name: type: string description: 'The docker registry image name.' docker_registry_image_tag: type: string description: 'The docker registry image tag.' is_static: type: boolean description: 'The flag to indicate if the application is static.' install_command: type: string description: 'The install command.' build_command: type: string description: 'The build command.' start_command: type: string description: 'The start command.' ports_mappings: type: string description: 'The ports mappings.' base_directory: type: string description: 'The base directory for all commands.' publish_directory: type: string description: 'The publish directory.' health_check_enabled: type: boolean description: 'Health check enabled.' health_check_path: type: string description: 'Health check path.' health_check_port: type: string nullable: true description: 'Health check port.' health_check_host: type: string nullable: true description: 'Health check host.' health_check_method: type: string description: 'Health check method.' health_check_return_code: type: integer description: 'Health check return code.' health_check_scheme: type: string description: 'Health check scheme.' health_check_response_text: type: string nullable: true description: 'Health check response text.' health_check_interval: type: integer description: 'Health check interval in seconds.' health_check_timeout: type: integer description: 'Health check timeout in seconds.' health_check_retries: type: integer description: 'Health check retries count.' health_check_start_period: type: integer description: 'Health check start period in seconds.' limits_memory: type: string description: 'Memory limit.' limits_memory_swap: type: string description: 'Memory swap limit.' limits_memory_swappiness: type: integer description: 'Memory swappiness.' limits_memory_reservation: type: string description: 'Memory reservation.' limits_cpus: type: string description: 'CPU limit.' limits_cpuset: type: string nullable: true description: 'CPU set.' limits_cpu_shares: type: integer description: 'CPU shares.' custom_labels: type: string description: 'Custom labels.' custom_docker_run_options: type: string description: 'Custom docker run options.' post_deployment_command: type: string description: 'Post deployment command.' post_deployment_command_container: type: string description: 'Post deployment command container.' pre_deployment_command: type: string description: 'Pre deployment command.' pre_deployment_command_container: type: string description: 'Pre deployment command container.' manual_webhook_secret_github: type: string description: 'Manual webhook secret for Github.' manual_webhook_secret_gitlab: type: string description: 'Manual webhook secret for Gitlab.' manual_webhook_secret_bitbucket: type: string description: 'Manual webhook secret for Bitbucket.' manual_webhook_secret_gitea: type: string description: 'Manual webhook secret for Gitea.' redirect: type: string nullable: true description: 'How to set redirect with Traefik / Caddy. www<->non-www.' enum: [www, non-www, both] instant_deploy: type: boolean description: 'The flag to indicate if the application should be deployed instantly.' dockerfile: type: string description: 'The Dockerfile content.' docker_compose_location: type: string description: 'The Docker Compose location.' docker_compose_raw: type: string description: 'The Docker Compose raw content.' docker_compose_custom_start_command: type: string description: 'The Docker Compose custom start command.' docker_compose_custom_build_command: type: string description: 'The Docker Compose custom build command.' docker_compose_domains: type: array description: 'The Docker Compose domains.' watch_paths: type: string description: 'The watch paths.' type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/dockerfile: post: tags: - Applications summary: 'Create (Dockerfile)' description: 'Create new application based on a simple Dockerfile.' operationId: 2b433ad6f5d259eb7f4f3b5af9913708 requestBody: description: 'Application object that needs to be created.' required: true content: application/json: schema: required: - project_uuid - server_uuid - environment_name - dockerfile properties: project_uuid: type: string description: 'The project UUID.' server_uuid: type: string description: 'The server UUID.' environment_name: type: string description: 'The environment name.' dockerfile: type: string description: 'The Dockerfile content.' build_pack: type: string enum: [nixpacks, static, dockerfile, dockercompose] description: 'The build pack type.' ports_exposes: type: string description: 'The ports to expose.' destination_uuid: type: string description: 'The destination UUID.' name: type: string description: 'The application name.' description: type: string description: 'The application description.' domains: type: string description: 'The application domains.' docker_registry_image_name: type: string description: 'The docker registry image name.' docker_registry_image_tag: type: string description: 'The docker registry image tag.' ports_mappings: type: string description: 'The ports mappings.' base_directory: type: string description: 'The base directory for all commands.' health_check_enabled: type: boolean description: 'Health check enabled.' health_check_path: type: string description: 'Health check path.' health_check_port: type: string nullable: true description: 'Health check port.' health_check_host: type: string nullable: true description: 'Health check host.' health_check_method: type: string description: 'Health check method.' health_check_return_code: type: integer description: 'Health check return code.' health_check_scheme: type: string description: 'Health check scheme.' health_check_response_text: type: string nullable: true description: 'Health check response text.' health_check_interval: type: integer description: 'Health check interval in seconds.' health_check_timeout: type: integer description: 'Health check timeout in seconds.' health_check_retries: type: integer description: 'Health check retries count.' health_check_start_period: type: integer description: 'Health check start period in seconds.' limits_memory: type: string description: 'Memory limit.' limits_memory_swap: type: string description: 'Memory swap limit.' limits_memory_swappiness: type: integer description: 'Memory swappiness.' limits_memory_reservation: type: string description: 'Memory reservation.' limits_cpus: type: string description: 'CPU limit.' limits_cpuset: type: string nullable: true description: 'CPU set.' limits_cpu_shares: type: integer description: 'CPU shares.' custom_labels: type: string description: 'Custom labels.' custom_docker_run_options: type: string description: 'Custom docker run options.' post_deployment_command: type: string description: 'Post deployment command.' post_deployment_command_container: type: string description: 'Post deployment command container.' pre_deployment_command: type: string description: 'Pre deployment command.' pre_deployment_command_container: type: string description: 'Pre deployment command container.' manual_webhook_secret_github: type: string description: 'Manual webhook secret for Github.' manual_webhook_secret_gitlab: type: string description: 'Manual webhook secret for Gitlab.' manual_webhook_secret_bitbucket: type: string description: 'Manual webhook secret for Bitbucket.' manual_webhook_secret_gitea: type: string description: 'Manual webhook secret for Gitea.' redirect: type: string nullable: true description: 'How to set redirect with Traefik / Caddy. www<->non-www.' enum: [www, non-www, both] instant_deploy: type: boolean description: 'The flag to indicate if the application should be deployed instantly.' type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/dockerimage: post: tags: - Applications summary: 'Create (Docker Image)' description: 'Create new application based on a prebuilt docker image' operationId: e9a2d6dd9404acf880dc3053f09477fc requestBody: description: 'Application object that needs to be created.' required: true content: application/json: schema: required: - project_uuid - server_uuid - environment_name - docker_registry_image_name - ports_exposes properties: project_uuid: type: string description: 'The project UUID.' server_uuid: type: string description: 'The server UUID.' environment_name: type: string description: 'The environment name.' docker_registry_image_name: type: string description: 'The docker registry image name.' docker_registry_image_tag: type: string description: 'The docker registry image tag.' ports_exposes: type: string description: 'The ports to expose.' destination_uuid: type: string description: 'The destination UUID.' name: type: string description: 'The application name.' description: type: string description: 'The application description.' domains: type: string description: 'The application domains.' ports_mappings: type: string description: 'The ports mappings.' health_check_enabled: type: boolean description: 'Health check enabled.' health_check_path: type: string description: 'Health check path.' health_check_port: type: string nullable: true description: 'Health check port.' health_check_host: type: string nullable: true description: 'Health check host.' health_check_method: type: string description: 'Health check method.' health_check_return_code: type: integer description: 'Health check return code.' health_check_scheme: type: string description: 'Health check scheme.' health_check_response_text: type: string nullable: true description: 'Health check response text.' health_check_interval: type: integer description: 'Health check interval in seconds.' health_check_timeout: type: integer description: 'Health check timeout in seconds.' health_check_retries: type: integer description: 'Health check retries count.' health_check_start_period: type: integer description: 'Health check start period in seconds.' limits_memory: type: string description: 'Memory limit.' limits_memory_swap: type: string description: 'Memory swap limit.' limits_memory_swappiness: type: integer description: 'Memory swappiness.' limits_memory_reservation: type: string description: 'Memory reservation.' limits_cpus: type: string description: 'CPU limit.' limits_cpuset: type: string nullable: true description: 'CPU set.' limits_cpu_shares: type: integer description: 'CPU shares.' custom_labels: type: string description: 'Custom labels.' custom_docker_run_options: type: string description: 'Custom docker run options.' post_deployment_command: type: string description: 'Post deployment command.' post_deployment_command_container: type: string description: 'Post deployment command container.' pre_deployment_command: type: string description: 'Pre deployment command.' pre_deployment_command_container: type: string description: 'Pre deployment command container.' manual_webhook_secret_github: type: string description: 'Manual webhook secret for Github.' manual_webhook_secret_gitlab: type: string description: 'Manual webhook secret for Gitlab.' manual_webhook_secret_bitbucket: type: string description: 'Manual webhook secret for Bitbucket.' manual_webhook_secret_gitea: type: string description: 'Manual webhook secret for Gitea.' redirect: type: string nullable: true description: 'How to set redirect with Traefik / Caddy. www<->non-www.' enum: [www, non-www, both] instant_deploy: type: boolean description: 'The flag to indicate if the application should be deployed instantly.' type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /applications/dockercompose: post: tags: - Applications summary: 'Create (Docker Compose)' description: 'Create new application based on a docker-compose file.' operationId: 3731add8226c2d664455978cac46c242 requestBody: description: 'Application object that needs to be created.' required: true content: application/json: schema: required: - project_uuid - server_uuid - environment_name - docker_compose_raw properties: project_uuid: type: string description: 'The project UUID.' server_uuid: type: string description: 'The server UUID.' environment_name: type: string description: 'The environment name.' docker_compose_raw: type: string description: 'The Docker Compose raw content.' destination_uuid: type: string description: 'The destination UUID if the server has more than one destinations.' name: type: string description: 'The application name.' description: type: string description: 'The application description.' instant_deploy: type: boolean description: 'The flag to indicate if the application should be deployed instantly.' type: object responses: '200': description: 'Application created successfully.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/applications/{uuid}': get: tags: - Applications summary: Get description: 'Get application by UUID.' operationId: 3630b62c28e7358e7f0087c1d8fe1845 parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid responses: '200': description: 'Get application by UUID.' content: application/json: schema: $ref: '#/components/schemas/Application' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] delete: tags: - Applications summary: Delete description: 'Delete application by UUID.' operationId: 1e110b190a1045d34f3e1c61608a8702 parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid - name: cleanup in: query description: 'Delete configurations and volumes.' required: false schema: type: boolean default: true responses: '200': description: 'Application deleted.' content: application/json: schema: properties: message: { type: string, example: 'Application deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/envs': get: tags: - Applications summary: 'List Envs' description: 'List all envs by application UUID.' operationId: 7c8e0c286870e23294a075cc0584df2f parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid responses: '200': description: 'All environment variables by application UUID.' content: application/json: schema: type: array items: $ref: '#/components/schemas/EnvironmentVariable' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] post: tags: - Applications summary: 'Create Env' description: 'Create env by application UUID.' operationId: 4699ffbb7d6e58581fd0b0a14f36ffc2 parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid requestBody: description: 'Env created.' required: true content: application/json: schema: properties: key: type: string description: 'The key of the environment variable.' value: type: string description: 'The value of the environment variable.' is_preview: type: boolean description: 'The flag to indicate if the environment variable is used in preview deployments.' is_build_time: type: boolean description: 'The flag to indicate if the environment variable is used in build time.' is_literal: type: boolean description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' is_multiline: type: boolean description: 'The flag to indicate if the environment variable is multiline.' is_shown_once: type: boolean description: "The flag to indicate if the environment variable's value is shown on the UI." type: object responses: '201': description: 'Environment variable created.' content: application/json: schema: properties: uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] patch: tags: - Applications summary: 'Update Env' description: 'Update env by application UUID.' operationId: 3d70a2d569f395be220b3f09ad36674b parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid requestBody: description: 'Env updated.' required: true content: application/json: schema: required: - key - value properties: key: type: string description: 'The key of the environment variable.' value: type: string description: 'The value of the environment variable.' is_preview: type: boolean description: 'The flag to indicate if the environment variable is used in preview deployments.' is_build_time: type: boolean description: 'The flag to indicate if the environment variable is used in build time.' is_literal: type: boolean description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' is_multiline: type: boolean description: 'The flag to indicate if the environment variable is multiline.' is_shown_once: type: boolean description: "The flag to indicate if the environment variable's value is shown on the UI." type: object responses: '201': description: 'Environment variable updated.' content: application/json: schema: properties: message: { type: string, example: 'Environment variable updated.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/envs/bulk': patch: tags: - Applications summary: 'Update Envs (Bulk)' description: 'Update multiple envs by application UUID.' operationId: ae96f0f585ed158b2abd2d9ba40f3cf9 parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid requestBody: description: 'Bulk envs updated.' required: true content: application/json: schema: required: - data properties: data: type: array items: { properties: { key: { type: string, description: 'The key of the environment variable.' }, value: { type: string, description: 'The value of the environment variable.' }, is_preview: { type: boolean, description: 'The flag to indicate if the environment variable is used in preview deployments.' }, is_build_time: { type: boolean, description: 'The flag to indicate if the environment variable is used in build time.' }, is_literal: { type: boolean, description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' }, is_multiline: { type: boolean, description: 'The flag to indicate if the environment variable is multiline.' }, is_shown_once: { type: boolean, description: "The flag to indicate if the environment variable's value is shown on the UI." } }, type: object } type: object responses: '201': description: 'Environment variables updated.' content: application/json: schema: properties: message: { type: string, example: 'Environment variables updated.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/envs/{env_uuid}': delete: tags: - Applications summary: 'Delete Env' description: 'Delete env by UUID.' operationId: 96097c5cfc7dc0e7a3de229645f630c7 parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid - name: env_uuid in: path description: 'UUID of the environment variable.' required: true schema: type: string format: uuid responses: '200': description: 'Environment variable deleted.' content: application/json: schema: properties: message: { type: string, example: 'Environment variable deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/start': get: tags: - Applications summary: Start description: 'Start application. `Post` request is also accepted.' operationId: dc87c2061ab303757a0e061f87900c4c parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid - name: force in: query description: 'Force rebuild.' schema: type: boolean default: false - name: instant_deploy in: query description: 'Instant deploy (skip queuing).' schema: type: boolean default: false responses: '200': description: 'Start application.' content: application/json: schema: properties: message: { type: string, example: 'Deployment request queued.', description: Message. } deployment_uuid: { type: string, example: doogksw, description: 'UUID of the deployment.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/stop': get: tags: - Applications summary: Stop description: 'Stop application. `Post` request is also accepted.' operationId: 133ef3c7bd5043901f24bb5002a536eb parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid responses: '200': description: 'Stop application.' content: application/json: schema: properties: message: { type: string, example: 'Application stopping request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/applications/{uuid}/restart': get: tags: - Applications summary: Restart description: 'Restart application. `Post` request is also accepted.' operationId: b231ae7baab9ef47f0627be820e735bc parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid responses: '200': description: 'Restart application.' content: application/json: schema: properties: message: { type: string, example: 'Restart request queued.' } deployment_uuid: { type: string, example: doogksw, description: 'UUID of the deployment.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /databases: get: tags: - Databases summary: List description: 'List all databases.' operationId: ecd0ee1e46e4c854c18e6c9daa3d37f3 responses: '200': description: 'Get all databases' content: application/json: schema: type: string example: 'Content is very complex. Will be implemented later.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/databases/{uuid}': get: tags: - Databases summary: Get description: 'Get database by UUID.' operationId: b49cb2d3e8f34c4e80cdffd8a201031d parameters: - name: uuid in: path description: 'UUID of the database.' required: true schema: type: string format: uuid responses: '200': description: 'Get all databases' content: application/json: schema: type: string example: 'Content is very complex. Will be implemented later.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] delete: tags: - Databases summary: Delete description: 'Delete database by UUID.' operationId: 20610931b2bae8aba34eee68624ab673 parameters: - name: uuid in: path description: 'UUID of the database.' required: true schema: type: string format: uuid - name: cleanup in: query description: 'Delete configurations and volumes.' required: false schema: type: boolean default: true responses: '200': description: 'Database deleted.' content: application/json: schema: properties: message: { type: string, example: 'Database deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] patch: tags: - Databases summary: Update description: 'Update database by UUID.' operationId: 5ba459ed390a721711a1708760e9de3b parameters: - name: uuid in: path description: 'UUID of the database.' required: true schema: type: string format: uuid requestBody: description: 'Database data' required: true content: application/json: schema: properties: name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' postgres_user: type: string description: 'PostgreSQL user' postgres_password: type: string description: 'PostgreSQL password' postgres_db: type: string description: 'PostgreSQL database' postgres_initdb_args: type: string description: 'PostgreSQL initdb args' postgres_host_auth_method: type: string description: 'PostgreSQL host auth method' postgres_conf: type: string description: 'PostgreSQL conf' clickhouse_admin_user: type: string description: 'Clickhouse admin user' clickhouse_admin_password: type: string description: 'Clickhouse admin password' dragonfly_password: type: string description: 'DragonFly password' redis_password: type: string description: 'Redis password' redis_conf: type: string description: 'Redis conf' keydb_password: type: string description: 'KeyDB password' keydb_conf: type: string description: 'KeyDB conf' mariadb_conf: type: string description: 'MariaDB conf' mariadb_root_password: type: string description: 'MariaDB root password' mariadb_user: type: string description: 'MariaDB user' mariadb_password: type: string description: 'MariaDB password' mariadb_database: type: string description: 'MariaDB database' mongo_conf: type: string description: 'Mongo conf' mongo_initdb_root_username: type: string description: 'Mongo initdb root username' mongo_initdb_root_password: type: string description: 'Mongo initdb root password' mongo_initdb_init_database: type: string description: 'Mongo initdb init database' mysql_root_password: type: string description: 'MySQL root password' mysql_user: type: string description: 'MySQL user' mysql_database: type: string description: 'MySQL database' mysql_conf: type: string description: 'MySQL conf' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /databases/postgresql: post: tags: - Databases summary: 'Create (PostgreSQL)' description: 'Create a new PostgreSQL database.' operationId: 8f7f491ddc46a9fa065b4424512231cd requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string description: 'UUID of the server' project_uuid: type: string description: 'UUID of the project' environment_name: type: string description: 'Name of the environment' postgres_user: type: string description: 'PostgreSQL user' postgres_password: type: string description: 'PostgreSQL password' postgres_db: type: string description: 'PostgreSQL database' postgres_initdb_args: type: string description: 'PostgreSQL initdb args' postgres_host_auth_method: type: string description: 'PostgreSQL host auth method' postgres_conf: type: string description: 'PostgreSQL conf' destination_uuid: type: string description: 'UUID of the destination if the server has multiple destinations' name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' instant_deploy: type: boolean description: 'Instant deploy the database' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/clickhouse: post: tags: - Databases summary: 'Create (Clickhouse)' description: 'Create a new Clickhouse database.' operationId: a1189fa7f956f238f0e95c9150ff57f6 requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string description: 'UUID of the server' project_uuid: type: string description: 'UUID of the project' environment_name: type: string description: 'Name of the environment' destination_uuid: type: string description: 'UUID of the destination if the server has multiple destinations' clickhouse_admin_user: type: string description: 'Clickhouse admin user' clickhouse_admin_password: type: string description: 'Clickhouse admin password' name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' instant_deploy: type: boolean description: 'Instant deploy the database' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/dragonfly: post: tags: - Databases summary: 'Create (DragonFly)' description: 'Create a new DragonFly database.' operationId: e73f7de1c8eee4219e5ec98c4b9b7efe requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string description: 'UUID of the server' project_uuid: type: string description: 'UUID of the project' environment_name: type: string description: 'Name of the environment' destination_uuid: type: string description: 'UUID of the destination if the server has multiple destinations' dragonfly_password: type: string description: 'DragonFly password' name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' instant_deploy: type: boolean description: 'Instant deploy the database' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/redis: post: tags: - Databases summary: 'Create (Redis)' description: 'Create a new Redis database.' operationId: 4d352d13544ee2953fd48ad7b0651098 requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string description: 'UUID of the server' project_uuid: type: string description: 'UUID of the project' environment_name: type: string description: 'Name of the environment' destination_uuid: type: string description: 'UUID of the destination if the server has multiple destinations' redis_password: type: string description: 'Redis password' redis_conf: type: string description: 'Redis conf' name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' instant_deploy: type: boolean description: 'Instant deploy the database' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/keydb: post: tags: - Databases summary: 'Create (KeyDB)' description: 'Create a new KeyDB database.' operationId: b908f3929c371c217d489638e0a21ff6 requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string description: 'UUID of the server' project_uuid: type: string description: 'UUID of the project' environment_name: type: string description: 'Name of the environment' destination_uuid: type: string description: 'UUID of the destination if the server has multiple destinations' keydb_password: type: string description: 'KeyDB password' keydb_conf: type: string description: 'KeyDB conf' name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' instant_deploy: type: boolean description: 'Instant deploy the database' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/mariadb: post: tags: - Databases summary: 'Create (MariaDB)' description: 'Create a new MariaDB database.' operationId: 6bea521ddcd738dcbb5f3783a7308acf requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string description: 'UUID of the server' project_uuid: type: string description: 'UUID of the project' environment_name: type: string description: 'Name of the environment' destination_uuid: type: string description: 'UUID of the destination if the server has multiple destinations' mariadb_conf: type: string description: 'MariaDB conf' mariadb_root_password: type: string description: 'MariaDB root password' mariadb_user: type: string description: 'MariaDB user' mariadb_password: type: string description: 'MariaDB password' mariadb_database: type: string description: 'MariaDB database' name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' instant_deploy: type: boolean description: 'Instant deploy the database' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/mysql: post: tags: - Databases summary: 'Create (MySQL)' description: 'Create a new MySQL database.' operationId: 0a1158cf759c4493cbb1e30024c60623 requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string description: 'UUID of the server' project_uuid: type: string description: 'UUID of the project' environment_name: type: string description: 'Name of the environment' destination_uuid: type: string description: 'UUID of the destination if the server has multiple destinations' mysql_root_password: type: string description: 'MySQL root password' mysql_user: type: string description: 'MySQL user' mysql_database: type: string description: 'MySQL database' mysql_conf: type: string description: 'MySQL conf' name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' instant_deploy: type: boolean description: 'Instant deploy the database' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /databases/mongodb: post: tags: - Databases summary: 'Create (MongoDB)' description: 'Create a new MongoDB database.' operationId: fdba3de84d02519bb37599fea34b115d requestBody: description: 'Database data' required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name properties: server_uuid: type: string description: 'UUID of the server' project_uuid: type: string description: 'UUID of the project' environment_name: type: string description: 'Name of the environment' destination_uuid: type: string description: 'UUID of the destination if the server has multiple destinations' mongo_conf: type: string description: 'MongoDB conf' mongo_initdb_root_username: type: string description: 'MongoDB initdb root username' name: type: string description: 'Name of the database' description: type: string description: 'Description of the database' image: type: string description: 'Docker Image of the database' is_public: type: boolean description: 'Is the database public?' public_port: type: integer description: 'Public port of the database' limits_memory: type: string description: 'Memory limit of the database' limits_memory_swap: type: string description: 'Memory swap limit of the database' limits_memory_swappiness: type: integer description: 'Memory swappiness of the database' limits_memory_reservation: type: string description: 'Memory reservation of the database' limits_cpus: type: string description: 'CPU limit of the database' limits_cpuset: type: string description: 'CPU set of the database' limits_cpu_shares: type: integer description: 'CPU shares of the database' instant_deploy: type: boolean description: 'Instant deploy the database' type: object responses: '200': description: 'Database updated' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/databases/{uuid}/start': get: tags: - Databases summary: Start description: 'Start database. `Post` request is also accepted.' operationId: 4c6eb21e734d411e2b3388578761123d parameters: - name: uuid in: path description: 'UUID of the database.' required: true schema: type: string format: uuid responses: '200': description: 'Start database.' content: application/json: schema: properties: message: { type: string, example: 'Database starting request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/databases/{uuid}/stop': get: tags: - Databases summary: Stop description: 'Stop database. `Post` request is also accepted.' operationId: cb6d983c2679aff841c7501ce612a372 parameters: - name: uuid in: path description: 'UUID of the database.' required: true schema: type: string format: uuid responses: '200': description: 'Stop database.' content: application/json: schema: properties: message: { type: string, example: 'Database stopping request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/databases/{uuid}/restart': get: tags: - Databases summary: Restart description: 'Restart database. `Post` request is also accepted.' operationId: 04c7a5e4752b4a00036addb433f3f218 parameters: - name: uuid in: path description: 'UUID of the database.' required: true schema: type: string format: uuid responses: '200': description: 'Restart database.' content: application/json: schema: properties: message: { type: string, example: 'Database restaring request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /deployments: get: tags: - Deployments summary: List description: 'List currently running deployments' operationId: a2c05736269191ad0d99cadfd4708986 responses: '200': description: 'Get all currently running deployments.' content: application/json: schema: type: array items: $ref: '#/components/schemas/ApplicationDeploymentQueue' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/deployments/{uuid}': get: tags: - Deployments summary: Get description: 'Get deployment by UUID.' operationId: ccf9856174c115a1430d952ccbd36aea parameters: - name: uuid in: path description: 'Deployment Uuid' required: true schema: type: integer responses: '200': description: 'Get deployment by UUID.' content: application/json: schema: $ref: '#/components/schemas/ApplicationDeploymentQueue' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /deploy: get: tags: - Deployments summary: Deploy description: 'Deploy by tag or uuid. `Post` request also accepted.' operationId: 700eb6e51f4c9e86d722f600c65ed1d4 parameters: - name: tag in: query description: 'Tag name(s). Comma separated list is also accepted.' schema: type: string - name: uuid in: query description: 'Resource UUID(s). Comma separated list is also accepted.' schema: type: string - name: force in: query description: 'Force rebuild (without cache)' schema: type: boolean responses: '200': description: "Get deployment(s) Uuid's" content: application/json: schema: properties: deployments: { type: array, items: { properties: { message: { type: string }, resource_uuid: { type: string }, deployment_uuid: { type: string } }, type: object } } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /version: get: summary: Version description: 'Get Coolify version.' operationId: 187b37139844731110757711ee71c215 responses: '200': description: 'Returns the version of the application' content: application/json: schema: type: string example: v4.0.0 '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /enable: get: summary: 'Enable API' description: 'Enable API (only with root permissions).' operationId: 595019bae03d08277def667609779ff3 responses: '200': description: 'Enable API.' content: application/json: schema: properties: message: { type: string, example: 'API enabled.' } type: object '403': description: 'You are not allowed to enable the API.' content: application/json: schema: properties: message: { type: string, example: 'You are not allowed to enable the API.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /disable: get: summary: 'Disable API' description: 'Disable API (only with root permissions).' operationId: 50e2486a2d196a996b24a284a283bcdb responses: '200': description: 'Disable API.' content: application/json: schema: properties: message: { type: string, example: 'API disabled.' } type: object '403': description: 'You are not allowed to disable the API.' content: application/json: schema: properties: message: { type: string, example: 'You are not allowed to disable the API.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /healthcheck: get: summary: Healthcheck description: 'Healthcheck endpoint.' operationId: 64db893135e686704bb88c3c238022c1 responses: '200': description: 'Healthcheck endpoint.' content: application/json: schema: type: string example: OK '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' /projects: get: tags: - Projects summary: List description: 'list projects.' operationId: 762788f00f2dabb981df9adbc948d3f6 responses: '200': description: 'Get all projects.' content: application/json: schema: type: array items: $ref: '#/components/schemas/Project' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] post: tags: - Projects summary: Create description: 'Create Project.' operationId: cf067eb7cf18216cda3239329a2eeadb requestBody: description: 'Project created.' required: true content: application/json: schema: properties: uuid: type: string description: 'The name of the project.' description: type: string description: 'The description of the project.' type: object responses: '201': description: 'Project created.' content: application/json: schema: properties: uuid: { type: string, example: og888os, description: 'The UUID of the project.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/projects/{uuid}': get: tags: - Projects summary: Get description: 'Get project by Uuid.' operationId: 63bf8b6a68fbb757f09ab519331f6298 parameters: - name: uuid in: path description: 'Project UUID' required: true schema: type: integer responses: '200': description: 'Project details' content: application/json: schema: $ref: '#/components/schemas/Project' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': description: 'Project not found.' security: - bearerAuth: [] delete: tags: - Projects summary: Delete description: 'Delete project by UUID.' operationId: f668a936f505b4401948c74b6a663029 parameters: - name: uuid in: path description: 'UUID of the application.' required: true schema: type: string format: uuid responses: '200': description: 'Project deleted.' content: application/json: schema: properties: message: { type: string, example: 'Project deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] patch: tags: - Projects summary: Update description: 'Update Project.' operationId: 2db343bd6fc14c658cb51a2b73b2f842 requestBody: description: 'Project updated.' required: true content: application/json: schema: properties: name: type: string description: 'The name of the project.' description: type: string description: 'The description of the project.' type: object responses: '201': description: 'Project updated.' content: application/json: schema: properties: uuid: { type: string, example: og888os } name: { type: string, example: 'Project Name' } description: { type: string, example: 'Project Description' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/projects/{uuid}/{environment_name}': get: tags: - Projects summary: Environment description: 'Get environment by name.' operationId: 7e44845dce5aa47ed7b0daf5595ad2e1 parameters: - name: uuid in: path description: 'Project UUID' required: true schema: type: integer - name: environment_name in: path description: 'Environment name' required: true schema: type: string responses: '200': description: 'Project details' content: application/json: schema: $ref: '#/components/schemas/Environment' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /resources: get: tags: - Resources summary: List description: 'Get all resources.' operationId: c399903694eb1314596832e49f7c66d7 responses: '200': description: 'Get all resources' content: application/json: schema: type: string example: 'Content is very complex. Will be implemented later.' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /security/keys: get: tags: - 'Private Keys' summary: List description: 'List all private keys.' operationId: 8a5d8d3ccbbcef54ed0e913a27faea9d responses: '200': description: 'Get all private keys.' content: application/json: schema: type: array items: $ref: '#/components/schemas/PrivateKey' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] post: tags: - 'Private Keys' summary: Create description: 'Create a new private key.' operationId: eb4780acaa990c594cdbe8ffa80b4fb0 requestBody: required: true content: application/json: schema: required: - private_key properties: name: type: string description: type: string private_key: type: string type: object additionalProperties: false responses: '201': description: "The created private key's UUID." content: application/json: schema: properties: uuid: { type: string } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] patch: tags: - 'Private Keys' summary: Update description: 'Update a private key.' operationId: 371fd26b8949a070c26a264231fe233f requestBody: required: true content: application/json: schema: required: - private_key properties: name: type: string description: type: string private_key: type: string type: object additionalProperties: false responses: '201': description: "The updated private key's UUID." content: application/json: schema: properties: uuid: { type: string } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/security/keys/{uuid}': get: tags: - 'Private Keys' summary: Get description: 'Get key by UUID.' operationId: 2f743a85eb65d5ddb8cd5b362bb3d26a parameters: - name: uuid in: path description: 'Private Key Uuid' required: true schema: type: integer responses: '200': description: 'Get all private keys.' content: application/json: schema: type: array items: $ref: '#/components/schemas/PrivateKey' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': description: 'Private Key not found.' security: - bearerAuth: [] delete: tags: - 'Private Keys' summary: Delete description: 'Delete a private key.' operationId: 8faa0bb399142f0084dfc3e003c42cf6 parameters: - name: uuid in: path description: 'Private Key Uuid' required: true schema: type: integer responses: '200': description: 'Private Key deleted.' content: application/json: schema: properties: message: { type: string, example: 'Private Key deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': description: 'Private Key not found.' security: - bearerAuth: [] /servers: get: tags: - Servers summary: List description: 'List all servers.' operationId: 787448df856cefd2d9a313566be30d34 responses: '200': description: 'Get all servers.' content: application/json: schema: type: array items: $ref: '#/components/schemas/Server' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] post: tags: - Servers summary: Create description: 'Create Server.' operationId: fa44b42490379e428ba5b8747716a8d9 requestBody: description: 'Server created.' required: true content: application/json: schema: properties: name: type: string example: 'My Server' description: 'The name of the server.' description: type: string example: 'My Server Description' description: 'The description of the server.' ip: type: string example: 127.0.0.1 description: 'The IP of the server.' port: type: integer example: 22 description: 'The port of the server.' user: type: string example: root description: 'The user of the server.' private_key_uuid: type: string example: og888os description: 'The UUID of the private key.' is_build_server: type: boolean example: false description: 'Is build server.' instant_validate: type: boolean example: false description: 'Instant validate.' type: object responses: '201': description: 'Server created.' content: application/json: schema: properties: uuid: { type: string, example: og888os, description: 'The UUID of the server.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/servers/{uuid}': get: tags: - Servers summary: Get description: 'Get server by UUID.' operationId: 5baf04bddb8302c7e07f5b4c41aad10c parameters: - name: uuid in: path description: "Server's Uuid" required: true schema: type: integer responses: '200': description: 'Get server by UUID' content: application/json: schema: $ref: '#/components/schemas/Server' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] delete: tags: - Servers summary: Delete description: 'Delete server by UUID.' operationId: 0231fe0134f0306b21f006ce51b0a3dc parameters: - name: uuid in: path description: 'UUID of the server.' required: true schema: type: string format: uuid responses: '200': description: 'Server deleted.' content: application/json: schema: properties: message: { type: string, example: 'Server deleted.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] patch: tags: - Servers summary: Update description: 'Update Server.' operationId: 41bbdaf79eb1938592494fc5494442a0 requestBody: description: 'Server updated.' required: true content: application/json: schema: properties: name: type: string description: 'The name of the server.' description: type: string description: 'The description of the server.' ip: type: string description: 'The IP of the server.' port: type: integer description: 'The port of the server.' user: type: string description: 'The user of the server.' private_key_uuid: type: string description: 'The UUID of the private key.' is_build_server: type: boolean description: 'Is build server.' instant_validate: type: boolean description: 'Instant validate.' type: object responses: '201': description: 'Server updated.' content: application/json: schema: type: array items: $ref: '#/components/schemas/Server' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/servers/{uuid}/resources': get: tags: - Servers summary: Resources description: 'Get resources by server.' operationId: cef26c059941b44fbd8de3a7a58c10a5 parameters: - name: uuid in: path description: "Server's Uuid" required: true schema: type: integer responses: '200': description: 'Get resources by server' content: application/json: schema: type: array items: properties: { id: { type: integer }, uuid: { type: string }, name: { type: string }, type: { type: string }, created_at: { type: string }, updated_at: { type: string }, status: { type: string } } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/servers/{uuid}/domains': get: tags: - Servers summary: Domains description: 'Get domains by server.' operationId: 1ee227755be848d572f412272f53dd93 parameters: - name: uuid in: path description: "Server's Uuid" required: true schema: type: integer responses: '200': description: 'Get domains by server' content: application/json: schema: type: array items: properties: { ip: { type: string }, domains: { type: array, items: { type: string } } } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/servers/{uuid}/validate': get: tags: - Servers summary: Validate description: 'Validate server by UUID.' operationId: a543a12ef2cbc7a3dd22c3dbe6cbee89 parameters: - name: uuid in: path description: 'Server UUID' required: true schema: type: integer responses: '201': description: 'Server validation started.' content: application/json: schema: properties: message: { type: string, example: 'Validation started.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /services: get: tags: - Services summary: List description: 'List all services.' operationId: 5d014ac25d33391b8f4c2316060ba452 responses: '200': description: 'Get all services' content: application/json: schema: type: array items: $ref: '#/components/schemas/Service' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] post: tags: - Services summary: Create description: 'Create a one-click service' operationId: 3d6cbfb54d919b53ba3984a113e837d7 requestBody: required: true content: application/json: schema: required: - server_uuid - project_uuid - environment_name - type properties: type: description: 'The one-click service type' type: string enum: [activepieces, appsmith, appwrite, authentik, babybuddy, budge, changedetection, chatwoot, classicpress-with-mariadb, classicpress-with-mysql, classicpress-without-database, cloudflared, code-server, dashboard, directus, directus-with-postgresql, docker-registry, docuseal, docuseal-with-postgres, dokuwiki, duplicati, emby, embystat, fider, filebrowser, firefly, formbricks, ghost, gitea, gitea-with-mariadb, gitea-with-mysql, gitea-with-postgresql, glance, glances, glitchtip, grafana, grafana-with-postgresql, grocy, heimdall, homepage, jellyfin, kuzzle, listmonk, logto, mediawiki, meilisearch, metabase, metube, minio, moodle, n8n, n8n-with-postgresql, next-image-transformation, nextcloud, nocodb, odoo, openblocks, pairdrop, penpot, phpmyadmin, pocketbase, posthog, reactive-resume, rocketchat, shlink, slash, snapdrop, statusnook, stirling-pdf, supabase, syncthing, tolgee, trigger, trigger-with-external-database, twenty, umami, unleash-with-postgresql, unleash-without-database, uptime-kuma, vaultwarden, vikunja, weblate, whoogle, wordpress-with-mariadb, wordpress-with-mysql, wordpress-without-database] name: type: string maxLength: 255 description: 'Name of the service.' description: type: string nullable: true description: 'Description of the service.' project_uuid: type: string description: 'Project UUID.' environment_name: type: string description: 'Environment name.' server_uuid: type: string description: 'Server UUID.' destination_uuid: type: string description: 'Destination UUID. Required if server has multiple destinations.' instant_deploy: type: boolean default: false description: 'Start the service immediately after creation.' type: object responses: '201': description: 'Create a service.' content: application/json: schema: properties: uuid: { type: string, description: 'Service UUID.' } domains: { type: array, items: { type: string }, description: 'Service domains.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/services/{uuid}': get: tags: - Services summary: Get description: 'Get service by UUID.' operationId: 895d39ee2cb3994285de57256c2d428d parameters: - name: uuid in: path description: 'Service UUID' required: true schema: type: string responses: '200': description: 'Get a service by Uuid.' content: application/json: schema: $ref: '#/components/schemas/Service' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] delete: tags: - Services summary: Delete description: 'Delete service by UUID.' operationId: 6e1a61e4fddaa9d95bb9fc66dfaf0442 parameters: - name: uuid in: path description: 'Service UUID' required: true schema: type: string responses: '200': description: 'Delete a service by Uuid' content: application/json: schema: properties: message: { type: string, example: 'Service deletion request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/services/{uuid}/start': get: tags: - Services summary: Start description: 'Start service. `Post` request is also accepted.' operationId: d2ddd9c028d123fbdec830dc4b25b4cb parameters: - name: uuid in: path description: 'UUID of the service.' required: true schema: type: string format: uuid responses: '200': description: 'Start service.' content: application/json: schema: properties: message: { type: string, example: 'Service starting request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/services/{uuid}/stop': get: tags: - Services summary: Stop description: 'Stop service. `Post` request is also accepted.' operationId: 87399d34758ce16830740c68626614db parameters: - name: uuid in: path description: 'UUID of the service.' required: true schema: type: string format: uuid responses: '200': description: 'Stop service.' content: application/json: schema: properties: message: { type: string, example: 'Service stopping request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/services/{uuid}/restart': get: tags: - Services summary: Restart description: 'Restart service. `Post` request is also accepted.' operationId: 836645faa615b75052759dae78639469 parameters: - name: uuid in: path description: 'UUID of the service.' required: true schema: type: string format: uuid responses: '200': description: 'Restart service.' content: application/json: schema: properties: message: { type: string, example: 'Service restaring request queued.' } type: object '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /teams: get: tags: - Teams summary: List description: 'Get all teams.' operationId: f9c530b5b25df9601cb87d6a58646f0a responses: '200': description: 'List of teams.' content: application/json: schema: type: array items: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] '/teams/{id}': get: tags: - Teams summary: Get description: 'Get team by TeamId.' operationId: ac57ff546c002032cef44602c46a4e76 parameters: - name: id in: path description: 'Team ID' required: true schema: type: integer responses: '200': description: 'List of teams.' content: application/json: schema: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] '/teams/{id}/members': get: tags: - Teams summary: Members description: 'Get members by TeamId.' operationId: 7858f5a45d9ea55184c182852a7f0f6c parameters: - name: id in: path description: 'Team ID' required: true schema: type: integer responses: '200': description: 'List of members.' content: application/json: schema: type: array items: $ref: '#/components/schemas/User' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' '404': $ref: '#/components/responses/404' security: - bearerAuth: [] /teams/current: get: tags: - Teams summary: 'Authenticated Team' description: 'Get currently authenticated team.' operationId: 6a4ec9fed1aad7b0b38356c47d7ac509 responses: '200': description: 'Current Team.' content: application/json: schema: $ref: '#/components/schemas/Team' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] /teams/current/members: get: tags: - Teams summary: 'Authenticated Team Members' description: 'Get currently authenticated team members.' operationId: 97e636a5796dbe71afb0bbcf1eec6e41 responses: '200': description: 'Currently authenticated team members.' content: application/json: schema: type: array items: $ref: '#/components/schemas/User' '401': $ref: '#/components/responses/401' '400': $ref: '#/components/responses/400' security: - bearerAuth: [] components: schemas: Application: description: 'Application model' properties: id: type: integer description: 'The application identifier in the database.' description: type: string nullable: true description: 'The application description.' repository_project_id: type: integer nullable: true description: 'The repository project identifier.' uuid: type: string description: 'The application UUID.' name: type: string description: 'The application name.' fqdn: type: string nullable: true description: 'The application domains.' config_hash: type: string description: 'Configuration hash.' git_repository: type: string description: 'Git repository URL.' git_branch: type: string description: 'Git branch.' git_commit_sha: type: string description: 'Git commit SHA.' git_full_url: type: string nullable: true description: 'Git full URL.' docker_registry_image_name: type: string nullable: true description: 'Docker registry image name.' docker_registry_image_tag: type: string nullable: true description: 'Docker registry image tag.' build_pack: type: string description: 'Build pack.' enum: - nixpacks - static - dockerfile - dockercompose static_image: type: string description: 'Static image used when static site is deployed.' install_command: type: string description: 'Install command.' build_command: type: string description: 'Build command.' start_command: type: string description: 'Start command.' ports_exposes: type: string description: 'Ports exposes.' ports_mappings: type: string nullable: true description: 'Ports mappings.' base_directory: type: string description: 'Base directory for all commands.' publish_directory: type: string description: 'Publish directory.' health_check_enabled: type: boolean description: 'Health check enabled.' health_check_path: type: string description: 'Health check path.' health_check_port: type: string nullable: true description: 'Health check port.' health_check_host: type: string nullable: true description: 'Health check host.' health_check_method: type: string description: 'Health check method.' health_check_return_code: type: integer description: 'Health check return code.' health_check_scheme: type: string description: 'Health check scheme.' health_check_response_text: type: string nullable: true description: 'Health check response text.' health_check_interval: type: integer description: 'Health check interval in seconds.' health_check_timeout: type: integer description: 'Health check timeout in seconds.' health_check_retries: type: integer description: 'Health check retries count.' health_check_start_period: type: integer description: 'Health check start period in seconds.' limits_memory: type: string description: 'Memory limit.' limits_memory_swap: type: string description: 'Memory swap limit.' limits_memory_swappiness: type: integer description: 'Memory swappiness.' limits_memory_reservation: type: string description: 'Memory reservation.' limits_cpus: type: string description: 'CPU limit.' limits_cpuset: type: string nullable: true description: 'CPU set.' limits_cpu_shares: type: integer description: 'CPU shares.' status: type: string description: 'Application status.' preview_url_template: type: string description: 'Preview URL template.' destination_type: type: string description: 'Destination type.' destination_id: type: integer description: 'Destination identifier.' source_id: type: integer nullable: true description: 'Source identifier.' private_key_id: type: integer nullable: true description: 'Private key identifier.' environment_id: type: integer description: 'Environment identifier.' dockerfile: type: string nullable: true description: 'Dockerfile content. Used for dockerfile build pack.' dockerfile_location: type: string description: 'Dockerfile location.' custom_labels: type: string nullable: true description: 'Custom labels.' dockerfile_target_build: type: string nullable: true description: 'Dockerfile target build.' manual_webhook_secret_github: type: string nullable: true description: 'Manual webhook secret for GitHub.' manual_webhook_secret_gitlab: type: string nullable: true description: 'Manual webhook secret for GitLab.' manual_webhook_secret_bitbucket: type: string nullable: true description: 'Manual webhook secret for Bitbucket.' manual_webhook_secret_gitea: type: string nullable: true description: 'Manual webhook secret for Gitea.' docker_compose_location: type: string description: 'Docker compose location.' docker_compose: type: string nullable: true description: 'Docker compose content. Used for docker compose build pack.' docker_compose_raw: type: string nullable: true description: 'Docker compose raw content.' docker_compose_domains: type: string nullable: true description: 'Docker compose domains.' docker_compose_custom_start_command: type: string nullable: true description: 'Docker compose custom start command.' docker_compose_custom_build_command: type: string nullable: true description: 'Docker compose custom build command.' swarm_replicas: type: integer nullable: true description: 'Swarm replicas. Only used for swarm deployments.' swarm_placement_constraints: type: string nullable: true description: 'Swarm placement constraints. Only used for swarm deployments.' custom_docker_run_options: type: string nullable: true description: 'Custom docker run options.' post_deployment_command: type: string nullable: true description: 'Post deployment command.' post_deployment_command_container: type: string nullable: true description: 'Post deployment command container.' pre_deployment_command: type: string nullable: true description: 'Pre deployment command.' pre_deployment_command_container: type: string nullable: true description: 'Pre deployment command container.' watch_paths: type: string nullable: true description: 'Watch paths.' custom_healthcheck_found: type: boolean description: 'Custom healthcheck found.' redirect: type: string nullable: true description: 'How to set redirect with Traefik / Caddy. www<->non-www.' enum: - www - non-www - both created_at: type: string format: date-time description: 'The date and time when the application was created.' updated_at: type: string format: date-time description: 'The date and time when the application was last updated.' deleted_at: type: string format: date-time nullable: true description: 'The date and time when the application was deleted.' compose_parsing_version: type: string description: 'How Coolify parse the compose file.' type: object ApplicationDeploymentQueue: description: 'Project model' properties: id: type: integer application_id: type: string deployment_uuid: type: string pull_request_id: type: integer force_rebuild: type: boolean commit: type: string status: type: string is_webhook: type: boolean is_api: type: boolean created_at: type: string updated_at: type: string logs: type: string current_process_id: type: string restart_only: type: boolean git_type: type: string server_id: type: integer application_name: type: string server_name: type: string deployment_url: type: string destination_id: type: string only_this_server: type: boolean rollback: type: boolean commit_message: type: string type: object Environment: description: 'Environment model' properties: id: type: integer name: type: string project_id: type: integer created_at: type: string updated_at: type: string description: type: string type: object EnvironmentVariable: description: 'Environment Variable model' properties: id: type: integer uuid: type: string application_id: type: integer service_id: type: integer database_id: type: integer is_build_time: type: boolean is_literal: type: boolean is_multiline: type: boolean is_preview: type: boolean is_shared: type: boolean is_shown_once: type: boolean key: type: string value: type: string real_value: type: string version: type: string created_at: type: string updated_at: type: string type: object PrivateKey: description: 'Private Key model' properties: id: type: integer uuid: type: string name: type: string description: type: string private_key: type: string format: private-key is_git_related: type: boolean team_id: type: integer created_at: type: string updated_at: type: string type: object Project: description: 'Project model' properties: id: type: integer uuid: type: string name: type: string environments: description: 'The environments of the project.' type: array items: $ref: '#/components/schemas/Environment' type: object Server: description: 'Server model' properties: id: type: integer uuid: type: string name: type: string description: type: string ip: type: string user: type: string port: type: integer proxy: type: object high_disk_usage_notification_sent: type: boolean unreachable_notification_sent: type: boolean unreachable_count: type: integer validation_logs: type: string log_drain_notification_sent: type: boolean swarm_cluster: type: string type: object ServerSetting: description: 'Server Settings model' properties: id: type: integer cleanup_after_percentage: type: integer concurrent_builds: type: integer dynamic_timeout: type: integer force_disabled: type: boolean is_build_server: type: boolean is_cloudflare_tunnel: type: boolean is_jump_server: type: boolean is_logdrain_axiom_enabled: type: boolean is_logdrain_custom_enabled: type: boolean is_logdrain_highlight_enabled: type: boolean is_logdrain_newrelic_enabled: type: boolean is_metrics_enabled: type: boolean is_reachable: type: boolean is_server_api_enabled: type: boolean is_swarm_manager: type: boolean is_swarm_worker: type: boolean is_usable: type: boolean logdrain_axiom_api_key: type: string logdrain_axiom_dataset_name: type: string logdrain_custom_config: type: string logdrain_custom_config_parser: type: string logdrain_highlight_project_id: type: string logdrain_newrelic_base_uri: type: string logdrain_newrelic_license_key: type: string metrics_history_days: type: integer metrics_refresh_rate_seconds: type: integer metrics_token: type: string server_id: type: integer wildcard_domain: type: string created_at: type: string updated_at: type: string type: object Service: description: 'Service model' properties: id: type: integer description: 'The unique identifier of the service. Only used for database identification.' uuid: type: string description: 'The unique identifier of the service.' name: type: string description: 'The name of the service.' environment_id: type: integer description: 'The unique identifier of the environment where the service is attached to.' server_id: type: integer description: 'The unique identifier of the server where the service is running.' description: type: string description: 'The description of the service.' docker_compose_raw: type: string description: 'The raw docker-compose.yml file of the service.' docker_compose: type: string description: 'The docker-compose.yml file that is parsed and modified by Coolify.' destination_id: type: integer description: 'The unique identifier of the destination where the service is running.' connect_to_docker_network: type: boolean description: 'The flag to connect the service to the predefined Docker network.' is_container_label_escape_enabled: type: boolean description: 'The flag to enable the container label escape.' is_container_label_readonly_enabled: type: boolean description: 'The flag to enable the container label readonly.' config_hash: type: string description: 'The hash of the service configuration.' service_type: type: string description: 'The type of the service.' created_at: type: string description: 'The date and time when the service was created.' updated_at: type: string description: 'The date and time when the service was last updated.' deleted_at: type: string description: 'The date and time when the service was deleted.' type: object Team: description: 'Team model' properties: id: type: integer description: 'The unique identifier of the team.' name: type: string description: 'The name of the team.' description: type: string description: 'The description of the team.' personal_team: type: boolean description: 'Whether the team is personal or not.' created_at: type: string description: 'The date and time the team was created.' updated_at: type: string description: 'The date and time the team was last updated.' smtp_enabled: type: boolean description: 'Whether SMTP is enabled or not.' smtp_from_address: type: string description: 'The email address to send emails from.' smtp_from_name: type: string description: 'The name to send emails from.' smtp_recipients: type: string description: 'The email addresses to send emails to.' smtp_host: type: string description: 'The SMTP host.' smtp_port: type: string description: 'The SMTP port.' smtp_encryption: type: string description: 'The SMTP encryption.' smtp_username: type: string description: 'The SMTP username.' smtp_password: type: string description: 'The SMTP password.' smtp_timeout: type: string description: 'The SMTP timeout.' smtp_notifications_test: type: boolean description: 'Whether to send test notifications via SMTP.' smtp_notifications_deployments: type: boolean description: 'Whether to send deployment notifications via SMTP.' smtp_notifications_status_changes: type: boolean description: 'Whether to send status change notifications via SMTP.' smtp_notifications_scheduled_tasks: type: boolean description: 'Whether to send scheduled task notifications via SMTP.' smtp_notifications_database_backups: type: boolean description: 'Whether to send database backup notifications via SMTP.' discord_enabled: type: boolean description: 'Whether Discord is enabled or not.' discord_webhook_url: type: string description: 'The Discord webhook URL.' discord_notifications_test: type: boolean description: 'Whether to send test notifications via Discord.' discord_notifications_deployments: type: boolean description: 'Whether to send deployment notifications via Discord.' discord_notifications_status_changes: type: boolean description: 'Whether to send status change notifications via Discord.' discord_notifications_database_backups: type: boolean description: 'Whether to send database backup notifications via Discord.' discord_notifications_scheduled_tasks: type: boolean description: 'Whether to send scheduled task notifications via Discord.' show_boarding: type: boolean description: 'Whether to show the boarding screen or not.' resend_enabled: type: boolean description: 'Whether to enable resending or not.' resend_api_key: type: string description: 'The resending API key.' use_instance_email_settings: type: boolean description: 'Whether to use instance email settings or not.' telegram_enabled: type: boolean description: 'Whether Telegram is enabled or not.' telegram_token: type: string description: 'The Telegram token.' telegram_chat_id: type: string description: 'The Telegram chat ID.' telegram_notifications_test: type: boolean description: 'Whether to send test notifications via Telegram.' telegram_notifications_deployments: type: boolean description: 'Whether to send deployment notifications via Telegram.' telegram_notifications_status_changes: type: boolean description: 'Whether to send status change notifications via Telegram.' telegram_notifications_database_backups: type: boolean description: 'Whether to send database backup notifications via Telegram.' telegram_notifications_test_message_thread_id: type: string description: 'The Telegram test message thread ID.' telegram_notifications_deployments_message_thread_id: type: string description: 'The Telegram deployment message thread ID.' telegram_notifications_status_changes_message_thread_id: type: string description: 'The Telegram status change message thread ID.' telegram_notifications_database_backups_message_thread_id: type: string description: 'The Telegram database backup message thread ID.' custom_server_limit: type: string description: 'The custom server limit.' telegram_notifications_scheduled_tasks: type: boolean description: 'Whether to send scheduled task notifications via Telegram.' telegram_notifications_scheduled_tasks_thread_id: type: string description: 'The Telegram scheduled task message thread ID.' members: description: 'The members of the team.' type: array items: $ref: '#/components/schemas/User' type: object User: description: 'User model' properties: id: type: integer description: 'The user identifier in the database.' name: type: string description: 'The user name.' email: type: string description: 'The user email.' email_verified_at: type: string description: 'The date when the user email was verified.' created_at: type: string description: 'The date when the user was created.' updated_at: type: string description: 'The date when the user was updated.' two_factor_confirmed_at: type: string description: 'The date when the user two factor was confirmed.' force_password_reset: type: boolean description: 'The flag to force the user to reset the password.' marketing_emails: type: boolean description: 'The flag to receive marketing emails.' type: object responses: '400': description: 'Invalid token.' content: application/json: schema: properties: message: type: string example: 'Invalid token.' type: object '401': description: Unauthenticated. content: application/json: schema: properties: message: type: string example: Unauthenticated. type: object '404': description: 'Resource not found.' content: application/json: schema: properties: message: type: string example: 'Resource not found.' type: object securitySchemes: bearerAuth: type: http description: 'Go to `Keys & Tokens` / `API tokens` and create a new token. Use the token as the bearer token.' scheme: bearer tags: - name: Applications description: Applications - name: Databases description: Databases - name: Deployments description: Deployments - name: Projects description: Projects - name: Resources description: Resources - name: 'Private Keys' description: 'Private Keys' - name: Servers description: Servers - name: Services description: Services - name: Teams description: Teams