- Due to security concerns, execute is disabled, so we need to comment out the code as well to update the docs.
5439 lines
179 KiB
YAML
5439 lines
179 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: Coolify
|
|
version: '0.1'
|
|
servers:
|
|
-
|
|
url: 'https://app.coolify.io/api/v1'
|
|
description: 'Coolify Cloud API. Change the host to your own instance if you are self-hosting.'
|
|
paths:
|
|
/applications:
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: List
|
|
description: 'List all applications.'
|
|
operationId: list-applications
|
|
responses:
|
|
'200':
|
|
description: 'Get all applications.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Application'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/applications/public:
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: 'Create (Public)'
|
|
description: 'Create new application based on a public git repository.'
|
|
operationId: create-public-application
|
|
requestBody:
|
|
description: 'Application object that needs to be created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- project_uuid
|
|
- server_uuid
|
|
- environment_name
|
|
- environment_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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
|
|
git_repository:
|
|
type: string
|
|
description: 'The git repository URL.'
|
|
git_branch:
|
|
type: string
|
|
description: 'The git branch.'
|
|
build_pack:
|
|
type: string
|
|
enum: [nixpacks, static, dockerfile, dockercompose]
|
|
description: 'The build pack type.'
|
|
ports_exposes:
|
|
type: string
|
|
description: 'The ports to expose.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'The destination UUID.'
|
|
name:
|
|
type: string
|
|
description: 'The application name.'
|
|
description:
|
|
type: string
|
|
description: 'The application description.'
|
|
domains:
|
|
type: string
|
|
description: 'The application domains.'
|
|
git_commit_sha:
|
|
type: string
|
|
description: 'The git commit SHA.'
|
|
docker_registry_image_name:
|
|
type: string
|
|
description: 'The docker registry image name.'
|
|
docker_registry_image_tag:
|
|
type: string
|
|
description: 'The docker registry image tag.'
|
|
is_static:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application is static.'
|
|
static_image:
|
|
type: string
|
|
enum: ['nginx:alpine']
|
|
description: 'The static image.'
|
|
install_command:
|
|
type: string
|
|
description: 'The install command.'
|
|
build_command:
|
|
type: string
|
|
description: 'The build command.'
|
|
start_command:
|
|
type: string
|
|
description: 'The start command.'
|
|
ports_mappings:
|
|
type: string
|
|
description: 'The ports mappings.'
|
|
base_directory:
|
|
type: string
|
|
description: 'The base directory for all commands.'
|
|
publish_directory:
|
|
type: string
|
|
description: 'The publish directory.'
|
|
health_check_enabled:
|
|
type: boolean
|
|
description: 'Health check enabled.'
|
|
health_check_path:
|
|
type: string
|
|
description: 'Health check path.'
|
|
health_check_port:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check port.'
|
|
health_check_host:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check host.'
|
|
health_check_method:
|
|
type: string
|
|
description: 'Health check method.'
|
|
health_check_return_code:
|
|
type: integer
|
|
description: 'Health check return code.'
|
|
health_check_scheme:
|
|
type: string
|
|
description: 'Health check scheme.'
|
|
health_check_response_text:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check response text.'
|
|
health_check_interval:
|
|
type: integer
|
|
description: 'Health check interval in seconds.'
|
|
health_check_timeout:
|
|
type: integer
|
|
description: 'Health check timeout in seconds.'
|
|
health_check_retries:
|
|
type: integer
|
|
description: 'Health check retries count.'
|
|
health_check_start_period:
|
|
type: integer
|
|
description: 'Health check start period in seconds.'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit.'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit.'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness.'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation.'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit.'
|
|
limits_cpuset:
|
|
type: string
|
|
nullable: true
|
|
description: 'CPU set.'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares.'
|
|
custom_labels:
|
|
type: string
|
|
description: 'Custom labels.'
|
|
custom_docker_run_options:
|
|
type: string
|
|
description: 'Custom docker run options.'
|
|
post_deployment_command:
|
|
type: string
|
|
description: 'Post deployment command.'
|
|
post_deployment_command_container:
|
|
type: string
|
|
description: 'Post deployment command container.'
|
|
pre_deployment_command:
|
|
type: string
|
|
description: 'Pre deployment command.'
|
|
pre_deployment_command_container:
|
|
type: string
|
|
description: 'Pre deployment command container.'
|
|
manual_webhook_secret_github:
|
|
type: string
|
|
description: 'Manual webhook secret for Github.'
|
|
manual_webhook_secret_gitlab:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitlab.'
|
|
manual_webhook_secret_bitbucket:
|
|
type: string
|
|
description: 'Manual webhook secret for Bitbucket.'
|
|
manual_webhook_secret_gitea:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitea.'
|
|
redirect:
|
|
type: string
|
|
nullable: true
|
|
description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
|
|
enum: [www, non-www, both]
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application should be deployed instantly.'
|
|
dockerfile:
|
|
type: string
|
|
description: 'The Dockerfile content.'
|
|
docker_compose_location:
|
|
type: string
|
|
description: 'The Docker Compose location.'
|
|
docker_compose_raw:
|
|
type: string
|
|
description: 'The Docker Compose raw content.'
|
|
docker_compose_custom_start_command:
|
|
type: string
|
|
description: 'The Docker Compose custom start command.'
|
|
docker_compose_custom_build_command:
|
|
type: string
|
|
description: 'The Docker Compose custom build command.'
|
|
docker_compose_domains:
|
|
type: array
|
|
description: 'The Docker Compose domains.'
|
|
watch_paths:
|
|
type: string
|
|
description: 'The watch paths.'
|
|
use_build_server:
|
|
type: boolean
|
|
nullable: true
|
|
description: 'Use build server.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Application created successfully.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/applications/private-github-app:
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: 'Create (Private - GH App)'
|
|
description: 'Create new application based on a private repository through a Github App.'
|
|
operationId: create-private-github-app-application
|
|
requestBody:
|
|
description: 'Application object that needs to be created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- project_uuid
|
|
- server_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
- 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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
|
|
github_app_uuid:
|
|
type: string
|
|
description: 'The Github App UUID.'
|
|
git_repository:
|
|
type: string
|
|
description: 'The git repository URL.'
|
|
git_branch:
|
|
type: string
|
|
description: 'The git branch.'
|
|
ports_exposes:
|
|
type: string
|
|
description: 'The ports to expose.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'The destination UUID.'
|
|
build_pack:
|
|
type: string
|
|
enum: [nixpacks, static, dockerfile, dockercompose]
|
|
description: 'The build pack type.'
|
|
name:
|
|
type: string
|
|
description: 'The application name.'
|
|
description:
|
|
type: string
|
|
description: 'The application description.'
|
|
domains:
|
|
type: string
|
|
description: 'The application domains.'
|
|
git_commit_sha:
|
|
type: string
|
|
description: 'The git commit SHA.'
|
|
docker_registry_image_name:
|
|
type: string
|
|
description: 'The docker registry image name.'
|
|
docker_registry_image_tag:
|
|
type: string
|
|
description: 'The docker registry image tag.'
|
|
is_static:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application is static.'
|
|
static_image:
|
|
type: string
|
|
enum: ['nginx:alpine']
|
|
description: 'The static image.'
|
|
install_command:
|
|
type: string
|
|
description: 'The install command.'
|
|
build_command:
|
|
type: string
|
|
description: 'The build command.'
|
|
start_command:
|
|
type: string
|
|
description: 'The start command.'
|
|
ports_mappings:
|
|
type: string
|
|
description: 'The ports mappings.'
|
|
base_directory:
|
|
type: string
|
|
description: 'The base directory for all commands.'
|
|
publish_directory:
|
|
type: string
|
|
description: 'The publish directory.'
|
|
health_check_enabled:
|
|
type: boolean
|
|
description: 'Health check enabled.'
|
|
health_check_path:
|
|
type: string
|
|
description: 'Health check path.'
|
|
health_check_port:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check port.'
|
|
health_check_host:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check host.'
|
|
health_check_method:
|
|
type: string
|
|
description: 'Health check method.'
|
|
health_check_return_code:
|
|
type: integer
|
|
description: 'Health check return code.'
|
|
health_check_scheme:
|
|
type: string
|
|
description: 'Health check scheme.'
|
|
health_check_response_text:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check response text.'
|
|
health_check_interval:
|
|
type: integer
|
|
description: 'Health check interval in seconds.'
|
|
health_check_timeout:
|
|
type: integer
|
|
description: 'Health check timeout in seconds.'
|
|
health_check_retries:
|
|
type: integer
|
|
description: 'Health check retries count.'
|
|
health_check_start_period:
|
|
type: integer
|
|
description: 'Health check start period in seconds.'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit.'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit.'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness.'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation.'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit.'
|
|
limits_cpuset:
|
|
type: string
|
|
nullable: true
|
|
description: 'CPU set.'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares.'
|
|
custom_labels:
|
|
type: string
|
|
description: 'Custom labels.'
|
|
custom_docker_run_options:
|
|
type: string
|
|
description: 'Custom docker run options.'
|
|
post_deployment_command:
|
|
type: string
|
|
description: 'Post deployment command.'
|
|
post_deployment_command_container:
|
|
type: string
|
|
description: 'Post deployment command container.'
|
|
pre_deployment_command:
|
|
type: string
|
|
description: 'Pre deployment command.'
|
|
pre_deployment_command_container:
|
|
type: string
|
|
description: 'Pre deployment command container.'
|
|
manual_webhook_secret_github:
|
|
type: string
|
|
description: 'Manual webhook secret for Github.'
|
|
manual_webhook_secret_gitlab:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitlab.'
|
|
manual_webhook_secret_bitbucket:
|
|
type: string
|
|
description: 'Manual webhook secret for Bitbucket.'
|
|
manual_webhook_secret_gitea:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitea.'
|
|
redirect:
|
|
type: string
|
|
nullable: true
|
|
description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
|
|
enum: [www, non-www, both]
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application should be deployed instantly.'
|
|
dockerfile:
|
|
type: string
|
|
description: 'The Dockerfile content.'
|
|
docker_compose_location:
|
|
type: string
|
|
description: 'The Docker Compose location.'
|
|
docker_compose_raw:
|
|
type: string
|
|
description: 'The Docker Compose raw content.'
|
|
docker_compose_custom_start_command:
|
|
type: string
|
|
description: 'The Docker Compose custom start command.'
|
|
docker_compose_custom_build_command:
|
|
type: string
|
|
description: 'The Docker Compose custom build command.'
|
|
docker_compose_domains:
|
|
type: array
|
|
description: 'The Docker Compose domains.'
|
|
watch_paths:
|
|
type: string
|
|
description: 'The watch paths.'
|
|
use_build_server:
|
|
type: boolean
|
|
nullable: true
|
|
description: 'Use build server.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Application created successfully.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/applications/private-deploy-key:
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: 'Create (Private - Deploy Key)'
|
|
description: 'Create new application based on a private repository through a Deploy Key.'
|
|
operationId: create-private-deploy-key-application
|
|
requestBody:
|
|
description: 'Application object that needs to be created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- project_uuid
|
|
- server_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
- 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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
|
|
private_key_uuid:
|
|
type: string
|
|
description: 'The private key UUID.'
|
|
git_repository:
|
|
type: string
|
|
description: 'The git repository URL.'
|
|
git_branch:
|
|
type: string
|
|
description: 'The git branch.'
|
|
ports_exposes:
|
|
type: string
|
|
description: 'The ports to expose.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'The destination UUID.'
|
|
build_pack:
|
|
type: string
|
|
enum: [nixpacks, static, dockerfile, dockercompose]
|
|
description: 'The build pack type.'
|
|
name:
|
|
type: string
|
|
description: 'The application name.'
|
|
description:
|
|
type: string
|
|
description: 'The application description.'
|
|
domains:
|
|
type: string
|
|
description: 'The application domains.'
|
|
git_commit_sha:
|
|
type: string
|
|
description: 'The git commit SHA.'
|
|
docker_registry_image_name:
|
|
type: string
|
|
description: 'The docker registry image name.'
|
|
docker_registry_image_tag:
|
|
type: string
|
|
description: 'The docker registry image tag.'
|
|
is_static:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application is static.'
|
|
static_image:
|
|
type: string
|
|
enum: ['nginx:alpine']
|
|
description: 'The static image.'
|
|
install_command:
|
|
type: string
|
|
description: 'The install command.'
|
|
build_command:
|
|
type: string
|
|
description: 'The build command.'
|
|
start_command:
|
|
type: string
|
|
description: 'The start command.'
|
|
ports_mappings:
|
|
type: string
|
|
description: 'The ports mappings.'
|
|
base_directory:
|
|
type: string
|
|
description: 'The base directory for all commands.'
|
|
publish_directory:
|
|
type: string
|
|
description: 'The publish directory.'
|
|
health_check_enabled:
|
|
type: boolean
|
|
description: 'Health check enabled.'
|
|
health_check_path:
|
|
type: string
|
|
description: 'Health check path.'
|
|
health_check_port:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check port.'
|
|
health_check_host:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check host.'
|
|
health_check_method:
|
|
type: string
|
|
description: 'Health check method.'
|
|
health_check_return_code:
|
|
type: integer
|
|
description: 'Health check return code.'
|
|
health_check_scheme:
|
|
type: string
|
|
description: 'Health check scheme.'
|
|
health_check_response_text:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check response text.'
|
|
health_check_interval:
|
|
type: integer
|
|
description: 'Health check interval in seconds.'
|
|
health_check_timeout:
|
|
type: integer
|
|
description: 'Health check timeout in seconds.'
|
|
health_check_retries:
|
|
type: integer
|
|
description: 'Health check retries count.'
|
|
health_check_start_period:
|
|
type: integer
|
|
description: 'Health check start period in seconds.'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit.'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit.'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness.'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation.'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit.'
|
|
limits_cpuset:
|
|
type: string
|
|
nullable: true
|
|
description: 'CPU set.'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares.'
|
|
custom_labels:
|
|
type: string
|
|
description: 'Custom labels.'
|
|
custom_docker_run_options:
|
|
type: string
|
|
description: 'Custom docker run options.'
|
|
post_deployment_command:
|
|
type: string
|
|
description: 'Post deployment command.'
|
|
post_deployment_command_container:
|
|
type: string
|
|
description: 'Post deployment command container.'
|
|
pre_deployment_command:
|
|
type: string
|
|
description: 'Pre deployment command.'
|
|
pre_deployment_command_container:
|
|
type: string
|
|
description: 'Pre deployment command container.'
|
|
manual_webhook_secret_github:
|
|
type: string
|
|
description: 'Manual webhook secret for Github.'
|
|
manual_webhook_secret_gitlab:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitlab.'
|
|
manual_webhook_secret_bitbucket:
|
|
type: string
|
|
description: 'Manual webhook secret for Bitbucket.'
|
|
manual_webhook_secret_gitea:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitea.'
|
|
redirect:
|
|
type: string
|
|
nullable: true
|
|
description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
|
|
enum: [www, non-www, both]
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application should be deployed instantly.'
|
|
dockerfile:
|
|
type: string
|
|
description: 'The Dockerfile content.'
|
|
docker_compose_location:
|
|
type: string
|
|
description: 'The Docker Compose location.'
|
|
docker_compose_raw:
|
|
type: string
|
|
description: 'The Docker Compose raw content.'
|
|
docker_compose_custom_start_command:
|
|
type: string
|
|
description: 'The Docker Compose custom start command.'
|
|
docker_compose_custom_build_command:
|
|
type: string
|
|
description: 'The Docker Compose custom build command.'
|
|
docker_compose_domains:
|
|
type: array
|
|
description: 'The Docker Compose domains.'
|
|
watch_paths:
|
|
type: string
|
|
description: 'The watch paths.'
|
|
use_build_server:
|
|
type: boolean
|
|
nullable: true
|
|
description: 'Use build server.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Application created successfully.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/applications/dockerfile:
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: 'Create (Dockerfile)'
|
|
description: 'Create new application based on a simple Dockerfile.'
|
|
operationId: create-dockerfile-application
|
|
requestBody:
|
|
description: 'Application object that needs to be created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- project_uuid
|
|
- server_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
- 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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
|
|
dockerfile:
|
|
type: string
|
|
description: 'The Dockerfile content.'
|
|
build_pack:
|
|
type: string
|
|
enum: [nixpacks, static, dockerfile, dockercompose]
|
|
description: 'The build pack type.'
|
|
ports_exposes:
|
|
type: string
|
|
description: 'The ports to expose.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'The destination UUID.'
|
|
name:
|
|
type: string
|
|
description: 'The application name.'
|
|
description:
|
|
type: string
|
|
description: 'The application description.'
|
|
domains:
|
|
type: string
|
|
description: 'The application domains.'
|
|
docker_registry_image_name:
|
|
type: string
|
|
description: 'The docker registry image name.'
|
|
docker_registry_image_tag:
|
|
type: string
|
|
description: 'The docker registry image tag.'
|
|
ports_mappings:
|
|
type: string
|
|
description: 'The ports mappings.'
|
|
base_directory:
|
|
type: string
|
|
description: 'The base directory for all commands.'
|
|
health_check_enabled:
|
|
type: boolean
|
|
description: 'Health check enabled.'
|
|
health_check_path:
|
|
type: string
|
|
description: 'Health check path.'
|
|
health_check_port:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check port.'
|
|
health_check_host:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check host.'
|
|
health_check_method:
|
|
type: string
|
|
description: 'Health check method.'
|
|
health_check_return_code:
|
|
type: integer
|
|
description: 'Health check return code.'
|
|
health_check_scheme:
|
|
type: string
|
|
description: 'Health check scheme.'
|
|
health_check_response_text:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check response text.'
|
|
health_check_interval:
|
|
type: integer
|
|
description: 'Health check interval in seconds.'
|
|
health_check_timeout:
|
|
type: integer
|
|
description: 'Health check timeout in seconds.'
|
|
health_check_retries:
|
|
type: integer
|
|
description: 'Health check retries count.'
|
|
health_check_start_period:
|
|
type: integer
|
|
description: 'Health check start period in seconds.'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit.'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit.'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness.'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation.'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit.'
|
|
limits_cpuset:
|
|
type: string
|
|
nullable: true
|
|
description: 'CPU set.'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares.'
|
|
custom_labels:
|
|
type: string
|
|
description: 'Custom labels.'
|
|
custom_docker_run_options:
|
|
type: string
|
|
description: 'Custom docker run options.'
|
|
post_deployment_command:
|
|
type: string
|
|
description: 'Post deployment command.'
|
|
post_deployment_command_container:
|
|
type: string
|
|
description: 'Post deployment command container.'
|
|
pre_deployment_command:
|
|
type: string
|
|
description: 'Pre deployment command.'
|
|
pre_deployment_command_container:
|
|
type: string
|
|
description: 'Pre deployment command container.'
|
|
manual_webhook_secret_github:
|
|
type: string
|
|
description: 'Manual webhook secret for Github.'
|
|
manual_webhook_secret_gitlab:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitlab.'
|
|
manual_webhook_secret_bitbucket:
|
|
type: string
|
|
description: 'Manual webhook secret for Bitbucket.'
|
|
manual_webhook_secret_gitea:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitea.'
|
|
redirect:
|
|
type: string
|
|
nullable: true
|
|
description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
|
|
enum: [www, non-www, both]
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application should be deployed instantly.'
|
|
use_build_server:
|
|
type: boolean
|
|
nullable: true
|
|
description: 'Use build server.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Application created successfully.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/applications/dockerimage:
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: 'Create (Docker Image)'
|
|
description: 'Create new application based on a prebuilt docker image'
|
|
operationId: create-dockerimage-application
|
|
requestBody:
|
|
description: 'Application object that needs to be created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- project_uuid
|
|
- server_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
- 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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
|
|
docker_registry_image_name:
|
|
type: string
|
|
description: 'The docker registry image name.'
|
|
docker_registry_image_tag:
|
|
type: string
|
|
description: 'The docker registry image tag.'
|
|
ports_exposes:
|
|
type: string
|
|
description: 'The ports to expose.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'The destination UUID.'
|
|
name:
|
|
type: string
|
|
description: 'The application name.'
|
|
description:
|
|
type: string
|
|
description: 'The application description.'
|
|
domains:
|
|
type: string
|
|
description: 'The application domains.'
|
|
ports_mappings:
|
|
type: string
|
|
description: 'The ports mappings.'
|
|
health_check_enabled:
|
|
type: boolean
|
|
description: 'Health check enabled.'
|
|
health_check_path:
|
|
type: string
|
|
description: 'Health check path.'
|
|
health_check_port:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check port.'
|
|
health_check_host:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check host.'
|
|
health_check_method:
|
|
type: string
|
|
description: 'Health check method.'
|
|
health_check_return_code:
|
|
type: integer
|
|
description: 'Health check return code.'
|
|
health_check_scheme:
|
|
type: string
|
|
description: 'Health check scheme.'
|
|
health_check_response_text:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check response text.'
|
|
health_check_interval:
|
|
type: integer
|
|
description: 'Health check interval in seconds.'
|
|
health_check_timeout:
|
|
type: integer
|
|
description: 'Health check timeout in seconds.'
|
|
health_check_retries:
|
|
type: integer
|
|
description: 'Health check retries count.'
|
|
health_check_start_period:
|
|
type: integer
|
|
description: 'Health check start period in seconds.'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit.'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit.'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness.'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation.'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit.'
|
|
limits_cpuset:
|
|
type: string
|
|
nullable: true
|
|
description: 'CPU set.'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares.'
|
|
custom_labels:
|
|
type: string
|
|
description: 'Custom labels.'
|
|
custom_docker_run_options:
|
|
type: string
|
|
description: 'Custom docker run options.'
|
|
post_deployment_command:
|
|
type: string
|
|
description: 'Post deployment command.'
|
|
post_deployment_command_container:
|
|
type: string
|
|
description: 'Post deployment command container.'
|
|
pre_deployment_command:
|
|
type: string
|
|
description: 'Pre deployment command.'
|
|
pre_deployment_command_container:
|
|
type: string
|
|
description: 'Pre deployment command container.'
|
|
manual_webhook_secret_github:
|
|
type: string
|
|
description: 'Manual webhook secret for Github.'
|
|
manual_webhook_secret_gitlab:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitlab.'
|
|
manual_webhook_secret_bitbucket:
|
|
type: string
|
|
description: 'Manual webhook secret for Bitbucket.'
|
|
manual_webhook_secret_gitea:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitea.'
|
|
redirect:
|
|
type: string
|
|
nullable: true
|
|
description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
|
|
enum: [www, non-www, both]
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application should be deployed instantly.'
|
|
use_build_server:
|
|
type: boolean
|
|
nullable: true
|
|
description: 'Use build server.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Application created successfully.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/applications/dockercompose:
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: 'Create (Docker Compose)'
|
|
description: 'Create new application based on a docker-compose file.'
|
|
operationId: create-dockercompose-application
|
|
requestBody:
|
|
description: 'Application object that needs to be created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- project_uuid
|
|
- server_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
- 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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.'
|
|
docker_compose_raw:
|
|
type: string
|
|
description: 'The Docker Compose raw content.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'The destination UUID if the server has more than one destinations.'
|
|
name:
|
|
type: string
|
|
description: 'The application name.'
|
|
description:
|
|
type: string
|
|
description: 'The application description.'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application should be deployed instantly.'
|
|
use_build_server:
|
|
type: boolean
|
|
nullable: true
|
|
description: 'Use build server.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Application created successfully.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/applications/{uuid}':
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: Get
|
|
description: 'Get application by UUID.'
|
|
operationId: get-application-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Get application by UUID.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Application'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
delete:
|
|
tags:
|
|
- Applications
|
|
summary: Delete
|
|
description: 'Delete application by UUID.'
|
|
operationId: delete-application-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
-
|
|
name: delete_configurations
|
|
in: query
|
|
description: 'Delete configurations.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: delete_volumes
|
|
in: query
|
|
description: 'Delete volumes.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: docker_cleanup
|
|
in: query
|
|
description: 'Run docker cleanup.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: delete_connected_networks
|
|
in: query
|
|
description: 'Delete connected networks.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
responses:
|
|
'200':
|
|
description: 'Application deleted.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Application deleted.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
patch:
|
|
tags:
|
|
- Applications
|
|
summary: Update
|
|
description: 'Update application by UUID.'
|
|
operationId: update-application-by-uuid
|
|
requestBody:
|
|
description: 'Application updated.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
project_uuid:
|
|
type: string
|
|
description: 'The project UUID.'
|
|
server_uuid:
|
|
type: string
|
|
description: 'The server UUID.'
|
|
environment_name:
|
|
type: string
|
|
description: 'The environment name.'
|
|
github_app_uuid:
|
|
type: string
|
|
description: 'The Github App UUID.'
|
|
git_repository:
|
|
type: string
|
|
description: 'The git repository URL.'
|
|
git_branch:
|
|
type: string
|
|
description: 'The git branch.'
|
|
ports_exposes:
|
|
type: string
|
|
description: 'The ports to expose.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'The destination UUID.'
|
|
build_pack:
|
|
type: string
|
|
enum: [nixpacks, static, dockerfile, dockercompose]
|
|
description: 'The build pack type.'
|
|
name:
|
|
type: string
|
|
description: 'The application name.'
|
|
description:
|
|
type: string
|
|
description: 'The application description.'
|
|
domains:
|
|
type: string
|
|
description: 'The application domains.'
|
|
git_commit_sha:
|
|
type: string
|
|
description: 'The git commit SHA.'
|
|
docker_registry_image_name:
|
|
type: string
|
|
description: 'The docker registry image name.'
|
|
docker_registry_image_tag:
|
|
type: string
|
|
description: 'The docker registry image tag.'
|
|
is_static:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application is static.'
|
|
install_command:
|
|
type: string
|
|
description: 'The install command.'
|
|
build_command:
|
|
type: string
|
|
description: 'The build command.'
|
|
start_command:
|
|
type: string
|
|
description: 'The start command.'
|
|
ports_mappings:
|
|
type: string
|
|
description: 'The ports mappings.'
|
|
base_directory:
|
|
type: string
|
|
description: 'The base directory for all commands.'
|
|
publish_directory:
|
|
type: string
|
|
description: 'The publish directory.'
|
|
health_check_enabled:
|
|
type: boolean
|
|
description: 'Health check enabled.'
|
|
health_check_path:
|
|
type: string
|
|
description: 'Health check path.'
|
|
health_check_port:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check port.'
|
|
health_check_host:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check host.'
|
|
health_check_method:
|
|
type: string
|
|
description: 'Health check method.'
|
|
health_check_return_code:
|
|
type: integer
|
|
description: 'Health check return code.'
|
|
health_check_scheme:
|
|
type: string
|
|
description: 'Health check scheme.'
|
|
health_check_response_text:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check response text.'
|
|
health_check_interval:
|
|
type: integer
|
|
description: 'Health check interval in seconds.'
|
|
health_check_timeout:
|
|
type: integer
|
|
description: 'Health check timeout in seconds.'
|
|
health_check_retries:
|
|
type: integer
|
|
description: 'Health check retries count.'
|
|
health_check_start_period:
|
|
type: integer
|
|
description: 'Health check start period in seconds.'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit.'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit.'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness.'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation.'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit.'
|
|
limits_cpuset:
|
|
type: string
|
|
nullable: true
|
|
description: 'CPU set.'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares.'
|
|
custom_labels:
|
|
type: string
|
|
description: 'Custom labels.'
|
|
custom_docker_run_options:
|
|
type: string
|
|
description: 'Custom docker run options.'
|
|
post_deployment_command:
|
|
type: string
|
|
description: 'Post deployment command.'
|
|
post_deployment_command_container:
|
|
type: string
|
|
description: 'Post deployment command container.'
|
|
pre_deployment_command:
|
|
type: string
|
|
description: 'Pre deployment command.'
|
|
pre_deployment_command_container:
|
|
type: string
|
|
description: 'Pre deployment command container.'
|
|
manual_webhook_secret_github:
|
|
type: string
|
|
description: 'Manual webhook secret for Github.'
|
|
manual_webhook_secret_gitlab:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitlab.'
|
|
manual_webhook_secret_bitbucket:
|
|
type: string
|
|
description: 'Manual webhook secret for Bitbucket.'
|
|
manual_webhook_secret_gitea:
|
|
type: string
|
|
description: 'Manual webhook secret for Gitea.'
|
|
redirect:
|
|
type: string
|
|
nullable: true
|
|
description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
|
|
enum: [www, non-www, both]
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'The flag to indicate if the application should be deployed instantly.'
|
|
dockerfile:
|
|
type: string
|
|
description: 'The Dockerfile content.'
|
|
docker_compose_location:
|
|
type: string
|
|
description: 'The Docker Compose location.'
|
|
docker_compose_raw:
|
|
type: string
|
|
description: 'The Docker Compose raw content.'
|
|
docker_compose_custom_start_command:
|
|
type: string
|
|
description: 'The Docker Compose custom start command.'
|
|
docker_compose_custom_build_command:
|
|
type: string
|
|
description: 'The Docker Compose custom build command.'
|
|
docker_compose_domains:
|
|
type: array
|
|
description: 'The Docker Compose domains.'
|
|
watch_paths:
|
|
type: string
|
|
description: 'The watch paths.'
|
|
use_build_server:
|
|
type: boolean
|
|
nullable: true
|
|
description: 'Use build server.'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Application updated.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/applications/{uuid}/logs':
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: 'Get application logs.'
|
|
description: 'Get application logs by UUID.'
|
|
operationId: get-application-logs-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
-
|
|
name: lines
|
|
in: query
|
|
description: 'Number of lines to show from the end of the logs.'
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
default: 100
|
|
responses:
|
|
'200':
|
|
description: 'Get application logs by UUID.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
logs: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/applications/{uuid}/envs':
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: 'List Envs'
|
|
description: 'List all envs by application UUID.'
|
|
operationId: list-envs-by-application-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'All environment variables by application UUID.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/EnvironmentVariable'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
post:
|
|
tags:
|
|
- Applications
|
|
summary: 'Create Env'
|
|
description: 'Create env by application UUID.'
|
|
operationId: create-env-by-application-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: 'Env created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
key:
|
|
type: string
|
|
description: 'The key of the environment variable.'
|
|
value:
|
|
type: string
|
|
description: 'The value of the environment variable.'
|
|
is_preview:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is used in preview deployments.'
|
|
is_build_time:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is used in build time.'
|
|
is_literal:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is a literal, nothing espaced.'
|
|
is_multiline:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is multiline.'
|
|
is_shown_once:
|
|
type: boolean
|
|
description: "The flag to indicate if the environment variable's value is shown on the UI."
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Environment variable created.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
patch:
|
|
tags:
|
|
- Applications
|
|
summary: 'Update Env'
|
|
description: 'Update env by application UUID.'
|
|
operationId: update-env-by-application-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: 'Env updated.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- key
|
|
- value
|
|
properties:
|
|
key:
|
|
type: string
|
|
description: 'The key of the environment variable.'
|
|
value:
|
|
type: string
|
|
description: 'The value of the environment variable.'
|
|
is_preview:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is used in preview deployments.'
|
|
is_build_time:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is used in build time.'
|
|
is_literal:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is a literal, nothing espaced.'
|
|
is_multiline:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is multiline.'
|
|
is_shown_once:
|
|
type: boolean
|
|
description: "The flag to indicate if the environment variable's value is shown on the UI."
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Environment variable updated.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Environment variable updated.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/applications/{uuid}/envs/bulk':
|
|
patch:
|
|
tags:
|
|
- Applications
|
|
summary: 'Update Envs (Bulk)'
|
|
description: 'Update multiple envs by application UUID.'
|
|
operationId: update-envs-by-application-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: 'Bulk envs updated.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- data
|
|
properties:
|
|
data:
|
|
type: array
|
|
items: { properties: { key: { type: string, description: 'The key of the environment variable.' }, value: { type: string, description: 'The value of the environment variable.' }, is_preview: { type: boolean, description: 'The flag to indicate if the environment variable is used in preview deployments.' }, is_build_time: { type: boolean, description: 'The flag to indicate if the environment variable is used in build time.' }, is_literal: { type: boolean, description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' }, is_multiline: { type: boolean, description: 'The flag to indicate if the environment variable is multiline.' }, is_shown_once: { type: boolean, description: "The flag to indicate if the environment variable's value is shown on the UI." } }, type: object }
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Environment variables updated.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Environment variables updated.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/applications/{uuid}/envs/{env_uuid}':
|
|
delete:
|
|
tags:
|
|
- Applications
|
|
summary: 'Delete Env'
|
|
description: 'Delete env by UUID.'
|
|
operationId: delete-env-by-application-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
-
|
|
name: env_uuid
|
|
in: path
|
|
description: 'UUID of the environment variable.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Environment variable deleted.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Environment variable deleted.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/applications/{uuid}/start':
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: Start
|
|
description: 'Start application. `Post` request is also accepted.'
|
|
operationId: start-application-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
-
|
|
name: force
|
|
in: query
|
|
description: 'Force rebuild.'
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
-
|
|
name: instant_deploy
|
|
in: query
|
|
description: 'Instant deploy (skip queuing).'
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
responses:
|
|
'200':
|
|
description: 'Start application.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Deployment request queued.', description: Message. }
|
|
deployment_uuid: { type: string, example: doogksw, description: 'UUID of the deployment.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/applications/{uuid}/stop':
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: Stop
|
|
description: 'Stop application. `Post` request is also accepted.'
|
|
operationId: stop-application-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Stop application.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Application stopping request queued.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/applications/{uuid}/restart':
|
|
get:
|
|
tags:
|
|
- Applications
|
|
summary: Restart
|
|
description: 'Restart application. `Post` request is also accepted.'
|
|
operationId: restart-application-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Restart application.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Restart request queued.' }
|
|
deployment_uuid: { type: string, example: doogksw, description: 'UUID of the deployment.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases:
|
|
get:
|
|
tags:
|
|
- Databases
|
|
summary: List
|
|
description: 'List all databases.'
|
|
operationId: list-databases
|
|
responses:
|
|
'200':
|
|
description: 'Get all databases'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: 'Content is very complex. Will be implemented later.'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/databases/{uuid}':
|
|
get:
|
|
tags:
|
|
- Databases
|
|
summary: Get
|
|
description: 'Get database by UUID.'
|
|
operationId: get-database-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the database.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Get all databases'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: 'Content is very complex. Will be implemented later.'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
delete:
|
|
tags:
|
|
- Databases
|
|
summary: Delete
|
|
description: 'Delete database by UUID.'
|
|
operationId: delete-database-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the database.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
-
|
|
name: delete_configurations
|
|
in: query
|
|
description: 'Delete configurations.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: delete_volumes
|
|
in: query
|
|
description: 'Delete volumes.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: docker_cleanup
|
|
in: query
|
|
description: 'Run docker cleanup.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: delete_connected_networks
|
|
in: query
|
|
description: 'Delete connected networks.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
responses:
|
|
'200':
|
|
description: 'Database deleted.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Database deleted.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
patch:
|
|
tags:
|
|
- Databases
|
|
summary: Update
|
|
description: 'Update database by UUID.'
|
|
operationId: update-database-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the database.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
postgres_user:
|
|
type: string
|
|
description: 'PostgreSQL user'
|
|
postgres_password:
|
|
type: string
|
|
description: 'PostgreSQL password'
|
|
postgres_db:
|
|
type: string
|
|
description: 'PostgreSQL database'
|
|
postgres_initdb_args:
|
|
type: string
|
|
description: 'PostgreSQL initdb args'
|
|
postgres_host_auth_method:
|
|
type: string
|
|
description: 'PostgreSQL host auth method'
|
|
postgres_conf:
|
|
type: string
|
|
description: 'PostgreSQL conf'
|
|
clickhouse_admin_user:
|
|
type: string
|
|
description: 'Clickhouse admin user'
|
|
clickhouse_admin_password:
|
|
type: string
|
|
description: 'Clickhouse admin password'
|
|
dragonfly_password:
|
|
type: string
|
|
description: 'DragonFly password'
|
|
redis_password:
|
|
type: string
|
|
description: 'Redis password'
|
|
redis_conf:
|
|
type: string
|
|
description: 'Redis conf'
|
|
keydb_password:
|
|
type: string
|
|
description: 'KeyDB password'
|
|
keydb_conf:
|
|
type: string
|
|
description: 'KeyDB conf'
|
|
mariadb_conf:
|
|
type: string
|
|
description: 'MariaDB conf'
|
|
mariadb_root_password:
|
|
type: string
|
|
description: 'MariaDB root password'
|
|
mariadb_user:
|
|
type: string
|
|
description: 'MariaDB user'
|
|
mariadb_password:
|
|
type: string
|
|
description: 'MariaDB password'
|
|
mariadb_database:
|
|
type: string
|
|
description: 'MariaDB database'
|
|
mongo_conf:
|
|
type: string
|
|
description: 'Mongo conf'
|
|
mongo_initdb_root_username:
|
|
type: string
|
|
description: 'Mongo initdb root username'
|
|
mongo_initdb_root_password:
|
|
type: string
|
|
description: 'Mongo initdb root password'
|
|
mongo_initdb_database:
|
|
type: string
|
|
description: 'Mongo initdb init database'
|
|
mysql_root_password:
|
|
type: string
|
|
description: 'MySQL root password'
|
|
mysql_password:
|
|
type: string
|
|
description: 'MySQL password'
|
|
mysql_user:
|
|
type: string
|
|
description: 'MySQL user'
|
|
mysql_database:
|
|
type: string
|
|
description: 'MySQL database'
|
|
mysql_conf:
|
|
type: string
|
|
description: 'MySQL conf'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases/postgresql:
|
|
post:
|
|
tags:
|
|
- Databases
|
|
summary: 'Create (PostgreSQL)'
|
|
description: 'Create a new PostgreSQL database.'
|
|
operationId: create-database-postgresql
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
|
|
postgres_user:
|
|
type: string
|
|
description: 'PostgreSQL user'
|
|
postgres_password:
|
|
type: string
|
|
description: 'PostgreSQL password'
|
|
postgres_db:
|
|
type: string
|
|
description: 'PostgreSQL database'
|
|
postgres_initdb_args:
|
|
type: string
|
|
description: 'PostgreSQL initdb args'
|
|
postgres_host_auth_method:
|
|
type: string
|
|
description: 'PostgreSQL host auth method'
|
|
postgres_conf:
|
|
type: string
|
|
description: 'PostgreSQL conf'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'UUID of the destination if the server has multiple destinations'
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'Instant deploy the database'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases/clickhouse:
|
|
post:
|
|
tags:
|
|
- Databases
|
|
summary: 'Create (Clickhouse)'
|
|
description: 'Create a new Clickhouse database.'
|
|
operationId: create-database-clickhouse
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'UUID of the destination if the server has multiple destinations'
|
|
clickhouse_admin_user:
|
|
type: string
|
|
description: 'Clickhouse admin user'
|
|
clickhouse_admin_password:
|
|
type: string
|
|
description: 'Clickhouse admin password'
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'Instant deploy the database'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases/dragonfly:
|
|
post:
|
|
tags:
|
|
- Databases
|
|
summary: 'Create (DragonFly)'
|
|
description: 'Create a new DragonFly database.'
|
|
operationId: create-database-dragonfly
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'UUID of the destination if the server has multiple destinations'
|
|
dragonfly_password:
|
|
type: string
|
|
description: 'DragonFly password'
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'Instant deploy the database'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases/redis:
|
|
post:
|
|
tags:
|
|
- Databases
|
|
summary: 'Create (Redis)'
|
|
description: 'Create a new Redis database.'
|
|
operationId: create-database-redis
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'UUID of the destination if the server has multiple destinations'
|
|
redis_password:
|
|
type: string
|
|
description: 'Redis password'
|
|
redis_conf:
|
|
type: string
|
|
description: 'Redis conf'
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'Instant deploy the database'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases/keydb:
|
|
post:
|
|
tags:
|
|
- Databases
|
|
summary: 'Create (KeyDB)'
|
|
description: 'Create a new KeyDB database.'
|
|
operationId: create-database-keydb
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'UUID of the destination if the server has multiple destinations'
|
|
keydb_password:
|
|
type: string
|
|
description: 'KeyDB password'
|
|
keydb_conf:
|
|
type: string
|
|
description: 'KeyDB conf'
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'Instant deploy the database'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases/mariadb:
|
|
post:
|
|
tags:
|
|
- Databases
|
|
summary: 'Create (MariaDB)'
|
|
description: 'Create a new MariaDB database.'
|
|
operationId: create-database-mariadb
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'UUID of the destination if the server has multiple destinations'
|
|
mariadb_conf:
|
|
type: string
|
|
description: 'MariaDB conf'
|
|
mariadb_root_password:
|
|
type: string
|
|
description: 'MariaDB root password'
|
|
mariadb_user:
|
|
type: string
|
|
description: 'MariaDB user'
|
|
mariadb_password:
|
|
type: string
|
|
description: 'MariaDB password'
|
|
mariadb_database:
|
|
type: string
|
|
description: 'MariaDB database'
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'Instant deploy the database'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases/mysql:
|
|
post:
|
|
tags:
|
|
- Databases
|
|
summary: 'Create (MySQL)'
|
|
description: 'Create a new MySQL database.'
|
|
operationId: create-database-mysql
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'UUID of the destination if the server has multiple destinations'
|
|
mysql_root_password:
|
|
type: string
|
|
description: 'MySQL root password'
|
|
mysql_password:
|
|
type: string
|
|
description: 'MySQL password'
|
|
mysql_user:
|
|
type: string
|
|
description: 'MySQL user'
|
|
mysql_database:
|
|
type: string
|
|
description: 'MySQL database'
|
|
mysql_conf:
|
|
type: string
|
|
description: 'MySQL conf'
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'Instant deploy the database'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/databases/mongodb:
|
|
post:
|
|
tags:
|
|
- Databases
|
|
summary: 'Create (MongoDB)'
|
|
description: 'Create a new MongoDB database.'
|
|
operationId: create-database-mongodb
|
|
requestBody:
|
|
description: 'Database data'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'UUID of the destination if the server has multiple destinations'
|
|
mongo_conf:
|
|
type: string
|
|
description: 'MongoDB conf'
|
|
mongo_initdb_root_username:
|
|
type: string
|
|
description: 'MongoDB initdb root username'
|
|
name:
|
|
type: string
|
|
description: 'Name of the database'
|
|
description:
|
|
type: string
|
|
description: 'Description of the database'
|
|
image:
|
|
type: string
|
|
description: 'Docker Image of the database'
|
|
is_public:
|
|
type: boolean
|
|
description: 'Is the database public?'
|
|
public_port:
|
|
type: integer
|
|
description: 'Public port of the database'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit of the database'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit of the database'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness of the database'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation of the database'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit of the database'
|
|
limits_cpuset:
|
|
type: string
|
|
description: 'CPU set of the database'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares of the database'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'Instant deploy the database'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Database updated'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/databases/{uuid}/start':
|
|
get:
|
|
tags:
|
|
- Databases
|
|
summary: Start
|
|
description: 'Start database. `Post` request is also accepted.'
|
|
operationId: start-database-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the database.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Start database.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Database starting request queued.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/databases/{uuid}/stop':
|
|
get:
|
|
tags:
|
|
- Databases
|
|
summary: Stop
|
|
description: 'Stop database. `Post` request is also accepted.'
|
|
operationId: stop-database-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the database.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Stop database.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Database stopping request queued.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/databases/{uuid}/restart':
|
|
get:
|
|
tags:
|
|
- Databases
|
|
summary: Restart
|
|
description: 'Restart database. `Post` request is also accepted.'
|
|
operationId: restart-database-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the database.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Restart database.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Database restaring request queued.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/deployments:
|
|
get:
|
|
tags:
|
|
- Deployments
|
|
summary: List
|
|
description: 'List currently running deployments'
|
|
operationId: list-deployments
|
|
responses:
|
|
'200':
|
|
description: 'Get all currently running deployments.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ApplicationDeploymentQueue'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/deployments/{uuid}':
|
|
get:
|
|
tags:
|
|
- Deployments
|
|
summary: Get
|
|
description: 'Get deployment by UUID.'
|
|
operationId: get-deployment-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Deployment UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Get deployment by UUID.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ApplicationDeploymentQueue'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/deploy:
|
|
get:
|
|
tags:
|
|
- Deployments
|
|
summary: Deploy
|
|
description: 'Deploy by tag or uuid. `Post` request also accepted.'
|
|
operationId: deploy-by-tag-or-uuid
|
|
parameters:
|
|
-
|
|
name: tag
|
|
in: query
|
|
description: 'Tag name(s). Comma separated list is also accepted.'
|
|
schema:
|
|
type: string
|
|
-
|
|
name: uuid
|
|
in: query
|
|
description: 'Resource UUID(s). Comma separated list is also accepted.'
|
|
schema:
|
|
type: string
|
|
-
|
|
name: force
|
|
in: query
|
|
description: 'Force rebuild (without cache)'
|
|
schema:
|
|
type: boolean
|
|
-
|
|
name: pr
|
|
in: query
|
|
description: 'Pull Request Id for deploying specific PR builds. Cannot be used with tag parameter.'
|
|
schema:
|
|
type: integer
|
|
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: []
|
|
'/deployments/applications/{uuid}':
|
|
get:
|
|
tags:
|
|
- Deployments
|
|
summary: 'List application deployments'
|
|
description: 'List application deployments by using the app uuid'
|
|
operationId: list-deployments-by-app-uuid
|
|
responses:
|
|
'200':
|
|
description: 'List application deployments by using the app uuid.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Application'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/version:
|
|
get:
|
|
summary: Version
|
|
description: 'Get Coolify version.'
|
|
operationId: version
|
|
responses:
|
|
'200':
|
|
description: 'Returns the version of the application'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: v4.0.0
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/enable:
|
|
get:
|
|
summary: 'Enable API'
|
|
description: 'Enable API (only with root permissions).'
|
|
operationId: enable-api
|
|
responses:
|
|
'200':
|
|
description: 'Enable API.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'API enabled.' }
|
|
type: object
|
|
'403':
|
|
description: 'You are not allowed to enable the API.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'You are not allowed to enable the API.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/disable:
|
|
get:
|
|
summary: 'Disable API'
|
|
description: 'Disable API (only with root permissions).'
|
|
operationId: disable-api
|
|
responses:
|
|
'200':
|
|
description: 'Disable API.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'API disabled.' }
|
|
type: object
|
|
'403':
|
|
description: 'You are not allowed to disable the API.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'You are not allowed to disable the API.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/health:
|
|
get:
|
|
summary: Healthcheck
|
|
description: 'Healthcheck endpoint.'
|
|
operationId: healthcheck
|
|
responses:
|
|
'200':
|
|
description: 'Healthcheck endpoint.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: OK
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
/projects:
|
|
get:
|
|
tags:
|
|
- Projects
|
|
summary: List
|
|
description: 'List projects.'
|
|
operationId: list-projects
|
|
responses:
|
|
'200':
|
|
description: 'Get all projects.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Project'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
post:
|
|
tags:
|
|
- Projects
|
|
summary: Create
|
|
description: 'Create Project.'
|
|
operationId: create-project
|
|
requestBody:
|
|
description: 'Project created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: 'The name of the project.'
|
|
description:
|
|
type: string
|
|
description: 'The description of the project.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Project created.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string, example: og888os, description: 'The UUID of the project.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/projects/{uuid}':
|
|
get:
|
|
tags:
|
|
- Projects
|
|
summary: Get
|
|
description: 'Get project by UUID.'
|
|
operationId: get-project-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Project UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Project details'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Project'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
description: 'Project not found.'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
delete:
|
|
tags:
|
|
- Projects
|
|
summary: Delete
|
|
description: 'Delete project by UUID.'
|
|
operationId: delete-project-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the application.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Project deleted.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Project deleted.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
patch:
|
|
tags:
|
|
- Projects
|
|
summary: Update
|
|
description: 'Update Project.'
|
|
operationId: update-project-by-uuid
|
|
requestBody:
|
|
description: 'Project updated.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: 'The name of the project.'
|
|
description:
|
|
type: string
|
|
description: 'The description of the project.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Project updated.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string, example: og888os }
|
|
name: { type: string, example: 'Project Name' }
|
|
description: { type: string, example: 'Project Description' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/projects/{uuid}/{environment_name_or_uuid}':
|
|
get:
|
|
tags:
|
|
- Projects
|
|
summary: Environment
|
|
description: 'Get environment by name or UUID.'
|
|
operationId: get-environment-by-name-or-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Project UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: environment_name_or_uuid
|
|
in: path
|
|
description: 'Environment name or UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Environment details'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Environment'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/resources:
|
|
get:
|
|
tags:
|
|
- Resources
|
|
summary: List
|
|
description: 'Get all resources.'
|
|
operationId: list-resources
|
|
responses:
|
|
'200':
|
|
description: 'Get all resources'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
example: 'Content is very complex. Will be implemented later.'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/security/keys:
|
|
get:
|
|
tags:
|
|
- 'Private Keys'
|
|
summary: List
|
|
description: 'List all private keys.'
|
|
operationId: list-private-keys
|
|
responses:
|
|
'200':
|
|
description: 'Get all private keys.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PrivateKey'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
post:
|
|
tags:
|
|
- 'Private Keys'
|
|
summary: Create
|
|
description: 'Create a new private key.'
|
|
operationId: create-private-key
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- private_key
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
private_key:
|
|
type: string
|
|
type: object
|
|
additionalProperties: false
|
|
responses:
|
|
'201':
|
|
description: "The created private key's UUID."
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
patch:
|
|
tags:
|
|
- 'Private Keys'
|
|
summary: Update
|
|
description: 'Update a private key.'
|
|
operationId: update-private-key
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- private_key
|
|
properties:
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
private_key:
|
|
type: string
|
|
type: object
|
|
additionalProperties: false
|
|
responses:
|
|
'201':
|
|
description: "The updated private key's UUID."
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/security/keys/{uuid}':
|
|
get:
|
|
tags:
|
|
- 'Private Keys'
|
|
summary: Get
|
|
description: 'Get key by UUID.'
|
|
operationId: get-private-key-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Private Key UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Get all private keys.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PrivateKey'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
description: 'Private Key not found.'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
delete:
|
|
tags:
|
|
- 'Private Keys'
|
|
summary: Delete
|
|
description: 'Delete a private key.'
|
|
operationId: delete-private-key-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Private Key UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Private Key deleted.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Private Key deleted.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
description: 'Private Key not found.'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/servers:
|
|
get:
|
|
tags:
|
|
- Servers
|
|
summary: List
|
|
description: 'List all servers.'
|
|
operationId: list-servers
|
|
responses:
|
|
'200':
|
|
description: 'Get all servers.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Server'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
post:
|
|
tags:
|
|
- Servers
|
|
summary: Create
|
|
description: 'Create Server.'
|
|
operationId: create-server
|
|
requestBody:
|
|
description: 'Server created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
name:
|
|
type: string
|
|
example: 'My Server'
|
|
description: 'The name of the server.'
|
|
description:
|
|
type: string
|
|
example: 'My Server Description'
|
|
description: 'The description of the server.'
|
|
ip:
|
|
type: string
|
|
example: 127.0.0.1
|
|
description: 'The IP of the server.'
|
|
port:
|
|
type: integer
|
|
example: 22
|
|
description: 'The port of the server.'
|
|
user:
|
|
type: string
|
|
example: root
|
|
description: 'The user of the server.'
|
|
private_key_uuid:
|
|
type: string
|
|
example: og888os
|
|
description: 'The UUID of the private key.'
|
|
is_build_server:
|
|
type: boolean
|
|
example: false
|
|
description: 'Is build server.'
|
|
instant_validate:
|
|
type: boolean
|
|
example: false
|
|
description: 'Instant validate.'
|
|
proxy_type:
|
|
type: string
|
|
enum: [traefik, caddy, none]
|
|
example: traefik
|
|
description: 'The proxy type.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Server created.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string, example: og888os, description: 'The UUID of the server.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/servers/{uuid}':
|
|
get:
|
|
tags:
|
|
- Servers
|
|
summary: Get
|
|
description: 'Get server by UUID.'
|
|
operationId: get-server-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: "Server's UUID"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Get server by UUID'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Server'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
delete:
|
|
tags:
|
|
- Servers
|
|
summary: Delete
|
|
description: 'Delete server by UUID.'
|
|
operationId: delete-server-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the server.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Server deleted.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Server deleted.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
patch:
|
|
tags:
|
|
- Servers
|
|
summary: Update
|
|
description: 'Update Server.'
|
|
operationId: update-server-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Server UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: 'Server updated.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: 'The name of the server.'
|
|
description:
|
|
type: string
|
|
description: 'The description of the server.'
|
|
ip:
|
|
type: string
|
|
description: 'The IP of the server.'
|
|
port:
|
|
type: integer
|
|
description: 'The port of the server.'
|
|
user:
|
|
type: string
|
|
description: 'The user of the server.'
|
|
private_key_uuid:
|
|
type: string
|
|
description: 'The UUID of the private key.'
|
|
is_build_server:
|
|
type: boolean
|
|
description: 'Is build server.'
|
|
instant_validate:
|
|
type: boolean
|
|
description: 'Instant validate.'
|
|
proxy_type:
|
|
type: string
|
|
enum: [traefik, caddy, none]
|
|
description: 'The proxy type.'
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Server updated.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Server'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/servers/{uuid}/resources':
|
|
get:
|
|
tags:
|
|
- Servers
|
|
summary: Resources
|
|
description: 'Get resources by server.'
|
|
operationId: get-resources-by-server-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: "Server's UUID"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Get resources by server'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
properties: { id: { type: integer }, uuid: { type: string }, name: { type: string }, type: { type: string }, created_at: { type: string }, updated_at: { type: string }, status: { type: string } }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/servers/{uuid}/domains':
|
|
get:
|
|
tags:
|
|
- Servers
|
|
summary: Domains
|
|
description: 'Get domains by server.'
|
|
operationId: get-domains-by-server-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: "Server's UUID"
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Get domains by server'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
properties: { ip: { type: string }, domains: { type: array, items: { type: string } } }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/servers/{uuid}/validate':
|
|
get:
|
|
tags:
|
|
- Servers
|
|
summary: Validate
|
|
description: 'Validate server by UUID.'
|
|
operationId: validate-server-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Server UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'201':
|
|
description: 'Server validation started.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Validation started.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/services:
|
|
get:
|
|
tags:
|
|
- Services
|
|
summary: List
|
|
description: 'List all services.'
|
|
operationId: list-services
|
|
responses:
|
|
'200':
|
|
description: 'Get all services'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Service'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
post:
|
|
tags:
|
|
- Services
|
|
summary: 'Create service'
|
|
description: 'Create a one-click / custom service'
|
|
operationId: create-service
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
- 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. You need to provide at least one of environment_name or environment_uuid.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'Environment UUID. You need to provide at least one of environment_name or environment_uuid.'
|
|
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: 'Service created successfully.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string, description: 'Service UUID.' }
|
|
domains: { type: array, items: { type: string }, description: 'Service domains.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/services/{uuid}':
|
|
get:
|
|
tags:
|
|
- Services
|
|
summary: Get
|
|
description: 'Get service by UUID.'
|
|
operationId: get-service-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Service UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'Get a service by UUID.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Service'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
delete:
|
|
tags:
|
|
- Services
|
|
summary: Delete
|
|
description: 'Delete service by UUID.'
|
|
operationId: delete-service-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'Service UUID'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: delete_configurations
|
|
in: query
|
|
description: 'Delete configurations.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: delete_volumes
|
|
in: query
|
|
description: 'Delete volumes.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: docker_cleanup
|
|
in: query
|
|
description: 'Run docker cleanup.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
-
|
|
name: delete_connected_networks
|
|
in: query
|
|
description: 'Delete connected networks.'
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: true
|
|
responses:
|
|
'200':
|
|
description: 'Delete a service by UUID'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Service deletion request queued.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
patch:
|
|
tags:
|
|
- Services
|
|
summary: Update
|
|
description: 'Update service by UUID.'
|
|
operationId: update-service-by-uuid
|
|
requestBody:
|
|
description: 'Service updated.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- server_uuid
|
|
- project_uuid
|
|
- environment_name
|
|
- environment_uuid
|
|
- docker_compose_raw
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: 'The service name.'
|
|
description:
|
|
type: string
|
|
description: 'The service description.'
|
|
project_uuid:
|
|
type: string
|
|
description: 'The project UUID.'
|
|
environment_name:
|
|
type: string
|
|
description: 'The environment name.'
|
|
environment_uuid:
|
|
type: string
|
|
description: 'The environment UUID.'
|
|
server_uuid:
|
|
type: string
|
|
description: 'The server UUID.'
|
|
destination_uuid:
|
|
type: string
|
|
description: 'The destination UUID.'
|
|
instant_deploy:
|
|
type: boolean
|
|
description: 'The flag to indicate if the service should be deployed instantly.'
|
|
connect_to_docker_network:
|
|
type: boolean
|
|
default: false
|
|
description: 'Connect the service to the predefined docker network.'
|
|
docker_compose_raw:
|
|
type: string
|
|
description: 'The Docker Compose raw content.'
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'Service updated.'
|
|
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'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/services/{uuid}/envs':
|
|
get:
|
|
tags:
|
|
- Services
|
|
summary: 'List Envs'
|
|
description: 'List all envs by service UUID.'
|
|
operationId: list-envs-by-service-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the service.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'All environment variables by service UUID.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/EnvironmentVariable'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
post:
|
|
tags:
|
|
- Services
|
|
summary: 'Create Env'
|
|
description: 'Create env by service UUID.'
|
|
operationId: create-env-by-service-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the service.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: 'Env created.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
key:
|
|
type: string
|
|
description: 'The key of the environment variable.'
|
|
value:
|
|
type: string
|
|
description: 'The value of the environment variable.'
|
|
is_preview:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is used in preview deployments.'
|
|
is_build_time:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is used in build time.'
|
|
is_literal:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is a literal, nothing espaced.'
|
|
is_multiline:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is multiline.'
|
|
is_shown_once:
|
|
type: boolean
|
|
description: "The flag to indicate if the environment variable's value is shown on the UI."
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Environment variable created.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
patch:
|
|
tags:
|
|
- Services
|
|
summary: 'Update Env'
|
|
description: 'Update env by service UUID.'
|
|
operationId: update-env-by-service-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the service.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: 'Env updated.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- key
|
|
- value
|
|
properties:
|
|
key:
|
|
type: string
|
|
description: 'The key of the environment variable.'
|
|
value:
|
|
type: string
|
|
description: 'The value of the environment variable.'
|
|
is_preview:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is used in preview deployments.'
|
|
is_build_time:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is used in build time.'
|
|
is_literal:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is a literal, nothing espaced.'
|
|
is_multiline:
|
|
type: boolean
|
|
description: 'The flag to indicate if the environment variable is multiline.'
|
|
is_shown_once:
|
|
type: boolean
|
|
description: "The flag to indicate if the environment variable's value is shown on the UI."
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Environment variable updated.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Environment variable updated.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/services/{uuid}/envs/bulk':
|
|
patch:
|
|
tags:
|
|
- Services
|
|
summary: 'Update Envs (Bulk)'
|
|
description: 'Update multiple envs by service UUID.'
|
|
operationId: update-envs-by-service-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the service.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
requestBody:
|
|
description: 'Bulk envs updated.'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
required:
|
|
- data
|
|
properties:
|
|
data:
|
|
type: array
|
|
items: { properties: { key: { type: string, description: 'The key of the environment variable.' }, value: { type: string, description: 'The value of the environment variable.' }, is_preview: { type: boolean, description: 'The flag to indicate if the environment variable is used in preview deployments.' }, is_build_time: { type: boolean, description: 'The flag to indicate if the environment variable is used in build time.' }, is_literal: { type: boolean, description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' }, is_multiline: { type: boolean, description: 'The flag to indicate if the environment variable is multiline.' }, is_shown_once: { type: boolean, description: "The flag to indicate if the environment variable's value is shown on the UI." } }, type: object }
|
|
type: object
|
|
responses:
|
|
'201':
|
|
description: 'Environment variables updated.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Environment variables updated.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/services/{uuid}/envs/{env_uuid}':
|
|
delete:
|
|
tags:
|
|
- Services
|
|
summary: 'Delete Env'
|
|
description: 'Delete env by UUID.'
|
|
operationId: delete-env-by-service-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the service.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
-
|
|
name: env_uuid
|
|
in: path
|
|
description: 'UUID of the environment variable.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Environment variable deleted.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Environment variable deleted.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/services/{uuid}/start':
|
|
get:
|
|
tags:
|
|
- Services
|
|
summary: Start
|
|
description: 'Start service. `Post` request is also accepted.'
|
|
operationId: start-service-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the service.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Start service.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Service starting request queued.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/services/{uuid}/stop':
|
|
get:
|
|
tags:
|
|
- Services
|
|
summary: Stop
|
|
description: 'Stop service. `Post` request is also accepted.'
|
|
operationId: stop-service-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the service.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Stop service.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Service stopping request queued.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/services/{uuid}/restart':
|
|
get:
|
|
tags:
|
|
- Services
|
|
summary: Restart
|
|
description: 'Restart service. `Post` request is also accepted.'
|
|
operationId: restart-service-by-uuid
|
|
parameters:
|
|
-
|
|
name: uuid
|
|
in: path
|
|
description: 'UUID of the service.'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: 'Restart service.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
properties:
|
|
message: { type: string, example: 'Service restaring request queued.' }
|
|
type: object
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/teams:
|
|
get:
|
|
tags:
|
|
- Teams
|
|
summary: List
|
|
description: 'Get all teams.'
|
|
operationId: list-teams
|
|
responses:
|
|
'200':
|
|
description: 'List of teams.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Team'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/teams/{id}':
|
|
get:
|
|
tags:
|
|
- Teams
|
|
summary: Get
|
|
description: 'Get team by TeamId.'
|
|
operationId: get-team-by-id
|
|
parameters:
|
|
-
|
|
name: id
|
|
in: path
|
|
description: 'Team ID'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: 'List of teams.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Team'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
'/teams/{id}/members':
|
|
get:
|
|
tags:
|
|
- Teams
|
|
summary: Members
|
|
description: 'Get members by TeamId.'
|
|
operationId: get-members-by-team-id
|
|
parameters:
|
|
-
|
|
name: id
|
|
in: path
|
|
description: 'Team ID'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: 'List of members.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
'404':
|
|
$ref: '#/components/responses/404'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/teams/current:
|
|
get:
|
|
tags:
|
|
- Teams
|
|
summary: 'Authenticated Team'
|
|
description: 'Get currently authenticated team.'
|
|
operationId: get-current-team
|
|
responses:
|
|
'200':
|
|
description: 'Current Team.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Team'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
/teams/current/members:
|
|
get:
|
|
tags:
|
|
- Teams
|
|
summary: 'Authenticated Team Members'
|
|
description: 'Get currently authenticated team members.'
|
|
operationId: get-current-team-members
|
|
responses:
|
|
'200':
|
|
description: 'Currently authenticated team members.'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
'401':
|
|
$ref: '#/components/responses/401'
|
|
'400':
|
|
$ref: '#/components/responses/400'
|
|
security:
|
|
-
|
|
bearerAuth: []
|
|
components:
|
|
schemas:
|
|
Application:
|
|
description: 'Application model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: 'The application identifier in the database.'
|
|
description:
|
|
type: string
|
|
nullable: true
|
|
description: 'The application description.'
|
|
repository_project_id:
|
|
type: integer
|
|
nullable: true
|
|
description: 'The repository project identifier.'
|
|
uuid:
|
|
type: string
|
|
description: 'The application UUID.'
|
|
name:
|
|
type: string
|
|
description: 'The application name.'
|
|
fqdn:
|
|
type: string
|
|
nullable: true
|
|
description: 'The application domains.'
|
|
config_hash:
|
|
type: string
|
|
description: 'Configuration hash.'
|
|
git_repository:
|
|
type: string
|
|
description: 'Git repository URL.'
|
|
git_branch:
|
|
type: string
|
|
description: 'Git branch.'
|
|
git_commit_sha:
|
|
type: string
|
|
description: 'Git commit SHA.'
|
|
git_full_url:
|
|
type: string
|
|
nullable: true
|
|
description: 'Git full URL.'
|
|
docker_registry_image_name:
|
|
type: string
|
|
nullable: true
|
|
description: 'Docker registry image name.'
|
|
docker_registry_image_tag:
|
|
type: string
|
|
nullable: true
|
|
description: 'Docker registry image tag.'
|
|
build_pack:
|
|
type: string
|
|
description: 'Build pack.'
|
|
enum:
|
|
- nixpacks
|
|
- static
|
|
- dockerfile
|
|
- dockercompose
|
|
static_image:
|
|
type: string
|
|
description: 'Static image used when static site is deployed.'
|
|
install_command:
|
|
type: string
|
|
description: 'Install command.'
|
|
build_command:
|
|
type: string
|
|
description: 'Build command.'
|
|
start_command:
|
|
type: string
|
|
description: 'Start command.'
|
|
ports_exposes:
|
|
type: string
|
|
description: 'Ports exposes.'
|
|
ports_mappings:
|
|
type: string
|
|
nullable: true
|
|
description: 'Ports mappings.'
|
|
base_directory:
|
|
type: string
|
|
description: 'Base directory for all commands.'
|
|
publish_directory:
|
|
type: string
|
|
description: 'Publish directory.'
|
|
health_check_enabled:
|
|
type: boolean
|
|
description: 'Health check enabled.'
|
|
health_check_path:
|
|
type: string
|
|
description: 'Health check path.'
|
|
health_check_port:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check port.'
|
|
health_check_host:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check host.'
|
|
health_check_method:
|
|
type: string
|
|
description: 'Health check method.'
|
|
health_check_return_code:
|
|
type: integer
|
|
description: 'Health check return code.'
|
|
health_check_scheme:
|
|
type: string
|
|
description: 'Health check scheme.'
|
|
health_check_response_text:
|
|
type: string
|
|
nullable: true
|
|
description: 'Health check response text.'
|
|
health_check_interval:
|
|
type: integer
|
|
description: 'Health check interval in seconds.'
|
|
health_check_timeout:
|
|
type: integer
|
|
description: 'Health check timeout in seconds.'
|
|
health_check_retries:
|
|
type: integer
|
|
description: 'Health check retries count.'
|
|
health_check_start_period:
|
|
type: integer
|
|
description: 'Health check start period in seconds.'
|
|
limits_memory:
|
|
type: string
|
|
description: 'Memory limit.'
|
|
limits_memory_swap:
|
|
type: string
|
|
description: 'Memory swap limit.'
|
|
limits_memory_swappiness:
|
|
type: integer
|
|
description: 'Memory swappiness.'
|
|
limits_memory_reservation:
|
|
type: string
|
|
description: 'Memory reservation.'
|
|
limits_cpus:
|
|
type: string
|
|
description: 'CPU limit.'
|
|
limits_cpuset:
|
|
type: string
|
|
nullable: true
|
|
description: 'CPU set.'
|
|
limits_cpu_shares:
|
|
type: integer
|
|
description: 'CPU shares.'
|
|
status:
|
|
type: string
|
|
description: 'Application status.'
|
|
preview_url_template:
|
|
type: string
|
|
description: 'Preview URL template.'
|
|
destination_type:
|
|
type: string
|
|
description: 'Destination type.'
|
|
destination_id:
|
|
type: integer
|
|
description: 'Destination identifier.'
|
|
source_id:
|
|
type: integer
|
|
nullable: true
|
|
description: 'Source identifier.'
|
|
private_key_id:
|
|
type: integer
|
|
nullable: true
|
|
description: 'Private key identifier.'
|
|
environment_id:
|
|
type: integer
|
|
description: 'Environment identifier.'
|
|
dockerfile:
|
|
type: string
|
|
nullable: true
|
|
description: 'Dockerfile content. Used for dockerfile build pack.'
|
|
dockerfile_location:
|
|
type: string
|
|
description: 'Dockerfile location.'
|
|
custom_labels:
|
|
type: string
|
|
nullable: true
|
|
description: 'Custom labels.'
|
|
dockerfile_target_build:
|
|
type: string
|
|
nullable: true
|
|
description: 'Dockerfile target build.'
|
|
manual_webhook_secret_github:
|
|
type: string
|
|
nullable: true
|
|
description: 'Manual webhook secret for GitHub.'
|
|
manual_webhook_secret_gitlab:
|
|
type: string
|
|
nullable: true
|
|
description: 'Manual webhook secret for GitLab.'
|
|
manual_webhook_secret_bitbucket:
|
|
type: string
|
|
nullable: true
|
|
description: 'Manual webhook secret for Bitbucket.'
|
|
manual_webhook_secret_gitea:
|
|
type: string
|
|
nullable: true
|
|
description: 'Manual webhook secret for Gitea.'
|
|
docker_compose_location:
|
|
type: string
|
|
description: 'Docker compose location.'
|
|
docker_compose:
|
|
type: string
|
|
nullable: true
|
|
description: 'Docker compose content. Used for docker compose build pack.'
|
|
docker_compose_raw:
|
|
type: string
|
|
nullable: true
|
|
description: 'Docker compose raw content.'
|
|
docker_compose_domains:
|
|
type: string
|
|
nullable: true
|
|
description: 'Docker compose domains.'
|
|
docker_compose_custom_start_command:
|
|
type: string
|
|
nullable: true
|
|
description: 'Docker compose custom start command.'
|
|
docker_compose_custom_build_command:
|
|
type: string
|
|
nullable: true
|
|
description: 'Docker compose custom build command.'
|
|
swarm_replicas:
|
|
type: integer
|
|
nullable: true
|
|
description: 'Swarm replicas. Only used for swarm deployments.'
|
|
swarm_placement_constraints:
|
|
type: string
|
|
nullable: true
|
|
description: 'Swarm placement constraints. Only used for swarm deployments.'
|
|
custom_docker_run_options:
|
|
type: string
|
|
nullable: true
|
|
description: 'Custom docker run options.'
|
|
post_deployment_command:
|
|
type: string
|
|
nullable: true
|
|
description: 'Post deployment command.'
|
|
post_deployment_command_container:
|
|
type: string
|
|
nullable: true
|
|
description: 'Post deployment command container.'
|
|
pre_deployment_command:
|
|
type: string
|
|
nullable: true
|
|
description: 'Pre deployment command.'
|
|
pre_deployment_command_container:
|
|
type: string
|
|
nullable: true
|
|
description: 'Pre deployment command container.'
|
|
watch_paths:
|
|
type: string
|
|
nullable: true
|
|
description: 'Watch paths.'
|
|
custom_healthcheck_found:
|
|
type: boolean
|
|
description: 'Custom healthcheck found.'
|
|
redirect:
|
|
type: string
|
|
nullable: true
|
|
description: 'How to set redirect with Traefik / Caddy. www<->non-www.'
|
|
enum:
|
|
- www
|
|
- non-www
|
|
- both
|
|
created_at:
|
|
type: string
|
|
format: date-time
|
|
description: 'The date and time when the application was created.'
|
|
updated_at:
|
|
type: string
|
|
format: date-time
|
|
description: 'The date and time when the application was last updated.'
|
|
deleted_at:
|
|
type: string
|
|
format: date-time
|
|
nullable: true
|
|
description: 'The date and time when the application was deleted.'
|
|
compose_parsing_version:
|
|
type: string
|
|
description: 'How Coolify parse the compose file.'
|
|
custom_nginx_configuration:
|
|
type: string
|
|
nullable: true
|
|
description: 'Custom Nginx configuration base64 encoded.'
|
|
type: object
|
|
ApplicationDeploymentQueue:
|
|
description: 'Project model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
application_id:
|
|
type: string
|
|
deployment_uuid:
|
|
type: string
|
|
pull_request_id:
|
|
type: integer
|
|
force_rebuild:
|
|
type: boolean
|
|
commit:
|
|
type: string
|
|
status:
|
|
type: string
|
|
is_webhook:
|
|
type: boolean
|
|
is_api:
|
|
type: boolean
|
|
created_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
logs:
|
|
type: string
|
|
current_process_id:
|
|
type: string
|
|
restart_only:
|
|
type: boolean
|
|
git_type:
|
|
type: string
|
|
server_id:
|
|
type: integer
|
|
application_name:
|
|
type: string
|
|
server_name:
|
|
type: string
|
|
deployment_url:
|
|
type: string
|
|
destination_id:
|
|
type: string
|
|
only_this_server:
|
|
type: boolean
|
|
rollback:
|
|
type: boolean
|
|
commit_message:
|
|
type: string
|
|
type: object
|
|
Environment:
|
|
description: 'Environment model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
name:
|
|
type: string
|
|
project_id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
description:
|
|
type: string
|
|
type: object
|
|
EnvironmentVariable:
|
|
description: 'Environment Variable model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
uuid:
|
|
type: string
|
|
resourceable_type:
|
|
type: string
|
|
resourceable_id:
|
|
type: integer
|
|
is_build_time:
|
|
type: boolean
|
|
is_literal:
|
|
type: boolean
|
|
is_multiline:
|
|
type: boolean
|
|
is_preview:
|
|
type: boolean
|
|
is_shared:
|
|
type: boolean
|
|
is_shown_once:
|
|
type: boolean
|
|
key:
|
|
type: string
|
|
value:
|
|
type: string
|
|
real_value:
|
|
type: string
|
|
version:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
PrivateKey:
|
|
description: 'Private Key model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
uuid:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
private_key:
|
|
type: string
|
|
format: private-key
|
|
is_git_related:
|
|
type: boolean
|
|
team_id:
|
|
type: integer
|
|
created_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
type: object
|
|
Project:
|
|
description: 'Project model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
uuid:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
environments:
|
|
description: 'The environments of the project.'
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Environment'
|
|
type: object
|
|
Server:
|
|
description: 'Server model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: 'The server ID.'
|
|
uuid:
|
|
type: string
|
|
description: 'The server UUID.'
|
|
name:
|
|
type: string
|
|
description: 'The server name.'
|
|
description:
|
|
type: string
|
|
description: 'The server description.'
|
|
ip:
|
|
type: string
|
|
description: 'The IP address.'
|
|
user:
|
|
type: string
|
|
description: 'The user.'
|
|
port:
|
|
type: integer
|
|
description: 'The port number.'
|
|
proxy:
|
|
type: object
|
|
description: 'The proxy configuration.'
|
|
proxy_type:
|
|
type: string
|
|
enum:
|
|
- traefik
|
|
- caddy
|
|
- none
|
|
description: 'The proxy type.'
|
|
high_disk_usage_notification_sent:
|
|
type: boolean
|
|
description: 'The flag to indicate if the high disk usage notification has been sent.'
|
|
unreachable_notification_sent:
|
|
type: boolean
|
|
description: 'The flag to indicate if the unreachable notification has been sent.'
|
|
unreachable_count:
|
|
type: integer
|
|
description: 'The unreachable count for your server.'
|
|
validation_logs:
|
|
type: string
|
|
description: 'The validation logs.'
|
|
log_drain_notification_sent:
|
|
type: boolean
|
|
description: 'The flag to indicate if the log drain notification has been sent.'
|
|
swarm_cluster:
|
|
type: string
|
|
description: 'The swarm cluster configuration.'
|
|
settings:
|
|
$ref: '#/components/schemas/ServerSetting'
|
|
type: object
|
|
ServerSetting:
|
|
description: 'Server Settings model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
concurrent_builds:
|
|
type: integer
|
|
dynamic_timeout:
|
|
type: integer
|
|
force_disabled:
|
|
type: boolean
|
|
force_server_cleanup:
|
|
type: boolean
|
|
is_build_server:
|
|
type: boolean
|
|
is_cloudflare_tunnel:
|
|
type: boolean
|
|
is_jump_server:
|
|
type: boolean
|
|
is_logdrain_axiom_enabled:
|
|
type: boolean
|
|
is_logdrain_custom_enabled:
|
|
type: boolean
|
|
is_logdrain_highlight_enabled:
|
|
type: boolean
|
|
is_logdrain_newrelic_enabled:
|
|
type: boolean
|
|
is_metrics_enabled:
|
|
type: boolean
|
|
is_reachable:
|
|
type: boolean
|
|
is_sentinel_enabled:
|
|
type: boolean
|
|
is_swarm_manager:
|
|
type: boolean
|
|
is_swarm_worker:
|
|
type: boolean
|
|
is_usable:
|
|
type: boolean
|
|
logdrain_axiom_api_key:
|
|
type: string
|
|
logdrain_axiom_dataset_name:
|
|
type: string
|
|
logdrain_custom_config:
|
|
type: string
|
|
logdrain_custom_config_parser:
|
|
type: string
|
|
logdrain_highlight_project_id:
|
|
type: string
|
|
logdrain_newrelic_base_uri:
|
|
type: string
|
|
logdrain_newrelic_license_key:
|
|
type: string
|
|
sentinel_metrics_history_days:
|
|
type: integer
|
|
sentinel_metrics_refresh_rate_seconds:
|
|
type: integer
|
|
sentinel_token:
|
|
type: string
|
|
docker_cleanup_frequency:
|
|
type: string
|
|
docker_cleanup_threshold:
|
|
type: integer
|
|
server_id:
|
|
type: integer
|
|
wildcard_domain:
|
|
type: string
|
|
created_at:
|
|
type: string
|
|
updated_at:
|
|
type: string
|
|
delete_unused_volumes:
|
|
type: boolean
|
|
description: 'The flag to indicate if the unused volumes should be deleted.'
|
|
delete_unused_networks:
|
|
type: boolean
|
|
description: 'The flag to indicate if the unused networks should be deleted.'
|
|
type: object
|
|
Service:
|
|
description: 'Service model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: 'The unique identifier of the service. Only used for database identification.'
|
|
uuid:
|
|
type: string
|
|
description: 'The unique identifier of the service.'
|
|
name:
|
|
type: string
|
|
description: 'The name of the service.'
|
|
environment_id:
|
|
type: integer
|
|
description: 'The unique identifier of the environment where the service is attached to.'
|
|
server_id:
|
|
type: integer
|
|
description: 'The unique identifier of the server where the service is running.'
|
|
description:
|
|
type: string
|
|
description: 'The description of the service.'
|
|
docker_compose_raw:
|
|
type: string
|
|
description: 'The raw docker-compose.yml file of the service.'
|
|
docker_compose:
|
|
type: string
|
|
description: 'The docker-compose.yml file that is parsed and modified by Coolify.'
|
|
destination_type:
|
|
type: string
|
|
description: 'Destination type.'
|
|
destination_id:
|
|
type: integer
|
|
description: 'The unique identifier of the destination where the service is running.'
|
|
connect_to_docker_network:
|
|
type: boolean
|
|
description: 'The flag to connect the service to the predefined Docker network.'
|
|
is_container_label_escape_enabled:
|
|
type: boolean
|
|
description: 'The flag to enable the container label escape.'
|
|
is_container_label_readonly_enabled:
|
|
type: boolean
|
|
description: 'The flag to enable the container label readonly.'
|
|
config_hash:
|
|
type: string
|
|
description: 'The hash of the service configuration.'
|
|
service_type:
|
|
type: string
|
|
description: 'The type of the service.'
|
|
created_at:
|
|
type: string
|
|
description: 'The date and time when the service was created.'
|
|
updated_at:
|
|
type: string
|
|
description: 'The date and time when the service was last updated.'
|
|
deleted_at:
|
|
type: string
|
|
description: 'The date and time when the service was deleted.'
|
|
type: object
|
|
Team:
|
|
description: 'Team model'
|
|
properties:
|
|
id:
|
|
type: integer
|
|
description: 'The unique identifier of the team.'
|
|
name:
|
|
type: string
|
|
description: 'The name of the team.'
|
|
description:
|
|
type: string
|
|
description: 'The description of the team.'
|
|
personal_team:
|
|
type: boolean
|
|
description: 'Whether the team is personal or not.'
|
|
created_at:
|
|
type: string
|
|
description: 'The date and time the team was created.'
|
|
updated_at:
|
|
type: string
|
|
description: 'The date and time the team was last updated.'
|
|
show_boarding:
|
|
type: boolean
|
|
description: 'Whether to show the boarding screen or not.'
|
|
custom_server_limit:
|
|
type: string
|
|
description: 'The custom server limit.'
|
|
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
|