services-api.yaml•20.2 kB
openapi: 3.1.0
info:
title: Coolify
version: '0.1'
paths:
/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'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
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
- environment_uuid
- type
properties:
type:
description: The one-click service type
type: string
enum:
- activepieces
- appsmith
- appwrite
- authentik
- babybuddy
- budge
- changedetection
- chatwoot
- classicpress-with-mariadb
- classicpress-with-mysql
- classicpress-without-database
- cloudflared
- code-server
- dashboard
- directus
- directus-with-postgresql
- docker-registry
- docuseal
- docuseal-with-postgres
- dokuwiki
- duplicati
- emby
- embystat
- fider
- filebrowser
- firefly
- formbricks
- ghost
- gitea
- gitea-with-mariadb
- gitea-with-mysql
- gitea-with-postgresql
- glance
- glances
- glitchtip
- grafana
- grafana-with-postgresql
- grocy
- heimdall
- homepage
- jellyfin
- kuzzle
- listmonk
- logto
- mediawiki
- meilisearch
- metabase
- metube
- minio
- moodle
- n8n
- n8n-with-postgresql
- next-image-transformation
- nextcloud
- nocodb
- odoo
- openblocks
- pairdrop
- penpot
- phpmyadmin
- pocketbase
- posthog
- reactive-resume
- rocketchat
- shlink
- slash
- snapdrop
- statusnook
- stirling-pdf
- supabase
- syncthing
- tolgee
- trigger
- trigger-with-external-database
- twenty
- umami
- unleash-with-postgresql
- unleash-without-database
- uptime-kuma
- vaultwarden
- vikunja
- weblate
- whoogle
- wordpress-with-mariadb
- wordpress-with-mysql
- wordpress-without-database
name:
type: string
maxLength: 255
description: Name of the service.
description:
type: string
nullable: true
description: Description of the service.
project_uuid:
type: string
description: Project UUID.
environment_name:
type: string
description: Environment name. You need to provide at least one of environment_name or environment_uuid.
environment_uuid:
type: string
description: Environment UUID. You need to provide at least one of environment_name or environment_uuid.
server_uuid:
type: string
description: Server UUID.
destination_uuid:
type: string
description: Destination UUID. Required if server has multiple destinations.
instant_deploy:
type: boolean
default: false
description: Start the service immediately after creation.
type: object
responses:
'201':
description: 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
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
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'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
delete:
tags:
- Services
summary: Delete
description: Delete service by UUID.
operationId: delete-service-by-uuid
parameters:
- name: uuid
in: path
description: Service UUID
required: true
schema:
type: string
- name: delete_configurations
in: query
description: Delete configurations.
required: false
schema:
type: boolean
default: true
- name: delete_volumes
in: query
description: Delete volumes.
required: false
schema:
type: boolean
default: true
- name: docker_cleanup
in: query
description: Run docker cleanup.
required: false
schema:
type: boolean
default: true
- name: delete_connected_networks
in: query
description: Delete connected networks.
required: false
schema:
type: boolean
default: true
responses:
'200':
description: Delete a service by UUID
content:
application/json:
schema:
properties:
message:
type: string
example: Service deletion request queued.
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
/services/{uuid}/envs:
get:
tags:
- Services
summary: List Envs
description: List all envs by service UUID.
operationId: list-envs-by-service-uuid
parameters:
- name: uuid
in: path
description: UUID of the service.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: All environment variables by service UUID.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EnvironmentVariable'
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
post:
tags:
- Services
summary: Create Env
description: Create env by service UUID.
operationId: create-env-by-service-uuid
parameters:
- name: uuid
in: path
description: UUID of the service.
required: true
schema:
type: string
format: uuid
requestBody:
description: Env created.
required: true
content:
application/json:
schema:
properties:
key:
type: string
description: The key of the environment variable.
value:
type: string
description: The value of the environment variable.
is_preview:
type: boolean
description: The flag to indicate if the environment variable is used in preview deployments.
is_build_time:
type: boolean
description: The flag to indicate if the environment variable is used in build time.
is_literal:
type: boolean
description: The flag to indicate if the environment variable is a literal, nothing espaced.
is_multiline:
type: boolean
description: The flag to indicate if the environment variable is multiline.
is_shown_once:
type: boolean
description: The flag to indicate if the environment variable's value is shown on the UI.
type: object
responses:
'201':
description: Environment variable created.
content:
application/json:
schema:
properties:
uuid:
type: string
example: nc0k04gk8g0cgsk440g0koko
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
patch:
tags:
- Services
summary: Update Env
description: Update env by service UUID.
operationId: update-env-by-service-uuid
parameters:
- name: uuid
in: path
description: UUID of the service.
required: true
schema:
type: string
format: uuid
requestBody:
description: Env updated.
required: true
content:
application/json:
schema:
required:
- key
- value
properties:
key:
type: string
description: The key of the environment variable.
value:
type: string
description: The value of the environment variable.
is_preview:
type: boolean
description: The flag to indicate if the environment variable is used in preview deployments.
is_build_time:
type: boolean
description: The flag to indicate if the environment variable is used in build time.
is_literal:
type: boolean
description: The flag to indicate if the environment variable is a literal, nothing espaced.
is_multiline:
type: boolean
description: The flag to indicate if the environment variable is multiline.
is_shown_once:
type: boolean
description: The flag to indicate if the environment variable's value is shown on the UI.
type: object
responses:
'201':
description: Environment variable updated.
content:
application/json:
schema:
properties:
message:
type: string
example: Environment variable updated.
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
/services/{uuid}/envs/bulk:
patch:
tags:
- Services
summary: Update Envs (Bulk)
description: Update multiple envs by service UUID.
operationId: update-envs-by-service-uuid
parameters:
- name: uuid
in: path
description: UUID of the service.
required: true
schema:
type: string
format: uuid
requestBody:
description: Bulk envs updated.
required: true
content:
application/json:
schema:
required:
- data
properties:
data:
type: array
items:
properties:
key:
type: string
description: The key of the environment variable.
value:
type: string
description: The value of the environment variable.
is_preview:
type: boolean
description: The flag to indicate if the environment variable is used in preview deployments.
is_build_time:
type: boolean
description: The flag to indicate if the environment variable is used in build time.
is_literal:
type: boolean
description: The flag to indicate if the environment variable is a literal, nothing espaced.
is_multiline:
type: boolean
description: The flag to indicate if the environment variable is multiline.
is_shown_once:
type: boolean
description: The flag to indicate if the environment variable's value is shown on the UI.
type: object
type: object
responses:
'201':
description: Environment variables updated.
content:
application/json:
schema:
properties:
message:
type: string
example: Environment variables updated.
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
/services/{uuid}/envs/{env_uuid}:
delete:
tags:
- Services
summary: Delete Env
description: Delete env by UUID.
operationId: delete-env-by-service-uuid
parameters:
- name: uuid
in: path
description: UUID of the service.
required: true
schema:
type: string
format: uuid
- name: env_uuid
in: path
description: UUID of the environment variable.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Environment variable deleted.
content:
application/json:
schema:
properties:
message:
type: string
example: Environment variable deleted.
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
/services/{uuid}/start:
get:
tags:
- Services
summary: Start
description: Start service. `Post` request is also accepted.
operationId: start-service-by-uuid
parameters:
- name: uuid
in: path
description: UUID of the service.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Start service.
content:
application/json:
schema:
properties:
message:
type: string
example: Service starting request queued.
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
/services/{uuid}/stop:
get:
tags:
- Services
summary: Stop
description: Stop service. `Post` request is also accepted.
operationId: stop-service-by-uuid
parameters:
- name: uuid
in: path
description: UUID of the service.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Stop service.
content:
application/json:
schema:
properties:
message:
type: string
example: Service stopping request queued.
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []
/services/{uuid}/restart:
get:
tags:
- Services
summary: Restart
description: Restart service. `Post` request is also accepted.
operationId: restart-service-by-uuid
parameters:
- name: uuid
in: path
description: UUID of the service.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Restart service.
content:
application/json:
schema:
properties:
message:
type: string
example: Service restaring request queued.
type: object
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'404':
$ref: '#/components/responses/404'
security:
- bearerAuth: []