lasthourcloud/openapi.yaml

3736 lines
106 KiB
YAML
Raw Normal View History

2024-07-05 14:08:01 +00:00
openapi: 3.0.0
info:
title: Coolify
version: '0.1'
servers:
-
2024-07-06 12:34:15 +00:00
url: 'https://app.coolify.io/api/v1'
2024-07-05 14:08:01 +00:00
paths:
2024-07-09 08:45:10 +00:00
/applications:
get:
tags:
- Applications
summary: List
description: 'List all applications.'
operationId: 02978e79fc0b54d573b2359f2a1f7d86
responses:
'200':
description: 'Get all applications.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Application'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
2024-07-09 11:19:21 +00:00
patch:
tags:
- Applications
summary: Update
description: 'Update application by UUID.'
operationId: ff28a22d25b1f658c40b54d2073abbca
requestBody:
description: 'Application updated.'
required: true
content:
application/json:
schema:
properties:
project_uuid:
type: string
server_uuid:
type: string
environment_name:
type: string
destination_uuid:
type: string
name:
type: string
description:
type: string
domains:
type: string
git_repository:
type: string
git_branch:
type: string
git_commit_sha:
type: string
docker_registry_image_name:
type: string
docker_registry_image_tag:
type: string
build_pack:
type: string
enum: [nixpacks, static, dockerfile, dockercompose]
is_static:
type: boolean
install_command:
type: string
build_command:
type: string
start_command:
type: string
ports_exposes:
type: string
ports_mappings:
type: string
base_directory:
type: string
publish_directory:
type: string
health_check_enabled:
type: boolean
health_check_path:
type: string
health_check_port:
type: integer
health_check_host:
type: string
health_check_method:
type: string
health_check_return_code:
type: integer
health_check_scheme:
type: string
health_check_response_text:
type: string
health_check_interval:
type: integer
health_check_timeout:
type: integer
health_check_retries:
type: integer
health_check_start_period:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: string
custom_labels:
type: string
custom_docker_run_options:
type: string
post_deployment_command:
type: string
post_deployment_command_container:
type: string
pre_deployment_command:
type: string
pre_deployment_command_container:
type: string
manual_webhook_secret_github:
type: string
manual_webhook_secret_gitlab:
type: string
manual_webhook_secret_bitbucket:
type: string
manual_webhook_secret_gitea:
type: string
redirect:
type: string
github_app_uuid:
type: string
instant_deploy:
type: boolean
dockerfile:
type: string
docker_compose_location:
type: string
docker_compose_raw:
type: string
docker_compose_custom_start_command:
type: string
docker_compose_custom_build_command:
type: string
docker_compose_domains:
type: array
watch_paths:
type: string
type: object
responses:
'200':
description: 'Application updated.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
/applications/public:
post:
tags:
- Applications
summary: 'Create (Public)'
description: 'Create new application based on a public git repository.'
operationId: cb56324ad19693469b4461d3f6065a5b
requestBody:
description: 'Application object that needs to be created.'
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
server_uuid:
type: string
environment_name:
type: string
destination_uuid:
type: string
name:
type: string
description:
type: string
domains:
type: string
git_repository:
type: string
git_branch:
type: string
git_commit_sha:
type: string
docker_registry_image_name:
type: string
docker_registry_image_tag:
type: string
build_pack:
type: string
enum: [nixpacks, static, dockerfile, dockercompose]
is_static:
type: boolean
install_command:
type: string
build_command:
type: string
start_command:
type: string
ports_exposes:
type: string
ports_mappings:
type: string
base_directory:
type: string
publish_directory:
type: string
health_check_enabled:
type: boolean
health_check_path:
type: string
health_check_port:
type: integer
health_check_host:
type: string
health_check_method:
type: string
health_check_return_code:
type: integer
health_check_scheme:
type: string
health_check_response_text:
type: string
health_check_interval:
type: integer
health_check_timeout:
type: integer
health_check_retries:
type: integer
health_check_start_period:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: string
custom_labels:
type: string
custom_docker_run_options:
type: string
post_deployment_command:
type: string
post_deployment_command_container:
type: string
pre_deployment_command:
type: string
pre_deployment_command_container:
type: string
manual_webhook_secret_github:
type: string
manual_webhook_secret_gitlab:
type: string
manual_webhook_secret_bitbucket:
type: string
manual_webhook_secret_gitea:
type: string
redirect:
type: string
instant_deploy:
type: boolean
dockerfile:
type: string
docker_compose_location:
type: string
docker_compose_raw:
type: string
docker_compose_custom_start_command:
type: string
docker_compose_custom_build_command:
type: string
docker_compose_domains:
type: array
watch_paths:
type: string
type: object
responses:
'200':
description: 'Application created successfully.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/applications/private-gh-app:
post:
tags:
- Applications
summary: 'Create (Private - GH App)'
description: 'Create new application based on a private repository through a Github App.'
operationId: 4d46c84bda4f1a411f6dda15fce4061f
requestBody:
description: 'Application object that needs to be created.'
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- github_app_uuid
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
server_uuid:
type: string
environment_name:
type: string
github_app_uuid:
type: string
destination_uuid:
type: string
name:
type: string
description:
type: string
domains:
type: string
git_repository:
type: string
git_branch:
type: string
git_commit_sha:
type: string
docker_registry_image_name:
type: string
docker_registry_image_tag:
type: string
build_pack:
type: string
enum: [nixpacks, static, dockerfile, dockercompose]
is_static:
type: boolean
install_command:
type: string
build_command:
type: string
start_command:
type: string
ports_exposes:
type: string
ports_mappings:
type: string
base_directory:
type: string
publish_directory:
type: string
health_check_enabled:
type: boolean
health_check_path:
type: string
health_check_port:
type: integer
health_check_host:
type: string
health_check_method:
type: string
health_check_return_code:
type: integer
health_check_scheme:
type: string
health_check_response_text:
type: string
health_check_interval:
type: integer
health_check_timeout:
type: integer
health_check_retries:
type: integer
health_check_start_period:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: string
custom_labels:
type: string
custom_docker_run_options:
type: string
post_deployment_command:
type: string
post_deployment_command_container:
type: string
pre_deployment_command:
type: string
pre_deployment_command_container:
type: string
manual_webhook_secret_github:
type: string
manual_webhook_secret_gitlab:
type: string
manual_webhook_secret_bitbucket:
type: string
manual_webhook_secret_gitea:
type: string
redirect:
type: string
instant_deploy:
type: boolean
dockerfile:
type: string
docker_compose_location:
type: string
docker_compose_raw:
type: string
docker_compose_custom_start_command:
type: string
docker_compose_custom_build_command:
type: string
docker_compose_domains:
type: array
watch_paths:
type: string
type: object
responses:
'200':
description: 'Application created successfully.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/applications/private-deploy-key:
post:
tags:
- Applications
summary: 'Create (Private - Deploy Key)'
description: 'Create new application based on a private repository through a Deploy Key.'
operationId: e3eaa989ffb05366247a00cdfd551efa
requestBody:
description: 'Application object that needs to be created.'
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- private_key_uuid
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
server_uuid:
type: string
environment_name:
type: string
private_key_uuid:
type: string
destination_uuid:
type: string
name:
type: string
description:
type: string
domains:
type: string
git_repository:
type: string
git_branch:
type: string
git_commit_sha:
type: string
docker_registry_image_name:
type: string
docker_registry_image_tag:
type: string
build_pack:
type: string
enum: [nixpacks, static, dockerfile, dockercompose]
is_static:
type: boolean
install_command:
type: string
build_command:
type: string
start_command:
type: string
ports_exposes:
type: string
ports_mappings:
type: string
base_directory:
type: string
publish_directory:
type: string
health_check_enabled:
type: boolean
health_check_path:
type: string
health_check_port:
type: integer
health_check_host:
type: string
health_check_method:
type: string
health_check_return_code:
type: integer
health_check_scheme:
type: string
health_check_response_text:
type: string
health_check_interval:
type: integer
health_check_timeout:
type: integer
health_check_retries:
type: integer
health_check_start_period:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: string
custom_labels:
type: string
custom_docker_run_options:
type: string
post_deployment_command:
type: string
post_deployment_command_container:
type: string
pre_deployment_command:
type: string
pre_deployment_command_container:
type: string
manual_webhook_secret_github:
type: string
manual_webhook_secret_gitlab:
type: string
manual_webhook_secret_bitbucket:
type: string
manual_webhook_secret_gitea:
type: string
redirect:
type: string
instant_deploy:
type: boolean
dockerfile:
type: string
docker_compose_location:
type: string
docker_compose_raw:
type: string
docker_compose_custom_start_command:
type: string
docker_compose_custom_build_command:
type: string
docker_compose_domains:
type: array
watch_paths:
type: string
type: object
responses:
'200':
description: 'Application created successfully.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/applications/dockerfile:
post:
tags:
- Applications
summary: 'Create (Dockerfile)'
description: 'Create new application based on a simple Dockerfile.'
operationId: 2b433ad6f5d259eb7f4f3b5af9913708
requestBody:
description: 'Application object that needs to be created.'
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- dockerfile
properties:
project_uuid:
type: string
server_uuid:
type: string
environment_name:
type: string
dockerfile:
type: string
destination_uuid:
type: string
name:
type: string
description:
type: string
domains:
type: string
docker_registry_image_name:
type: string
docker_registry_image_tag:
type: string
ports_exposes:
type: string
ports_mappings:
type: string
base_directory:
type: string
health_check_enabled:
type: boolean
health_check_path:
type: string
health_check_port:
type: integer
health_check_host:
type: string
health_check_method:
type: string
health_check_return_code:
type: integer
health_check_scheme:
type: string
health_check_response_text:
type: string
health_check_interval:
type: integer
health_check_timeout:
type: integer
health_check_retries:
type: integer
health_check_start_period:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: string
custom_labels:
type: string
custom_docker_run_options:
type: string
post_deployment_command:
type: string
post_deployment_command_container:
type: string
pre_deployment_command:
type: string
pre_deployment_command_container:
type: string
manual_webhook_secret_github:
type: string
manual_webhook_secret_gitlab:
type: string
manual_webhook_secret_bitbucket:
type: string
manual_webhook_secret_gitea:
type: string
redirect:
type: string
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Application created successfully.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/applications/dockerimage:
post:
tags:
- Applications
summary: 'Create (Docker Image)'
description: 'Create new application based on a prebuilt docker image'
operationId: e9a2d6dd9404acf880dc3053f09477fc
requestBody:
description: 'Application object that needs to be created.'
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- docker_registry_image_name
- ports_exposes
properties:
project_uuid:
type: string
server_uuid:
type: string
environment_name:
type: string
docker_registry_image_name:
type: string
docker_registry_image_tag:
type: string
destination_uuid:
type: string
name:
type: string
description:
type: string
domains:
type: string
git_repository:
type: string
git_branch:
type: string
git_commit_sha:
type: string
ports_exposes:
type: string
ports_mappings:
type: string
health_check_enabled:
type: boolean
health_check_path:
type: string
health_check_port:
type: integer
health_check_host:
type: string
health_check_method:
type: string
health_check_return_code:
type: integer
health_check_scheme:
type: string
health_check_response_text:
type: string
health_check_interval:
type: integer
health_check_timeout:
type: integer
health_check_retries:
type: integer
health_check_start_period:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: string
custom_labels:
type: string
custom_docker_run_options:
type: string
post_deployment_command:
type: string
post_deployment_command_container:
type: string
pre_deployment_command:
type: string
pre_deployment_command_container:
type: string
manual_webhook_secret_github:
type: string
manual_webhook_secret_gitlab:
type: string
manual_webhook_secret_bitbucket:
type: string
manual_webhook_secret_gitea:
type: string
redirect:
type: string
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Application created successfully.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/applications/dockercompose:
post:
tags:
- Applications
summary: 'Create (Docker Compose)'
description: 'Create new application based on a docker-compose file.'
operationId: 3731add8226c2d664455978cac46c242
requestBody:
description: 'Application object that needs to be created.'
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- docker_compose_raw
properties:
project_uuid:
type: string
server_uuid:
type: string
environment_name:
type: string
docker_compose_raw:
type: string
destination_uuid:
type: string
name:
type: string
description:
type: string
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Application created successfully.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/applications/{uuid}':
get:
tags:
- Applications
summary: Get
description: 'Get application by UUID.'
operationId: 3630b62c28e7358e7f0087c1d8fe1845
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Get application by UUID.'
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
delete:
tags:
- Applications
summary: Delete
description: 'Delete application by UUID.'
operationId: 1e110b190a1045d34f3e1c61608a8702
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Application deleted.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Application deleted.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
'/applications/{uuid}/envs':
get:
tags:
- Applications
summary: 'List Envs'
description: 'List all envs by application UUID.'
operationId: 7c8e0c286870e23294a075cc0584df2f
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'All environment variables by application UUID.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EnvironmentVariable'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
post:
tags:
- Applications
summary: 'Create Env'
description: 'Create env by application UUID.'
operationId: 4699ffbb7d6e58581fd0b0a14f36ffc2
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
requestBody:
description: 'Env created.'
required: true
content:
application/json:
schema:
properties:
key:
type: string
value:
type: string
is_preview:
type: boolean
is_build_time:
type: boolean
is_literal:
type: boolean
is_multiline:
type: boolean
is_shown_once:
type: boolean
type: object
responses:
'201':
description: 'Environment variable created.'
content:
application/json:
schema:
properties:
uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
patch:
tags:
- Applications
summary: 'Update Env'
description: 'Update env by application UUID.'
operationId: 3d70a2d569f395be220b3f09ad36674b
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
requestBody:
description: 'Env updated.'
required: true
content:
application/json:
schema:
required:
- key
- value
properties:
key:
type: string
value:
type: string
is_preview:
type: boolean
is_build_time:
type: boolean
is_literal:
type: boolean
is_multiline:
type: boolean
is_shown_once:
type: boolean
type: object
responses:
'201':
description: 'Environment variable updated.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Environment variable updated.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
'/applications/{uuid}/envs/bulk':
patch:
tags:
- Applications
summary: 'Update Envs (Bulk)'
description: 'Update multiple envs by application UUID.'
operationId: ae96f0f585ed158b2abd2d9ba40f3cf9
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
requestBody:
description: 'Bulk envs updated.'
required: true
content:
application/json:
schema:
required:
- data
properties:
data:
type: array
items: { properties: { key: { type: string }, value: { type: string }, is_preview: { type: boolean }, is_build_time: { type: boolean }, is_literal: { type: boolean }, is_multiline: { type: boolean }, is_shown_once: { type: boolean } }, type: object }
type: object
responses:
'201':
description: 'Environment variables updated.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Environment variables updated.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
'/applications/{uuid}/envs/{env_uuid}':
delete:
tags:
- Applications
summary: 'Delete Env'
description: 'Delete env by UUID.'
operationId: 96097c5cfc7dc0e7a3de229645f630c7
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
-
name: env_uuid
in: path
description: 'UUID of the environment variable.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Environment variable deleted.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Environment variable deleted.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
'/applications/{uuid}/start':
get:
tags:
- Applications
summary: Start
description: 'Start application. `Post` request is also accepted.'
operationId: dc87c2061ab303757a0e061f87900c4c
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
-
name: force
in: query
description: 'Force rebuild.'
schema:
type: boolean
default: false
-
name: instant_deploy
in: query
description: 'Instant deploy (skip queuing).'
schema:
type: boolean
default: false
responses:
'200':
description: 'Start application.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Deployment request queued.' }
deployment_uuid: { type: string, example: doogksw }
deployment_api_url: { type: string }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
'/applications/{uuid}/stop':
get:
tags:
- Applications
summary: Stop
description: 'Stop application. `Post` request is also accepted.'
operationId: 133ef3c7bd5043901f24bb5002a536eb
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Stop application.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Application stopping request queued.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
'/applications/{uuid}/restart':
get:
tags:
- Applications
summary: Restart
description: 'Restart application. `Post` request is also accepted.'
operationId: b231ae7baab9ef47f0627be820e735bc
parameters:
-
name: uuid
in: path
description: 'UUID of the application.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Restart application.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Restart request queued.' }
deployment_uuid: { type: string, example: doogksw }
deployment_api_url: { type: string }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
/databases:
get:
tags:
- Databases
summary: List
description: 'List all databases.'
operationId: ecd0ee1e46e4c854c18e6c9daa3d37f3
responses:
'200':
description: 'Get all databases'
content:
application/json:
schema:
type: string
example: 'Content is very complex. Will be implemented later.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/databases/{uuid}':
get:
tags:
- Databases
summary: Get
description: 'Get database by UUID.'
operationId: b49cb2d3e8f34c4e80cdffd8a201031d
parameters:
-
name: uuid
in: path
description: 'UUID of the database.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Get all databases'
content:
application/json:
schema:
type: string
example: 'Content is very complex. Will be implemented later.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
delete:
tags:
- Databases
summary: Delete
description: 'Delete database by UUID.'
operationId: 20610931b2bae8aba34eee68624ab673
parameters:
-
name: uuid
in: path
description: 'UUID of the database.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Database deleted.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Database deleted.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
patch:
tags:
- Databases
summary: Update
description: 'Update database by UUID.'
operationId: 5ba459ed390a721711a1708760e9de3b
parameters:
-
name: uuid
in: path
description: 'UUID of the database.'
required: true
schema:
type: string
format: uuid
requestBody:
description: 'Database data'
required: true
content:
application/json:
schema:
properties:
name:
type: string
description:
type: string
image:
type: string
is_public:
type: boolean
public_port:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: integer
postgres_user:
type: string
postgres_password:
type: string
postgres_db:
type: string
postgres_initdb_args:
type: string
postgres_host_auth_method:
type: string
postgres_conf:
type: string
clickhouse_admin_user:
type: string
clickhouse_admin_password:
type: string
dragonfly_password:
type: string
redis_password:
type: string
redis_conf:
type: string
keydb_password:
type: string
keydb_conf:
type: string
mariadb_conf:
type: string
mariadb_root_password:
type: string
mariadb_user:
type: string
mariadb_password:
type: string
mariadb_database:
type: string
mongo_conf:
type: string
mongo_initdb_root_username:
type: string
mongo_initdb_root_password:
type: string
mongo_initdb_init_database:
type: string
mysql_root_password:
type: string
mysql_user:
type: string
mysql_database:
type: string
mysql_conf:
type: string
type: object
responses:
'200':
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
/databases/postgresql:
post:
tags:
- Databases
summary: 'Create (PostgreSQL)'
description: 'Create a new PostgreSQL database.'
operationId: 8f7f491ddc46a9fa065b4424512231cd
requestBody:
description: 'Database data'
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
project_uuid:
type: string
environment_name:
type: string
postgres_user:
type: string
postgres_password:
type: string
postgres_db:
type: string
postgres_initdb_args:
type: string
postgres_host_auth_method:
type: string
postgres_conf:
type: string
destination_uuid:
type: string
name:
type: string
description:
type: string
image:
type: string
is_public:
type: boolean
public_port:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: integer
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/databases/clickhouse:
post:
tags:
- Databases
summary: 'Create (Clickhouse)'
description: 'Create a new Clickhouse database.'
operationId: a1189fa7f956f238f0e95c9150ff57f6
requestBody:
description: 'Database data'
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
project_uuid:
type: string
environment_name:
type: string
destination_uuid:
type: string
clickhouse_admin_user:
type: string
clickhouse_admin_password:
type: string
name:
type: string
description:
type: string
image:
type: string
is_public:
type: boolean
public_port:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: integer
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/databases/dragonfly:
post:
tags:
- Databases
summary: 'Create (DragonFly)'
description: 'Create a new DragonFly database.'
operationId: e73f7de1c8eee4219e5ec98c4b9b7efe
requestBody:
description: 'Database data'
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
project_uuid:
type: string
environment_name:
type: string
destination_uuid:
type: string
dragonfly_password:
type: string
name:
type: string
description:
type: string
image:
type: string
is_public:
type: boolean
public_port:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: integer
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/databases/redis:
post:
tags:
- Databases
summary: 'Create (Redis)'
description: 'Create a new Redis database.'
operationId: 4d352d13544ee2953fd48ad7b0651098
requestBody:
description: 'Database data'
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
project_uuid:
type: string
environment_name:
type: string
destination_uuid:
type: string
redis_password:
type: string
redis_conf:
type: string
name:
type: string
description:
type: string
image:
type: string
is_public:
type: boolean
public_port:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: integer
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/databases/keydb:
post:
tags:
- Databases
summary: 'Create (KeyDB)'
description: 'Create a new KeyDB database.'
operationId: b908f3929c371c217d489638e0a21ff6
requestBody:
description: 'Database data'
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
project_uuid:
type: string
environment_name:
type: string
destination_uuid:
type: string
keydb_password:
type: string
keydb_conf:
type: string
name:
type: string
description:
type: string
image:
type: string
is_public:
type: boolean
public_port:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
type: integer
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/databases/mariadb:
2024-07-09 08:45:10 +00:00
post:
tags:
2024-07-09 11:19:21 +00:00
- Databases
summary: 'Create (MariaDB)'
description: 'Create a new MariaDB database.'
operationId: 6bea521ddcd738dcbb5f3783a7308acf
2024-07-09 08:45:10 +00:00
requestBody:
2024-07-09 11:19:21 +00:00
description: 'Database data'
2024-07-09 08:45:10 +00:00
required: true
content:
application/json:
schema:
required:
- server_uuid
2024-07-09 11:19:21 +00:00
- project_uuid
2024-07-09 08:45:10 +00:00
- environment_name
properties:
2024-07-09 11:19:21 +00:00
server_uuid:
2024-07-09 08:45:10 +00:00
type: string
project_uuid:
type: string
environment_name:
type: string
destination_uuid:
type: string
2024-07-09 11:19:21 +00:00
mariadb_conf:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mariadb_root_password:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mariadb_user:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mariadb_password:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mariadb_database:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
name:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
description:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
image:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
is_public:
type: boolean
public_port:
type: integer
limits_memory:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_memory_swap:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_memory_swappiness:
type: integer
limits_memory_reservation:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_cpus:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_cpuset:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_cpu_shares:
type: integer
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/databases/mysql:
post:
tags:
- Databases
summary: 'Create (MySQL)'
description: 'Create a new MySQL database.'
operationId: 0a1158cf759c4493cbb1e30024c60623
requestBody:
description: 'Database data'
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
project_uuid:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
environment_name:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
destination_uuid:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mysql_root_password:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mysql_user:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mysql_database:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mysql_conf:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
name:
type: string
description:
type: string
image:
type: string
is_public:
type: boolean
public_port:
2024-07-09 08:45:10 +00:00
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
limits_cpu_shares:
2024-07-09 11:19:21 +00:00
type: integer
instant_deploy:
type: boolean
type: object
responses:
'200':
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/databases/mongodb:
post:
tags:
- Databases
summary: 'Create (MongoDB)'
description: 'Create a new MongoDB database.'
operationId: fdba3de84d02519bb37599fea34b115d
requestBody:
description: 'Database data'
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
project_uuid:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
environment_name:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
destination_uuid:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mongo_conf:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
mongo_initdb_root_username:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
name:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
description:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
image:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
is_public:
2024-07-09 08:45:10 +00:00
type: boolean
2024-07-09 11:19:21 +00:00
public_port:
type: integer
limits_memory:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_memory_swap:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_memory_swappiness:
type: integer
limits_memory_reservation:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_cpus:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_cpuset:
2024-07-09 08:45:10 +00:00
type: string
2024-07-09 11:19:21 +00:00
limits_cpu_shares:
type: integer
instant_deploy:
type: boolean
2024-07-09 08:45:10 +00:00
type: object
responses:
'200':
2024-07-09 11:19:21 +00:00
description: 'Database updated'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/databases/{uuid}/start':
get:
tags:
- Databases
summary: Start
description: 'Start database. `Post` request is also accepted.'
operationId: 4c6eb21e734d411e2b3388578761123d
parameters:
-
name: uuid
in: path
description: 'UUID of the database.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Start database.'
2024-07-09 08:45:10 +00:00
content:
application/json:
schema:
2024-07-09 11:19:21 +00:00
properties:
message: { type: string, example: 'Database starting request queued.' }
type: object
2024-07-09 08:45:10 +00:00
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
2024-07-09 11:19:21 +00:00
'404':
$ref: '#/components/responses/404'
2024-07-09 08:45:10 +00:00
security:
-
bearerAuth: []
2024-07-09 11:19:21 +00:00
'/databases/{uuid}/stop':
2024-07-09 08:45:10 +00:00
get:
tags:
2024-07-09 11:19:21 +00:00
- Databases
summary: Stop
description: 'Stop database. `Post` request is also accepted.'
operationId: cb6d983c2679aff841c7501ce612a372
2024-07-09 08:45:10 +00:00
parameters:
-
name: uuid
in: path
2024-07-09 11:19:21 +00:00
description: 'UUID of the database.'
2024-07-09 08:45:10 +00:00
required: true
schema:
type: string
format: uuid
responses:
'200':
2024-07-09 11:19:21 +00:00
description: 'Stop database.'
2024-07-09 08:45:10 +00:00
content:
application/json:
schema:
2024-07-09 11:19:21 +00:00
properties:
message: { type: string, example: 'Database stopping request queued.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
'/databases/{uuid}/restart':
get:
tags:
- Databases
summary: Restart
description: 'Restart database. `Post` request is also accepted.'
operationId: 04c7a5e4752b4a00036addb433f3f218
parameters:
-
name: uuid
in: path
description: 'UUID of the database.'
required: true
schema:
type: string
format: uuid
responses:
'200':
description: 'Restart database.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Database restaring request queued.' }
type: object
2024-07-09 08:45:10 +00:00
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
/deployments:
get:
tags:
- Deployments
summary: List
description: 'List currently running deployments'
operationId: a2c05736269191ad0d99cadfd4708986
responses:
'200':
description: 'Get all currently running deployments.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApplicationDeploymentQueue'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/deployments/{uuid}':
get:
tags:
- Deployments
summary: Get
description: 'Get deployment by UUID.'
operationId: ccf9856174c115a1430d952ccbd36aea
parameters:
-
name: uuid
in: path
description: 'Deployment Uuid'
required: true
schema:
type: integer
responses:
'200':
description: 'Get deployment by UUID.'
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationDeploymentQueue'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
/deploy:
get:
tags:
- Deployments
summary: Deploy
description: 'Deploy by tag or uuid. `Post` request also accepted.'
operationId: 700eb6e51f4c9e86d722f600c65ed1d4
parameters:
-
name: tag
in: query
description: 'Tag name(s). Comma separated list is also accepted.'
schema:
type: string
-
name: uuid
in: query
description: 'Resource UUID(s). Comma separated list is also accepted.'
schema:
type: string
-
name: force
in: query
description: 'Force rebuild (without cache)'
schema:
type: boolean
responses:
'200':
description: "Get deployment(s) Uuid's"
content:
application/json:
schema:
properties:
deployments: { type: array, items: { properties: { message: { type: string }, resource_uuid: { type: string }, deployment_uuid: { type: string } }, type: object } }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
2024-07-06 12:34:15 +00:00
/version:
get:
summary: Version
description: 'Get Coolify version.'
operationId: 187b37139844731110757711ee71c215
responses:
'200':
description: 'Returns the version of the application'
content:
application/json:
schema:
type: string
example: v4.0.0
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/enable:
get:
summary: 'Enable API'
description: 'Enable API (only with root permissions).'
operationId: 595019bae03d08277def667609779ff3
responses:
'200':
description: 'Enable API.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'API enabled.' }
type: object
'403':
description: 'You are not allowed to enable the API.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'You are not allowed to enable the API.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/disable:
get:
summary: 'Disable API'
description: 'Disable API (only with root permissions).'
operationId: 50e2486a2d196a996b24a284a283bcdb
responses:
'200':
description: 'Disable API.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'API disabled.' }
type: object
'403':
description: 'You are not allowed to disable the API.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'You are not allowed to disable the API.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/healthcheck:
get:
summary: Healthcheck
description: 'Healthcheck endpoint.'
operationId: 64db893135e686704bb88c3c238022c1
responses:
'200':
description: 'Healthcheck endpoint.'
content:
application/json:
schema:
type: string
example: OK
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
2024-07-09 08:45:10 +00:00
/projects:
get:
tags:
- Projects
summary: List
description: 'list projects.'
operationId: 762788f00f2dabb981df9adbc948d3f6
responses:
'200':
description: 'Get all projects.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Project'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/projects/{uuid}':
get:
tags:
- Projects
summary: Get
description: 'Get project by Uuid.'
operationId: 63bf8b6a68fbb757f09ab519331f6298
parameters:
-
name: uuid
in: path
description: 'Project UUID'
required: true
schema:
type: integer
responses:
'200':
description: 'Project details'
content:
application/json:
schema:
$ref: '#/components/schemas/Project'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
description: 'Project not found.'
security:
-
bearerAuth: []
'/projects/{uuid}/{environment_name}':
get:
tags:
- Projects
summary: Environment
description: 'Get environment by name.'
operationId: 7e44845dce5aa47ed7b0daf5595ad2e1
parameters:
-
name: uuid
in: path
description: 'Project UUID'
required: true
schema:
type: integer
-
name: environment_name
in: path
description: 'Environment name'
required: true
schema:
type: string
responses:
'200':
description: 'Project details'
content:
application/json:
schema:
$ref: '#/components/schemas/Environment'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
/resources:
get:
tags:
- Resources
summary: List
description: 'Get all resources.'
operationId: c399903694eb1314596832e49f7c66d7
responses:
'200':
description: 'Get all resources'
content:
application/json:
schema:
type: string
example: 'Content is very complex. Will be implemented later.'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/security/keys:
get:
tags:
- 'Private Keys'
summary: List
description: 'List all private keys.'
operationId: 8a5d8d3ccbbcef54ed0e913a27faea9d
responses:
'200':
description: 'Get all private keys.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PrivateKey'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
post:
tags:
- 'Private Keys'
summary: Create
description: 'Create a new private key.'
operationId: eb4780acaa990c594cdbe8ffa80b4fb0
requestBody:
required: true
content:
application/json:
schema:
required:
- private_key
properties:
name:
type: string
description:
type: string
private_key:
type: string
type: object
additionalProperties: false
responses:
'201':
description: "The created private key's UUID."
content:
application/json:
schema:
properties:
uuid: { type: string }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
patch:
tags:
- 'Private Keys'
summary: Update
description: 'Update a private key.'
operationId: 371fd26b8949a070c26a264231fe233f
requestBody:
required: true
content:
application/json:
schema:
required:
- private_key
properties:
name:
type: string
description:
type: string
private_key:
type: string
type: object
additionalProperties: false
responses:
'201':
description: "The updated private key's UUID."
content:
application/json:
schema:
properties:
uuid: { type: string }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/security/keys/{uuid}':
get:
tags:
- 'Private Keys'
summary: Get
description: 'Get key by UUID.'
operationId: 2f743a85eb65d5ddb8cd5b362bb3d26a
parameters:
-
name: uuid
in: path
description: 'Private Key Uuid'
required: true
schema:
type: integer
responses:
'200':
description: 'Get all private keys.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PrivateKey'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
description: 'Private Key not found.'
security:
-
bearerAuth: []
delete:
tags:
- 'Private Keys'
summary: Delete
description: 'Delete a private key.'
operationId: 8faa0bb399142f0084dfc3e003c42cf6
parameters:
-
name: uuid
in: path
description: 'Private Key Uuid'
required: true
schema:
type: integer
responses:
'200':
description: 'Private Key deleted.'
content:
application/json:
schema:
properties:
message: { type: string, example: 'Private Key deleted.' }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
description: 'Private Key not found.'
security:
-
bearerAuth: []
/servers:
get:
tags:
- Servers
summary: List
description: 'List all servers.'
operationId: 787448df856cefd2d9a313566be30d34
responses:
'200':
description: 'Get all servers.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Server'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/servers/{uuid}':
get:
tags:
- Servers
summary: Get
description: 'Get server by UUID.'
operationId: 5baf04bddb8302c7e07f5b4c41aad10c
parameters:
-
name: uuid
in: path
description: "Server's Uuid"
required: true
schema:
type: integer
responses:
'200':
description: 'Get server by UUID'
content:
application/json:
schema:
$ref: '#/components/schemas/Server'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
'/servers/{uuid}/resources':
get:
tags:
- Servers
summary: Resources
description: 'Get resources by server.'
operationId: cef26c059941b44fbd8de3a7a58c10a5
parameters:
-
name: uuid
in: path
description: "Server's Uuid"
required: true
schema:
type: integer
responses:
'200':
description: 'Get resources by server'
content:
application/json:
schema:
type: array
items:
properties: { id: { type: integer }, uuid: { type: string }, name: { type: string }, type: { type: string }, created_at: { type: string }, updated_at: { type: string }, status: { type: string } }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
'/servers/{uuid}/domains':
get:
tags:
- Servers
summary: Domains
description: 'Get domains by server.'
operationId: 1ee227755be848d572f412272f53dd93
parameters:
-
name: uuid
in: path
description: "Server's Uuid"
required: true
schema:
type: integer
responses:
'200':
description: 'Get domains by server'
content:
application/json:
schema:
type: array
items:
properties: { ip: { type: string }, domains: { type: array, items: { type: string } } }
type: object
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
2024-07-06 12:34:15 +00:00
security:
-
bearerAuth: []
2024-07-05 14:08:01 +00:00
/teams:
get:
2024-07-06 12:34:15 +00:00
tags:
- Teams
summary: List
description: 'Get all teams.'
2024-07-05 14:08:01 +00:00
operationId: f9c530b5b25df9601cb87d6a58646f0a
responses:
'200':
2024-07-06 12:34:15 +00:00
description: 'List of teams.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Team'
2024-07-05 14:08:01 +00:00
'401':
2024-07-06 12:34:15 +00:00
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
2024-07-05 14:08:01 +00:00
'/teams/{id}':
get:
2024-07-06 12:34:15 +00:00
tags:
- Teams
summary: Get
description: 'Get team by TeamId.'
2024-07-05 14:08:01 +00:00
operationId: ac57ff546c002032cef44602c46a4e76
parameters:
-
name: id
in: path
description: 'Team ID'
required: true
schema:
type: integer
responses:
'200':
2024-07-06 12:34:15 +00:00
description: 'List of teams.'
2024-07-05 14:08:01 +00:00
content:
application/json:
schema:
2024-07-06 12:34:15 +00:00
$ref: '#/components/schemas/Team'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
2024-07-09 08:45:10 +00:00
'/teams/{id}/members':
get:
tags:
- Teams
summary: Members
description: 'Get members by TeamId.'
operationId: 7858f5a45d9ea55184c182852a7f0f6c
parameters:
-
name: id
in: path
description: 'Team ID'
required: true
schema:
type: integer
responses:
'200':
description: 'List of members.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
'404':
$ref: '#/components/responses/404'
security:
-
bearerAuth: []
/teams/current:
get:
tags:
- Teams
summary: 'Authenticated Team'
description: 'Get currently authenticated team.'
operationId: 6a4ec9fed1aad7b0b38356c47d7ac509
responses:
'200':
description: 'Current Team.'
content:
application/json:
schema:
$ref: '#/components/schemas/Team'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
/teams/current/members:
get:
tags:
- Teams
summary: 'Authenticated Team Members'
description: 'Get currently authenticated team members.'
operationId: 97e636a5796dbe71afb0bbcf1eec6e41
responses:
'200':
description: 'Currently authenticated team members.'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/responses/401'
'400':
$ref: '#/components/responses/400'
security:
-
bearerAuth: []
2024-07-05 14:08:01 +00:00
components:
2024-07-06 12:34:15 +00:00
schemas:
2024-07-09 08:45:10 +00:00
Application:
description: 'Application model'
properties:
id:
type: integer
repository_project_id:
type: integer
nullable: true
uuid:
type: string
name:
type: string
fqdn:
type: string
config_hash:
type: string
git_repository:
type: string
git_branch:
type: string
git_commit_sha:
type: string
git_full_url:
type: string
nullable: true
docker_registry_image_name:
type: string
nullable: true
docker_registry_image_tag:
type: string
nullable: true
build_pack:
type: string
static_image:
type: string
install_command:
type: string
build_command:
type: string
start_command:
type: string
ports_exposes:
type: string
ports_mappings:
type: string
nullable: true
base_directory:
type: string
publish_directory:
type: string
health_check_path:
type: string
health_check_port:
type: string
nullable: true
health_check_host:
type: string
health_check_method:
type: string
health_check_return_code:
type: integer
health_check_scheme:
type: string
health_check_response_text:
type: string
nullable: true
health_check_interval:
type: integer
health_check_timeout:
type: integer
health_check_retries:
type: integer
health_check_start_period:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
nullable: true
limits_cpu_shares:
type: integer
status:
type: string
preview_url_template:
type: string
destination_type:
type: string
destination_id:
type: integer
source_type:
type: string
source_id:
type: integer
private_key_id:
type: integer
nullable: true
environment_id:
type: integer
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
description:
type: string
nullable: true
dockerfile:
type: string
nullable: true
health_check_enabled:
type: boolean
dockerfile_location:
type: string
custom_labels:
type: string
dockerfile_target_build:
type: string
nullable: true
manual_webhook_secret_github:
type: string
nullable: true
manual_webhook_secret_gitlab:
type: string
nullable: true
docker_compose_location:
type: string
docker_compose:
type: string
nullable: true
docker_compose_raw:
type: string
nullable: true
docker_compose_domains:
type: string
nullable: true
deleted_at:
type: string
format: date-time
nullable: true
docker_compose_custom_start_command:
type: string
nullable: true
docker_compose_custom_build_command:
type: string
nullable: true
swarm_replicas:
type: integer
swarm_placement_constraints:
type: string
nullable: true
manual_webhook_secret_bitbucket:
type: string
nullable: true
custom_docker_run_options:
type: string
nullable: true
post_deployment_command:
type: string
nullable: true
post_deployment_command_container:
type: string
nullable: true
pre_deployment_command:
type: string
nullable: true
pre_deployment_command_container:
type: string
nullable: true
watch_paths:
type: string
nullable: true
custom_healthcheck_found:
type: boolean
manual_webhook_secret_gitea:
type: string
nullable: true
redirect:
type: string
type: object
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
2024-07-09 11:19:21 +00:00
EnvironmentVariable:
description: 'Environment Variable model'
properties:
id:
type: integer
uuid:
type: string
application_id:
type: integer
service_id:
type: integer
database_id:
type: integer
is_build_time:
type: boolean
is_literal:
type: boolean
is_multiline:
type: boolean
is_preview:
type: boolean
is_shared:
type: boolean
is_shown_once:
type: boolean
key:
type: string
value:
type: string
real_value:
type: string
version:
type: string
created_at:
type: string
updated_at:
type: string
type: object
2024-07-09 08:45:10 +00:00
PrivateKey:
description: 'Private Key model'
properties:
id:
type: integer
uuid:
type: string
name:
type: string
description:
type: string
private_key:
type: string
format: private-key
is_git_related:
type: boolean
team_id:
type: integer
created_at:
type: string
updated_at:
type: string
type: object
Project:
description: 'Project model'
properties:
id:
type: integer
uuid:
type: string
name:
type: string
environments:
description: 'The environments of the project.'
type: array
items:
$ref: '#/components/schemas/Environment'
type: object
Server:
description: 'Application model'
properties:
id:
type: integer
repository_project_id:
type: integer
nullable: true
uuid:
type: string
name:
type: string
fqdn:
type: string
config_hash:
type: string
git_repository:
type: string
git_branch:
type: string
git_commit_sha:
type: string
git_full_url:
type: string
nullable: true
docker_registry_image_name:
type: string
nullable: true
docker_registry_image_tag:
type: string
nullable: true
build_pack:
type: string
static_image:
type: string
install_command:
type: string
build_command:
type: string
start_command:
type: string
ports_exposes:
type: string
ports_mappings:
type: string
nullable: true
base_directory:
type: string
publish_directory:
type: string
health_check_path:
type: string
health_check_port:
type: string
nullable: true
health_check_host:
type: string
health_check_method:
type: string
health_check_return_code:
type: integer
health_check_scheme:
type: string
health_check_response_text:
type: string
nullable: true
health_check_interval:
type: integer
health_check_timeout:
type: integer
health_check_retries:
type: integer
health_check_start_period:
type: integer
limits_memory:
type: string
limits_memory_swap:
type: string
limits_memory_swappiness:
type: integer
limits_memory_reservation:
type: string
limits_cpus:
type: string
limits_cpuset:
type: string
nullable: true
limits_cpu_shares:
type: integer
status:
type: string
preview_url_template:
type: string
destination_type:
type: string
destination_id:
type: integer
source_type:
type: string
source_id:
type: integer
private_key_id:
type: integer
nullable: true
environment_id:
type: integer
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
description:
type: string
nullable: true
dockerfile:
type: string
nullable: true
health_check_enabled:
type: boolean
dockerfile_location:
type: string
custom_labels:
type: string
dockerfile_target_build:
type: string
nullable: true
manual_webhook_secret_github:
type: string
nullable: true
manual_webhook_secret_gitlab:
type: string
nullable: true
docker_compose_location:
type: string
docker_compose:
type: string
nullable: true
docker_compose_raw:
type: string
nullable: true
docker_compose_domains:
type: string
nullable: true
deleted_at:
type: string
format: date-time
nullable: true
docker_compose_custom_start_command:
type: string
nullable: true
docker_compose_custom_build_command:
type: string
nullable: true
swarm_replicas:
type: integer
swarm_placement_constraints:
type: string
nullable: true
manual_webhook_secret_bitbucket:
type: string
nullable: true
custom_docker_run_options:
type: string
nullable: true
post_deployment_command:
type: string
nullable: true
post_deployment_command_container:
type: string
nullable: true
pre_deployment_command:
type: string
nullable: true
pre_deployment_command_container:
type: string
nullable: true
watch_paths:
type: string
nullable: true
custom_healthcheck_found:
type: boolean
manual_webhook_secret_gitea:
type: string
nullable: true
redirect:
type: string
type: object
ServerSetting:
description: 'Server Settings model'
properties:
id:
type: integer
cleanup_after_percentage:
type: integer
concurrent_builds:
type: integer
dynamic_timeout:
type: integer
force_disabled:
type: boolean
is_build_server:
type: boolean
is_cloudflare_tunnel:
type: boolean
is_jump_server:
type: boolean
is_logdrain_axiom_enabled:
type: boolean
is_logdrain_custom_enabled:
type: boolean
is_logdrain_highlight_enabled:
type: boolean
is_logdrain_newrelic_enabled:
type: boolean
is_metrics_enabled:
type: boolean
is_reachable:
type: boolean
is_server_api_enabled:
type: boolean
is_swarm_manager:
type: boolean
is_swarm_worker:
type: boolean
is_usable:
type: boolean
logdrain_axiom_api_key:
type: string
logdrain_axiom_dataset_name:
type: string
logdrain_custom_config:
type: string
logdrain_custom_config_parser:
type: string
logdrain_highlight_project_id:
type: string
logdrain_newrelic_base_uri:
type: string
logdrain_newrelic_license_key:
type: string
metrics_history_days:
type: integer
metrics_refresh_rate_seconds:
type: integer
metrics_token:
type: string
server_id:
type: integer
wildcard_domain:
type: string
created_at:
type: string
updated_at:
type: string
type: object
2024-07-06 12:34:15 +00:00
Team:
description: 'Team model'
properties:
id:
type: integer
description: 'The unique identifier of the team.'
name:
type: string
description: 'The name of the team.'
description:
type: string
description: 'The description of the team.'
personal_team:
type: boolean
description: 'Whether the team is personal or not.'
created_at:
type: string
description: 'The date and time the team was created.'
updated_at:
type: string
description: 'The date and time the team was last updated.'
smtp_enabled:
type: boolean
description: 'Whether SMTP is enabled or not.'
smtp_from_address:
type: string
description: 'The email address to send emails from.'
smtp_from_name:
type: string
description: 'The name to send emails from.'
smtp_recipients:
type: string
description: 'The email addresses to send emails to.'
smtp_host:
type: string
description: 'The SMTP host.'
smtp_port:
type: string
description: 'The SMTP port.'
smtp_encryption:
type: string
description: 'The SMTP encryption.'
smtp_username:
type: string
description: 'The SMTP username.'
smtp_password:
type: string
description: 'The SMTP password.'
smtp_timeout:
type: string
description: 'The SMTP timeout.'
smtp_notifications_test:
type: boolean
description: 'Whether to send test notifications via SMTP.'
smtp_notifications_deployments:
type: boolean
description: 'Whether to send deployment notifications via SMTP.'
smtp_notifications_status_changes:
type: boolean
description: 'Whether to send status change notifications via SMTP.'
smtp_notifications_scheduled_tasks:
type: boolean
description: 'Whether to send scheduled task notifications via SMTP.'
smtp_notifications_database_backups:
type: boolean
description: 'Whether to send database backup notifications via SMTP.'
discord_enabled:
type: boolean
description: 'Whether Discord is enabled or not.'
discord_webhook_url:
type: string
description: 'The Discord webhook URL.'
discord_notifications_test:
type: boolean
description: 'Whether to send test notifications via Discord.'
discord_notifications_deployments:
type: boolean
description: 'Whether to send deployment notifications via Discord.'
discord_notifications_status_changes:
type: boolean
description: 'Whether to send status change notifications via Discord.'
discord_notifications_database_backups:
type: boolean
description: 'Whether to send database backup notifications via Discord.'
discord_notifications_scheduled_tasks:
type: boolean
description: 'Whether to send scheduled task notifications via Discord.'
show_boarding:
type: boolean
description: 'Whether to show the boarding screen or not.'
resend_enabled:
type: boolean
description: 'Whether to enable resending or not.'
resend_api_key:
type: string
description: 'The resending API key.'
use_instance_email_settings:
type: boolean
description: 'Whether to use instance email settings or not.'
telegram_enabled:
type: boolean
description: 'Whether Telegram is enabled or not.'
telegram_token:
type: string
description: 'The Telegram token.'
telegram_chat_id:
type: string
description: 'The Telegram chat ID.'
telegram_notifications_test:
type: boolean
description: 'Whether to send test notifications via Telegram.'
telegram_notifications_deployments:
type: boolean
description: 'Whether to send deployment notifications via Telegram.'
telegram_notifications_status_changes:
type: boolean
description: 'Whether to send status change notifications via Telegram.'
telegram_notifications_database_backups:
type: boolean
description: 'Whether to send database backup notifications via Telegram.'
telegram_notifications_test_message_thread_id:
type: string
description: 'The Telegram test message thread ID.'
telegram_notifications_deployments_message_thread_id:
type: string
description: 'The Telegram deployment message thread ID.'
telegram_notifications_status_changes_message_thread_id:
type: string
description: 'The Telegram status change message thread ID.'
telegram_notifications_database_backups_message_thread_id:
type: string
description: 'The Telegram database backup message thread ID.'
custom_server_limit:
type: string
description: 'The custom server limit.'
telegram_notifications_scheduled_tasks:
type: boolean
description: 'Whether to send scheduled task notifications via Telegram.'
telegram_notifications_scheduled_tasks_thread_id:
type: string
description: 'The Telegram scheduled task message thread ID.'
2024-07-09 08:45:10 +00:00
members:
description: 'The members of the team.'
type: array
items:
$ref: '#/components/schemas/User'
type: object
User:
description: 'User model'
properties:
id:
type: integer
name:
type: string
email:
type: string
email_verified_at:
type: string
created_at:
type: string
updated_at:
type: string
two_factor_confirmed_at:
type: string
force_password_reset:
type: boolean
marketing_emails:
type: boolean
2024-07-06 12:34:15 +00:00
type: object
responses:
2024-07-09 08:45:10 +00:00
'400':
description: 'Invalid token.'
2024-07-06 12:34:15 +00:00
content:
application/json:
schema:
properties:
message:
type: string
2024-07-09 08:45:10 +00:00
example: 'Invalid token.'
2024-07-06 12:34:15 +00:00
type: object
2024-07-09 08:45:10 +00:00
'401':
description: Unauthenticated.
2024-07-06 12:34:15 +00:00
content:
application/json:
schema:
properties:
message:
type: string
2024-07-09 08:45:10 +00:00
example: Unauthenticated.
2024-07-06 12:34:15 +00:00
type: object
'404':
description: 'Resource not found.'
content:
application/json:
schema:
properties:
message:
type: string
2024-07-09 08:45:10 +00:00
example: 'Resource not found.'
2024-07-06 12:34:15 +00:00
type: object
2024-07-05 14:08:01 +00:00
securitySchemes:
bearerAuth:
type: http
2024-07-06 12:34:15 +00:00
description: 'Go to `Keys & Tokens` / `API tokens` and create a new token. Use the token as the bearer token.'
2024-07-05 14:08:01 +00:00
scheme: bearer
2024-07-06 12:34:15 +00:00
tags:
2024-07-09 08:45:10 +00:00
-
name: Applications
description: Applications
2024-07-09 11:19:21 +00:00
-
name: Databases
description: Databases
2024-07-09 08:45:10 +00:00
-
name: Deployments
description: Deployments
-
name: Projects
description: Projects
-
name: Resources
description: Resources
-
name: 'Private Keys'
description: 'Private Keys'
-
name: Servers
description: Servers
2024-07-06 12:34:15 +00:00
-
name: Teams
description: Teams