Files
Coolify-TypeScript-SDK/OpenAPI.yaml
2024-11-19 21:24:42 -06:00

5505 lines
182 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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/applications/public:
post:
tags:
- Applications
summary: "Create (Public)"
description: "Create new application based on a public git repository."
operationId: create-public-application
requestBody:
description: "Application object that needs to be created."
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
description: "The project UUID."
server_uuid:
type: string
description: "The server UUID."
environment_name:
type: string
description: "The environment name."
git_repository:
type: string
description: "The git repository URL."
git_branch:
type: string
description: "The git branch."
build_pack:
type: string
enum: [nixpacks, static, dockerfile, dockercompose]
description: "The build pack type."
ports_exposes:
type: string
description: "The ports to expose."
destination_uuid:
type: string
description: "The destination UUID."
name:
type: string
description: "The application name."
description:
type: string
description: "The application description."
domains:
type: string
description: "The application domains."
git_commit_sha:
type: string
description: "The git commit SHA."
docker_registry_image_name:
type: string
description: "The docker registry image name."
docker_registry_image_tag:
type: string
description: "The docker registry image tag."
is_static:
type: boolean
description: "The flag to indicate if the application is static."
static_image:
type: string
enum: ["nginx:alpine"]
description: "The static image."
install_command:
type: string
description: "The install command."
build_command:
type: string
description: "The build command."
start_command:
type: string
description: "The start command."
ports_mappings:
type: string
description: "The ports mappings."
base_directory:
type: string
description: "The base directory for all commands."
publish_directory:
type: string
description: "The publish directory."
health_check_enabled:
type: boolean
description: "Health check enabled."
health_check_path:
type: string
description: "Health check path."
health_check_port:
type: string
nullable: true
description: "Health check port."
health_check_host:
type: string
nullable: true
description: "Health check host."
health_check_method:
type: string
description: "Health check method."
health_check_return_code:
type: integer
description: "Health check return code."
health_check_scheme:
type: string
description: "Health check scheme."
health_check_response_text:
type: string
nullable: true
description: "Health check response text."
health_check_interval:
type: integer
description: "Health check interval in seconds."
health_check_timeout:
type: integer
description: "Health check timeout in seconds."
health_check_retries:
type: integer
description: "Health check retries count."
health_check_start_period:
type: integer
description: "Health check start period in seconds."
limits_memory:
type: string
description: "Memory limit."
limits_memory_swap:
type: string
description: "Memory swap limit."
limits_memory_swappiness:
type: integer
description: "Memory swappiness."
limits_memory_reservation:
type: string
description: "Memory reservation."
limits_cpus:
type: string
description: "CPU limit."
limits_cpuset:
type: string
nullable: true
description: "CPU set."
limits_cpu_shares:
type: integer
description: "CPU shares."
custom_labels:
type: string
description: "Custom labels."
custom_docker_run_options:
type: string
description: "Custom docker run options."
post_deployment_command:
type: string
description: "Post deployment command."
post_deployment_command_container:
type: string
description: "Post deployment command container."
pre_deployment_command:
type: string
description: "Pre deployment command."
pre_deployment_command_container:
type: string
description: "Pre deployment command container."
manual_webhook_secret_github:
type: string
description: "Manual webhook secret for Github."
manual_webhook_secret_gitlab:
type: string
description: "Manual webhook secret for Gitlab."
manual_webhook_secret_bitbucket:
type: string
description: "Manual webhook secret for Bitbucket."
manual_webhook_secret_gitea:
type: string
description: "Manual webhook secret for Gitea."
redirect:
type: string
nullable: true
description: "How to set redirect with Traefik / Caddy. www<->non-www."
enum: [www, non-www, both]
instant_deploy:
type: boolean
description: "The flag to indicate if the application should be deployed instantly."
dockerfile:
type: string
description: "The Dockerfile content."
docker_compose_location:
type: string
description: "The Docker Compose location."
docker_compose_raw:
type: string
description: "The Docker Compose raw content."
docker_compose_custom_start_command:
type: string
description: "The Docker Compose custom start command."
docker_compose_custom_build_command:
type: string
description: "The Docker Compose custom build command."
docker_compose_domains:
type: array
description: "The Docker Compose domains."
watch_paths:
type: string
description: "The watch paths."
use_build_server:
type: boolean
nullable: true
description: "Use build server."
type: object
responses:
"200":
description: "Application created successfully."
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/applications/private-github-app:
post:
tags:
- Applications
summary: "Create (Private - GH App)"
description: "Create new application based on a private repository through a Github App."
operationId: create-private-github-app-application
requestBody:
description: "Application object that needs to be created."
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- github_app_uuid
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
description: "The project UUID."
server_uuid:
type: string
description: "The server UUID."
environment_name:
type: string
description: "The environment name."
github_app_uuid:
type: string
description: "The Github App UUID."
git_repository:
type: string
description: "The git repository URL."
git_branch:
type: string
description: "The git branch."
ports_exposes:
type: string
description: "The ports to expose."
destination_uuid:
type: string
description: "The destination UUID."
build_pack:
type: string
enum: [nixpacks, static, dockerfile, dockercompose]
description: "The build pack type."
name:
type: string
description: "The application name."
description:
type: string
description: "The application description."
domains:
type: string
description: "The application domains."
git_commit_sha:
type: string
description: "The git commit SHA."
docker_registry_image_name:
type: string
description: "The docker registry image name."
docker_registry_image_tag:
type: string
description: "The docker registry image tag."
is_static:
type: boolean
description: "The flag to indicate if the application is static."
static_image:
type: string
enum: ["nginx:alpine"]
description: "The static image."
install_command:
type: string
description: "The install command."
build_command:
type: string
description: "The build command."
start_command:
type: string
description: "The start command."
ports_mappings:
type: string
description: "The ports mappings."
base_directory:
type: string
description: "The base directory for all commands."
publish_directory:
type: string
description: "The publish directory."
health_check_enabled:
type: boolean
description: "Health check enabled."
health_check_path:
type: string
description: "Health check path."
health_check_port:
type: string
nullable: true
description: "Health check port."
health_check_host:
type: string
nullable: true
description: "Health check host."
health_check_method:
type: string
description: "Health check method."
health_check_return_code:
type: integer
description: "Health check return code."
health_check_scheme:
type: string
description: "Health check scheme."
health_check_response_text:
type: string
nullable: true
description: "Health check response text."
health_check_interval:
type: integer
description: "Health check interval in seconds."
health_check_timeout:
type: integer
description: "Health check timeout in seconds."
health_check_retries:
type: integer
description: "Health check retries count."
health_check_start_period:
type: integer
description: "Health check start period in seconds."
limits_memory:
type: string
description: "Memory limit."
limits_memory_swap:
type: string
description: "Memory swap limit."
limits_memory_swappiness:
type: integer
description: "Memory swappiness."
limits_memory_reservation:
type: string
description: "Memory reservation."
limits_cpus:
type: string
description: "CPU limit."
limits_cpuset:
type: string
nullable: true
description: "CPU set."
limits_cpu_shares:
type: integer
description: "CPU shares."
custom_labels:
type: string
description: "Custom labels."
custom_docker_run_options:
type: string
description: "Custom docker run options."
post_deployment_command:
type: string
description: "Post deployment command."
post_deployment_command_container:
type: string
description: "Post deployment command container."
pre_deployment_command:
type: string
description: "Pre deployment command."
pre_deployment_command_container:
type: string
description: "Pre deployment command container."
manual_webhook_secret_github:
type: string
description: "Manual webhook secret for Github."
manual_webhook_secret_gitlab:
type: string
description: "Manual webhook secret for Gitlab."
manual_webhook_secret_bitbucket:
type: string
description: "Manual webhook secret for Bitbucket."
manual_webhook_secret_gitea:
type: string
description: "Manual webhook secret for Gitea."
redirect:
type: string
nullable: true
description: "How to set redirect with Traefik / Caddy. www<->non-www."
enum: [www, non-www, both]
instant_deploy:
type: boolean
description: "The flag to indicate if the application should be deployed instantly."
dockerfile:
type: string
description: "The Dockerfile content."
docker_compose_location:
type: string
description: "The Docker Compose location."
docker_compose_raw:
type: string
description: "The Docker Compose raw content."
docker_compose_custom_start_command:
type: string
description: "The Docker Compose custom start command."
docker_compose_custom_build_command:
type: string
description: "The Docker Compose custom build command."
docker_compose_domains:
type: array
description: "The Docker Compose domains."
watch_paths:
type: string
description: "The watch paths."
use_build_server:
type: boolean
nullable: true
description: "Use build server."
type: object
responses:
"200":
description: "Application created successfully."
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/applications/private-deploy-key:
post:
tags:
- Applications
summary: "Create (Private - Deploy Key)"
description: "Create new application based on a private repository through a Deploy Key."
operationId: create-private-deploy-key-application
requestBody:
description: "Application object that needs to be created."
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- private_key_uuid
- git_repository
- git_branch
- build_pack
- ports_exposes
properties:
project_uuid:
type: string
description: "The project UUID."
server_uuid:
type: string
description: "The server UUID."
environment_name:
type: string
description: "The environment name."
private_key_uuid:
type: string
description: "The private key UUID."
git_repository:
type: string
description: "The git repository URL."
git_branch:
type: string
description: "The git branch."
ports_exposes:
type: string
description: "The ports to expose."
destination_uuid:
type: string
description: "The destination UUID."
build_pack:
type: string
enum: [nixpacks, static, dockerfile, dockercompose]
description: "The build pack type."
name:
type: string
description: "The application name."
description:
type: string
description: "The application description."
domains:
type: string
description: "The application domains."
git_commit_sha:
type: string
description: "The git commit SHA."
docker_registry_image_name:
type: string
description: "The docker registry image name."
docker_registry_image_tag:
type: string
description: "The docker registry image tag."
is_static:
type: boolean
description: "The flag to indicate if the application is static."
static_image:
type: string
enum: ["nginx:alpine"]
description: "The static image."
install_command:
type: string
description: "The install command."
build_command:
type: string
description: "The build command."
start_command:
type: string
description: "The start command."
ports_mappings:
type: string
description: "The ports mappings."
base_directory:
type: string
description: "The base directory for all commands."
publish_directory:
type: string
description: "The publish directory."
health_check_enabled:
type: boolean
description: "Health check enabled."
health_check_path:
type: string
description: "Health check path."
health_check_port:
type: string
nullable: true
description: "Health check port."
health_check_host:
type: string
nullable: true
description: "Health check host."
health_check_method:
type: string
description: "Health check method."
health_check_return_code:
type: integer
description: "Health check return code."
health_check_scheme:
type: string
description: "Health check scheme."
health_check_response_text:
type: string
nullable: true
description: "Health check response text."
health_check_interval:
type: integer
description: "Health check interval in seconds."
health_check_timeout:
type: integer
description: "Health check timeout in seconds."
health_check_retries:
type: integer
description: "Health check retries count."
health_check_start_period:
type: integer
description: "Health check start period in seconds."
limits_memory:
type: string
description: "Memory limit."
limits_memory_swap:
type: string
description: "Memory swap limit."
limits_memory_swappiness:
type: integer
description: "Memory swappiness."
limits_memory_reservation:
type: string
description: "Memory reservation."
limits_cpus:
type: string
description: "CPU limit."
limits_cpuset:
type: string
nullable: true
description: "CPU set."
limits_cpu_shares:
type: integer
description: "CPU shares."
custom_labels:
type: string
description: "Custom labels."
custom_docker_run_options:
type: string
description: "Custom docker run options."
post_deployment_command:
type: string
description: "Post deployment command."
post_deployment_command_container:
type: string
description: "Post deployment command container."
pre_deployment_command:
type: string
description: "Pre deployment command."
pre_deployment_command_container:
type: string
description: "Pre deployment command container."
manual_webhook_secret_github:
type: string
description: "Manual webhook secret for Github."
manual_webhook_secret_gitlab:
type: string
description: "Manual webhook secret for Gitlab."
manual_webhook_secret_bitbucket:
type: string
description: "Manual webhook secret for Bitbucket."
manual_webhook_secret_gitea:
type: string
description: "Manual webhook secret for Gitea."
redirect:
type: string
nullable: true
description: "How to set redirect with Traefik / Caddy. www<->non-www."
enum: [www, non-www, both]
instant_deploy:
type: boolean
description: "The flag to indicate if the application should be deployed instantly."
dockerfile:
type: string
description: "The Dockerfile content."
docker_compose_location:
type: string
description: "The Docker Compose location."
docker_compose_raw:
type: string
description: "The Docker Compose raw content."
docker_compose_custom_start_command:
type: string
description: "The Docker Compose custom start command."
docker_compose_custom_build_command:
type: string
description: "The Docker Compose custom build command."
docker_compose_domains:
type: array
description: "The Docker Compose domains."
watch_paths:
type: string
description: "The watch paths."
use_build_server:
type: boolean
nullable: true
description: "Use build server."
type: object
responses:
"200":
description: "Application created successfully."
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/applications/dockerfile:
post:
tags:
- Applications
summary: "Create (Dockerfile)"
description: "Create new application based on a simple Dockerfile."
operationId: create-dockerfile-application
requestBody:
description: "Application object that needs to be created."
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- dockerfile
properties:
project_uuid:
type: string
description: "The project UUID."
server_uuid:
type: string
description: "The server UUID."
environment_name:
type: string
description: "The environment name."
dockerfile:
type: string
description: "The Dockerfile content."
build_pack:
type: string
enum: [nixpacks, static, dockerfile, dockercompose]
description: "The build pack type."
ports_exposes:
type: string
description: "The ports to expose."
destination_uuid:
type: string
description: "The destination UUID."
name:
type: string
description: "The application name."
description:
type: string
description: "The application description."
domains:
type: string
description: "The application domains."
docker_registry_image_name:
type: string
description: "The docker registry image name."
docker_registry_image_tag:
type: string
description: "The docker registry image tag."
ports_mappings:
type: string
description: "The ports mappings."
base_directory:
type: string
description: "The base directory for all commands."
health_check_enabled:
type: boolean
description: "Health check enabled."
health_check_path:
type: string
description: "Health check path."
health_check_port:
type: string
nullable: true
description: "Health check port."
health_check_host:
type: string
nullable: true
description: "Health check host."
health_check_method:
type: string
description: "Health check method."
health_check_return_code:
type: integer
description: "Health check return code."
health_check_scheme:
type: string
description: "Health check scheme."
health_check_response_text:
type: string
nullable: true
description: "Health check response text."
health_check_interval:
type: integer
description: "Health check interval in seconds."
health_check_timeout:
type: integer
description: "Health check timeout in seconds."
health_check_retries:
type: integer
description: "Health check retries count."
health_check_start_period:
type: integer
description: "Health check start period in seconds."
limits_memory:
type: string
description: "Memory limit."
limits_memory_swap:
type: string
description: "Memory swap limit."
limits_memory_swappiness:
type: integer
description: "Memory swappiness."
limits_memory_reservation:
type: string
description: "Memory reservation."
limits_cpus:
type: string
description: "CPU limit."
limits_cpuset:
type: string
nullable: true
description: "CPU set."
limits_cpu_shares:
type: integer
description: "CPU shares."
custom_labels:
type: string
description: "Custom labels."
custom_docker_run_options:
type: string
description: "Custom docker run options."
post_deployment_command:
type: string
description: "Post deployment command."
post_deployment_command_container:
type: string
description: "Post deployment command container."
pre_deployment_command:
type: string
description: "Pre deployment command."
pre_deployment_command_container:
type: string
description: "Pre deployment command container."
manual_webhook_secret_github:
type: string
description: "Manual webhook secret for Github."
manual_webhook_secret_gitlab:
type: string
description: "Manual webhook secret for Gitlab."
manual_webhook_secret_bitbucket:
type: string
description: "Manual webhook secret for Bitbucket."
manual_webhook_secret_gitea:
type: string
description: "Manual webhook secret for Gitea."
redirect:
type: string
nullable: true
description: "How to set redirect with Traefik / Caddy. www<->non-www."
enum: [www, non-www, both]
instant_deploy:
type: boolean
description: "The flag to indicate if the application should be deployed instantly."
use_build_server:
type: boolean
nullable: true
description: "Use build server."
type: object
responses:
"200":
description: "Application created successfully."
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/applications/dockerimage:
post:
tags:
- Applications
summary: "Create (Docker Image)"
description: "Create new application based on a prebuilt docker image"
operationId: create-dockerimage-application
requestBody:
description: "Application object that needs to be created."
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- docker_registry_image_name
- ports_exposes
properties:
project_uuid:
type: string
description: "The project UUID."
server_uuid:
type: string
description: "The server UUID."
environment_name:
type: string
description: "The environment name."
docker_registry_image_name:
type: string
description: "The docker registry image name."
docker_registry_image_tag:
type: string
description: "The docker registry image tag."
ports_exposes:
type: string
description: "The ports to expose."
destination_uuid:
type: string
description: "The destination UUID."
name:
type: string
description: "The application name."
description:
type: string
description: "The application description."
domains:
type: string
description: "The application domains."
ports_mappings:
type: string
description: "The ports mappings."
health_check_enabled:
type: boolean
description: "Health check enabled."
health_check_path:
type: string
description: "Health check path."
health_check_port:
type: string
nullable: true
description: "Health check port."
health_check_host:
type: string
nullable: true
description: "Health check host."
health_check_method:
type: string
description: "Health check method."
health_check_return_code:
type: integer
description: "Health check return code."
health_check_scheme:
type: string
description: "Health check scheme."
health_check_response_text:
type: string
nullable: true
description: "Health check response text."
health_check_interval:
type: integer
description: "Health check interval in seconds."
health_check_timeout:
type: integer
description: "Health check timeout in seconds."
health_check_retries:
type: integer
description: "Health check retries count."
health_check_start_period:
type: integer
description: "Health check start period in seconds."
limits_memory:
type: string
description: "Memory limit."
limits_memory_swap:
type: string
description: "Memory swap limit."
limits_memory_swappiness:
type: integer
description: "Memory swappiness."
limits_memory_reservation:
type: string
description: "Memory reservation."
limits_cpus:
type: string
description: "CPU limit."
limits_cpuset:
type: string
nullable: true
description: "CPU set."
limits_cpu_shares:
type: integer
description: "CPU shares."
custom_labels:
type: string
description: "Custom labels."
custom_docker_run_options:
type: string
description: "Custom docker run options."
post_deployment_command:
type: string
description: "Post deployment command."
post_deployment_command_container:
type: string
description: "Post deployment command container."
pre_deployment_command:
type: string
description: "Pre deployment command."
pre_deployment_command_container:
type: string
description: "Pre deployment command container."
manual_webhook_secret_github:
type: string
description: "Manual webhook secret for Github."
manual_webhook_secret_gitlab:
type: string
description: "Manual webhook secret for Gitlab."
manual_webhook_secret_bitbucket:
type: string
description: "Manual webhook secret for Bitbucket."
manual_webhook_secret_gitea:
type: string
description: "Manual webhook secret for Gitea."
redirect:
type: string
nullable: true
description: "How to set redirect with Traefik / Caddy. www<->non-www."
enum: [www, non-www, both]
instant_deploy:
type: boolean
description: "The flag to indicate if the application should be deployed instantly."
use_build_server:
type: boolean
nullable: true
description: "Use build server."
type: object
responses:
"200":
description: "Application created successfully."
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/applications/dockercompose:
post:
tags:
- Applications
summary: "Create (Docker Compose)"
description: "Create new application based on a docker-compose file."
operationId: create-dockercompose-application
requestBody:
description: "Application object that needs to be created."
required: true
content:
application/json:
schema:
required:
- project_uuid
- server_uuid
- environment_name
- docker_compose_raw
properties:
project_uuid:
type: string
description: "The project UUID."
server_uuid:
type: string
description: "The server UUID."
environment_name:
type: string
description: "The environment name."
docker_compose_raw:
type: string
description: "The Docker Compose raw content."
destination_uuid:
type: string
description: "The destination UUID if the server has more than one destinations."
name:
type: string
description: "The application name."
description:
type: string
description: "The application description."
instant_deploy:
type: boolean
description: "The flag to indicate if the application should be deployed instantly."
use_build_server:
type: boolean
nullable: true
description: "Use build server."
type: object
responses:
"200":
description: "Application created successfully."
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
security:
- bearerAuth: []
patch:
tags:
- Applications
summary: Update
description: "Update application by UUID."
operationId: update-application-by-uuid
parameters:
- name: uuid
in: path
description: "UUID of the application."
required: true
schema:
type: string
format: 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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
security:
- bearerAuth: []
"/applications/{uuid}/execute":
post:
tags:
- Applications
summary: "Execute Command"
description: "Execute a command on the application's current container."
operationId: execute-command-application
parameters:
- name: uuid
in: path
description: "UUID of the application."
required: true
schema:
type: string
format: uuid
requestBody:
description: "Command to execute."
required: true
content:
application/json:
schema:
properties:
command:
type: string
description: "Command to execute."
type: object
responses:
"200":
description: "Execute a command on the application's current container."
content:
application/json:
schema:
properties:
message: { type: string, example: "Command executed." }
response: { type: string }
type: object
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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_init_database:
type: string
description: "Mongo initdb init database"
mysql_root_password:
type: string
description: "MySQL root password"
mysql_user:
type: string
description: "MySQL user"
mysql_database:
type: string
description: "MySQL database"
mysql_conf:
type: string
description: "MySQL conf"
type: object
responses:
"200":
description: "Database updated"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
security:
- bearerAuth: []
/databases/postgresql:
post:
tags:
- Databases
summary: "Create (PostgreSQL)"
description: "Create a new PostgreSQL database."
operationId: create-database-postgresql
requestBody:
description: "Database data"
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
description: "UUID of the server"
project_uuid:
type: string
description: "UUID of the project"
environment_name:
type: string
description: "Name of the environment"
postgres_user:
type: string
description: "PostgreSQL user"
postgres_password:
type: string
description: "PostgreSQL password"
postgres_db:
type: string
description: "PostgreSQL database"
postgres_initdb_args:
type: string
description: "PostgreSQL initdb args"
postgres_host_auth_method:
type: string
description: "PostgreSQL host auth method"
postgres_conf:
type: string
description: "PostgreSQL conf"
destination_uuid:
type: string
description: "UUID of the destination if the server has multiple destinations"
name:
type: string
description: "Name of the database"
description:
type: string
description: "Description of the database"
image:
type: string
description: "Docker Image of the database"
is_public:
type: boolean
description: "Is the database public?"
public_port:
type: integer
description: "Public port of the database"
limits_memory:
type: string
description: "Memory limit of the database"
limits_memory_swap:
type: string
description: "Memory swap limit of the database"
limits_memory_swappiness:
type: integer
description: "Memory swappiness of the database"
limits_memory_reservation:
type: string
description: "Memory reservation of the database"
limits_cpus:
type: string
description: "CPU limit of the database"
limits_cpuset:
type: string
description: "CPU set of the database"
limits_cpu_shares:
type: integer
description: "CPU shares of the database"
instant_deploy:
type: boolean
description: "Instant deploy the database"
type: object
responses:
"200":
description: "Database updated"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/databases/clickhouse:
post:
tags:
- Databases
summary: "Create (Clickhouse)"
description: "Create a new Clickhouse database."
operationId: create-database-clickhouse
requestBody:
description: "Database data"
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
description: "UUID of the server"
project_uuid:
type: string
description: "UUID of the project"
environment_name:
type: string
description: "Name of the environment"
destination_uuid:
type: string
description: "UUID of the destination if the server has multiple destinations"
clickhouse_admin_user:
type: string
description: "Clickhouse admin user"
clickhouse_admin_password:
type: string
description: "Clickhouse admin password"
name:
type: string
description: "Name of the database"
description:
type: string
description: "Description of the database"
image:
type: string
description: "Docker Image of the database"
is_public:
type: boolean
description: "Is the database public?"
public_port:
type: integer
description: "Public port of the database"
limits_memory:
type: string
description: "Memory limit of the database"
limits_memory_swap:
type: string
description: "Memory swap limit of the database"
limits_memory_swappiness:
type: integer
description: "Memory swappiness of the database"
limits_memory_reservation:
type: string
description: "Memory reservation of the database"
limits_cpus:
type: string
description: "CPU limit of the database"
limits_cpuset:
type: string
description: "CPU set of the database"
limits_cpu_shares:
type: integer
description: "CPU shares of the database"
instant_deploy:
type: boolean
description: "Instant deploy the database"
type: object
responses:
"200":
description: "Database updated"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/databases/dragonfly:
post:
tags:
- Databases
summary: "Create (DragonFly)"
description: "Create a new DragonFly database."
operationId: create-database-dragonfly
requestBody:
description: "Database data"
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
description: "UUID of the server"
project_uuid:
type: string
description: "UUID of the project"
environment_name:
type: string
description: "Name of the environment"
destination_uuid:
type: string
description: "UUID of the destination if the server has multiple destinations"
dragonfly_password:
type: string
description: "DragonFly password"
name:
type: string
description: "Name of the database"
description:
type: string
description: "Description of the database"
image:
type: string
description: "Docker Image of the database"
is_public:
type: boolean
description: "Is the database public?"
public_port:
type: integer
description: "Public port of the database"
limits_memory:
type: string
description: "Memory limit of the database"
limits_memory_swap:
type: string
description: "Memory swap limit of the database"
limits_memory_swappiness:
type: integer
description: "Memory swappiness of the database"
limits_memory_reservation:
type: string
description: "Memory reservation of the database"
limits_cpus:
type: string
description: "CPU limit of the database"
limits_cpuset:
type: string
description: "CPU set of the database"
limits_cpu_shares:
type: integer
description: "CPU shares of the database"
instant_deploy:
type: boolean
description: "Instant deploy the database"
type: object
responses:
"200":
description: "Database updated"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/databases/redis:
post:
tags:
- Databases
summary: "Create (Redis)"
description: "Create a new Redis database."
operationId: create-database-redis
requestBody:
description: "Database data"
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
description: "UUID of the server"
project_uuid:
type: string
description: "UUID of the project"
environment_name:
type: string
description: "Name of the environment"
destination_uuid:
type: string
description: "UUID of the destination if the server has multiple destinations"
redis_password:
type: string
description: "Redis password"
redis_conf:
type: string
description: "Redis conf"
name:
type: string
description: "Name of the database"
description:
type: string
description: "Description of the database"
image:
type: string
description: "Docker Image of the database"
is_public:
type: boolean
description: "Is the database public?"
public_port:
type: integer
description: "Public port of the database"
limits_memory:
type: string
description: "Memory limit of the database"
limits_memory_swap:
type: string
description: "Memory swap limit of the database"
limits_memory_swappiness:
type: integer
description: "Memory swappiness of the database"
limits_memory_reservation:
type: string
description: "Memory reservation of the database"
limits_cpus:
type: string
description: "CPU limit of the database"
limits_cpuset:
type: string
description: "CPU set of the database"
limits_cpu_shares:
type: integer
description: "CPU shares of the database"
instant_deploy:
type: boolean
description: "Instant deploy the database"
type: object
responses:
"200":
description: "Database updated"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/databases/keydb:
post:
tags:
- Databases
summary: "Create (KeyDB)"
description: "Create a new KeyDB database."
operationId: create-database-keydb
requestBody:
description: "Database data"
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
description: "UUID of the server"
project_uuid:
type: string
description: "UUID of the project"
environment_name:
type: string
description: "Name of the environment"
destination_uuid:
type: string
description: "UUID of the destination if the server has multiple destinations"
keydb_password:
type: string
description: "KeyDB password"
keydb_conf:
type: string
description: "KeyDB conf"
name:
type: string
description: "Name of the database"
description:
type: string
description: "Description of the database"
image:
type: string
description: "Docker Image of the database"
is_public:
type: boolean
description: "Is the database public?"
public_port:
type: integer
description: "Public port of the database"
limits_memory:
type: string
description: "Memory limit of the database"
limits_memory_swap:
type: string
description: "Memory swap limit of the database"
limits_memory_swappiness:
type: integer
description: "Memory swappiness of the database"
limits_memory_reservation:
type: string
description: "Memory reservation of the database"
limits_cpus:
type: string
description: "CPU limit of the database"
limits_cpuset:
type: string
description: "CPU set of the database"
limits_cpu_shares:
type: integer
description: "CPU shares of the database"
instant_deploy:
type: boolean
description: "Instant deploy the database"
type: object
responses:
"200":
description: "Database updated"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/databases/mariadb:
post:
tags:
- Databases
summary: "Create (MariaDB)"
description: "Create a new MariaDB database."
operationId: create-database-mariadb
requestBody:
description: "Database data"
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
description: "UUID of the server"
project_uuid:
type: string
description: "UUID of the project"
environment_name:
type: string
description: "Name of the environment"
destination_uuid:
type: string
description: "UUID of the destination if the server has multiple destinations"
mariadb_conf:
type: string
description: "MariaDB conf"
mariadb_root_password:
type: string
description: "MariaDB root password"
mariadb_user:
type: string
description: "MariaDB user"
mariadb_password:
type: string
description: "MariaDB password"
mariadb_database:
type: string
description: "MariaDB database"
name:
type: string
description: "Name of the database"
description:
type: string
description: "Description of the database"
image:
type: string
description: "Docker Image of the database"
is_public:
type: boolean
description: "Is the database public?"
public_port:
type: integer
description: "Public port of the database"
limits_memory:
type: string
description: "Memory limit of the database"
limits_memory_swap:
type: string
description: "Memory swap limit of the database"
limits_memory_swappiness:
type: integer
description: "Memory swappiness of the database"
limits_memory_reservation:
type: string
description: "Memory reservation of the database"
limits_cpus:
type: string
description: "CPU limit of the database"
limits_cpuset:
type: string
description: "CPU set of the database"
limits_cpu_shares:
type: integer
description: "CPU shares of the database"
instant_deploy:
type: boolean
description: "Instant deploy the database"
type: object
responses:
"200":
description: "Database updated"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/databases/mysql:
post:
tags:
- Databases
summary: "Create (MySQL)"
description: "Create a new MySQL database."
operationId: create-database-mysql
requestBody:
description: "Database data"
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
description: "UUID of the server"
project_uuid:
type: string
description: "UUID of the project"
environment_name:
type: string
description: "Name of the environment"
destination_uuid:
type: string
description: "UUID of the destination if the server has multiple destinations"
mysql_root_password:
type: string
description: "MySQL root password"
mysql_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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
/databases/mongodb:
post:
tags:
- Databases
summary: "Create (MongoDB)"
description: "Create a new MongoDB database."
operationId: create-database-mongodb
requestBody:
description: "Database data"
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
properties:
server_uuid:
type: string
description: "UUID of the server"
project_uuid:
type: string
description: "UUID of the project"
environment_name:
type: string
description: "Name of the environment"
destination_uuid:
type: string
description: "UUID of the destination if the server has multiple destinations"
mongo_conf:
type: string
description: "MongoDB conf"
mongo_initdb_root_username:
type: string
description: "MongoDB initdb root username"
name:
type: string
description: "Name of the database"
description:
type: string
description: "Description of the database"
image:
type: string
description: "Docker Image of the database"
is_public:
type: boolean
description: "Is the database public?"
public_port:
type: integer
description: "Public port of the database"
limits_memory:
type: string
description: "Memory limit of the database"
limits_memory_swap:
type: string
description: "Memory swap limit of the database"
limits_memory_swappiness:
type: integer
description: "Memory swappiness of the database"
limits_memory_reservation:
type: string
description: "Memory reservation of the database"
limits_cpus:
type: string
description: "CPU limit of the database"
limits_cpuset:
type: string
description: "CPU set of the database"
limits_cpu_shares:
type: integer
description: "CPU shares of the database"
instant_deploy:
type: boolean
description: "Instant deploy the database"
type: object
responses:
"200":
description: "Database updated"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
security:
- bearerAuth: []
/deploy:
get:
tags:
- Deployments
summary: Deploy
description: "Deploy by tag or uuid. `Post` request also accepted."
operationId: deploy-by-tag-or-uuid
parameters:
- name: tag
in: query
description: "Tag name(s). Comma separated list is also accepted."
schema:
type: string
- name: uuid
in: query
description: "Resource UUID(s). Comma separated list is also accepted."
schema:
type: string
- name: force
in: query
description: "Force rebuild (without cache)"
schema:
type: boolean
responses:
"200":
description: "Get deployment(s) UUID's"
content:
application/json:
schema:
properties:
deployments:
{
type: array,
items:
{
properties:
{
message: { type: string },
resource_uuid: { type: string },
deployment_uuid: { type: string },
},
type: object,
},
}
type: object
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
/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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
security:
- bearerAuth: []
patch:
tags:
- Projects
summary: Update
description: "Update Project."
operationId: update-project-by-uuid
parameters:
- name: uuid
in: path
description: "UUID of the application."
required: true
schema:
type: string
format: 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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
security:
- bearerAuth: []
"/projects/{uuid}/{environment_name}":
get:
tags:
- Projects
summary: Environment
description: "Get environment by name."
operationId: get-environment-by-name
parameters:
- name: uuid
in: path
description: "Project UUID"
required: true
schema:
type: string
- name: environment_name
in: path
description: "Environment name"
required: true
schema:
type: string
responses:
"200":
description: "Environment details"
content:
application/json:
schema:
$ref: "#/components/schemas/Environment"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
security:
- bearerAuth: []
patch:
tags:
- Servers
summary: Update
description: "Update Server."
operationId: update-server-by-uuid
parameters:
- name: uuid
in: path
description: "Server's 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:
type: array
items:
$ref: "#/components/schemas/Server"
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
post:
tags:
- Services
summary: Create
description: "Create a one-click service"
operationId: create-service
requestBody:
required: true
content:
application/json:
schema:
required:
- server_uuid
- project_uuid
- environment_name
- type
properties:
type:
description: "The one-click service type"
type: string
enum:
[
activepieces,
appsmith,
appwrite,
authentik,
babybuddy,
budge,
changedetection,
chatwoot,
classicpress-with-mariadb,
classicpress-with-mysql,
classicpress-without-database,
cloudflared,
code-server,
dashboard,
directus,
directus-with-postgresql,
docker-registry,
docuseal,
docuseal-with-postgres,
dokuwiki,
duplicati,
emby,
embystat,
fider,
filebrowser,
firefly,
formbricks,
ghost,
gitea,
gitea-with-mariadb,
gitea-with-mysql,
gitea-with-postgresql,
glance,
glances,
glitchtip,
grafana,
grafana-with-postgresql,
grocy,
heimdall,
homepage,
jellyfin,
jenkins,
kuzzle,
listmonk,
logto,
mediawiki,
meilisearch,
metabase,
metube,
minio,
moodle,
mosquitto,
n8n,
n8n-with-postgresql,
next-image-transformation,
nextcloud,
nocodb,
odoo,
openblocks,
pairdrop,
penpot,
phpmyadmin,
pocketbase,
posthog,
reactive-resume,
rocketchat,
shlink,
slash,
snapdrop,
statusnook,
stirling-pdf,
supabase,
syncthing,
tolgee,
trigger,
trigger-with-external-database,
twenty,
umami,
unleash-with-postgresql,
unleash-without-database,
uptime-kuma,
vaultwarden,
vikunja,
weblate,
whoogle,
wordpress-with-mariadb,
wordpress-with-mysql,
wordpress-without-database,
]
name:
type: string
maxLength: 255
description: "Name of the service."
description:
type: string
nullable: true
description: "Description of the service."
project_uuid:
type: string
description: "Project UUID."
environment_name:
type: string
description: "Environment name."
server_uuid:
type: string
description: "Server UUID."
destination_uuid:
type: string
description: "Destination UUID. Required if server has multiple destinations."
instant_deploy:
type: boolean
default: false
description: "Start the service immediately after creation."
type: object
responses:
"201":
description: "Create a service."
content:
application/json:
schema:
properties:
uuid: { type: string, description: "Service UUID." }
domains:
{
type: array,
items: { type: string },
description: "Service domains.",
}
type: object
"401":
$ref: "#/components/responses/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
"404":
$ref: "#/components/responses/NotFound"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
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/Unauthenticated"
"400":
$ref: "#/components/responses/BadRequest"
security:
- bearerAuth: []
components:
schemas:
Application:
description: "Application model"
properties:
id:
type: integer
description: "The application identifier in the database."
description:
type: string
nullable: true
description: "The application description."
repository_project_id:
type: integer
nullable: true
description: "The repository project identifier."
uuid:
type: string
description: "The application UUID."
name:
type: string
description: "The application name."
fqdn:
type: string
nullable: true
description: "The application domains."
config_hash:
type: string
description: "Configuration hash."
git_repository:
type: string
description: "Git repository URL."
git_branch:
type: string
description: "Git branch."
git_commit_sha:
type: string
description: "Git commit SHA."
git_full_url:
type: string
nullable: true
description: "Git full URL."
docker_registry_image_name:
type: string
nullable: true
description: "Docker registry image name."
docker_registry_image_tag:
type: string
nullable: true
description: "Docker registry image tag."
build_pack:
type: string
description: "Build pack."
enum:
- nixpacks
- static
- dockerfile
- dockercompose
static_image:
type: string
description: "Static image used when static site is deployed."
install_command:
type: string
description: "Install command."
build_command:
type: string
description: "Build command."
start_command:
type: string
description: "Start command."
ports_exposes:
type: string
description: "Ports exposes."
ports_mappings:
type: string
nullable: true
description: "Ports mappings."
base_directory:
type: string
description: "Base directory for all commands."
publish_directory:
type: string
description: "Publish directory."
health_check_enabled:
type: boolean
description: "Health check enabled."
health_check_path:
type: string
description: "Health check path."
health_check_port:
type: string
nullable: true
description: "Health check port."
health_check_host:
type: string
nullable: true
description: "Health check host."
health_check_method:
type: string
description: "Health check method."
health_check_return_code:
type: integer
description: "Health check return code."
health_check_scheme:
type: string
description: "Health check scheme."
health_check_response_text:
type: string
nullable: true
description: "Health check response text."
health_check_interval:
type: integer
description: "Health check interval in seconds."
health_check_timeout:
type: integer
description: "Health check timeout in seconds."
health_check_retries:
type: integer
description: "Health check retries count."
health_check_start_period:
type: integer
description: "Health check start period in seconds."
limits_memory:
type: string
description: "Memory limit."
limits_memory_swap:
type: string
description: "Memory swap limit."
limits_memory_swappiness:
type: integer
description: "Memory swappiness."
limits_memory_reservation:
type: string
description: "Memory reservation."
limits_cpus:
type: string
description: "CPU limit."
limits_cpuset:
type: string
nullable: true
description: "CPU set."
limits_cpu_shares:
type: integer
description: "CPU shares."
status:
type: string
description: "Application status."
preview_url_template:
type: string
description: "Preview URL template."
destination_type:
type: string
description: "Destination type."
destination_id:
type: integer
description: "Destination identifier."
source_id:
type: integer
nullable: true
description: "Source identifier."
private_key_id:
type: integer
nullable: true
description: "Private key identifier."
environment_id:
type: integer
description: "Environment identifier."
dockerfile:
type: string
nullable: true
description: "Dockerfile content. Used for dockerfile build pack."
dockerfile_location:
type: string
description: "Dockerfile location."
custom_labels:
type: string
nullable: true
description: "Custom labels."
dockerfile_target_build:
type: string
nullable: true
description: "Dockerfile target build."
manual_webhook_secret_github:
type: string
nullable: true
description: "Manual webhook secret for GitHub."
manual_webhook_secret_gitlab:
type: string
nullable: true
description: "Manual webhook secret for GitLab."
manual_webhook_secret_bitbucket:
type: string
nullable: true
description: "Manual webhook secret for Bitbucket."
manual_webhook_secret_gitea:
type: string
nullable: true
description: "Manual webhook secret for Gitea."
docker_compose_location:
type: string
description: "Docker compose location."
docker_compose:
type: string
nullable: true
description: "Docker compose content. Used for docker compose build pack."
docker_compose_raw:
type: string
nullable: true
description: "Docker compose raw content."
docker_compose_domains:
type: string
nullable: true
description: "Docker compose domains."
docker_compose_custom_start_command:
type: string
nullable: true
description: "Docker compose custom start command."
docker_compose_custom_build_command:
type: string
nullable: true
description: "Docker compose custom build command."
swarm_replicas:
type: integer
nullable: true
description: "Swarm replicas. Only used for swarm deployments."
swarm_placement_constraints:
type: string
nullable: true
description: "Swarm placement constraints. Only used for swarm deployments."
custom_docker_run_options:
type: string
nullable: true
description: "Custom docker run options."
post_deployment_command:
type: string
nullable: true
description: "Post deployment command."
post_deployment_command_container:
type: string
nullable: true
description: "Post deployment command container."
pre_deployment_command:
type: string
nullable: true
description: "Pre deployment command."
pre_deployment_command_container:
type: string
nullable: true
description: "Pre deployment command container."
watch_paths:
type: string
nullable: true
description: "Watch paths."
custom_healthcheck_found:
type: boolean
description: "Custom healthcheck found."
redirect:
type: string
nullable: true
description: "How to set redirect with Traefik / Caddy. www<->non-www."
enum:
- www
- non-www
- both
created_at:
type: string
format: date-time
description: "The date and time when the application was created."
updated_at:
type: string
format: date-time
description: "The date and time when the application was last updated."
deleted_at:
type: string
format: date-time
nullable: true
description: "The date and time when the application was deleted."
compose_parsing_version:
type: string
description: "How Coolify parse the compose file."
custom_nginx_configuration:
type: string
nullable: true
description: "Custom Nginx configuration base64 encoded."
type: object
ApplicationDeploymentQueue:
description: "Project model"
properties:
id:
type: integer
application_id:
type: string
deployment_uuid:
type: string
pull_request_id:
type: integer
force_rebuild:
type: boolean
commit:
type: string
status:
type: string
is_webhook:
type: boolean
is_api:
type: boolean
created_at:
type: string
updated_at:
type: string
logs:
type: string
current_process_id:
type: string
restart_only:
type: boolean
git_type:
type: string
server_id:
type: integer
application_name:
type: string
server_name:
type: string
deployment_url:
type: string
destination_id:
type: string
only_this_server:
type: boolean
rollback:
type: boolean
commit_message:
type: string
type: object
Environment:
description: "Environment model"
properties:
id:
type: integer
name:
type: string
project_id:
type: integer
created_at:
type: string
updated_at:
type: string
description:
type: string
type: object
EnvironmentVariable:
description: "Environment Variable model"
properties:
id:
type: integer
uuid:
type: string
application_id:
type: integer
service_id:
type: integer
database_id:
type: integer
is_build_time:
type: boolean
is_literal:
type: boolean
is_multiline:
type: boolean
is_preview:
type: boolean
is_shared:
type: boolean
is_shown_once:
type: boolean
key:
type: string
value:
type: string
real_value:
type: string
version:
type: string
created_at:
type: string
updated_at:
type: string
type: object
PrivateKey:
description: "Private Key model"
properties:
id:
type: integer
uuid:
type: string
name:
type: string
description:
type: string
private_key:
type: string
format: private-key
is_git_related:
type: boolean
team_id:
type: integer
created_at:
type: string
updated_at:
type: string
type: object
Project:
description: "Project model"
properties:
id:
type: integer
uuid:
type: string
name:
type: string
description:
type: string
environments:
description: "The environments of the project."
type: array
items:
$ref: "#/components/schemas/Environment"
type: object
Server:
description: "Server model"
properties:
id:
type: integer
description: "The server ID."
uuid:
type: string
description: "The server UUID."
name:
type: string
description: "The server name."
description:
type: string
description: "The server description."
ip:
type: string
description: "The IP address."
user:
type: string
description: "The user."
port:
type: integer
description: "The port number."
proxy:
type: object
description: "The proxy configuration."
proxy_type:
type: string
enum:
- traefik
- caddy
- none
description: "The proxy type."
high_disk_usage_notification_sent:
type: boolean
description: "The flag to indicate if the high disk usage notification has been sent."
unreachable_notification_sent:
type: boolean
description: "The flag to indicate if the unreachable notification has been sent."
unreachable_count:
type: integer
description: "The unreachable count for your server."
validation_logs:
type: string
description: "The validation logs."
log_drain_notification_sent:
type: boolean
description: "The flag to indicate if the log drain notification has been sent."
swarm_cluster:
type: string
description: "The swarm cluster configuration."
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
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
type: object
Service:
description: "Service model"
properties:
id:
type: integer
description: "The unique identifier of the service. Only used for database identification."
uuid:
type: string
description: "The unique identifier of the service."
name:
type: string
description: "The name of the service."
environment_id:
type: integer
description: "The unique identifier of the environment where the service is attached to."
server_id:
type: integer
description: "The unique identifier of the server where the service is running."
description:
type: string
description: "The description of the service."
docker_compose_raw:
type: string
description: "The raw docker-compose.yml file of the service."
docker_compose:
type: string
description: "The docker-compose.yml file that is parsed and modified by Coolify."
destination_type:
type: string
description: "Destination type."
destination_id:
type: integer
description: "The unique identifier of the destination where the service is running."
connect_to_docker_network:
type: boolean
description: "The flag to connect the service to the predefined Docker network."
is_container_label_escape_enabled:
type: boolean
description: "The flag to enable the container label escape."
is_container_label_readonly_enabled:
type: boolean
description: "The flag to enable the container label readonly."
config_hash:
type: string
description: "The hash of the service configuration."
service_type:
type: string
description: "The type of the service."
created_at:
type: string
description: "The date and time when the service was created."
updated_at:
type: string
description: "The date and time when the service was last updated."
deleted_at:
type: string
description: "The date and time when the service was deleted."
type: object
Team:
description: "Team model"
properties:
id:
type: integer
description: "The unique identifier of the team."
name:
type: string
description: "The name of the team."
description:
type: string
description: "The description of the team."
personal_team:
type: boolean
description: "Whether the team is personal or not."
created_at:
type: string
description: "The date and time the team was created."
updated_at:
type: string
description: "The date and time the team was last updated."
smtp_enabled:
type: boolean
description: "Whether SMTP is enabled or not."
smtp_from_address:
type: string
description: "The email address to send emails from."
smtp_from_name:
type: string
description: "The name to send emails from."
smtp_recipients:
type: string
description: "The email addresses to send emails to."
smtp_host:
type: string
description: "The SMTP host."
smtp_port:
type: string
description: "The SMTP port."
smtp_encryption:
type: string
description: "The SMTP encryption."
smtp_username:
type: string
description: "The SMTP username."
smtp_password:
type: string
description: "The SMTP password."
smtp_timeout:
type: string
description: "The SMTP timeout."
smtp_notifications_test:
type: boolean
description: "Whether to send test notifications via SMTP."
smtp_notifications_deployments:
type: boolean
description: "Whether to send deployment notifications via SMTP."
smtp_notifications_status_changes:
type: boolean
description: "Whether to send status change notifications via SMTP."
smtp_notifications_scheduled_tasks:
type: boolean
description: "Whether to send scheduled task notifications via SMTP."
smtp_notifications_database_backups:
type: boolean
description: "Whether to send database backup notifications via SMTP."
smtp_notifications_server_disk_usage:
type: boolean
description: "Whether to send server disk usage notifications via SMTP."
discord_enabled:
type: boolean
description: "Whether Discord is enabled or not."
discord_webhook_url:
type: string
description: "The Discord webhook URL."
discord_notifications_test:
type: boolean
description: "Whether to send test notifications via Discord."
discord_notifications_deployments:
type: boolean
description: "Whether to send deployment notifications via Discord."
discord_notifications_status_changes:
type: boolean
description: "Whether to send status change notifications via Discord."
discord_notifications_database_backups:
type: boolean
description: "Whether to send database backup notifications via Discord."
discord_notifications_scheduled_tasks:
type: boolean
description: "Whether to send scheduled task notifications via Discord."
discord_notifications_server_disk_usage:
type: boolean
description: "Whether to send server disk usage notifications via Discord."
show_boarding:
type: boolean
description: "Whether to show the boarding screen or not."
resend_enabled:
type: boolean
description: "Whether to enable resending or not."
resend_api_key:
type: string
description: "The resending API key."
use_instance_email_settings:
type: boolean
description: "Whether to use instance email settings or not."
telegram_enabled:
type: boolean
description: "Whether Telegram is enabled or not."
telegram_token:
type: string
description: "The Telegram token."
telegram_chat_id:
type: string
description: "The Telegram chat ID."
telegram_notifications_test:
type: boolean
description: "Whether to send test notifications via Telegram."
telegram_notifications_deployments:
type: boolean
description: "Whether to send deployment notifications via Telegram."
telegram_notifications_status_changes:
type: boolean
description: "Whether to send status change notifications via Telegram."
telegram_notifications_database_backups:
type: boolean
description: "Whether to send database backup notifications via Telegram."
telegram_notifications_test_message_thread_id:
type: string
description: "The Telegram test message thread ID."
telegram_notifications_deployments_message_thread_id:
type: string
description: "The Telegram deployment message thread ID."
telegram_notifications_status_changes_message_thread_id:
type: string
description: "The Telegram status change message thread ID."
telegram_notifications_database_backups_message_thread_id:
type: string
description: "The Telegram database backup message thread ID."
custom_server_limit:
type: string
description: "The custom server limit."
telegram_notifications_scheduled_tasks:
type: boolean
description: "Whether to send scheduled task notifications via Telegram."
telegram_notifications_scheduled_tasks_thread_id:
type: string
description: "The Telegram scheduled task message thread ID."
members:
description: "The members of the team."
type: array
items:
$ref: "#/components/schemas/User"
type: object
User:
description: "User model"
properties:
id:
type: integer
description: "The user identifier in the database."
name:
type: string
description: "The user name."
email:
type: string
description: "The user email."
email_verified_at:
type: string
description: "The date when the user email was verified."
created_at:
type: string
description: "The date when the user was created."
updated_at:
type: string
description: "The date when the user was updated."
two_factor_confirmed_at:
type: string
description: "The date when the user two factor was confirmed."
force_password_reset:
type: boolean
description: "The flag to force the user to reset the password."
marketing_emails:
type: boolean
description: "The flag to receive marketing emails."
type: object
responses:
BadRequest:
description: "Invalid token."
content:
application/json:
schema:
properties:
message:
type: string
example: "Invalid token."
type: object
Unauthenticated:
description: Unauthenticated.
content:
application/json:
schema:
properties:
message:
type: string
example: Unauthenticated.
type: object
NotFound:
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