Files
coolify/openapi.json
2024-12-01 10:19:15 +11:00

8004 lines
356 KiB
JSON

{
"openapi": "3.1.0",
"info": {
"title": "Coolify",
"version": "0.1"
},
"servers": [
{
"url": "https:\/\/app.coolify.io\/api\/v1",
"description": "Coolify Cloud API. Change the host to your own instance if you are self-hosting."
}
],
"paths": {
"\/applications": {
"get": {
"tags": [
"Applications"
],
"summary": "List",
"description": "List all applications.",
"operationId": "list-applications",
"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": []
}
]
}
},
"\/applications\/public": {
"post": {
"tags": [
"Applications"
],
"summary": "Create (Public)",
"description": "Create new application based on a public git repository.",
"operationId": "create-public-application",
"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."
},
"static_image": {
"type": "string",
"enum": [
"nginx:alpine"
],
"description": "The static image."
},
"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."
},
"use_build_server": {
"type": "boolean",
"nullable": true,
"description": "Use build server."
}
},
"type": "object"
}
}
}
},
"responses": {
"200": {
"description": "Application created successfully."
},
"401": {
"$ref": "#\/components\/responses\/401"
},
"400": {
"$ref": "#\/components\/responses\/400"
}
},
"security": [
{
"bearerAuth": []
}
]
}
},
"\/applications\/private-github-app": {
"post": {
"tags": [
"Applications"
],
"summary": "Create (Private - GH App)",
"description": "Create new application based on a private repository through a Github App.",
"operationId": "create-private-github-app-application",
"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."
},
"static_image": {
"type": "string",
"enum": [
"nginx:alpine"
],
"description": "The static image."
},
"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."
},
"use_build_server": {
"type": "boolean",
"nullable": true,
"description": "Use build server."
}
},
"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": "create-private-deploy-key-application",
"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."
},
"static_image": {
"type": "string",
"enum": [
"nginx:alpine"
],
"description": "The static image."
},
"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."
},
"use_build_server": {
"type": "boolean",
"nullable": true,
"description": "Use build server."
}
},
"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": "create-dockerfile-application",
"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."
},
"use_build_server": {
"type": "boolean",
"nullable": true,
"description": "Use build server."
}
},
"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": "create-dockerimage-application",
"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."
},
"use_build_server": {
"type": "boolean",
"nullable": true,
"description": "Use build server."
}
},
"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": "create-dockercompose-application",
"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."
},
"use_build_server": {
"type": "boolean",
"nullable": true,
"description": "Use build server."
}
},
"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": "get-application-by-uuid",
"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": "delete-application-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the application.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "delete_configurations",
"in": "query",
"description": "Delete configurations.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "delete_volumes",
"in": "query",
"description": "Delete volumes.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "docker_cleanup",
"in": "query",
"description": "Run docker cleanup.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "delete_connected_networks",
"in": "query",
"description": "Delete connected networks.",
"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": []
}
]
},
"patch": {
"tags": [
"Applications"
],
"summary": "Update",
"description": "Update application by UUID.",
"operationId": "update-application-by-uuid",
"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."
},
"use_build_server": {
"type": "boolean",
"nullable": true,
"description": "Use build server."
}
},
"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\/{uuid}\/envs": {
"get": {
"tags": [
"Applications"
],
"summary": "List Envs",
"description": "List all envs by application UUID.",
"operationId": "list-envs-by-application-uuid",
"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": "create-env-by-application-uuid",
"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": "update-env-by-application-uuid",
"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": "update-envs-by-application-uuid",
"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": "delete-env-by-application-uuid",
"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": "start-application-by-uuid",
"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": "stop-application-by-uuid",
"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": "restart-application-by-uuid",
"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": []
}
]
}
},
"\/applications\/{uuid}\/execute": {
"post": {
"tags": [
"Applications"
],
"summary": "Execute Command",
"description": "Execute a command on the application's current container.",
"operationId": "execute-command-application",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the application.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"requestBody": {
"description": "Command to execute.",
"required": true,
"content": {
"application\/json": {
"schema": {
"properties": {
"command": {
"type": "string",
"description": "Command to execute."
}
},
"type": "object"
}
}
}
},
"responses": {
"200": {
"description": "Execute a command on the application's current container.",
"content": {
"application\/json": {
"schema": {
"properties": {
"message": {
"type": "string",
"example": "Command executed."
},
"response": {
"type": "string"
}
},
"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": "list-databases",
"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": "get-database-by-uuid",
"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": "delete-database-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the database.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "delete_configurations",
"in": "query",
"description": "Delete configurations.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "delete_volumes",
"in": "query",
"description": "Delete volumes.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "docker_cleanup",
"in": "query",
"description": "Run docker cleanup.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "delete_connected_networks",
"in": "query",
"description": "Delete connected networks.",
"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": "update-database-by-uuid",
"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_database": {
"type": "string",
"description": "Mongo initdb init database"
},
"mysql_root_password": {
"type": "string",
"description": "MySQL root password"
},
"mysql_password": {
"type": "string",
"description": "MySQL 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": "create-database-postgresql",
"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": "create-database-clickhouse",
"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": "create-database-dragonfly",
"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": "create-database-redis",
"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": "create-database-keydb",
"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": "create-database-mariadb",
"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": "create-database-mysql",
"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_password": {
"type": "string",
"description": "MySQL 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": "create-database-mongodb",
"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": "start-database-by-uuid",
"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": "stop-database-by-uuid",
"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": "restart-database-by-uuid",
"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": "list-deployments",
"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": "get-deployment-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Deployment UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"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": "deploy-by-tag-or-uuid",
"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": "version",
"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": "enable-api",
"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": "disable-api",
"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": []
}
]
}
},
"\/health": {
"get": {
"summary": "Healthcheck",
"description": "Healthcheck endpoint.",
"operationId": "healthcheck",
"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": "list-projects",
"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": "create-project",
"requestBody": {
"description": "Project created.",
"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 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": "get-project-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Project UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"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": "delete-project-by-uuid",
"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": "update-project-by-uuid",
"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": "get-environment-by-name",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Project UUID",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "environment_name",
"in": "path",
"description": "Environment name",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Environment 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": "list-resources",
"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": "list-private-keys",
"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": "create-private-key",
"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": "update-private-key",
"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": "get-private-key-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Private Key UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Get all private keys.",
"content": {
"application\/json": {
"schema": {
"$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": "delete-private-key-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Private Key UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"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": "list-servers",
"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": "create-server",
"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."
},
"proxy_type": {
"type": "string",
"enum": [
"traefik",
"caddy",
"none"
],
"example": "traefik",
"description": "The proxy type."
}
},
"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": "get-server-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Server's UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"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": "delete-server-by-uuid",
"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": "update-server-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Server UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"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."
},
"proxy_type": {
"type": "string",
"enum": [
"traefik",
"caddy",
"none"
],
"description": "The proxy type."
}
},
"type": "object"
}
}
}
},
"responses": {
"201": {
"description": "Server updated.",
"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": []
}
]
}
},
"\/servers\/{uuid}\/resources": {
"get": {
"tags": [
"Servers"
],
"summary": "Resources",
"description": "Get resources by server.",
"operationId": "get-resources-by-server-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Server's UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"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": "get-domains-by-server-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Server's UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"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": "validate-server-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Server UUID",
"required": true,
"schema": {
"type": "string"
}
}
],
"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": "list-services",
"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": "create-service",
"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": "get-service-by-uuid",
"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": "delete-service-by-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "Service UUID",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "delete_configurations",
"in": "query",
"description": "Delete configurations.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "delete_volumes",
"in": "query",
"description": "Delete volumes.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "docker_cleanup",
"in": "query",
"description": "Run docker cleanup.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
},
{
"name": "delete_connected_networks",
"in": "query",
"description": "Delete connected networks.",
"required": false,
"schema": {
"type": "boolean",
"default": true
}
}
],
"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}\/envs": {
"get": {
"tags": [
"Services"
],
"summary": "List Envs",
"description": "List all envs by service UUID.",
"operationId": "list-envs-by-service-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the service.",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
}
],
"responses": {
"200": {
"description": "All environment variables by service 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": [
"Services"
],
"summary": "Create Env",
"description": "Create env by service UUID.",
"operationId": "create-env-by-service-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the service.",
"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": [
"Services"
],
"summary": "Update Env",
"description": "Update env by service UUID.",
"operationId": "update-env-by-service-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the service.",
"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": []
}
]
}
},
"\/services\/{uuid}\/envs\/bulk": {
"patch": {
"tags": [
"Services"
],
"summary": "Update Envs (Bulk)",
"description": "Update multiple envs by service UUID.",
"operationId": "update-envs-by-service-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the service.",
"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": []
}
]
}
},
"\/services\/{uuid}\/envs\/{env_uuid}": {
"delete": {
"tags": [
"Services"
],
"summary": "Delete Env",
"description": "Delete env by UUID.",
"operationId": "delete-env-by-service-uuid",
"parameters": [
{
"name": "uuid",
"in": "path",
"description": "UUID of the service.",
"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": []
}
]
}
},
"\/services\/{uuid}\/start": {
"get": {
"tags": [
"Services"
],
"summary": "Start",
"description": "Start service. `Post` request is also accepted.",
"operationId": "start-service-by-uuid",
"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": "stop-service-by-uuid",
"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": "restart-service-by-uuid",
"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": "list-teams",
"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": "get-team-by-id",
"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": "get-members-by-team-id",
"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": "get-current-team",
"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": "get-current-team-members",
"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."
},
"custom_nginx_configuration": {
"type": "string",
"nullable": true,
"description": "Custom Nginx configuration base64 encoded."
}
},
"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"
},
"description": {
"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",
"description": "The server ID."
},
"uuid": {
"type": "string",
"description": "The server UUID."
},
"name": {
"type": "string",
"description": "The server name."
},
"description": {
"type": "string",
"description": "The server description."
},
"ip": {
"type": "string",
"description": "The IP address."
},
"user": {
"type": "string",
"description": "The user."
},
"port": {
"type": "integer",
"description": "The port number."
},
"proxy": {
"type": "object",
"description": "The proxy configuration."
},
"proxy_type": {
"type": "string",
"enum": [
"traefik",
"caddy",
"none"
],
"description": "The proxy type."
},
"high_disk_usage_notification_sent": {
"type": "boolean",
"description": "The flag to indicate if the high disk usage notification has been sent."
},
"unreachable_notification_sent": {
"type": "boolean",
"description": "The flag to indicate if the unreachable notification has been sent."
},
"unreachable_count": {
"type": "integer",
"description": "The unreachable count for your server."
},
"validation_logs": {
"type": "string",
"description": "The validation logs."
},
"log_drain_notification_sent": {
"type": "boolean",
"description": "The flag to indicate if the log drain notification has been sent."
},
"swarm_cluster": {
"type": "string",
"description": "The swarm cluster configuration."
},
"settings": {
"$ref": "#\/components\/schemas\/ServerSetting"
}
},
"type": "object"
},
"ServerSetting": {
"description": "Server Settings model",
"properties": {
"id": {
"type": "integer"
},
"concurrent_builds": {
"type": "integer"
},
"dynamic_timeout": {
"type": "integer"
},
"force_disabled": {
"type": "boolean"
},
"force_server_cleanup": {
"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_sentinel_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"
},
"sentinel_metrics_history_days": {
"type": "integer"
},
"sentinel_metrics_refresh_rate_seconds": {
"type": "integer"
},
"sentinel_token": {
"type": "string"
},
"docker_cleanup_frequency": {
"type": "string"
},
"docker_cleanup_threshold": {
"type": "integer"
},
"server_id": {
"type": "integer"
},
"wildcard_domain": {
"type": "string"
},
"created_at": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"delete_unused_volumes": {
"type": "boolean",
"description": "The flag to indicate if the unused volumes should be deleted."
},
"delete_unused_networks": {
"type": "boolean",
"description": "The flag to indicate if the unused networks should be deleted."
}
},
"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_type": {
"type": "string",
"description": "Destination type."
},
"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."
},
"smtp_notifications_server_disk_usage": {
"type": "boolean",
"description": "Whether to send server disk usage 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."
},
"discord_notifications_server_disk_usage": {
"type": "boolean",
"description": "Whether to send server disk usage 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"
}
]
}