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