This is page 4 of 5. Use http://codebase.md/stumason/coolify-mcp?lines=true&page={x} to view the full context. # Directory Structure ``` ├── .cursor │ └── rules │ ├── 000-cursor-rules.mdc │ ├── 801-feature-workflow.mdc │ ├── 802-coolify-mcp-workflow.mdc │ └── 803-npm-publish-workflow.mdc ├── .eslintrc.json ├── .github │ └── workflows │ └── ci.yml ├── .gitignore ├── .lintstagedrc.json ├── .markdownlint-cli2.jsonc ├── .prettierrc ├── .repomixignore ├── debug.js ├── docs │ ├── coolify-openapi.yaml │ ├── features │ │ ├── 001-core-server-setup.md │ │ ├── 002-server-info-resource.md │ │ ├── 003-project-management.md │ │ ├── 004-environment-management.md │ │ ├── 005-application-deployment.md │ │ ├── 006-database-management.md │ │ ├── 007-service-management.md │ │ ├── 008-mcp-resources-implementation.md │ │ ├── 009-mcp-prompts-implementation.md │ │ ├── 010-private-key-management.md │ │ ├── 011-team-management.md │ │ ├── 012-backup-management.md │ │ ├── 013-npx-config-fix.md │ │ └── future-adrs.md │ ├── mcp-example-clients.md │ ├── mcp-js-readme.md │ └── openapi-chunks │ ├── applications-api.yaml │ ├── databases-api.yaml │ ├── deployments-api.yaml │ ├── private-keys-api.yaml │ ├── projects-api.yaml │ ├── resources-api.yaml │ ├── schemas.yaml │ ├── servers-api.yaml │ ├── services-api.yaml │ ├── teams-api.yaml │ └── untagged-api.yaml ├── jest.config.js ├── package-lock.json ├── package.json ├── README.md ├── repomix-output.xml ├── src │ ├── __tests__ │ │ ├── coolify-client.test.ts │ │ └── resources │ │ ├── application-resources.test.ts │ │ ├── database-resources.test.ts │ │ ├── deployment-resources.test.ts │ │ └── service-resources.test.ts │ ├── index.ts │ ├── lib │ │ ├── coolify-client.ts │ │ ├── mcp-server.ts │ │ └── resource.ts │ ├── resources │ │ ├── application-resources.ts │ │ ├── database-resources.ts │ │ ├── deployment-resources.ts │ │ ├── index.ts │ │ └── service-resources.ts │ └── types │ └── coolify.ts └── tsconfig.json ``` # Files -------------------------------------------------------------------------------- /docs/coolify-openapi.yaml: -------------------------------------------------------------------------------- ```yaml 1 | openapi: 3.1.0 2 | info: 3 | title: Coolify 4 | version: '0.1' 5 | servers: 6 | - url: 'https://app.coolify.io/api/v1' 7 | description: 'Coolify Cloud API. Change the host to your own instance if you are self-hosting.' 8 | paths: 9 | /applications: 10 | get: 11 | tags: 12 | - Applications 13 | summary: List 14 | description: 'List all applications.' 15 | operationId: list-applications 16 | responses: 17 | '200': 18 | description: 'Get all applications.' 19 | content: 20 | application/json: 21 | schema: 22 | type: array 23 | items: 24 | $ref: '#/components/schemas/Application' 25 | '401': 26 | $ref: '#/components/responses/401' 27 | '400': 28 | $ref: '#/components/responses/400' 29 | security: 30 | - bearerAuth: [] 31 | /applications/public: 32 | post: 33 | tags: 34 | - Applications 35 | summary: 'Create (Public)' 36 | description: 'Create new application based on a public git repository.' 37 | operationId: create-public-application 38 | requestBody: 39 | description: 'Application object that needs to be created.' 40 | required: true 41 | content: 42 | application/json: 43 | schema: 44 | required: 45 | - project_uuid 46 | - server_uuid 47 | - environment_name 48 | - environment_uuid 49 | - git_repository 50 | - git_branch 51 | - build_pack 52 | - ports_exposes 53 | properties: 54 | project_uuid: 55 | type: string 56 | description: 'The project UUID.' 57 | server_uuid: 58 | type: string 59 | description: 'The server UUID.' 60 | environment_name: 61 | type: string 62 | description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.' 63 | environment_uuid: 64 | type: string 65 | description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.' 66 | git_repository: 67 | type: string 68 | description: 'The git repository URL.' 69 | git_branch: 70 | type: string 71 | description: 'The git branch.' 72 | build_pack: 73 | type: string 74 | enum: [nixpacks, static, dockerfile, dockercompose] 75 | description: 'The build pack type.' 76 | ports_exposes: 77 | type: string 78 | description: 'The ports to expose.' 79 | destination_uuid: 80 | type: string 81 | description: 'The destination UUID.' 82 | name: 83 | type: string 84 | description: 'The application name.' 85 | description: 86 | type: string 87 | description: 'The application description.' 88 | domains: 89 | type: string 90 | description: 'The application domains.' 91 | git_commit_sha: 92 | type: string 93 | description: 'The git commit SHA.' 94 | docker_registry_image_name: 95 | type: string 96 | description: 'The docker registry image name.' 97 | docker_registry_image_tag: 98 | type: string 99 | description: 'The docker registry image tag.' 100 | is_static: 101 | type: boolean 102 | description: 'The flag to indicate if the application is static.' 103 | static_image: 104 | type: string 105 | enum: ['nginx:alpine'] 106 | description: 'The static image.' 107 | install_command: 108 | type: string 109 | description: 'The install command.' 110 | build_command: 111 | type: string 112 | description: 'The build command.' 113 | start_command: 114 | type: string 115 | description: 'The start command.' 116 | ports_mappings: 117 | type: string 118 | description: 'The ports mappings.' 119 | base_directory: 120 | type: string 121 | description: 'The base directory for all commands.' 122 | publish_directory: 123 | type: string 124 | description: 'The publish directory.' 125 | health_check_enabled: 126 | type: boolean 127 | description: 'Health check enabled.' 128 | health_check_path: 129 | type: string 130 | description: 'Health check path.' 131 | health_check_port: 132 | type: string 133 | nullable: true 134 | description: 'Health check port.' 135 | health_check_host: 136 | type: string 137 | nullable: true 138 | description: 'Health check host.' 139 | health_check_method: 140 | type: string 141 | description: 'Health check method.' 142 | health_check_return_code: 143 | type: integer 144 | description: 'Health check return code.' 145 | health_check_scheme: 146 | type: string 147 | description: 'Health check scheme.' 148 | health_check_response_text: 149 | type: string 150 | nullable: true 151 | description: 'Health check response text.' 152 | health_check_interval: 153 | type: integer 154 | description: 'Health check interval in seconds.' 155 | health_check_timeout: 156 | type: integer 157 | description: 'Health check timeout in seconds.' 158 | health_check_retries: 159 | type: integer 160 | description: 'Health check retries count.' 161 | health_check_start_period: 162 | type: integer 163 | description: 'Health check start period in seconds.' 164 | limits_memory: 165 | type: string 166 | description: 'Memory limit.' 167 | limits_memory_swap: 168 | type: string 169 | description: 'Memory swap limit.' 170 | limits_memory_swappiness: 171 | type: integer 172 | description: 'Memory swappiness.' 173 | limits_memory_reservation: 174 | type: string 175 | description: 'Memory reservation.' 176 | limits_cpus: 177 | type: string 178 | description: 'CPU limit.' 179 | limits_cpuset: 180 | type: string 181 | nullable: true 182 | description: 'CPU set.' 183 | limits_cpu_shares: 184 | type: integer 185 | description: 'CPU shares.' 186 | custom_labels: 187 | type: string 188 | description: 'Custom labels.' 189 | custom_docker_run_options: 190 | type: string 191 | description: 'Custom docker run options.' 192 | post_deployment_command: 193 | type: string 194 | description: 'Post deployment command.' 195 | post_deployment_command_container: 196 | type: string 197 | description: 'Post deployment command container.' 198 | pre_deployment_command: 199 | type: string 200 | description: 'Pre deployment command.' 201 | pre_deployment_command_container: 202 | type: string 203 | description: 'Pre deployment command container.' 204 | manual_webhook_secret_github: 205 | type: string 206 | description: 'Manual webhook secret for Github.' 207 | manual_webhook_secret_gitlab: 208 | type: string 209 | description: 'Manual webhook secret for Gitlab.' 210 | manual_webhook_secret_bitbucket: 211 | type: string 212 | description: 'Manual webhook secret for Bitbucket.' 213 | manual_webhook_secret_gitea: 214 | type: string 215 | description: 'Manual webhook secret for Gitea.' 216 | redirect: 217 | type: string 218 | nullable: true 219 | description: 'How to set redirect with Traefik / Caddy. www<->non-www.' 220 | enum: [www, non-www, both] 221 | instant_deploy: 222 | type: boolean 223 | description: 'The flag to indicate if the application should be deployed instantly.' 224 | dockerfile: 225 | type: string 226 | description: 'The Dockerfile content.' 227 | docker_compose_location: 228 | type: string 229 | description: 'The Docker Compose location.' 230 | docker_compose_raw: 231 | type: string 232 | description: 'The Docker Compose raw content.' 233 | docker_compose_custom_start_command: 234 | type: string 235 | description: 'The Docker Compose custom start command.' 236 | docker_compose_custom_build_command: 237 | type: string 238 | description: 'The Docker Compose custom build command.' 239 | docker_compose_domains: 240 | type: array 241 | description: 'The Docker Compose domains.' 242 | watch_paths: 243 | type: string 244 | description: 'The watch paths.' 245 | use_build_server: 246 | type: boolean 247 | nullable: true 248 | description: 'Use build server.' 249 | type: object 250 | responses: 251 | '201': 252 | description: 'Application created successfully.' 253 | content: 254 | application/json: 255 | schema: 256 | properties: 257 | uuid: { type: string } 258 | type: object 259 | '401': 260 | $ref: '#/components/responses/401' 261 | '400': 262 | $ref: '#/components/responses/400' 263 | security: 264 | - bearerAuth: [] 265 | /applications/private-github-app: 266 | post: 267 | tags: 268 | - Applications 269 | summary: 'Create (Private - GH App)' 270 | description: 'Create new application based on a private repository through a Github App.' 271 | operationId: create-private-github-app-application 272 | requestBody: 273 | description: 'Application object that needs to be created.' 274 | required: true 275 | content: 276 | application/json: 277 | schema: 278 | required: 279 | - project_uuid 280 | - server_uuid 281 | - environment_name 282 | - environment_uuid 283 | - github_app_uuid 284 | - git_repository 285 | - git_branch 286 | - build_pack 287 | - ports_exposes 288 | properties: 289 | project_uuid: 290 | type: string 291 | description: 'The project UUID.' 292 | server_uuid: 293 | type: string 294 | description: 'The server UUID.' 295 | environment_name: 296 | type: string 297 | description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.' 298 | environment_uuid: 299 | type: string 300 | description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.' 301 | github_app_uuid: 302 | type: string 303 | description: 'The Github App UUID.' 304 | git_repository: 305 | type: string 306 | description: 'The git repository URL.' 307 | git_branch: 308 | type: string 309 | description: 'The git branch.' 310 | ports_exposes: 311 | type: string 312 | description: 'The ports to expose.' 313 | destination_uuid: 314 | type: string 315 | description: 'The destination UUID.' 316 | build_pack: 317 | type: string 318 | enum: [nixpacks, static, dockerfile, dockercompose] 319 | description: 'The build pack type.' 320 | name: 321 | type: string 322 | description: 'The application name.' 323 | description: 324 | type: string 325 | description: 'The application description.' 326 | domains: 327 | type: string 328 | description: 'The application domains.' 329 | git_commit_sha: 330 | type: string 331 | description: 'The git commit SHA.' 332 | docker_registry_image_name: 333 | type: string 334 | description: 'The docker registry image name.' 335 | docker_registry_image_tag: 336 | type: string 337 | description: 'The docker registry image tag.' 338 | is_static: 339 | type: boolean 340 | description: 'The flag to indicate if the application is static.' 341 | static_image: 342 | type: string 343 | enum: ['nginx:alpine'] 344 | description: 'The static image.' 345 | install_command: 346 | type: string 347 | description: 'The install command.' 348 | build_command: 349 | type: string 350 | description: 'The build command.' 351 | start_command: 352 | type: string 353 | description: 'The start command.' 354 | ports_mappings: 355 | type: string 356 | description: 'The ports mappings.' 357 | base_directory: 358 | type: string 359 | description: 'The base directory for all commands.' 360 | publish_directory: 361 | type: string 362 | description: 'The publish directory.' 363 | health_check_enabled: 364 | type: boolean 365 | description: 'Health check enabled.' 366 | health_check_path: 367 | type: string 368 | description: 'Health check path.' 369 | health_check_port: 370 | type: string 371 | nullable: true 372 | description: 'Health check port.' 373 | health_check_host: 374 | type: string 375 | nullable: true 376 | description: 'Health check host.' 377 | health_check_method: 378 | type: string 379 | description: 'Health check method.' 380 | health_check_return_code: 381 | type: integer 382 | description: 'Health check return code.' 383 | health_check_scheme: 384 | type: string 385 | description: 'Health check scheme.' 386 | health_check_response_text: 387 | type: string 388 | nullable: true 389 | description: 'Health check response text.' 390 | health_check_interval: 391 | type: integer 392 | description: 'Health check interval in seconds.' 393 | health_check_timeout: 394 | type: integer 395 | description: 'Health check timeout in seconds.' 396 | health_check_retries: 397 | type: integer 398 | description: 'Health check retries count.' 399 | health_check_start_period: 400 | type: integer 401 | description: 'Health check start period in seconds.' 402 | limits_memory: 403 | type: string 404 | description: 'Memory limit.' 405 | limits_memory_swap: 406 | type: string 407 | description: 'Memory swap limit.' 408 | limits_memory_swappiness: 409 | type: integer 410 | description: 'Memory swappiness.' 411 | limits_memory_reservation: 412 | type: string 413 | description: 'Memory reservation.' 414 | limits_cpus: 415 | type: string 416 | description: 'CPU limit.' 417 | limits_cpuset: 418 | type: string 419 | nullable: true 420 | description: 'CPU set.' 421 | limits_cpu_shares: 422 | type: integer 423 | description: 'CPU shares.' 424 | custom_labels: 425 | type: string 426 | description: 'Custom labels.' 427 | custom_docker_run_options: 428 | type: string 429 | description: 'Custom docker run options.' 430 | post_deployment_command: 431 | type: string 432 | description: 'Post deployment command.' 433 | post_deployment_command_container: 434 | type: string 435 | description: 'Post deployment command container.' 436 | pre_deployment_command: 437 | type: string 438 | description: 'Pre deployment command.' 439 | pre_deployment_command_container: 440 | type: string 441 | description: 'Pre deployment command container.' 442 | manual_webhook_secret_github: 443 | type: string 444 | description: 'Manual webhook secret for Github.' 445 | manual_webhook_secret_gitlab: 446 | type: string 447 | description: 'Manual webhook secret for Gitlab.' 448 | manual_webhook_secret_bitbucket: 449 | type: string 450 | description: 'Manual webhook secret for Bitbucket.' 451 | manual_webhook_secret_gitea: 452 | type: string 453 | description: 'Manual webhook secret for Gitea.' 454 | redirect: 455 | type: string 456 | nullable: true 457 | description: 'How to set redirect with Traefik / Caddy. www<->non-www.' 458 | enum: [www, non-www, both] 459 | instant_deploy: 460 | type: boolean 461 | description: 'The flag to indicate if the application should be deployed instantly.' 462 | dockerfile: 463 | type: string 464 | description: 'The Dockerfile content.' 465 | docker_compose_location: 466 | type: string 467 | description: 'The Docker Compose location.' 468 | docker_compose_raw: 469 | type: string 470 | description: 'The Docker Compose raw content.' 471 | docker_compose_custom_start_command: 472 | type: string 473 | description: 'The Docker Compose custom start command.' 474 | docker_compose_custom_build_command: 475 | type: string 476 | description: 'The Docker Compose custom build command.' 477 | docker_compose_domains: 478 | type: array 479 | description: 'The Docker Compose domains.' 480 | watch_paths: 481 | type: string 482 | description: 'The watch paths.' 483 | use_build_server: 484 | type: boolean 485 | nullable: true 486 | description: 'Use build server.' 487 | type: object 488 | responses: 489 | '201': 490 | description: 'Application created successfully.' 491 | content: 492 | application/json: 493 | schema: 494 | properties: 495 | uuid: { type: string } 496 | type: object 497 | '401': 498 | $ref: '#/components/responses/401' 499 | '400': 500 | $ref: '#/components/responses/400' 501 | security: 502 | - bearerAuth: [] 503 | /applications/private-deploy-key: 504 | post: 505 | tags: 506 | - Applications 507 | summary: 'Create (Private - Deploy Key)' 508 | description: 'Create new application based on a private repository through a Deploy Key.' 509 | operationId: create-private-deploy-key-application 510 | requestBody: 511 | description: 'Application object that needs to be created.' 512 | required: true 513 | content: 514 | application/json: 515 | schema: 516 | required: 517 | - project_uuid 518 | - server_uuid 519 | - environment_name 520 | - environment_uuid 521 | - private_key_uuid 522 | - git_repository 523 | - git_branch 524 | - build_pack 525 | - ports_exposes 526 | properties: 527 | project_uuid: 528 | type: string 529 | description: 'The project UUID.' 530 | server_uuid: 531 | type: string 532 | description: 'The server UUID.' 533 | environment_name: 534 | type: string 535 | description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.' 536 | environment_uuid: 537 | type: string 538 | description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.' 539 | private_key_uuid: 540 | type: string 541 | description: 'The private key UUID.' 542 | git_repository: 543 | type: string 544 | description: 'The git repository URL.' 545 | git_branch: 546 | type: string 547 | description: 'The git branch.' 548 | ports_exposes: 549 | type: string 550 | description: 'The ports to expose.' 551 | destination_uuid: 552 | type: string 553 | description: 'The destination UUID.' 554 | build_pack: 555 | type: string 556 | enum: [nixpacks, static, dockerfile, dockercompose] 557 | description: 'The build pack type.' 558 | name: 559 | type: string 560 | description: 'The application name.' 561 | description: 562 | type: string 563 | description: 'The application description.' 564 | domains: 565 | type: string 566 | description: 'The application domains.' 567 | git_commit_sha: 568 | type: string 569 | description: 'The git commit SHA.' 570 | docker_registry_image_name: 571 | type: string 572 | description: 'The docker registry image name.' 573 | docker_registry_image_tag: 574 | type: string 575 | description: 'The docker registry image tag.' 576 | is_static: 577 | type: boolean 578 | description: 'The flag to indicate if the application is static.' 579 | static_image: 580 | type: string 581 | enum: ['nginx:alpine'] 582 | description: 'The static image.' 583 | install_command: 584 | type: string 585 | description: 'The install command.' 586 | build_command: 587 | type: string 588 | description: 'The build command.' 589 | start_command: 590 | type: string 591 | description: 'The start command.' 592 | ports_mappings: 593 | type: string 594 | description: 'The ports mappings.' 595 | base_directory: 596 | type: string 597 | description: 'The base directory for all commands.' 598 | publish_directory: 599 | type: string 600 | description: 'The publish directory.' 601 | health_check_enabled: 602 | type: boolean 603 | description: 'Health check enabled.' 604 | health_check_path: 605 | type: string 606 | description: 'Health check path.' 607 | health_check_port: 608 | type: string 609 | nullable: true 610 | description: 'Health check port.' 611 | health_check_host: 612 | type: string 613 | nullable: true 614 | description: 'Health check host.' 615 | health_check_method: 616 | type: string 617 | description: 'Health check method.' 618 | health_check_return_code: 619 | type: integer 620 | description: 'Health check return code.' 621 | health_check_scheme: 622 | type: string 623 | description: 'Health check scheme.' 624 | health_check_response_text: 625 | type: string 626 | nullable: true 627 | description: 'Health check response text.' 628 | health_check_interval: 629 | type: integer 630 | description: 'Health check interval in seconds.' 631 | health_check_timeout: 632 | type: integer 633 | description: 'Health check timeout in seconds.' 634 | health_check_retries: 635 | type: integer 636 | description: 'Health check retries count.' 637 | health_check_start_period: 638 | type: integer 639 | description: 'Health check start period in seconds.' 640 | limits_memory: 641 | type: string 642 | description: 'Memory limit.' 643 | limits_memory_swap: 644 | type: string 645 | description: 'Memory swap limit.' 646 | limits_memory_swappiness: 647 | type: integer 648 | description: 'Memory swappiness.' 649 | limits_memory_reservation: 650 | type: string 651 | description: 'Memory reservation.' 652 | limits_cpus: 653 | type: string 654 | description: 'CPU limit.' 655 | limits_cpuset: 656 | type: string 657 | nullable: true 658 | description: 'CPU set.' 659 | limits_cpu_shares: 660 | type: integer 661 | description: 'CPU shares.' 662 | custom_labels: 663 | type: string 664 | description: 'Custom labels.' 665 | custom_docker_run_options: 666 | type: string 667 | description: 'Custom docker run options.' 668 | post_deployment_command: 669 | type: string 670 | description: 'Post deployment command.' 671 | post_deployment_command_container: 672 | type: string 673 | description: 'Post deployment command container.' 674 | pre_deployment_command: 675 | type: string 676 | description: 'Pre deployment command.' 677 | pre_deployment_command_container: 678 | type: string 679 | description: 'Pre deployment command container.' 680 | manual_webhook_secret_github: 681 | type: string 682 | description: 'Manual webhook secret for Github.' 683 | manual_webhook_secret_gitlab: 684 | type: string 685 | description: 'Manual webhook secret for Gitlab.' 686 | manual_webhook_secret_bitbucket: 687 | type: string 688 | description: 'Manual webhook secret for Bitbucket.' 689 | manual_webhook_secret_gitea: 690 | type: string 691 | description: 'Manual webhook secret for Gitea.' 692 | redirect: 693 | type: string 694 | nullable: true 695 | description: 'How to set redirect with Traefik / Caddy. www<->non-www.' 696 | enum: [www, non-www, both] 697 | instant_deploy: 698 | type: boolean 699 | description: 'The flag to indicate if the application should be deployed instantly.' 700 | dockerfile: 701 | type: string 702 | description: 'The Dockerfile content.' 703 | docker_compose_location: 704 | type: string 705 | description: 'The Docker Compose location.' 706 | docker_compose_raw: 707 | type: string 708 | description: 'The Docker Compose raw content.' 709 | docker_compose_custom_start_command: 710 | type: string 711 | description: 'The Docker Compose custom start command.' 712 | docker_compose_custom_build_command: 713 | type: string 714 | description: 'The Docker Compose custom build command.' 715 | docker_compose_domains: 716 | type: array 717 | description: 'The Docker Compose domains.' 718 | watch_paths: 719 | type: string 720 | description: 'The watch paths.' 721 | use_build_server: 722 | type: boolean 723 | nullable: true 724 | description: 'Use build server.' 725 | type: object 726 | responses: 727 | '201': 728 | description: 'Application created successfully.' 729 | content: 730 | application/json: 731 | schema: 732 | properties: 733 | uuid: { type: string } 734 | type: object 735 | '401': 736 | $ref: '#/components/responses/401' 737 | '400': 738 | $ref: '#/components/responses/400' 739 | security: 740 | - bearerAuth: [] 741 | /applications/dockerfile: 742 | post: 743 | tags: 744 | - Applications 745 | summary: 'Create (Dockerfile)' 746 | description: 'Create new application based on a simple Dockerfile.' 747 | operationId: create-dockerfile-application 748 | requestBody: 749 | description: 'Application object that needs to be created.' 750 | required: true 751 | content: 752 | application/json: 753 | schema: 754 | required: 755 | - project_uuid 756 | - server_uuid 757 | - environment_name 758 | - environment_uuid 759 | - dockerfile 760 | properties: 761 | project_uuid: 762 | type: string 763 | description: 'The project UUID.' 764 | server_uuid: 765 | type: string 766 | description: 'The server UUID.' 767 | environment_name: 768 | type: string 769 | description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.' 770 | environment_uuid: 771 | type: string 772 | description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.' 773 | dockerfile: 774 | type: string 775 | description: 'The Dockerfile content.' 776 | build_pack: 777 | type: string 778 | enum: [nixpacks, static, dockerfile, dockercompose] 779 | description: 'The build pack type.' 780 | ports_exposes: 781 | type: string 782 | description: 'The ports to expose.' 783 | destination_uuid: 784 | type: string 785 | description: 'The destination UUID.' 786 | name: 787 | type: string 788 | description: 'The application name.' 789 | description: 790 | type: string 791 | description: 'The application description.' 792 | domains: 793 | type: string 794 | description: 'The application domains.' 795 | docker_registry_image_name: 796 | type: string 797 | description: 'The docker registry image name.' 798 | docker_registry_image_tag: 799 | type: string 800 | description: 'The docker registry image tag.' 801 | ports_mappings: 802 | type: string 803 | description: 'The ports mappings.' 804 | base_directory: 805 | type: string 806 | description: 'The base directory for all commands.' 807 | health_check_enabled: 808 | type: boolean 809 | description: 'Health check enabled.' 810 | health_check_path: 811 | type: string 812 | description: 'Health check path.' 813 | health_check_port: 814 | type: string 815 | nullable: true 816 | description: 'Health check port.' 817 | health_check_host: 818 | type: string 819 | nullable: true 820 | description: 'Health check host.' 821 | health_check_method: 822 | type: string 823 | description: 'Health check method.' 824 | health_check_return_code: 825 | type: integer 826 | description: 'Health check return code.' 827 | health_check_scheme: 828 | type: string 829 | description: 'Health check scheme.' 830 | health_check_response_text: 831 | type: string 832 | nullable: true 833 | description: 'Health check response text.' 834 | health_check_interval: 835 | type: integer 836 | description: 'Health check interval in seconds.' 837 | health_check_timeout: 838 | type: integer 839 | description: 'Health check timeout in seconds.' 840 | health_check_retries: 841 | type: integer 842 | description: 'Health check retries count.' 843 | health_check_start_period: 844 | type: integer 845 | description: 'Health check start period in seconds.' 846 | limits_memory: 847 | type: string 848 | description: 'Memory limit.' 849 | limits_memory_swap: 850 | type: string 851 | description: 'Memory swap limit.' 852 | limits_memory_swappiness: 853 | type: integer 854 | description: 'Memory swappiness.' 855 | limits_memory_reservation: 856 | type: string 857 | description: 'Memory reservation.' 858 | limits_cpus: 859 | type: string 860 | description: 'CPU limit.' 861 | limits_cpuset: 862 | type: string 863 | nullable: true 864 | description: 'CPU set.' 865 | limits_cpu_shares: 866 | type: integer 867 | description: 'CPU shares.' 868 | custom_labels: 869 | type: string 870 | description: 'Custom labels.' 871 | custom_docker_run_options: 872 | type: string 873 | description: 'Custom docker run options.' 874 | post_deployment_command: 875 | type: string 876 | description: 'Post deployment command.' 877 | post_deployment_command_container: 878 | type: string 879 | description: 'Post deployment command container.' 880 | pre_deployment_command: 881 | type: string 882 | description: 'Pre deployment command.' 883 | pre_deployment_command_container: 884 | type: string 885 | description: 'Pre deployment command container.' 886 | manual_webhook_secret_github: 887 | type: string 888 | description: 'Manual webhook secret for Github.' 889 | manual_webhook_secret_gitlab: 890 | type: string 891 | description: 'Manual webhook secret for Gitlab.' 892 | manual_webhook_secret_bitbucket: 893 | type: string 894 | description: 'Manual webhook secret for Bitbucket.' 895 | manual_webhook_secret_gitea: 896 | type: string 897 | description: 'Manual webhook secret for Gitea.' 898 | redirect: 899 | type: string 900 | nullable: true 901 | description: 'How to set redirect with Traefik / Caddy. www<->non-www.' 902 | enum: [www, non-www, both] 903 | instant_deploy: 904 | type: boolean 905 | description: 'The flag to indicate if the application should be deployed instantly.' 906 | use_build_server: 907 | type: boolean 908 | nullable: true 909 | description: 'Use build server.' 910 | type: object 911 | responses: 912 | '201': 913 | description: 'Application created successfully.' 914 | content: 915 | application/json: 916 | schema: 917 | properties: 918 | uuid: { type: string } 919 | type: object 920 | '401': 921 | $ref: '#/components/responses/401' 922 | '400': 923 | $ref: '#/components/responses/400' 924 | security: 925 | - bearerAuth: [] 926 | /applications/dockerimage: 927 | post: 928 | tags: 929 | - Applications 930 | summary: 'Create (Docker Image)' 931 | description: 'Create new application based on a prebuilt docker image' 932 | operationId: create-dockerimage-application 933 | requestBody: 934 | description: 'Application object that needs to be created.' 935 | required: true 936 | content: 937 | application/json: 938 | schema: 939 | required: 940 | - project_uuid 941 | - server_uuid 942 | - environment_name 943 | - environment_uuid 944 | - docker_registry_image_name 945 | - ports_exposes 946 | properties: 947 | project_uuid: 948 | type: string 949 | description: 'The project UUID.' 950 | server_uuid: 951 | type: string 952 | description: 'The server UUID.' 953 | environment_name: 954 | type: string 955 | description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.' 956 | environment_uuid: 957 | type: string 958 | description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.' 959 | docker_registry_image_name: 960 | type: string 961 | description: 'The docker registry image name.' 962 | docker_registry_image_tag: 963 | type: string 964 | description: 'The docker registry image tag.' 965 | ports_exposes: 966 | type: string 967 | description: 'The ports to expose.' 968 | destination_uuid: 969 | type: string 970 | description: 'The destination UUID.' 971 | name: 972 | type: string 973 | description: 'The application name.' 974 | description: 975 | type: string 976 | description: 'The application description.' 977 | domains: 978 | type: string 979 | description: 'The application domains.' 980 | ports_mappings: 981 | type: string 982 | description: 'The ports mappings.' 983 | health_check_enabled: 984 | type: boolean 985 | description: 'Health check enabled.' 986 | health_check_path: 987 | type: string 988 | description: 'Health check path.' 989 | health_check_port: 990 | type: string 991 | nullable: true 992 | description: 'Health check port.' 993 | health_check_host: 994 | type: string 995 | nullable: true 996 | description: 'Health check host.' 997 | health_check_method: 998 | type: string 999 | description: 'Health check method.' 1000 | health_check_return_code: 1001 | type: integer 1002 | description: 'Health check return code.' 1003 | health_check_scheme: 1004 | type: string 1005 | description: 'Health check scheme.' 1006 | health_check_response_text: 1007 | type: string 1008 | nullable: true 1009 | description: 'Health check response text.' 1010 | health_check_interval: 1011 | type: integer 1012 | description: 'Health check interval in seconds.' 1013 | health_check_timeout: 1014 | type: integer 1015 | description: 'Health check timeout in seconds.' 1016 | health_check_retries: 1017 | type: integer 1018 | description: 'Health check retries count.' 1019 | health_check_start_period: 1020 | type: integer 1021 | description: 'Health check start period in seconds.' 1022 | limits_memory: 1023 | type: string 1024 | description: 'Memory limit.' 1025 | limits_memory_swap: 1026 | type: string 1027 | description: 'Memory swap limit.' 1028 | limits_memory_swappiness: 1029 | type: integer 1030 | description: 'Memory swappiness.' 1031 | limits_memory_reservation: 1032 | type: string 1033 | description: 'Memory reservation.' 1034 | limits_cpus: 1035 | type: string 1036 | description: 'CPU limit.' 1037 | limits_cpuset: 1038 | type: string 1039 | nullable: true 1040 | description: 'CPU set.' 1041 | limits_cpu_shares: 1042 | type: integer 1043 | description: 'CPU shares.' 1044 | custom_labels: 1045 | type: string 1046 | description: 'Custom labels.' 1047 | custom_docker_run_options: 1048 | type: string 1049 | description: 'Custom docker run options.' 1050 | post_deployment_command: 1051 | type: string 1052 | description: 'Post deployment command.' 1053 | post_deployment_command_container: 1054 | type: string 1055 | description: 'Post deployment command container.' 1056 | pre_deployment_command: 1057 | type: string 1058 | description: 'Pre deployment command.' 1059 | pre_deployment_command_container: 1060 | type: string 1061 | description: 'Pre deployment command container.' 1062 | manual_webhook_secret_github: 1063 | type: string 1064 | description: 'Manual webhook secret for Github.' 1065 | manual_webhook_secret_gitlab: 1066 | type: string 1067 | description: 'Manual webhook secret for Gitlab.' 1068 | manual_webhook_secret_bitbucket: 1069 | type: string 1070 | description: 'Manual webhook secret for Bitbucket.' 1071 | manual_webhook_secret_gitea: 1072 | type: string 1073 | description: 'Manual webhook secret for Gitea.' 1074 | redirect: 1075 | type: string 1076 | nullable: true 1077 | description: 'How to set redirect with Traefik / Caddy. www<->non-www.' 1078 | enum: [www, non-www, both] 1079 | instant_deploy: 1080 | type: boolean 1081 | description: 'The flag to indicate if the application should be deployed instantly.' 1082 | use_build_server: 1083 | type: boolean 1084 | nullable: true 1085 | description: 'Use build server.' 1086 | type: object 1087 | responses: 1088 | '201': 1089 | description: 'Application created successfully.' 1090 | content: 1091 | application/json: 1092 | schema: 1093 | properties: 1094 | uuid: { type: string } 1095 | type: object 1096 | '401': 1097 | $ref: '#/components/responses/401' 1098 | '400': 1099 | $ref: '#/components/responses/400' 1100 | security: 1101 | - bearerAuth: [] 1102 | /applications/dockercompose: 1103 | post: 1104 | tags: 1105 | - Applications 1106 | summary: 'Create (Docker Compose)' 1107 | description: 'Create new application based on a docker-compose file.' 1108 | operationId: create-dockercompose-application 1109 | requestBody: 1110 | description: 'Application object that needs to be created.' 1111 | required: true 1112 | content: 1113 | application/json: 1114 | schema: 1115 | required: 1116 | - project_uuid 1117 | - server_uuid 1118 | - environment_name 1119 | - environment_uuid 1120 | - docker_compose_raw 1121 | properties: 1122 | project_uuid: 1123 | type: string 1124 | description: 'The project UUID.' 1125 | server_uuid: 1126 | type: string 1127 | description: 'The server UUID.' 1128 | environment_name: 1129 | type: string 1130 | description: 'The environment name. You need to provide at least one of environment_name or environment_uuid.' 1131 | environment_uuid: 1132 | type: string 1133 | description: 'The environment UUID. You need to provide at least one of environment_name or environment_uuid.' 1134 | docker_compose_raw: 1135 | type: string 1136 | description: 'The Docker Compose raw content.' 1137 | destination_uuid: 1138 | type: string 1139 | description: 'The destination UUID if the server has more than one destinations.' 1140 | name: 1141 | type: string 1142 | description: 'The application name.' 1143 | description: 1144 | type: string 1145 | description: 'The application description.' 1146 | instant_deploy: 1147 | type: boolean 1148 | description: 'The flag to indicate if the application should be deployed instantly.' 1149 | use_build_server: 1150 | type: boolean 1151 | nullable: true 1152 | description: 'Use build server.' 1153 | type: object 1154 | responses: 1155 | '201': 1156 | description: 'Application created successfully.' 1157 | content: 1158 | application/json: 1159 | schema: 1160 | properties: 1161 | uuid: { type: string } 1162 | type: object 1163 | '401': 1164 | $ref: '#/components/responses/401' 1165 | '400': 1166 | $ref: '#/components/responses/400' 1167 | security: 1168 | - bearerAuth: [] 1169 | '/applications/{uuid}': 1170 | get: 1171 | tags: 1172 | - Applications 1173 | summary: Get 1174 | description: 'Get application by UUID.' 1175 | operationId: get-application-by-uuid 1176 | parameters: 1177 | - name: uuid 1178 | in: path 1179 | description: 'UUID of the application.' 1180 | required: true 1181 | schema: 1182 | type: string 1183 | format: uuid 1184 | responses: 1185 | '200': 1186 | description: 'Get application by UUID.' 1187 | content: 1188 | application/json: 1189 | schema: 1190 | $ref: '#/components/schemas/Application' 1191 | '401': 1192 | $ref: '#/components/responses/401' 1193 | '400': 1194 | $ref: '#/components/responses/400' 1195 | '404': 1196 | $ref: '#/components/responses/404' 1197 | security: 1198 | - bearerAuth: [] 1199 | delete: 1200 | tags: 1201 | - Applications 1202 | summary: Delete 1203 | description: 'Delete application by UUID.' 1204 | operationId: delete-application-by-uuid 1205 | parameters: 1206 | - name: uuid 1207 | in: path 1208 | description: 'UUID of the application.' 1209 | required: true 1210 | schema: 1211 | type: string 1212 | format: uuid 1213 | - name: delete_configurations 1214 | in: query 1215 | description: 'Delete configurations.' 1216 | required: false 1217 | schema: 1218 | type: boolean 1219 | default: true 1220 | - name: delete_volumes 1221 | in: query 1222 | description: 'Delete volumes.' 1223 | required: false 1224 | schema: 1225 | type: boolean 1226 | default: true 1227 | - name: docker_cleanup 1228 | in: query 1229 | description: 'Run docker cleanup.' 1230 | required: false 1231 | schema: 1232 | type: boolean 1233 | default: true 1234 | - name: delete_connected_networks 1235 | in: query 1236 | description: 'Delete connected networks.' 1237 | required: false 1238 | schema: 1239 | type: boolean 1240 | default: true 1241 | responses: 1242 | '200': 1243 | description: 'Application deleted.' 1244 | content: 1245 | application/json: 1246 | schema: 1247 | properties: 1248 | message: { type: string, example: 'Application deleted.' } 1249 | type: object 1250 | '401': 1251 | $ref: '#/components/responses/401' 1252 | '400': 1253 | $ref: '#/components/responses/400' 1254 | '404': 1255 | $ref: '#/components/responses/404' 1256 | security: 1257 | - bearerAuth: [] 1258 | patch: 1259 | tags: 1260 | - Applications 1261 | summary: Update 1262 | description: 'Update application by UUID.' 1263 | operationId: update-application-by-uuid 1264 | requestBody: 1265 | description: 'Application updated.' 1266 | required: true 1267 | content: 1268 | application/json: 1269 | schema: 1270 | properties: 1271 | project_uuid: 1272 | type: string 1273 | description: 'The project UUID.' 1274 | server_uuid: 1275 | type: string 1276 | description: 'The server UUID.' 1277 | environment_name: 1278 | type: string 1279 | description: 'The environment name.' 1280 | github_app_uuid: 1281 | type: string 1282 | description: 'The Github App UUID.' 1283 | git_repository: 1284 | type: string 1285 | description: 'The git repository URL.' 1286 | git_branch: 1287 | type: string 1288 | description: 'The git branch.' 1289 | ports_exposes: 1290 | type: string 1291 | description: 'The ports to expose.' 1292 | destination_uuid: 1293 | type: string 1294 | description: 'The destination UUID.' 1295 | build_pack: 1296 | type: string 1297 | enum: [nixpacks, static, dockerfile, dockercompose] 1298 | description: 'The build pack type.' 1299 | name: 1300 | type: string 1301 | description: 'The application name.' 1302 | description: 1303 | type: string 1304 | description: 'The application description.' 1305 | domains: 1306 | type: string 1307 | description: 'The application domains.' 1308 | git_commit_sha: 1309 | type: string 1310 | description: 'The git commit SHA.' 1311 | docker_registry_image_name: 1312 | type: string 1313 | description: 'The docker registry image name.' 1314 | docker_registry_image_tag: 1315 | type: string 1316 | description: 'The docker registry image tag.' 1317 | is_static: 1318 | type: boolean 1319 | description: 'The flag to indicate if the application is static.' 1320 | install_command: 1321 | type: string 1322 | description: 'The install command.' 1323 | build_command: 1324 | type: string 1325 | description: 'The build command.' 1326 | start_command: 1327 | type: string 1328 | description: 'The start command.' 1329 | ports_mappings: 1330 | type: string 1331 | description: 'The ports mappings.' 1332 | base_directory: 1333 | type: string 1334 | description: 'The base directory for all commands.' 1335 | publish_directory: 1336 | type: string 1337 | description: 'The publish directory.' 1338 | health_check_enabled: 1339 | type: boolean 1340 | description: 'Health check enabled.' 1341 | health_check_path: 1342 | type: string 1343 | description: 'Health check path.' 1344 | health_check_port: 1345 | type: string 1346 | nullable: true 1347 | description: 'Health check port.' 1348 | health_check_host: 1349 | type: string 1350 | nullable: true 1351 | description: 'Health check host.' 1352 | health_check_method: 1353 | type: string 1354 | description: 'Health check method.' 1355 | health_check_return_code: 1356 | type: integer 1357 | description: 'Health check return code.' 1358 | health_check_scheme: 1359 | type: string 1360 | description: 'Health check scheme.' 1361 | health_check_response_text: 1362 | type: string 1363 | nullable: true 1364 | description: 'Health check response text.' 1365 | health_check_interval: 1366 | type: integer 1367 | description: 'Health check interval in seconds.' 1368 | health_check_timeout: 1369 | type: integer 1370 | description: 'Health check timeout in seconds.' 1371 | health_check_retries: 1372 | type: integer 1373 | description: 'Health check retries count.' 1374 | health_check_start_period: 1375 | type: integer 1376 | description: 'Health check start period in seconds.' 1377 | limits_memory: 1378 | type: string 1379 | description: 'Memory limit.' 1380 | limits_memory_swap: 1381 | type: string 1382 | description: 'Memory swap limit.' 1383 | limits_memory_swappiness: 1384 | type: integer 1385 | description: 'Memory swappiness.' 1386 | limits_memory_reservation: 1387 | type: string 1388 | description: 'Memory reservation.' 1389 | limits_cpus: 1390 | type: string 1391 | description: 'CPU limit.' 1392 | limits_cpuset: 1393 | type: string 1394 | nullable: true 1395 | description: 'CPU set.' 1396 | limits_cpu_shares: 1397 | type: integer 1398 | description: 'CPU shares.' 1399 | custom_labels: 1400 | type: string 1401 | description: 'Custom labels.' 1402 | custom_docker_run_options: 1403 | type: string 1404 | description: 'Custom docker run options.' 1405 | post_deployment_command: 1406 | type: string 1407 | description: 'Post deployment command.' 1408 | post_deployment_command_container: 1409 | type: string 1410 | description: 'Post deployment command container.' 1411 | pre_deployment_command: 1412 | type: string 1413 | description: 'Pre deployment command.' 1414 | pre_deployment_command_container: 1415 | type: string 1416 | description: 'Pre deployment command container.' 1417 | manual_webhook_secret_github: 1418 | type: string 1419 | description: 'Manual webhook secret for Github.' 1420 | manual_webhook_secret_gitlab: 1421 | type: string 1422 | description: 'Manual webhook secret for Gitlab.' 1423 | manual_webhook_secret_bitbucket: 1424 | type: string 1425 | description: 'Manual webhook secret for Bitbucket.' 1426 | manual_webhook_secret_gitea: 1427 | type: string 1428 | description: 'Manual webhook secret for Gitea.' 1429 | redirect: 1430 | type: string 1431 | nullable: true 1432 | description: 'How to set redirect with Traefik / Caddy. www<->non-www.' 1433 | enum: [www, non-www, both] 1434 | instant_deploy: 1435 | type: boolean 1436 | description: 'The flag to indicate if the application should be deployed instantly.' 1437 | dockerfile: 1438 | type: string 1439 | description: 'The Dockerfile content.' 1440 | docker_compose_location: 1441 | type: string 1442 | description: 'The Docker Compose location.' 1443 | docker_compose_raw: 1444 | type: string 1445 | description: 'The Docker Compose raw content.' 1446 | docker_compose_custom_start_command: 1447 | type: string 1448 | description: 'The Docker Compose custom start command.' 1449 | docker_compose_custom_build_command: 1450 | type: string 1451 | description: 'The Docker Compose custom build command.' 1452 | docker_compose_domains: 1453 | type: array 1454 | description: 'The Docker Compose domains.' 1455 | watch_paths: 1456 | type: string 1457 | description: 'The watch paths.' 1458 | use_build_server: 1459 | type: boolean 1460 | nullable: true 1461 | description: 'Use build server.' 1462 | type: object 1463 | responses: 1464 | '200': 1465 | description: 'Application updated.' 1466 | content: 1467 | application/json: 1468 | schema: 1469 | properties: 1470 | uuid: { type: string } 1471 | type: object 1472 | '401': 1473 | $ref: '#/components/responses/401' 1474 | '400': 1475 | $ref: '#/components/responses/400' 1476 | '404': 1477 | $ref: '#/components/responses/404' 1478 | security: 1479 | - bearerAuth: [] 1480 | '/applications/{uuid}/envs': 1481 | get: 1482 | tags: 1483 | - Applications 1484 | summary: 'List Envs' 1485 | description: 'List all envs by application UUID.' 1486 | operationId: list-envs-by-application-uuid 1487 | parameters: 1488 | - name: uuid 1489 | in: path 1490 | description: 'UUID of the application.' 1491 | required: true 1492 | schema: 1493 | type: string 1494 | format: uuid 1495 | responses: 1496 | '200': 1497 | description: 'All environment variables by application UUID.' 1498 | content: 1499 | application/json: 1500 | schema: 1501 | type: array 1502 | items: 1503 | $ref: '#/components/schemas/EnvironmentVariable' 1504 | '401': 1505 | $ref: '#/components/responses/401' 1506 | '400': 1507 | $ref: '#/components/responses/400' 1508 | '404': 1509 | $ref: '#/components/responses/404' 1510 | security: 1511 | - bearerAuth: [] 1512 | post: 1513 | tags: 1514 | - Applications 1515 | summary: 'Create Env' 1516 | description: 'Create env by application UUID.' 1517 | operationId: create-env-by-application-uuid 1518 | parameters: 1519 | - name: uuid 1520 | in: path 1521 | description: 'UUID of the application.' 1522 | required: true 1523 | schema: 1524 | type: string 1525 | format: uuid 1526 | requestBody: 1527 | description: 'Env created.' 1528 | required: true 1529 | content: 1530 | application/json: 1531 | schema: 1532 | properties: 1533 | key: 1534 | type: string 1535 | description: 'The key of the environment variable.' 1536 | value: 1537 | type: string 1538 | description: 'The value of the environment variable.' 1539 | is_preview: 1540 | type: boolean 1541 | description: 'The flag to indicate if the environment variable is used in preview deployments.' 1542 | is_build_time: 1543 | type: boolean 1544 | description: 'The flag to indicate if the environment variable is used in build time.' 1545 | is_literal: 1546 | type: boolean 1547 | description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' 1548 | is_multiline: 1549 | type: boolean 1550 | description: 'The flag to indicate if the environment variable is multiline.' 1551 | is_shown_once: 1552 | type: boolean 1553 | description: "The flag to indicate if the environment variable's value is shown on the UI." 1554 | type: object 1555 | responses: 1556 | '201': 1557 | description: 'Environment variable created.' 1558 | content: 1559 | application/json: 1560 | schema: 1561 | properties: 1562 | uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko } 1563 | type: object 1564 | '401': 1565 | $ref: '#/components/responses/401' 1566 | '400': 1567 | $ref: '#/components/responses/400' 1568 | '404': 1569 | $ref: '#/components/responses/404' 1570 | security: 1571 | - bearerAuth: [] 1572 | patch: 1573 | tags: 1574 | - Applications 1575 | summary: 'Update Env' 1576 | description: 'Update env by application UUID.' 1577 | operationId: update-env-by-application-uuid 1578 | parameters: 1579 | - name: uuid 1580 | in: path 1581 | description: 'UUID of the application.' 1582 | required: true 1583 | schema: 1584 | type: string 1585 | format: uuid 1586 | requestBody: 1587 | description: 'Env updated.' 1588 | required: true 1589 | content: 1590 | application/json: 1591 | schema: 1592 | required: 1593 | - key 1594 | - value 1595 | properties: 1596 | key: 1597 | type: string 1598 | description: 'The key of the environment variable.' 1599 | value: 1600 | type: string 1601 | description: 'The value of the environment variable.' 1602 | is_preview: 1603 | type: boolean 1604 | description: 'The flag to indicate if the environment variable is used in preview deployments.' 1605 | is_build_time: 1606 | type: boolean 1607 | description: 'The flag to indicate if the environment variable is used in build time.' 1608 | is_literal: 1609 | type: boolean 1610 | description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' 1611 | is_multiline: 1612 | type: boolean 1613 | description: 'The flag to indicate if the environment variable is multiline.' 1614 | is_shown_once: 1615 | type: boolean 1616 | description: "The flag to indicate if the environment variable's value is shown on the UI." 1617 | type: object 1618 | responses: 1619 | '201': 1620 | description: 'Environment variable updated.' 1621 | content: 1622 | application/json: 1623 | schema: 1624 | properties: 1625 | message: { type: string, example: 'Environment variable updated.' } 1626 | type: object 1627 | '401': 1628 | $ref: '#/components/responses/401' 1629 | '400': 1630 | $ref: '#/components/responses/400' 1631 | '404': 1632 | $ref: '#/components/responses/404' 1633 | security: 1634 | - bearerAuth: [] 1635 | '/applications/{uuid}/envs/bulk': 1636 | patch: 1637 | tags: 1638 | - Applications 1639 | summary: 'Update Envs (Bulk)' 1640 | description: 'Update multiple envs by application UUID.' 1641 | operationId: update-envs-by-application-uuid 1642 | parameters: 1643 | - name: uuid 1644 | in: path 1645 | description: 'UUID of the application.' 1646 | required: true 1647 | schema: 1648 | type: string 1649 | format: uuid 1650 | requestBody: 1651 | description: 'Bulk envs updated.' 1652 | required: true 1653 | content: 1654 | application/json: 1655 | schema: 1656 | required: 1657 | - data 1658 | properties: 1659 | data: 1660 | type: array 1661 | items: 1662 | { 1663 | properties: 1664 | { 1665 | key: 1666 | { type: string, description: 'The key of the environment variable.' }, 1667 | value: 1668 | { type: string, description: 'The value of the environment variable.' }, 1669 | is_preview: 1670 | { 1671 | type: boolean, 1672 | description: 'The flag to indicate if the environment variable is used in preview deployments.', 1673 | }, 1674 | is_build_time: 1675 | { 1676 | type: boolean, 1677 | description: 'The flag to indicate if the environment variable is used in build time.', 1678 | }, 1679 | is_literal: 1680 | { 1681 | type: boolean, 1682 | description: 'The flag to indicate if the environment variable is a literal, nothing espaced.', 1683 | }, 1684 | is_multiline: 1685 | { 1686 | type: boolean, 1687 | description: 'The flag to indicate if the environment variable is multiline.', 1688 | }, 1689 | is_shown_once: 1690 | { 1691 | type: boolean, 1692 | description: "The flag to indicate if the environment variable's value is shown on the UI.", 1693 | }, 1694 | }, 1695 | type: object, 1696 | } 1697 | type: object 1698 | responses: 1699 | '201': 1700 | description: 'Environment variables updated.' 1701 | content: 1702 | application/json: 1703 | schema: 1704 | properties: 1705 | message: { type: string, example: 'Environment variables updated.' } 1706 | type: object 1707 | '401': 1708 | $ref: '#/components/responses/401' 1709 | '400': 1710 | $ref: '#/components/responses/400' 1711 | '404': 1712 | $ref: '#/components/responses/404' 1713 | security: 1714 | - bearerAuth: [] 1715 | '/applications/{uuid}/envs/{env_uuid}': 1716 | delete: 1717 | tags: 1718 | - Applications 1719 | summary: 'Delete Env' 1720 | description: 'Delete env by UUID.' 1721 | operationId: delete-env-by-application-uuid 1722 | parameters: 1723 | - name: uuid 1724 | in: path 1725 | description: 'UUID of the application.' 1726 | required: true 1727 | schema: 1728 | type: string 1729 | format: uuid 1730 | - name: env_uuid 1731 | in: path 1732 | description: 'UUID of the environment variable.' 1733 | required: true 1734 | schema: 1735 | type: string 1736 | format: uuid 1737 | responses: 1738 | '200': 1739 | description: 'Environment variable deleted.' 1740 | content: 1741 | application/json: 1742 | schema: 1743 | properties: 1744 | message: { type: string, example: 'Environment variable deleted.' } 1745 | type: object 1746 | '401': 1747 | $ref: '#/components/responses/401' 1748 | '400': 1749 | $ref: '#/components/responses/400' 1750 | '404': 1751 | $ref: '#/components/responses/404' 1752 | security: 1753 | - bearerAuth: [] 1754 | '/applications/{uuid}/start': 1755 | get: 1756 | tags: 1757 | - Applications 1758 | summary: Start 1759 | description: 'Start application. `Post` request is also accepted.' 1760 | operationId: start-application-by-uuid 1761 | parameters: 1762 | - name: uuid 1763 | in: path 1764 | description: 'UUID of the application.' 1765 | required: true 1766 | schema: 1767 | type: string 1768 | format: uuid 1769 | - name: force 1770 | in: query 1771 | description: 'Force rebuild.' 1772 | schema: 1773 | type: boolean 1774 | default: false 1775 | - name: instant_deploy 1776 | in: query 1777 | description: 'Instant deploy (skip queuing).' 1778 | schema: 1779 | type: boolean 1780 | default: false 1781 | responses: 1782 | '200': 1783 | description: 'Start application.' 1784 | content: 1785 | application/json: 1786 | schema: 1787 | properties: 1788 | message: 1789 | { type: string, example: 'Deployment request queued.', description: Message. } 1790 | deployment_uuid: 1791 | { type: string, example: doogksw, description: 'UUID of the deployment.' } 1792 | type: object 1793 | '401': 1794 | $ref: '#/components/responses/401' 1795 | '400': 1796 | $ref: '#/components/responses/400' 1797 | '404': 1798 | $ref: '#/components/responses/404' 1799 | security: 1800 | - bearerAuth: [] 1801 | '/applications/{uuid}/stop': 1802 | get: 1803 | tags: 1804 | - Applications 1805 | summary: Stop 1806 | description: 'Stop application. `Post` request is also accepted.' 1807 | operationId: stop-application-by-uuid 1808 | parameters: 1809 | - name: uuid 1810 | in: path 1811 | description: 'UUID of the application.' 1812 | required: true 1813 | schema: 1814 | type: string 1815 | format: uuid 1816 | responses: 1817 | '200': 1818 | description: 'Stop application.' 1819 | content: 1820 | application/json: 1821 | schema: 1822 | properties: 1823 | message: { type: string, example: 'Application stopping request queued.' } 1824 | type: object 1825 | '401': 1826 | $ref: '#/components/responses/401' 1827 | '400': 1828 | $ref: '#/components/responses/400' 1829 | '404': 1830 | $ref: '#/components/responses/404' 1831 | security: 1832 | - bearerAuth: [] 1833 | '/applications/{uuid}/restart': 1834 | get: 1835 | tags: 1836 | - Applications 1837 | summary: Restart 1838 | description: 'Restart application. `Post` request is also accepted.' 1839 | operationId: restart-application-by-uuid 1840 | parameters: 1841 | - name: uuid 1842 | in: path 1843 | description: 'UUID of the application.' 1844 | required: true 1845 | schema: 1846 | type: string 1847 | format: uuid 1848 | responses: 1849 | '200': 1850 | description: 'Restart application.' 1851 | content: 1852 | application/json: 1853 | schema: 1854 | properties: 1855 | message: { type: string, example: 'Restart request queued.' } 1856 | deployment_uuid: 1857 | { type: string, example: doogksw, description: 'UUID of the deployment.' } 1858 | type: object 1859 | '401': 1860 | $ref: '#/components/responses/401' 1861 | '400': 1862 | $ref: '#/components/responses/400' 1863 | '404': 1864 | $ref: '#/components/responses/404' 1865 | security: 1866 | - bearerAuth: [] 1867 | '/applications/{uuid}/execute': 1868 | post: 1869 | tags: 1870 | - Applications 1871 | summary: 'Execute Command' 1872 | description: "Execute a command on the application's current container." 1873 | operationId: execute-command-application 1874 | parameters: 1875 | - name: uuid 1876 | in: path 1877 | description: 'UUID of the application.' 1878 | required: true 1879 | schema: 1880 | type: string 1881 | format: uuid 1882 | requestBody: 1883 | description: 'Command to execute.' 1884 | required: true 1885 | content: 1886 | application/json: 1887 | schema: 1888 | properties: 1889 | command: 1890 | type: string 1891 | description: 'Command to execute.' 1892 | type: object 1893 | responses: 1894 | '200': 1895 | description: "Execute a command on the application's current container." 1896 | content: 1897 | application/json: 1898 | schema: 1899 | properties: 1900 | message: { type: string, example: 'Command executed.' } 1901 | response: { type: string } 1902 | type: object 1903 | '401': 1904 | $ref: '#/components/responses/401' 1905 | '400': 1906 | $ref: '#/components/responses/400' 1907 | '404': 1908 | $ref: '#/components/responses/404' 1909 | security: 1910 | - bearerAuth: [] 1911 | /databases: 1912 | get: 1913 | tags: 1914 | - Databases 1915 | summary: List 1916 | description: 'List all databases.' 1917 | operationId: list-databases 1918 | responses: 1919 | '200': 1920 | description: 'Get all databases' 1921 | content: 1922 | application/json: 1923 | schema: 1924 | type: string 1925 | example: 'Content is very complex. Will be implemented later.' 1926 | '401': 1927 | $ref: '#/components/responses/401' 1928 | '400': 1929 | $ref: '#/components/responses/400' 1930 | security: 1931 | - bearerAuth: [] 1932 | '/databases/{uuid}': 1933 | get: 1934 | tags: 1935 | - Databases 1936 | summary: Get 1937 | description: 'Get database by UUID.' 1938 | operationId: get-database-by-uuid 1939 | parameters: 1940 | - name: uuid 1941 | in: path 1942 | description: 'UUID of the database.' 1943 | required: true 1944 | schema: 1945 | type: string 1946 | format: uuid 1947 | responses: 1948 | '200': 1949 | description: 'Get all databases' 1950 | content: 1951 | application/json: 1952 | schema: 1953 | type: string 1954 | example: 'Content is very complex. Will be implemented later.' 1955 | '401': 1956 | $ref: '#/components/responses/401' 1957 | '400': 1958 | $ref: '#/components/responses/400' 1959 | '404': 1960 | $ref: '#/components/responses/404' 1961 | security: 1962 | - bearerAuth: [] 1963 | delete: 1964 | tags: 1965 | - Databases 1966 | summary: Delete 1967 | description: 'Delete database by UUID.' 1968 | operationId: delete-database-by-uuid 1969 | parameters: 1970 | - name: uuid 1971 | in: path 1972 | description: 'UUID of the database.' 1973 | required: true 1974 | schema: 1975 | type: string 1976 | format: uuid 1977 | - name: delete_configurations 1978 | in: query 1979 | description: 'Delete configurations.' 1980 | required: false 1981 | schema: 1982 | type: boolean 1983 | default: true 1984 | - name: delete_volumes 1985 | in: query 1986 | description: 'Delete volumes.' 1987 | required: false 1988 | schema: 1989 | type: boolean 1990 | default: true 1991 | - name: docker_cleanup 1992 | in: query 1993 | description: 'Run docker cleanup.' 1994 | required: false 1995 | schema: 1996 | type: boolean 1997 | default: true 1998 | - name: delete_connected_networks 1999 | in: query 2000 | description: 'Delete connected networks.' 2001 | required: false 2002 | schema: 2003 | type: boolean 2004 | default: true 2005 | responses: 2006 | '200': 2007 | description: 'Database deleted.' 2008 | content: 2009 | application/json: 2010 | schema: 2011 | properties: 2012 | message: { type: string, example: 'Database deleted.' } 2013 | type: object 2014 | '401': 2015 | $ref: '#/components/responses/401' 2016 | '400': 2017 | $ref: '#/components/responses/400' 2018 | '404': 2019 | $ref: '#/components/responses/404' 2020 | security: 2021 | - bearerAuth: [] 2022 | patch: 2023 | tags: 2024 | - Databases 2025 | summary: Update 2026 | description: 'Update database by UUID.' 2027 | operationId: update-database-by-uuid 2028 | parameters: 2029 | - name: uuid 2030 | in: path 2031 | description: 'UUID of the database.' 2032 | required: true 2033 | schema: 2034 | type: string 2035 | format: uuid 2036 | requestBody: 2037 | description: 'Database data' 2038 | required: true 2039 | content: 2040 | application/json: 2041 | schema: 2042 | properties: 2043 | name: 2044 | type: string 2045 | description: 'Name of the database' 2046 | description: 2047 | type: string 2048 | description: 'Description of the database' 2049 | image: 2050 | type: string 2051 | description: 'Docker Image of the database' 2052 | is_public: 2053 | type: boolean 2054 | description: 'Is the database public?' 2055 | public_port: 2056 | type: integer 2057 | description: 'Public port of the database' 2058 | limits_memory: 2059 | type: string 2060 | description: 'Memory limit of the database' 2061 | limits_memory_swap: 2062 | type: string 2063 | description: 'Memory swap limit of the database' 2064 | limits_memory_swappiness: 2065 | type: integer 2066 | description: 'Memory swappiness of the database' 2067 | limits_memory_reservation: 2068 | type: string 2069 | description: 'Memory reservation of the database' 2070 | limits_cpus: 2071 | type: string 2072 | description: 'CPU limit of the database' 2073 | limits_cpuset: 2074 | type: string 2075 | description: 'CPU set of the database' 2076 | limits_cpu_shares: 2077 | type: integer 2078 | description: 'CPU shares of the database' 2079 | postgres_user: 2080 | type: string 2081 | description: 'PostgreSQL user' 2082 | postgres_password: 2083 | type: string 2084 | description: 'PostgreSQL password' 2085 | postgres_db: 2086 | type: string 2087 | description: 'PostgreSQL database' 2088 | postgres_initdb_args: 2089 | type: string 2090 | description: 'PostgreSQL initdb args' 2091 | postgres_host_auth_method: 2092 | type: string 2093 | description: 'PostgreSQL host auth method' 2094 | postgres_conf: 2095 | type: string 2096 | description: 'PostgreSQL conf' 2097 | clickhouse_admin_user: 2098 | type: string 2099 | description: 'Clickhouse admin user' 2100 | clickhouse_admin_password: 2101 | type: string 2102 | description: 'Clickhouse admin password' 2103 | dragonfly_password: 2104 | type: string 2105 | description: 'DragonFly password' 2106 | redis_password: 2107 | type: string 2108 | description: 'Redis password' 2109 | redis_conf: 2110 | type: string 2111 | description: 'Redis conf' 2112 | keydb_password: 2113 | type: string 2114 | description: 'KeyDB password' 2115 | keydb_conf: 2116 | type: string 2117 | description: 'KeyDB conf' 2118 | mariadb_conf: 2119 | type: string 2120 | description: 'MariaDB conf' 2121 | mariadb_root_password: 2122 | type: string 2123 | description: 'MariaDB root password' 2124 | mariadb_user: 2125 | type: string 2126 | description: 'MariaDB user' 2127 | mariadb_password: 2128 | type: string 2129 | description: 'MariaDB password' 2130 | mariadb_database: 2131 | type: string 2132 | description: 'MariaDB database' 2133 | mongo_conf: 2134 | type: string 2135 | description: 'Mongo conf' 2136 | mongo_initdb_root_username: 2137 | type: string 2138 | description: 'Mongo initdb root username' 2139 | mongo_initdb_root_password: 2140 | type: string 2141 | description: 'Mongo initdb root password' 2142 | mongo_initdb_database: 2143 | type: string 2144 | description: 'Mongo initdb init database' 2145 | mysql_root_password: 2146 | type: string 2147 | description: 'MySQL root password' 2148 | mysql_password: 2149 | type: string 2150 | description: 'MySQL password' 2151 | mysql_user: 2152 | type: string 2153 | description: 'MySQL user' 2154 | mysql_database: 2155 | type: string 2156 | description: 'MySQL database' 2157 | mysql_conf: 2158 | type: string 2159 | description: 'MySQL conf' 2160 | type: object 2161 | responses: 2162 | '200': 2163 | description: 'Database updated' 2164 | '401': 2165 | $ref: '#/components/responses/401' 2166 | '400': 2167 | $ref: '#/components/responses/400' 2168 | '404': 2169 | $ref: '#/components/responses/404' 2170 | security: 2171 | - bearerAuth: [] 2172 | /databases/postgresql: 2173 | post: 2174 | tags: 2175 | - Databases 2176 | summary: 'Create (PostgreSQL)' 2177 | description: 'Create a new PostgreSQL database.' 2178 | operationId: create-database-postgresql 2179 | requestBody: 2180 | description: 'Database data' 2181 | required: true 2182 | content: 2183 | application/json: 2184 | schema: 2185 | required: 2186 | - server_uuid 2187 | - project_uuid 2188 | - environment_name 2189 | - environment_uuid 2190 | properties: 2191 | server_uuid: 2192 | type: string 2193 | description: 'UUID of the server' 2194 | project_uuid: 2195 | type: string 2196 | description: 'UUID of the project' 2197 | environment_name: 2198 | type: string 2199 | description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.' 2200 | environment_uuid: 2201 | type: string 2202 | description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.' 2203 | postgres_user: 2204 | type: string 2205 | description: 'PostgreSQL user' 2206 | postgres_password: 2207 | type: string 2208 | description: 'PostgreSQL password' 2209 | postgres_db: 2210 | type: string 2211 | description: 'PostgreSQL database' 2212 | postgres_initdb_args: 2213 | type: string 2214 | description: 'PostgreSQL initdb args' 2215 | postgres_host_auth_method: 2216 | type: string 2217 | description: 'PostgreSQL host auth method' 2218 | postgres_conf: 2219 | type: string 2220 | description: 'PostgreSQL conf' 2221 | destination_uuid: 2222 | type: string 2223 | description: 'UUID of the destination if the server has multiple destinations' 2224 | name: 2225 | type: string 2226 | description: 'Name of the database' 2227 | description: 2228 | type: string 2229 | description: 'Description of the database' 2230 | image: 2231 | type: string 2232 | description: 'Docker Image of the database' 2233 | is_public: 2234 | type: boolean 2235 | description: 'Is the database public?' 2236 | public_port: 2237 | type: integer 2238 | description: 'Public port of the database' 2239 | limits_memory: 2240 | type: string 2241 | description: 'Memory limit of the database' 2242 | limits_memory_swap: 2243 | type: string 2244 | description: 'Memory swap limit of the database' 2245 | limits_memory_swappiness: 2246 | type: integer 2247 | description: 'Memory swappiness of the database' 2248 | limits_memory_reservation: 2249 | type: string 2250 | description: 'Memory reservation of the database' 2251 | limits_cpus: 2252 | type: string 2253 | description: 'CPU limit of the database' 2254 | limits_cpuset: 2255 | type: string 2256 | description: 'CPU set of the database' 2257 | limits_cpu_shares: 2258 | type: integer 2259 | description: 'CPU shares of the database' 2260 | instant_deploy: 2261 | type: boolean 2262 | description: 'Instant deploy the database' 2263 | type: object 2264 | responses: 2265 | '200': 2266 | description: 'Database updated' 2267 | '401': 2268 | $ref: '#/components/responses/401' 2269 | '400': 2270 | $ref: '#/components/responses/400' 2271 | security: 2272 | - bearerAuth: [] 2273 | /databases/clickhouse: 2274 | post: 2275 | tags: 2276 | - Databases 2277 | summary: 'Create (Clickhouse)' 2278 | description: 'Create a new Clickhouse database.' 2279 | operationId: create-database-clickhouse 2280 | requestBody: 2281 | description: 'Database data' 2282 | required: true 2283 | content: 2284 | application/json: 2285 | schema: 2286 | required: 2287 | - server_uuid 2288 | - project_uuid 2289 | - environment_name 2290 | - environment_uuid 2291 | properties: 2292 | server_uuid: 2293 | type: string 2294 | description: 'UUID of the server' 2295 | project_uuid: 2296 | type: string 2297 | description: 'UUID of the project' 2298 | environment_name: 2299 | type: string 2300 | description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.' 2301 | environment_uuid: 2302 | type: string 2303 | description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.' 2304 | destination_uuid: 2305 | type: string 2306 | description: 'UUID of the destination if the server has multiple destinations' 2307 | clickhouse_admin_user: 2308 | type: string 2309 | description: 'Clickhouse admin user' 2310 | clickhouse_admin_password: 2311 | type: string 2312 | description: 'Clickhouse admin password' 2313 | name: 2314 | type: string 2315 | description: 'Name of the database' 2316 | description: 2317 | type: string 2318 | description: 'Description of the database' 2319 | image: 2320 | type: string 2321 | description: 'Docker Image of the database' 2322 | is_public: 2323 | type: boolean 2324 | description: 'Is the database public?' 2325 | public_port: 2326 | type: integer 2327 | description: 'Public port of the database' 2328 | limits_memory: 2329 | type: string 2330 | description: 'Memory limit of the database' 2331 | limits_memory_swap: 2332 | type: string 2333 | description: 'Memory swap limit of the database' 2334 | limits_memory_swappiness: 2335 | type: integer 2336 | description: 'Memory swappiness of the database' 2337 | limits_memory_reservation: 2338 | type: string 2339 | description: 'Memory reservation of the database' 2340 | limits_cpus: 2341 | type: string 2342 | description: 'CPU limit of the database' 2343 | limits_cpuset: 2344 | type: string 2345 | description: 'CPU set of the database' 2346 | limits_cpu_shares: 2347 | type: integer 2348 | description: 'CPU shares of the database' 2349 | instant_deploy: 2350 | type: boolean 2351 | description: 'Instant deploy the database' 2352 | type: object 2353 | responses: 2354 | '200': 2355 | description: 'Database updated' 2356 | '401': 2357 | $ref: '#/components/responses/401' 2358 | '400': 2359 | $ref: '#/components/responses/400' 2360 | security: 2361 | - bearerAuth: [] 2362 | /databases/dragonfly: 2363 | post: 2364 | tags: 2365 | - Databases 2366 | summary: 'Create (DragonFly)' 2367 | description: 'Create a new DragonFly database.' 2368 | operationId: create-database-dragonfly 2369 | requestBody: 2370 | description: 'Database data' 2371 | required: true 2372 | content: 2373 | application/json: 2374 | schema: 2375 | required: 2376 | - server_uuid 2377 | - project_uuid 2378 | - environment_name 2379 | - environment_uuid 2380 | properties: 2381 | server_uuid: 2382 | type: string 2383 | description: 'UUID of the server' 2384 | project_uuid: 2385 | type: string 2386 | description: 'UUID of the project' 2387 | environment_name: 2388 | type: string 2389 | description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.' 2390 | environment_uuid: 2391 | type: string 2392 | description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.' 2393 | destination_uuid: 2394 | type: string 2395 | description: 'UUID of the destination if the server has multiple destinations' 2396 | dragonfly_password: 2397 | type: string 2398 | description: 'DragonFly password' 2399 | name: 2400 | type: string 2401 | description: 'Name of the database' 2402 | description: 2403 | type: string 2404 | description: 'Description of the database' 2405 | image: 2406 | type: string 2407 | description: 'Docker Image of the database' 2408 | is_public: 2409 | type: boolean 2410 | description: 'Is the database public?' 2411 | public_port: 2412 | type: integer 2413 | description: 'Public port of the database' 2414 | limits_memory: 2415 | type: string 2416 | description: 'Memory limit of the database' 2417 | limits_memory_swap: 2418 | type: string 2419 | description: 'Memory swap limit of the database' 2420 | limits_memory_swappiness: 2421 | type: integer 2422 | description: 'Memory swappiness of the database' 2423 | limits_memory_reservation: 2424 | type: string 2425 | description: 'Memory reservation of the database' 2426 | limits_cpus: 2427 | type: string 2428 | description: 'CPU limit of the database' 2429 | limits_cpuset: 2430 | type: string 2431 | description: 'CPU set of the database' 2432 | limits_cpu_shares: 2433 | type: integer 2434 | description: 'CPU shares of the database' 2435 | instant_deploy: 2436 | type: boolean 2437 | description: 'Instant deploy the database' 2438 | type: object 2439 | responses: 2440 | '200': 2441 | description: 'Database updated' 2442 | '401': 2443 | $ref: '#/components/responses/401' 2444 | '400': 2445 | $ref: '#/components/responses/400' 2446 | security: 2447 | - bearerAuth: [] 2448 | /databases/redis: 2449 | post: 2450 | tags: 2451 | - Databases 2452 | summary: 'Create (Redis)' 2453 | description: 'Create a new Redis database.' 2454 | operationId: create-database-redis 2455 | requestBody: 2456 | description: 'Database data' 2457 | required: true 2458 | content: 2459 | application/json: 2460 | schema: 2461 | required: 2462 | - server_uuid 2463 | - project_uuid 2464 | - environment_name 2465 | - environment_uuid 2466 | properties: 2467 | server_uuid: 2468 | type: string 2469 | description: 'UUID of the server' 2470 | project_uuid: 2471 | type: string 2472 | description: 'UUID of the project' 2473 | environment_name: 2474 | type: string 2475 | description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.' 2476 | environment_uuid: 2477 | type: string 2478 | description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.' 2479 | destination_uuid: 2480 | type: string 2481 | description: 'UUID of the destination if the server has multiple destinations' 2482 | redis_password: 2483 | type: string 2484 | description: 'Redis password' 2485 | redis_conf: 2486 | type: string 2487 | description: 'Redis conf' 2488 | name: 2489 | type: string 2490 | description: 'Name of the database' 2491 | description: 2492 | type: string 2493 | description: 'Description of the database' 2494 | image: 2495 | type: string 2496 | description: 'Docker Image of the database' 2497 | is_public: 2498 | type: boolean 2499 | description: 'Is the database public?' 2500 | public_port: 2501 | type: integer 2502 | description: 'Public port of the database' 2503 | limits_memory: 2504 | type: string 2505 | description: 'Memory limit of the database' 2506 | limits_memory_swap: 2507 | type: string 2508 | description: 'Memory swap limit of the database' 2509 | limits_memory_swappiness: 2510 | type: integer 2511 | description: 'Memory swappiness of the database' 2512 | limits_memory_reservation: 2513 | type: string 2514 | description: 'Memory reservation of the database' 2515 | limits_cpus: 2516 | type: string 2517 | description: 'CPU limit of the database' 2518 | limits_cpuset: 2519 | type: string 2520 | description: 'CPU set of the database' 2521 | limits_cpu_shares: 2522 | type: integer 2523 | description: 'CPU shares of the database' 2524 | instant_deploy: 2525 | type: boolean 2526 | description: 'Instant deploy the database' 2527 | type: object 2528 | responses: 2529 | '200': 2530 | description: 'Database updated' 2531 | '401': 2532 | $ref: '#/components/responses/401' 2533 | '400': 2534 | $ref: '#/components/responses/400' 2535 | security: 2536 | - bearerAuth: [] 2537 | /databases/keydb: 2538 | post: 2539 | tags: 2540 | - Databases 2541 | summary: 'Create (KeyDB)' 2542 | description: 'Create a new KeyDB database.' 2543 | operationId: create-database-keydb 2544 | requestBody: 2545 | description: 'Database data' 2546 | required: true 2547 | content: 2548 | application/json: 2549 | schema: 2550 | required: 2551 | - server_uuid 2552 | - project_uuid 2553 | - environment_name 2554 | - environment_uuid 2555 | properties: 2556 | server_uuid: 2557 | type: string 2558 | description: 'UUID of the server' 2559 | project_uuid: 2560 | type: string 2561 | description: 'UUID of the project' 2562 | environment_name: 2563 | type: string 2564 | description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.' 2565 | environment_uuid: 2566 | type: string 2567 | description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.' 2568 | destination_uuid: 2569 | type: string 2570 | description: 'UUID of the destination if the server has multiple destinations' 2571 | keydb_password: 2572 | type: string 2573 | description: 'KeyDB password' 2574 | keydb_conf: 2575 | type: string 2576 | description: 'KeyDB conf' 2577 | name: 2578 | type: string 2579 | description: 'Name of the database' 2580 | description: 2581 | type: string 2582 | description: 'Description of the database' 2583 | image: 2584 | type: string 2585 | description: 'Docker Image of the database' 2586 | is_public: 2587 | type: boolean 2588 | description: 'Is the database public?' 2589 | public_port: 2590 | type: integer 2591 | description: 'Public port of the database' 2592 | limits_memory: 2593 | type: string 2594 | description: 'Memory limit of the database' 2595 | limits_memory_swap: 2596 | type: string 2597 | description: 'Memory swap limit of the database' 2598 | limits_memory_swappiness: 2599 | type: integer 2600 | description: 'Memory swappiness of the database' 2601 | limits_memory_reservation: 2602 | type: string 2603 | description: 'Memory reservation of the database' 2604 | limits_cpus: 2605 | type: string 2606 | description: 'CPU limit of the database' 2607 | limits_cpuset: 2608 | type: string 2609 | description: 'CPU set of the database' 2610 | limits_cpu_shares: 2611 | type: integer 2612 | description: 'CPU shares of the database' 2613 | instant_deploy: 2614 | type: boolean 2615 | description: 'Instant deploy the database' 2616 | type: object 2617 | responses: 2618 | '200': 2619 | description: 'Database updated' 2620 | '401': 2621 | $ref: '#/components/responses/401' 2622 | '400': 2623 | $ref: '#/components/responses/400' 2624 | security: 2625 | - bearerAuth: [] 2626 | /databases/mariadb: 2627 | post: 2628 | tags: 2629 | - Databases 2630 | summary: 'Create (MariaDB)' 2631 | description: 'Create a new MariaDB database.' 2632 | operationId: create-database-mariadb 2633 | requestBody: 2634 | description: 'Database data' 2635 | required: true 2636 | content: 2637 | application/json: 2638 | schema: 2639 | required: 2640 | - server_uuid 2641 | - project_uuid 2642 | - environment_name 2643 | - environment_uuid 2644 | properties: 2645 | server_uuid: 2646 | type: string 2647 | description: 'UUID of the server' 2648 | project_uuid: 2649 | type: string 2650 | description: 'UUID of the project' 2651 | environment_name: 2652 | type: string 2653 | description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.' 2654 | environment_uuid: 2655 | type: string 2656 | description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.' 2657 | destination_uuid: 2658 | type: string 2659 | description: 'UUID of the destination if the server has multiple destinations' 2660 | mariadb_conf: 2661 | type: string 2662 | description: 'MariaDB conf' 2663 | mariadb_root_password: 2664 | type: string 2665 | description: 'MariaDB root password' 2666 | mariadb_user: 2667 | type: string 2668 | description: 'MariaDB user' 2669 | mariadb_password: 2670 | type: string 2671 | description: 'MariaDB password' 2672 | mariadb_database: 2673 | type: string 2674 | description: 'MariaDB database' 2675 | name: 2676 | type: string 2677 | description: 'Name of the database' 2678 | description: 2679 | type: string 2680 | description: 'Description of the database' 2681 | image: 2682 | type: string 2683 | description: 'Docker Image of the database' 2684 | is_public: 2685 | type: boolean 2686 | description: 'Is the database public?' 2687 | public_port: 2688 | type: integer 2689 | description: 'Public port of the database' 2690 | limits_memory: 2691 | type: string 2692 | description: 'Memory limit of the database' 2693 | limits_memory_swap: 2694 | type: string 2695 | description: 'Memory swap limit of the database' 2696 | limits_memory_swappiness: 2697 | type: integer 2698 | description: 'Memory swappiness of the database' 2699 | limits_memory_reservation: 2700 | type: string 2701 | description: 'Memory reservation of the database' 2702 | limits_cpus: 2703 | type: string 2704 | description: 'CPU limit of the database' 2705 | limits_cpuset: 2706 | type: string 2707 | description: 'CPU set of the database' 2708 | limits_cpu_shares: 2709 | type: integer 2710 | description: 'CPU shares of the database' 2711 | instant_deploy: 2712 | type: boolean 2713 | description: 'Instant deploy the database' 2714 | type: object 2715 | responses: 2716 | '200': 2717 | description: 'Database updated' 2718 | '401': 2719 | $ref: '#/components/responses/401' 2720 | '400': 2721 | $ref: '#/components/responses/400' 2722 | security: 2723 | - bearerAuth: [] 2724 | /databases/mysql: 2725 | post: 2726 | tags: 2727 | - Databases 2728 | summary: 'Create (MySQL)' 2729 | description: 'Create a new MySQL database.' 2730 | operationId: create-database-mysql 2731 | requestBody: 2732 | description: 'Database data' 2733 | required: true 2734 | content: 2735 | application/json: 2736 | schema: 2737 | required: 2738 | - server_uuid 2739 | - project_uuid 2740 | - environment_name 2741 | - environment_uuid 2742 | properties: 2743 | server_uuid: 2744 | type: string 2745 | description: 'UUID of the server' 2746 | project_uuid: 2747 | type: string 2748 | description: 'UUID of the project' 2749 | environment_name: 2750 | type: string 2751 | description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.' 2752 | environment_uuid: 2753 | type: string 2754 | description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.' 2755 | destination_uuid: 2756 | type: string 2757 | description: 'UUID of the destination if the server has multiple destinations' 2758 | mysql_root_password: 2759 | type: string 2760 | description: 'MySQL root password' 2761 | mysql_password: 2762 | type: string 2763 | description: 'MySQL password' 2764 | mysql_user: 2765 | type: string 2766 | description: 'MySQL user' 2767 | mysql_database: 2768 | type: string 2769 | description: 'MySQL database' 2770 | mysql_conf: 2771 | type: string 2772 | description: 'MySQL conf' 2773 | name: 2774 | type: string 2775 | description: 'Name of the database' 2776 | description: 2777 | type: string 2778 | description: 'Description of the database' 2779 | image: 2780 | type: string 2781 | description: 'Docker Image of the database' 2782 | is_public: 2783 | type: boolean 2784 | description: 'Is the database public?' 2785 | public_port: 2786 | type: integer 2787 | description: 'Public port of the database' 2788 | limits_memory: 2789 | type: string 2790 | description: 'Memory limit of the database' 2791 | limits_memory_swap: 2792 | type: string 2793 | description: 'Memory swap limit of the database' 2794 | limits_memory_swappiness: 2795 | type: integer 2796 | description: 'Memory swappiness of the database' 2797 | limits_memory_reservation: 2798 | type: string 2799 | description: 'Memory reservation of the database' 2800 | limits_cpus: 2801 | type: string 2802 | description: 'CPU limit of the database' 2803 | limits_cpuset: 2804 | type: string 2805 | description: 'CPU set of the database' 2806 | limits_cpu_shares: 2807 | type: integer 2808 | description: 'CPU shares of the database' 2809 | instant_deploy: 2810 | type: boolean 2811 | description: 'Instant deploy the database' 2812 | type: object 2813 | responses: 2814 | '200': 2815 | description: 'Database updated' 2816 | '401': 2817 | $ref: '#/components/responses/401' 2818 | '400': 2819 | $ref: '#/components/responses/400' 2820 | security: 2821 | - bearerAuth: [] 2822 | /databases/mongodb: 2823 | post: 2824 | tags: 2825 | - Databases 2826 | summary: 'Create (MongoDB)' 2827 | description: 'Create a new MongoDB database.' 2828 | operationId: create-database-mongodb 2829 | requestBody: 2830 | description: 'Database data' 2831 | required: true 2832 | content: 2833 | application/json: 2834 | schema: 2835 | required: 2836 | - server_uuid 2837 | - project_uuid 2838 | - environment_name 2839 | - environment_uuid 2840 | properties: 2841 | server_uuid: 2842 | type: string 2843 | description: 'UUID of the server' 2844 | project_uuid: 2845 | type: string 2846 | description: 'UUID of the project' 2847 | environment_name: 2848 | type: string 2849 | description: 'Name of the environment. You need to provide at least one of environment_name or environment_uuid.' 2850 | environment_uuid: 2851 | type: string 2852 | description: 'UUID of the environment. You need to provide at least one of environment_name or environment_uuid.' 2853 | destination_uuid: 2854 | type: string 2855 | description: 'UUID of the destination if the server has multiple destinations' 2856 | mongo_conf: 2857 | type: string 2858 | description: 'MongoDB conf' 2859 | mongo_initdb_root_username: 2860 | type: string 2861 | description: 'MongoDB initdb root username' 2862 | name: 2863 | type: string 2864 | description: 'Name of the database' 2865 | description: 2866 | type: string 2867 | description: 'Description of the database' 2868 | image: 2869 | type: string 2870 | description: 'Docker Image of the database' 2871 | is_public: 2872 | type: boolean 2873 | description: 'Is the database public?' 2874 | public_port: 2875 | type: integer 2876 | description: 'Public port of the database' 2877 | limits_memory: 2878 | type: string 2879 | description: 'Memory limit of the database' 2880 | limits_memory_swap: 2881 | type: string 2882 | description: 'Memory swap limit of the database' 2883 | limits_memory_swappiness: 2884 | type: integer 2885 | description: 'Memory swappiness of the database' 2886 | limits_memory_reservation: 2887 | type: string 2888 | description: 'Memory reservation of the database' 2889 | limits_cpus: 2890 | type: string 2891 | description: 'CPU limit of the database' 2892 | limits_cpuset: 2893 | type: string 2894 | description: 'CPU set of the database' 2895 | limits_cpu_shares: 2896 | type: integer 2897 | description: 'CPU shares of the database' 2898 | instant_deploy: 2899 | type: boolean 2900 | description: 'Instant deploy the database' 2901 | type: object 2902 | responses: 2903 | '200': 2904 | description: 'Database updated' 2905 | '401': 2906 | $ref: '#/components/responses/401' 2907 | '400': 2908 | $ref: '#/components/responses/400' 2909 | security: 2910 | - bearerAuth: [] 2911 | '/databases/{uuid}/start': 2912 | get: 2913 | tags: 2914 | - Databases 2915 | summary: Start 2916 | description: 'Start database. `Post` request is also accepted.' 2917 | operationId: start-database-by-uuid 2918 | parameters: 2919 | - name: uuid 2920 | in: path 2921 | description: 'UUID of the database.' 2922 | required: true 2923 | schema: 2924 | type: string 2925 | format: uuid 2926 | responses: 2927 | '200': 2928 | description: 'Start database.' 2929 | content: 2930 | application/json: 2931 | schema: 2932 | properties: 2933 | message: { type: string, example: 'Database starting request queued.' } 2934 | type: object 2935 | '401': 2936 | $ref: '#/components/responses/401' 2937 | '400': 2938 | $ref: '#/components/responses/400' 2939 | '404': 2940 | $ref: '#/components/responses/404' 2941 | security: 2942 | - bearerAuth: [] 2943 | '/databases/{uuid}/stop': 2944 | get: 2945 | tags: 2946 | - Databases 2947 | summary: Stop 2948 | description: 'Stop database. `Post` request is also accepted.' 2949 | operationId: stop-database-by-uuid 2950 | parameters: 2951 | - name: uuid 2952 | in: path 2953 | description: 'UUID of the database.' 2954 | required: true 2955 | schema: 2956 | type: string 2957 | format: uuid 2958 | responses: 2959 | '200': 2960 | description: 'Stop database.' 2961 | content: 2962 | application/json: 2963 | schema: 2964 | properties: 2965 | message: { type: string, example: 'Database stopping request queued.' } 2966 | type: object 2967 | '401': 2968 | $ref: '#/components/responses/401' 2969 | '400': 2970 | $ref: '#/components/responses/400' 2971 | '404': 2972 | $ref: '#/components/responses/404' 2973 | security: 2974 | - bearerAuth: [] 2975 | '/databases/{uuid}/restart': 2976 | get: 2977 | tags: 2978 | - Databases 2979 | summary: Restart 2980 | description: 'Restart database. `Post` request is also accepted.' 2981 | operationId: restart-database-by-uuid 2982 | parameters: 2983 | - name: uuid 2984 | in: path 2985 | description: 'UUID of the database.' 2986 | required: true 2987 | schema: 2988 | type: string 2989 | format: uuid 2990 | responses: 2991 | '200': 2992 | description: 'Restart database.' 2993 | content: 2994 | application/json: 2995 | schema: 2996 | properties: 2997 | message: { type: string, example: 'Database restaring request queued.' } 2998 | type: object 2999 | '401': 3000 | $ref: '#/components/responses/401' 3001 | '400': 3002 | $ref: '#/components/responses/400' 3003 | '404': 3004 | $ref: '#/components/responses/404' 3005 | security: 3006 | - bearerAuth: [] 3007 | /deployments: 3008 | get: 3009 | tags: 3010 | - Deployments 3011 | summary: List 3012 | description: 'List currently running deployments' 3013 | operationId: list-deployments 3014 | responses: 3015 | '200': 3016 | description: 'Get all currently running deployments.' 3017 | content: 3018 | application/json: 3019 | schema: 3020 | type: array 3021 | items: 3022 | $ref: '#/components/schemas/ApplicationDeploymentQueue' 3023 | '401': 3024 | $ref: '#/components/responses/401' 3025 | '400': 3026 | $ref: '#/components/responses/400' 3027 | security: 3028 | - bearerAuth: [] 3029 | '/deployments/{uuid}': 3030 | get: 3031 | tags: 3032 | - Deployments 3033 | summary: Get 3034 | description: 'Get deployment by UUID.' 3035 | operationId: get-deployment-by-uuid 3036 | parameters: 3037 | - name: uuid 3038 | in: path 3039 | description: 'Deployment UUID' 3040 | required: true 3041 | schema: 3042 | type: string 3043 | responses: 3044 | '200': 3045 | description: 'Get deployment by UUID.' 3046 | content: 3047 | application/json: 3048 | schema: 3049 | $ref: '#/components/schemas/ApplicationDeploymentQueue' 3050 | '401': 3051 | $ref: '#/components/responses/401' 3052 | '400': 3053 | $ref: '#/components/responses/400' 3054 | '404': 3055 | $ref: '#/components/responses/404' 3056 | security: 3057 | - bearerAuth: [] 3058 | /deploy: 3059 | get: 3060 | tags: 3061 | - Deployments 3062 | summary: Deploy 3063 | description: 'Deploy by tag or uuid. `Post` request also accepted.' 3064 | operationId: deploy-by-tag-or-uuid 3065 | parameters: 3066 | - name: tag 3067 | in: query 3068 | description: 'Tag name(s). Comma separated list is also accepted.' 3069 | schema: 3070 | type: string 3071 | - name: uuid 3072 | in: query 3073 | description: 'Resource UUID(s). Comma separated list is also accepted.' 3074 | schema: 3075 | type: string 3076 | - name: force 3077 | in: query 3078 | description: 'Force rebuild (without cache)' 3079 | schema: 3080 | type: boolean 3081 | responses: 3082 | '200': 3083 | description: "Get deployment(s) UUID's" 3084 | content: 3085 | application/json: 3086 | schema: 3087 | properties: 3088 | deployments: 3089 | { 3090 | type: array, 3091 | items: 3092 | { 3093 | properties: 3094 | { 3095 | message: { type: string }, 3096 | resource_uuid: { type: string }, 3097 | deployment_uuid: { type: string }, 3098 | }, 3099 | type: object, 3100 | }, 3101 | } 3102 | type: object 3103 | '401': 3104 | $ref: '#/components/responses/401' 3105 | '400': 3106 | $ref: '#/components/responses/400' 3107 | security: 3108 | - bearerAuth: [] 3109 | /version: 3110 | get: 3111 | summary: Version 3112 | description: 'Get Coolify version.' 3113 | operationId: version 3114 | responses: 3115 | '200': 3116 | description: 'Returns the version of the application' 3117 | content: 3118 | application/json: 3119 | schema: 3120 | type: string 3121 | example: v4.0.0 3122 | '401': 3123 | $ref: '#/components/responses/401' 3124 | '400': 3125 | $ref: '#/components/responses/400' 3126 | security: 3127 | - bearerAuth: [] 3128 | /enable: 3129 | get: 3130 | summary: 'Enable API' 3131 | description: 'Enable API (only with root permissions).' 3132 | operationId: enable-api 3133 | responses: 3134 | '200': 3135 | description: 'Enable API.' 3136 | content: 3137 | application/json: 3138 | schema: 3139 | properties: 3140 | message: { type: string, example: 'API enabled.' } 3141 | type: object 3142 | '403': 3143 | description: 'You are not allowed to enable the API.' 3144 | content: 3145 | application/json: 3146 | schema: 3147 | properties: 3148 | message: { type: string, example: 'You are not allowed to enable the API.' } 3149 | type: object 3150 | '401': 3151 | $ref: '#/components/responses/401' 3152 | '400': 3153 | $ref: '#/components/responses/400' 3154 | security: 3155 | - bearerAuth: [] 3156 | /disable: 3157 | get: 3158 | summary: 'Disable API' 3159 | description: 'Disable API (only with root permissions).' 3160 | operationId: disable-api 3161 | responses: 3162 | '200': 3163 | description: 'Disable API.' 3164 | content: 3165 | application/json: 3166 | schema: 3167 | properties: 3168 | message: { type: string, example: 'API disabled.' } 3169 | type: object 3170 | '403': 3171 | description: 'You are not allowed to disable the API.' 3172 | content: 3173 | application/json: 3174 | schema: 3175 | properties: 3176 | message: { type: string, example: 'You are not allowed to disable the API.' } 3177 | type: object 3178 | '401': 3179 | $ref: '#/components/responses/401' 3180 | '400': 3181 | $ref: '#/components/responses/400' 3182 | security: 3183 | - bearerAuth: [] 3184 | /health: 3185 | get: 3186 | summary: Healthcheck 3187 | description: 'Healthcheck endpoint.' 3188 | operationId: healthcheck 3189 | responses: 3190 | '200': 3191 | description: 'Healthcheck endpoint.' 3192 | content: 3193 | application/json: 3194 | schema: 3195 | type: string 3196 | example: OK 3197 | '401': 3198 | $ref: '#/components/responses/401' 3199 | '400': 3200 | $ref: '#/components/responses/400' 3201 | /projects: 3202 | get: 3203 | tags: 3204 | - Projects 3205 | summary: List 3206 | description: 'List projects.' 3207 | operationId: list-projects 3208 | responses: 3209 | '200': 3210 | description: 'Get all projects.' 3211 | content: 3212 | application/json: 3213 | schema: 3214 | type: array 3215 | items: 3216 | $ref: '#/components/schemas/Project' 3217 | '401': 3218 | $ref: '#/components/responses/401' 3219 | '400': 3220 | $ref: '#/components/responses/400' 3221 | security: 3222 | - bearerAuth: [] 3223 | post: 3224 | tags: 3225 | - Projects 3226 | summary: Create 3227 | description: 'Create Project.' 3228 | operationId: create-project 3229 | requestBody: 3230 | description: 'Project created.' 3231 | required: true 3232 | content: 3233 | application/json: 3234 | schema: 3235 | properties: 3236 | name: 3237 | type: string 3238 | description: 'The name of the project.' 3239 | description: 3240 | type: string 3241 | description: 'The description of the project.' 3242 | type: object 3243 | responses: 3244 | '201': 3245 | description: 'Project created.' 3246 | content: 3247 | application/json: 3248 | schema: 3249 | properties: 3250 | uuid: { type: string, example: og888os, description: 'The UUID of the project.' } 3251 | type: object 3252 | '401': 3253 | $ref: '#/components/responses/401' 3254 | '400': 3255 | $ref: '#/components/responses/400' 3256 | '404': 3257 | $ref: '#/components/responses/404' 3258 | security: 3259 | - bearerAuth: [] 3260 | '/projects/{uuid}': 3261 | get: 3262 | tags: 3263 | - Projects 3264 | summary: Get 3265 | description: 'Get project by UUID.' 3266 | operationId: get-project-by-uuid 3267 | parameters: 3268 | - name: uuid 3269 | in: path 3270 | description: 'Project UUID' 3271 | required: true 3272 | schema: 3273 | type: string 3274 | responses: 3275 | '200': 3276 | description: 'Project details' 3277 | content: 3278 | application/json: 3279 | schema: 3280 | $ref: '#/components/schemas/Project' 3281 | '401': 3282 | $ref: '#/components/responses/401' 3283 | '400': 3284 | $ref: '#/components/responses/400' 3285 | '404': 3286 | description: 'Project not found.' 3287 | security: 3288 | - bearerAuth: [] 3289 | delete: 3290 | tags: 3291 | - Projects 3292 | summary: Delete 3293 | description: 'Delete project by UUID.' 3294 | operationId: delete-project-by-uuid 3295 | parameters: 3296 | - name: uuid 3297 | in: path 3298 | description: 'UUID of the application.' 3299 | required: true 3300 | schema: 3301 | type: string 3302 | format: uuid 3303 | responses: 3304 | '200': 3305 | description: 'Project deleted.' 3306 | content: 3307 | application/json: 3308 | schema: 3309 | properties: 3310 | message: { type: string, example: 'Project deleted.' } 3311 | type: object 3312 | '401': 3313 | $ref: '#/components/responses/401' 3314 | '400': 3315 | $ref: '#/components/responses/400' 3316 | '404': 3317 | $ref: '#/components/responses/404' 3318 | security: 3319 | - bearerAuth: [] 3320 | patch: 3321 | tags: 3322 | - Projects 3323 | summary: Update 3324 | description: 'Update Project.' 3325 | operationId: update-project-by-uuid 3326 | requestBody: 3327 | description: 'Project updated.' 3328 | required: true 3329 | content: 3330 | application/json: 3331 | schema: 3332 | properties: 3333 | name: 3334 | type: string 3335 | description: 'The name of the project.' 3336 | description: 3337 | type: string 3338 | description: 'The description of the project.' 3339 | type: object 3340 | responses: 3341 | '201': 3342 | description: 'Project updated.' 3343 | content: 3344 | application/json: 3345 | schema: 3346 | properties: 3347 | uuid: { type: string, example: og888os } 3348 | name: { type: string, example: 'Project Name' } 3349 | description: { type: string, example: 'Project Description' } 3350 | type: object 3351 | '401': 3352 | $ref: '#/components/responses/401' 3353 | '400': 3354 | $ref: '#/components/responses/400' 3355 | '404': 3356 | $ref: '#/components/responses/404' 3357 | security: 3358 | - bearerAuth: [] 3359 | '/projects/{uuid}/{environment_name_or_uuid}': 3360 | get: 3361 | tags: 3362 | - Projects 3363 | summary: Environment 3364 | description: 'Get environment by name or UUID.' 3365 | operationId: get-environment-by-name-or-uuid 3366 | parameters: 3367 | - name: uuid 3368 | in: path 3369 | description: 'Project UUID' 3370 | required: true 3371 | schema: 3372 | type: string 3373 | - name: environment_name_or_uuid 3374 | in: path 3375 | description: 'Environment name or UUID' 3376 | required: true 3377 | schema: 3378 | type: string 3379 | responses: 3380 | '200': 3381 | description: 'Environment details' 3382 | content: 3383 | application/json: 3384 | schema: 3385 | $ref: '#/components/schemas/Environment' 3386 | '401': 3387 | $ref: '#/components/responses/401' 3388 | '400': 3389 | $ref: '#/components/responses/400' 3390 | '404': 3391 | $ref: '#/components/responses/404' 3392 | security: 3393 | - bearerAuth: [] 3394 | /resources: 3395 | get: 3396 | tags: 3397 | - Resources 3398 | summary: List 3399 | description: 'Get all resources.' 3400 | operationId: list-resources 3401 | responses: 3402 | '200': 3403 | description: 'Get all resources' 3404 | content: 3405 | application/json: 3406 | schema: 3407 | type: string 3408 | example: 'Content is very complex. Will be implemented later.' 3409 | '401': 3410 | $ref: '#/components/responses/401' 3411 | '400': 3412 | $ref: '#/components/responses/400' 3413 | security: 3414 | - bearerAuth: [] 3415 | /security/keys: 3416 | get: 3417 | tags: 3418 | - 'Private Keys' 3419 | summary: List 3420 | description: 'List all private keys.' 3421 | operationId: list-private-keys 3422 | responses: 3423 | '200': 3424 | description: 'Get all private keys.' 3425 | content: 3426 | application/json: 3427 | schema: 3428 | type: array 3429 | items: 3430 | $ref: '#/components/schemas/PrivateKey' 3431 | '401': 3432 | $ref: '#/components/responses/401' 3433 | '400': 3434 | $ref: '#/components/responses/400' 3435 | security: 3436 | - bearerAuth: [] 3437 | post: 3438 | tags: 3439 | - 'Private Keys' 3440 | summary: Create 3441 | description: 'Create a new private key.' 3442 | operationId: create-private-key 3443 | requestBody: 3444 | required: true 3445 | content: 3446 | application/json: 3447 | schema: 3448 | required: 3449 | - private_key 3450 | properties: 3451 | name: 3452 | type: string 3453 | description: 3454 | type: string 3455 | private_key: 3456 | type: string 3457 | type: object 3458 | additionalProperties: false 3459 | responses: 3460 | '201': 3461 | description: "The created private key's UUID." 3462 | content: 3463 | application/json: 3464 | schema: 3465 | properties: 3466 | uuid: { type: string } 3467 | type: object 3468 | '401': 3469 | $ref: '#/components/responses/401' 3470 | '400': 3471 | $ref: '#/components/responses/400' 3472 | security: 3473 | - bearerAuth: [] 3474 | patch: 3475 | tags: 3476 | - 'Private Keys' 3477 | summary: Update 3478 | description: 'Update a private key.' 3479 | operationId: update-private-key 3480 | requestBody: 3481 | required: true 3482 | content: 3483 | application/json: 3484 | schema: 3485 | required: 3486 | - private_key 3487 | properties: 3488 | name: 3489 | type: string 3490 | description: 3491 | type: string 3492 | private_key: 3493 | type: string 3494 | type: object 3495 | additionalProperties: false 3496 | responses: 3497 | '201': 3498 | description: "The updated private key's UUID." 3499 | content: 3500 | application/json: 3501 | schema: 3502 | properties: 3503 | uuid: { type: string } 3504 | type: object 3505 | '401': 3506 | $ref: '#/components/responses/401' 3507 | '400': 3508 | $ref: '#/components/responses/400' 3509 | security: 3510 | - bearerAuth: [] 3511 | '/security/keys/{uuid}': 3512 | get: 3513 | tags: 3514 | - 'Private Keys' 3515 | summary: Get 3516 | description: 'Get key by UUID.' 3517 | operationId: get-private-key-by-uuid 3518 | parameters: 3519 | - name: uuid 3520 | in: path 3521 | description: 'Private Key UUID' 3522 | required: true 3523 | schema: 3524 | type: string 3525 | responses: 3526 | '200': 3527 | description: 'Get all private keys.' 3528 | content: 3529 | application/json: 3530 | schema: 3531 | $ref: '#/components/schemas/PrivateKey' 3532 | '401': 3533 | $ref: '#/components/responses/401' 3534 | '400': 3535 | $ref: '#/components/responses/400' 3536 | '404': 3537 | description: 'Private Key not found.' 3538 | security: 3539 | - bearerAuth: [] 3540 | delete: 3541 | tags: 3542 | - 'Private Keys' 3543 | summary: Delete 3544 | description: 'Delete a private key.' 3545 | operationId: delete-private-key-by-uuid 3546 | parameters: 3547 | - name: uuid 3548 | in: path 3549 | description: 'Private Key UUID' 3550 | required: true 3551 | schema: 3552 | type: string 3553 | responses: 3554 | '200': 3555 | description: 'Private Key deleted.' 3556 | content: 3557 | application/json: 3558 | schema: 3559 | properties: 3560 | message: { type: string, example: 'Private Key deleted.' } 3561 | type: object 3562 | '401': 3563 | $ref: '#/components/responses/401' 3564 | '400': 3565 | $ref: '#/components/responses/400' 3566 | '404': 3567 | description: 'Private Key not found.' 3568 | security: 3569 | - bearerAuth: [] 3570 | /servers: 3571 | get: 3572 | tags: 3573 | - Servers 3574 | summary: List 3575 | description: 'List all servers.' 3576 | operationId: list-servers 3577 | responses: 3578 | '200': 3579 | description: 'Get all servers.' 3580 | content: 3581 | application/json: 3582 | schema: 3583 | type: array 3584 | items: 3585 | $ref: '#/components/schemas/Server' 3586 | '401': 3587 | $ref: '#/components/responses/401' 3588 | '400': 3589 | $ref: '#/components/responses/400' 3590 | security: 3591 | - bearerAuth: [] 3592 | post: 3593 | tags: 3594 | - Servers 3595 | summary: Create 3596 | description: 'Create Server.' 3597 | operationId: create-server 3598 | requestBody: 3599 | description: 'Server created.' 3600 | required: true 3601 | content: 3602 | application/json: 3603 | schema: 3604 | properties: 3605 | name: 3606 | type: string 3607 | example: 'My Server' 3608 | description: 'The name of the server.' 3609 | description: 3610 | type: string 3611 | example: 'My Server Description' 3612 | description: 'The description of the server.' 3613 | ip: 3614 | type: string 3615 | example: 127.0.0.1 3616 | description: 'The IP of the server.' 3617 | port: 3618 | type: integer 3619 | example: 22 3620 | description: 'The port of the server.' 3621 | user: 3622 | type: string 3623 | example: root 3624 | description: 'The user of the server.' 3625 | private_key_uuid: 3626 | type: string 3627 | example: og888os 3628 | description: 'The UUID of the private key.' 3629 | is_build_server: 3630 | type: boolean 3631 | example: false 3632 | description: 'Is build server.' 3633 | instant_validate: 3634 | type: boolean 3635 | example: false 3636 | description: 'Instant validate.' 3637 | proxy_type: 3638 | type: string 3639 | enum: [traefik, caddy, none] 3640 | example: traefik 3641 | description: 'The proxy type.' 3642 | type: object 3643 | responses: 3644 | '201': 3645 | description: 'Server created.' 3646 | content: 3647 | application/json: 3648 | schema: 3649 | properties: 3650 | uuid: { type: string, example: og888os, description: 'The UUID of the server.' } 3651 | type: object 3652 | '401': 3653 | $ref: '#/components/responses/401' 3654 | '400': 3655 | $ref: '#/components/responses/400' 3656 | '404': 3657 | $ref: '#/components/responses/404' 3658 | security: 3659 | - bearerAuth: [] 3660 | '/servers/{uuid}': 3661 | get: 3662 | tags: 3663 | - Servers 3664 | summary: Get 3665 | description: 'Get server by UUID.' 3666 | operationId: get-server-by-uuid 3667 | parameters: 3668 | - name: uuid 3669 | in: path 3670 | description: "Server's UUID" 3671 | required: true 3672 | schema: 3673 | type: string 3674 | responses: 3675 | '200': 3676 | description: 'Get server by UUID' 3677 | content: 3678 | application/json: 3679 | schema: 3680 | $ref: '#/components/schemas/Server' 3681 | '401': 3682 | $ref: '#/components/responses/401' 3683 | '400': 3684 | $ref: '#/components/responses/400' 3685 | '404': 3686 | $ref: '#/components/responses/404' 3687 | security: 3688 | - bearerAuth: [] 3689 | delete: 3690 | tags: 3691 | - Servers 3692 | summary: Delete 3693 | description: 'Delete server by UUID.' 3694 | operationId: delete-server-by-uuid 3695 | parameters: 3696 | - name: uuid 3697 | in: path 3698 | description: 'UUID of the server.' 3699 | required: true 3700 | schema: 3701 | type: string 3702 | format: uuid 3703 | responses: 3704 | '200': 3705 | description: 'Server deleted.' 3706 | content: 3707 | application/json: 3708 | schema: 3709 | properties: 3710 | message: { type: string, example: 'Server deleted.' } 3711 | type: object 3712 | '401': 3713 | $ref: '#/components/responses/401' 3714 | '400': 3715 | $ref: '#/components/responses/400' 3716 | '404': 3717 | $ref: '#/components/responses/404' 3718 | security: 3719 | - bearerAuth: [] 3720 | patch: 3721 | tags: 3722 | - Servers 3723 | summary: Update 3724 | description: 'Update Server.' 3725 | operationId: update-server-by-uuid 3726 | parameters: 3727 | - name: uuid 3728 | in: path 3729 | description: 'Server UUID' 3730 | required: true 3731 | schema: 3732 | type: string 3733 | requestBody: 3734 | description: 'Server updated.' 3735 | required: true 3736 | content: 3737 | application/json: 3738 | schema: 3739 | properties: 3740 | name: 3741 | type: string 3742 | description: 'The name of the server.' 3743 | description: 3744 | type: string 3745 | description: 'The description of the server.' 3746 | ip: 3747 | type: string 3748 | description: 'The IP of the server.' 3749 | port: 3750 | type: integer 3751 | description: 'The port of the server.' 3752 | user: 3753 | type: string 3754 | description: 'The user of the server.' 3755 | private_key_uuid: 3756 | type: string 3757 | description: 'The UUID of the private key.' 3758 | is_build_server: 3759 | type: boolean 3760 | description: 'Is build server.' 3761 | instant_validate: 3762 | type: boolean 3763 | description: 'Instant validate.' 3764 | proxy_type: 3765 | type: string 3766 | enum: [traefik, caddy, none] 3767 | description: 'The proxy type.' 3768 | type: object 3769 | responses: 3770 | '201': 3771 | description: 'Server updated.' 3772 | content: 3773 | application/json: 3774 | schema: 3775 | $ref: '#/components/schemas/Server' 3776 | '401': 3777 | $ref: '#/components/responses/401' 3778 | '400': 3779 | $ref: '#/components/responses/400' 3780 | '404': 3781 | $ref: '#/components/responses/404' 3782 | security: 3783 | - bearerAuth: [] 3784 | '/servers/{uuid}/resources': 3785 | get: 3786 | tags: 3787 | - Servers 3788 | summary: Resources 3789 | description: 'Get resources by server.' 3790 | operationId: get-resources-by-server-uuid 3791 | parameters: 3792 | - name: uuid 3793 | in: path 3794 | description: "Server's UUID" 3795 | required: true 3796 | schema: 3797 | type: string 3798 | responses: 3799 | '200': 3800 | description: 'Get resources by server' 3801 | content: 3802 | application/json: 3803 | schema: 3804 | type: array 3805 | items: 3806 | properties: 3807 | { 3808 | id: { type: integer }, 3809 | uuid: { type: string }, 3810 | name: { type: string }, 3811 | type: { type: string }, 3812 | created_at: { type: string }, 3813 | updated_at: { type: string }, 3814 | status: { type: string }, 3815 | } 3816 | type: object 3817 | '401': 3818 | $ref: '#/components/responses/401' 3819 | '400': 3820 | $ref: '#/components/responses/400' 3821 | security: 3822 | - bearerAuth: [] 3823 | '/servers/{uuid}/domains': 3824 | get: 3825 | tags: 3826 | - Servers 3827 | summary: Domains 3828 | description: 'Get domains by server.' 3829 | operationId: get-domains-by-server-uuid 3830 | parameters: 3831 | - name: uuid 3832 | in: path 3833 | description: "Server's UUID" 3834 | required: true 3835 | schema: 3836 | type: string 3837 | responses: 3838 | '200': 3839 | description: 'Get domains by server' 3840 | content: 3841 | application/json: 3842 | schema: 3843 | type: array 3844 | items: 3845 | properties: 3846 | { ip: { type: string }, domains: { type: array, items: { type: string } } } 3847 | type: object 3848 | '401': 3849 | $ref: '#/components/responses/401' 3850 | '400': 3851 | $ref: '#/components/responses/400' 3852 | security: 3853 | - bearerAuth: [] 3854 | '/servers/{uuid}/validate': 3855 | get: 3856 | tags: 3857 | - Servers 3858 | summary: Validate 3859 | description: 'Validate server by UUID.' 3860 | operationId: validate-server-by-uuid 3861 | parameters: 3862 | - name: uuid 3863 | in: path 3864 | description: 'Server UUID' 3865 | required: true 3866 | schema: 3867 | type: string 3868 | responses: 3869 | '201': 3870 | description: 'Server validation started.' 3871 | content: 3872 | application/json: 3873 | schema: 3874 | properties: 3875 | message: { type: string, example: 'Validation started.' } 3876 | type: object 3877 | '401': 3878 | $ref: '#/components/responses/401' 3879 | '400': 3880 | $ref: '#/components/responses/400' 3881 | '404': 3882 | $ref: '#/components/responses/404' 3883 | security: 3884 | - bearerAuth: [] 3885 | /services: 3886 | get: 3887 | tags: 3888 | - Services 3889 | summary: List 3890 | description: 'List all services.' 3891 | operationId: list-services 3892 | responses: 3893 | '200': 3894 | description: 'Get all services' 3895 | content: 3896 | application/json: 3897 | schema: 3898 | type: array 3899 | items: 3900 | $ref: '#/components/schemas/Service' 3901 | '401': 3902 | $ref: '#/components/responses/401' 3903 | '400': 3904 | $ref: '#/components/responses/400' 3905 | security: 3906 | - bearerAuth: [] 3907 | post: 3908 | tags: 3909 | - Services 3910 | summary: Create 3911 | description: 'Create a one-click service' 3912 | operationId: create-service 3913 | requestBody: 3914 | required: true 3915 | content: 3916 | application/json: 3917 | schema: 3918 | required: 3919 | - server_uuid 3920 | - project_uuid 3921 | - environment_name 3922 | - environment_uuid 3923 | - type 3924 | properties: 3925 | type: 3926 | description: 'The one-click service type' 3927 | type: string 3928 | enum: 3929 | [ 3930 | activepieces, 3931 | appsmith, 3932 | appwrite, 3933 | authentik, 3934 | babybuddy, 3935 | budge, 3936 | changedetection, 3937 | chatwoot, 3938 | classicpress-with-mariadb, 3939 | classicpress-with-mysql, 3940 | classicpress-without-database, 3941 | cloudflared, 3942 | code-server, 3943 | dashboard, 3944 | directus, 3945 | directus-with-postgresql, 3946 | docker-registry, 3947 | docuseal, 3948 | docuseal-with-postgres, 3949 | dokuwiki, 3950 | duplicati, 3951 | emby, 3952 | embystat, 3953 | fider, 3954 | filebrowser, 3955 | firefly, 3956 | formbricks, 3957 | ghost, 3958 | gitea, 3959 | gitea-with-mariadb, 3960 | gitea-with-mysql, 3961 | gitea-with-postgresql, 3962 | glance, 3963 | glances, 3964 | glitchtip, 3965 | grafana, 3966 | grafana-with-postgresql, 3967 | grocy, 3968 | heimdall, 3969 | homepage, 3970 | jellyfin, 3971 | kuzzle, 3972 | listmonk, 3973 | logto, 3974 | mediawiki, 3975 | meilisearch, 3976 | metabase, 3977 | metube, 3978 | minio, 3979 | moodle, 3980 | n8n, 3981 | n8n-with-postgresql, 3982 | next-image-transformation, 3983 | nextcloud, 3984 | nocodb, 3985 | odoo, 3986 | openblocks, 3987 | pairdrop, 3988 | penpot, 3989 | phpmyadmin, 3990 | pocketbase, 3991 | posthog, 3992 | reactive-resume, 3993 | rocketchat, 3994 | shlink, 3995 | slash, 3996 | snapdrop, 3997 | statusnook, 3998 | stirling-pdf, 3999 | supabase, 4000 | syncthing, 4001 | tolgee, 4002 | trigger, 4003 | trigger-with-external-database, 4004 | twenty, 4005 | umami, 4006 | unleash-with-postgresql, 4007 | unleash-without-database, 4008 | uptime-kuma, 4009 | vaultwarden, 4010 | vikunja, 4011 | weblate, 4012 | whoogle, 4013 | wordpress-with-mariadb, 4014 | wordpress-with-mysql, 4015 | wordpress-without-database, 4016 | ] 4017 | name: 4018 | type: string 4019 | maxLength: 255 4020 | description: 'Name of the service.' 4021 | description: 4022 | type: string 4023 | nullable: true 4024 | description: 'Description of the service.' 4025 | project_uuid: 4026 | type: string 4027 | description: 'Project UUID.' 4028 | environment_name: 4029 | type: string 4030 | description: 'Environment name. You need to provide at least one of environment_name or environment_uuid.' 4031 | environment_uuid: 4032 | type: string 4033 | description: 'Environment UUID. You need to provide at least one of environment_name or environment_uuid.' 4034 | server_uuid: 4035 | type: string 4036 | description: 'Server UUID.' 4037 | destination_uuid: 4038 | type: string 4039 | description: 'Destination UUID. Required if server has multiple destinations.' 4040 | instant_deploy: 4041 | type: boolean 4042 | default: false 4043 | description: 'Start the service immediately after creation.' 4044 | type: object 4045 | responses: 4046 | '201': 4047 | description: 'Create a service.' 4048 | content: 4049 | application/json: 4050 | schema: 4051 | properties: 4052 | uuid: { type: string, description: 'Service UUID.' } 4053 | domains: { type: array, items: { type: string }, description: 'Service domains.' } 4054 | type: object 4055 | '401': 4056 | $ref: '#/components/responses/401' 4057 | '400': 4058 | $ref: '#/components/responses/400' 4059 | security: 4060 | - bearerAuth: [] 4061 | '/services/{uuid}': 4062 | get: 4063 | tags: 4064 | - Services 4065 | summary: Get 4066 | description: 'Get service by UUID.' 4067 | operationId: get-service-by-uuid 4068 | parameters: 4069 | - name: uuid 4070 | in: path 4071 | description: 'Service UUID' 4072 | required: true 4073 | schema: 4074 | type: string 4075 | responses: 4076 | '200': 4077 | description: 'Get a service by UUID.' 4078 | content: 4079 | application/json: 4080 | schema: 4081 | $ref: '#/components/schemas/Service' 4082 | '401': 4083 | $ref: '#/components/responses/401' 4084 | '400': 4085 | $ref: '#/components/responses/400' 4086 | '404': 4087 | $ref: '#/components/responses/404' 4088 | security: 4089 | - bearerAuth: [] 4090 | delete: 4091 | tags: 4092 | - Services 4093 | summary: Delete 4094 | description: 'Delete service by UUID.' 4095 | operationId: delete-service-by-uuid 4096 | parameters: 4097 | - name: uuid 4098 | in: path 4099 | description: 'Service UUID' 4100 | required: true 4101 | schema: 4102 | type: string 4103 | - name: delete_configurations 4104 | in: query 4105 | description: 'Delete configurations.' 4106 | required: false 4107 | schema: 4108 | type: boolean 4109 | default: true 4110 | - name: delete_volumes 4111 | in: query 4112 | description: 'Delete volumes.' 4113 | required: false 4114 | schema: 4115 | type: boolean 4116 | default: true 4117 | - name: docker_cleanup 4118 | in: query 4119 | description: 'Run docker cleanup.' 4120 | required: false 4121 | schema: 4122 | type: boolean 4123 | default: true 4124 | - name: delete_connected_networks 4125 | in: query 4126 | description: 'Delete connected networks.' 4127 | required: false 4128 | schema: 4129 | type: boolean 4130 | default: true 4131 | responses: 4132 | '200': 4133 | description: 'Delete a service by UUID' 4134 | content: 4135 | application/json: 4136 | schema: 4137 | properties: 4138 | message: { type: string, example: 'Service deletion request queued.' } 4139 | type: object 4140 | '401': 4141 | $ref: '#/components/responses/401' 4142 | '400': 4143 | $ref: '#/components/responses/400' 4144 | '404': 4145 | $ref: '#/components/responses/404' 4146 | security: 4147 | - bearerAuth: [] 4148 | '/services/{uuid}/envs': 4149 | get: 4150 | tags: 4151 | - Services 4152 | summary: 'List Envs' 4153 | description: 'List all envs by service UUID.' 4154 | operationId: list-envs-by-service-uuid 4155 | parameters: 4156 | - name: uuid 4157 | in: path 4158 | description: 'UUID of the service.' 4159 | required: true 4160 | schema: 4161 | type: string 4162 | format: uuid 4163 | responses: 4164 | '200': 4165 | description: 'All environment variables by service UUID.' 4166 | content: 4167 | application/json: 4168 | schema: 4169 | type: array 4170 | items: 4171 | $ref: '#/components/schemas/EnvironmentVariable' 4172 | '401': 4173 | $ref: '#/components/responses/401' 4174 | '400': 4175 | $ref: '#/components/responses/400' 4176 | '404': 4177 | $ref: '#/components/responses/404' 4178 | security: 4179 | - bearerAuth: [] 4180 | post: 4181 | tags: 4182 | - Services 4183 | summary: 'Create Env' 4184 | description: 'Create env by service UUID.' 4185 | operationId: create-env-by-service-uuid 4186 | parameters: 4187 | - name: uuid 4188 | in: path 4189 | description: 'UUID of the service.' 4190 | required: true 4191 | schema: 4192 | type: string 4193 | format: uuid 4194 | requestBody: 4195 | description: 'Env created.' 4196 | required: true 4197 | content: 4198 | application/json: 4199 | schema: 4200 | properties: 4201 | key: 4202 | type: string 4203 | description: 'The key of the environment variable.' 4204 | value: 4205 | type: string 4206 | description: 'The value of the environment variable.' 4207 | is_preview: 4208 | type: boolean 4209 | description: 'The flag to indicate if the environment variable is used in preview deployments.' 4210 | is_build_time: 4211 | type: boolean 4212 | description: 'The flag to indicate if the environment variable is used in build time.' 4213 | is_literal: 4214 | type: boolean 4215 | description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' 4216 | is_multiline: 4217 | type: boolean 4218 | description: 'The flag to indicate if the environment variable is multiline.' 4219 | is_shown_once: 4220 | type: boolean 4221 | description: "The flag to indicate if the environment variable's value is shown on the UI." 4222 | type: object 4223 | responses: 4224 | '201': 4225 | description: 'Environment variable created.' 4226 | content: 4227 | application/json: 4228 | schema: 4229 | properties: 4230 | uuid: { type: string, example: nc0k04gk8g0cgsk440g0koko } 4231 | type: object 4232 | '401': 4233 | $ref: '#/components/responses/401' 4234 | '400': 4235 | $ref: '#/components/responses/400' 4236 | '404': 4237 | $ref: '#/components/responses/404' 4238 | security: 4239 | - bearerAuth: [] 4240 | patch: 4241 | tags: 4242 | - Services 4243 | summary: 'Update Env' 4244 | description: 'Update env by service UUID.' 4245 | operationId: update-env-by-service-uuid 4246 | parameters: 4247 | - name: uuid 4248 | in: path 4249 | description: 'UUID of the service.' 4250 | required: true 4251 | schema: 4252 | type: string 4253 | format: uuid 4254 | requestBody: 4255 | description: 'Env updated.' 4256 | required: true 4257 | content: 4258 | application/json: 4259 | schema: 4260 | required: 4261 | - key 4262 | - value 4263 | properties: 4264 | key: 4265 | type: string 4266 | description: 'The key of the environment variable.' 4267 | value: 4268 | type: string 4269 | description: 'The value of the environment variable.' 4270 | is_preview: 4271 | type: boolean 4272 | description: 'The flag to indicate if the environment variable is used in preview deployments.' 4273 | is_build_time: 4274 | type: boolean 4275 | description: 'The flag to indicate if the environment variable is used in build time.' 4276 | is_literal: 4277 | type: boolean 4278 | description: 'The flag to indicate if the environment variable is a literal, nothing espaced.' 4279 | is_multiline: 4280 | type: boolean 4281 | description: 'The flag to indicate if the environment variable is multiline.' 4282 | is_shown_once: 4283 | type: boolean 4284 | description: "The flag to indicate if the environment variable's value is shown on the UI." 4285 | type: object 4286 | responses: 4287 | '201': 4288 | description: 'Environment variable updated.' 4289 | content: 4290 | application/json: 4291 | schema: 4292 | properties: 4293 | message: { type: string, example: 'Environment variable updated.' } 4294 | type: object 4295 | '401': 4296 | $ref: '#/components/responses/401' 4297 | '400': 4298 | $ref: '#/components/responses/400' 4299 | '404': 4300 | $ref: '#/components/responses/404' 4301 | security: 4302 | - bearerAuth: [] 4303 | '/services/{uuid}/envs/bulk': 4304 | patch: 4305 | tags: 4306 | - Services 4307 | summary: 'Update Envs (Bulk)' 4308 | description: 'Update multiple envs by service UUID.' 4309 | operationId: update-envs-by-service-uuid 4310 | parameters: 4311 | - name: uuid 4312 | in: path 4313 | description: 'UUID of the service.' 4314 | required: true 4315 | schema: 4316 | type: string 4317 | format: uuid 4318 | requestBody: 4319 | description: 'Bulk envs updated.' 4320 | required: true 4321 | content: 4322 | application/json: 4323 | schema: 4324 | required: 4325 | - data 4326 | properties: 4327 | data: 4328 | type: array 4329 | items: 4330 | { 4331 | properties: 4332 | { 4333 | key: 4334 | { type: string, description: 'The key of the environment variable.' }, 4335 | value: 4336 | { type: string, description: 'The value of the environment variable.' }, 4337 | is_preview: 4338 | { 4339 | type: boolean, 4340 | description: 'The flag to indicate if the environment variable is used in preview deployments.', 4341 | }, 4342 | is_build_time: 4343 | { 4344 | type: boolean, 4345 | description: 'The flag to indicate if the environment variable is used in build time.', 4346 | }, 4347 | is_literal: 4348 | { 4349 | type: boolean, 4350 | description: 'The flag to indicate if the environment variable is a literal, nothing espaced.', 4351 | }, 4352 | is_multiline: 4353 | { 4354 | type: boolean, 4355 | description: 'The flag to indicate if the environment variable is multiline.', 4356 | }, 4357 | is_shown_once: 4358 | { 4359 | type: boolean, 4360 | description: "The flag to indicate if the environment variable's value is shown on the UI.", 4361 | }, 4362 | }, 4363 | type: object, 4364 | } 4365 | type: object 4366 | responses: 4367 | '201': 4368 | description: 'Environment variables updated.' 4369 | content: 4370 | application/json: 4371 | schema: 4372 | properties: 4373 | message: { type: string, example: 'Environment variables updated.' } 4374 | type: object 4375 | '401': 4376 | $ref: '#/components/responses/401' 4377 | '400': 4378 | $ref: '#/components/responses/400' 4379 | '404': 4380 | $ref: '#/components/responses/404' 4381 | security: 4382 | - bearerAuth: [] 4383 | '/services/{uuid}/envs/{env_uuid}': 4384 | delete: 4385 | tags: 4386 | - Services 4387 | summary: 'Delete Env' 4388 | description: 'Delete env by UUID.' 4389 | operationId: delete-env-by-service-uuid 4390 | parameters: 4391 | - name: uuid 4392 | in: path 4393 | description: 'UUID of the service.' 4394 | required: true 4395 | schema: 4396 | type: string 4397 | format: uuid 4398 | - name: env_uuid 4399 | in: path 4400 | description: 'UUID of the environment variable.' 4401 | required: true 4402 | schema: 4403 | type: string 4404 | format: uuid 4405 | responses: 4406 | '200': 4407 | description: 'Environment variable deleted.' 4408 | content: 4409 | application/json: 4410 | schema: 4411 | properties: 4412 | message: { type: string, example: 'Environment variable deleted.' } 4413 | type: object 4414 | '401': 4415 | $ref: '#/components/responses/401' 4416 | '400': 4417 | $ref: '#/components/responses/400' 4418 | '404': 4419 | $ref: '#/components/responses/404' 4420 | security: 4421 | - bearerAuth: [] 4422 | '/services/{uuid}/start': 4423 | get: 4424 | tags: 4425 | - Services 4426 | summary: Start 4427 | description: 'Start service. `Post` request is also accepted.' 4428 | operationId: start-service-by-uuid 4429 | parameters: 4430 | - name: uuid 4431 | in: path 4432 | description: 'UUID of the service.' 4433 | required: true 4434 | schema: 4435 | type: string 4436 | format: uuid 4437 | responses: 4438 | '200': 4439 | description: 'Start service.' 4440 | content: 4441 | application/json: 4442 | schema: 4443 | properties: 4444 | message: { type: string, example: 'Service starting request queued.' } 4445 | type: object 4446 | '401': 4447 | $ref: '#/components/responses/401' 4448 | '400': 4449 | $ref: '#/components/responses/400' 4450 | '404': 4451 | $ref: '#/components/responses/404' 4452 | security: 4453 | - bearerAuth: [] 4454 | '/services/{uuid}/stop': 4455 | get: 4456 | tags: 4457 | - Services 4458 | summary: Stop 4459 | description: 'Stop service. `Post` request is also accepted.' 4460 | operationId: stop-service-by-uuid 4461 | parameters: 4462 | - name: uuid 4463 | in: path 4464 | description: 'UUID of the service.' 4465 | required: true 4466 | schema: 4467 | type: string 4468 | format: uuid 4469 | responses: 4470 | '200': 4471 | description: 'Stop service.' 4472 | content: 4473 | application/json: 4474 | schema: 4475 | properties: 4476 | message: { type: string, example: 'Service stopping request queued.' } 4477 | type: object 4478 | '401': 4479 | $ref: '#/components/responses/401' 4480 | '400': 4481 | $ref: '#/components/responses/400' 4482 | '404': 4483 | $ref: '#/components/responses/404' 4484 | security: 4485 | - bearerAuth: [] 4486 | '/services/{uuid}/restart': 4487 | get: 4488 | tags: 4489 | - Services 4490 | summary: Restart 4491 | description: 'Restart service. `Post` request is also accepted.' 4492 | operationId: restart-service-by-uuid 4493 | parameters: 4494 | - name: uuid 4495 | in: path 4496 | description: 'UUID of the service.' 4497 | required: true 4498 | schema: 4499 | type: string 4500 | format: uuid 4501 | responses: 4502 | '200': 4503 | description: 'Restart service.' 4504 | content: 4505 | application/json: 4506 | schema: 4507 | properties: 4508 | message: { type: string, example: 'Service restaring request queued.' } 4509 | type: object 4510 | '401': 4511 | $ref: '#/components/responses/401' 4512 | '400': 4513 | $ref: '#/components/responses/400' 4514 | '404': 4515 | $ref: '#/components/responses/404' 4516 | security: 4517 | - bearerAuth: [] 4518 | /teams: 4519 | get: 4520 | tags: 4521 | - Teams 4522 | summary: List 4523 | description: 'Get all teams.' 4524 | operationId: list-teams 4525 | responses: 4526 | '200': 4527 | description: 'List of teams.' 4528 | content: 4529 | application/json: 4530 | schema: 4531 | type: array 4532 | items: 4533 | $ref: '#/components/schemas/Team' 4534 | '401': 4535 | $ref: '#/components/responses/401' 4536 | '400': 4537 | $ref: '#/components/responses/400' 4538 | security: 4539 | - bearerAuth: [] 4540 | '/teams/{id}': 4541 | get: 4542 | tags: 4543 | - Teams 4544 | summary: Get 4545 | description: 'Get team by TeamId.' 4546 | operationId: get-team-by-id 4547 | parameters: 4548 | - name: id 4549 | in: path 4550 | description: 'Team ID' 4551 | required: true 4552 | schema: 4553 | type: integer 4554 | responses: 4555 | '200': 4556 | description: 'List of teams.' 4557 | content: 4558 | application/json: 4559 | schema: 4560 | $ref: '#/components/schemas/Team' 4561 | '401': 4562 | $ref: '#/components/responses/401' 4563 | '400': 4564 | $ref: '#/components/responses/400' 4565 | '404': 4566 | $ref: '#/components/responses/404' 4567 | security: 4568 | - bearerAuth: [] 4569 | '/teams/{id}/members': 4570 | get: 4571 | tags: 4572 | - Teams 4573 | summary: Members 4574 | description: 'Get members by TeamId.' 4575 | operationId: get-members-by-team-id 4576 | parameters: 4577 | - name: id 4578 | in: path 4579 | description: 'Team ID' 4580 | required: true 4581 | schema: 4582 | type: integer 4583 | responses: 4584 | '200': 4585 | description: 'List of members.' 4586 | content: 4587 | application/json: 4588 | schema: 4589 | type: array 4590 | items: 4591 | $ref: '#/components/schemas/User' 4592 | '401': 4593 | $ref: '#/components/responses/401' 4594 | '400': 4595 | $ref: '#/components/responses/400' 4596 | '404': 4597 | $ref: '#/components/responses/404' 4598 | security: 4599 | - bearerAuth: [] 4600 | /teams/current: 4601 | get: 4602 | tags: 4603 | - Teams 4604 | summary: 'Authenticated Team' 4605 | description: 'Get currently authenticated team.' 4606 | operationId: get-current-team 4607 | responses: 4608 | '200': 4609 | description: 'Current Team.' 4610 | content: 4611 | application/json: 4612 | schema: 4613 | $ref: '#/components/schemas/Team' 4614 | '401': 4615 | $ref: '#/components/responses/401' 4616 | '400': 4617 | $ref: '#/components/responses/400' 4618 | security: 4619 | - bearerAuth: [] 4620 | /teams/current/members: 4621 | get: 4622 | tags: 4623 | - Teams 4624 | summary: 'Authenticated Team Members' 4625 | description: 'Get currently authenticated team members.' 4626 | operationId: get-current-team-members 4627 | responses: 4628 | '200': 4629 | description: 'Currently authenticated team members.' 4630 | content: 4631 | application/json: 4632 | schema: 4633 | type: array 4634 | items: 4635 | $ref: '#/components/schemas/User' 4636 | '401': 4637 | $ref: '#/components/responses/401' 4638 | '400': 4639 | $ref: '#/components/responses/400' 4640 | security: 4641 | - bearerAuth: [] 4642 | components: 4643 | schemas: 4644 | Application: 4645 | description: 'Application model' 4646 | properties: 4647 | id: 4648 | type: integer 4649 | description: 'The application identifier in the database.' 4650 | description: 4651 | type: string 4652 | nullable: true 4653 | description: 'The application description.' 4654 | repository_project_id: 4655 | type: integer 4656 | nullable: true 4657 | description: 'The repository project identifier.' 4658 | uuid: 4659 | type: string 4660 | description: 'The application UUID.' 4661 | name: 4662 | type: string 4663 | description: 'The application name.' 4664 | fqdn: 4665 | type: string 4666 | nullable: true 4667 | description: 'The application domains.' 4668 | config_hash: 4669 | type: string 4670 | description: 'Configuration hash.' 4671 | git_repository: 4672 | type: string 4673 | description: 'Git repository URL.' 4674 | git_branch: 4675 | type: string 4676 | description: 'Git branch.' 4677 | git_commit_sha: 4678 | type: string 4679 | description: 'Git commit SHA.' 4680 | git_full_url: 4681 | type: string 4682 | nullable: true 4683 | description: 'Git full URL.' 4684 | docker_registry_image_name: 4685 | type: string 4686 | nullable: true 4687 | description: 'Docker registry image name.' 4688 | docker_registry_image_tag: 4689 | type: string 4690 | nullable: true 4691 | description: 'Docker registry image tag.' 4692 | build_pack: 4693 | type: string 4694 | description: 'Build pack.' 4695 | enum: 4696 | - nixpacks 4697 | - static 4698 | - dockerfile 4699 | - dockercompose 4700 | static_image: 4701 | type: string 4702 | description: 'Static image used when static site is deployed.' 4703 | install_command: 4704 | type: string 4705 | description: 'Install command.' 4706 | build_command: 4707 | type: string 4708 | description: 'Build command.' 4709 | start_command: 4710 | type: string 4711 | description: 'Start command.' 4712 | ports_exposes: 4713 | type: string 4714 | description: 'Ports exposes.' 4715 | ports_mappings: 4716 | type: string 4717 | nullable: true 4718 | description: 'Ports mappings.' 4719 | base_directory: 4720 | type: string 4721 | description: 'Base directory for all commands.' 4722 | publish_directory: 4723 | type: string 4724 | description: 'Publish directory.' 4725 | health_check_enabled: 4726 | type: boolean 4727 | description: 'Health check enabled.' 4728 | health_check_path: 4729 | type: string 4730 | description: 'Health check path.' 4731 | health_check_port: 4732 | type: string 4733 | nullable: true 4734 | description: 'Health check port.' 4735 | health_check_host: 4736 | type: string 4737 | nullable: true 4738 | description: 'Health check host.' 4739 | health_check_method: 4740 | type: string 4741 | description: 'Health check method.' 4742 | health_check_return_code: 4743 | type: integer 4744 | description: 'Health check return code.' 4745 | health_check_scheme: 4746 | type: string 4747 | description: 'Health check scheme.' 4748 | health_check_response_text: 4749 | type: string 4750 | nullable: true 4751 | description: 'Health check response text.' 4752 | health_check_interval: 4753 | type: integer 4754 | description: 'Health check interval in seconds.' 4755 | health_check_timeout: 4756 | type: integer 4757 | description: 'Health check timeout in seconds.' 4758 | health_check_retries: 4759 | type: integer 4760 | description: 'Health check retries count.' 4761 | health_check_start_period: 4762 | type: integer 4763 | description: 'Health check start period in seconds.' 4764 | limits_memory: 4765 | type: string 4766 | description: 'Memory limit.' 4767 | limits_memory_swap: 4768 | type: string 4769 | description: 'Memory swap limit.' 4770 | limits_memory_swappiness: 4771 | type: integer 4772 | description: 'Memory swappiness.' 4773 | limits_memory_reservation: 4774 | type: string 4775 | description: 'Memory reservation.' 4776 | limits_cpus: 4777 | type: string 4778 | description: 'CPU limit.' 4779 | limits_cpuset: 4780 | type: string 4781 | nullable: true 4782 | description: 'CPU set.' 4783 | limits_cpu_shares: 4784 | type: integer 4785 | description: 'CPU shares.' 4786 | status: 4787 | type: string 4788 | description: 'Application status.' 4789 | preview_url_template: 4790 | type: string 4791 | description: 'Preview URL template.' 4792 | destination_type: 4793 | type: string 4794 | description: 'Destination type.' 4795 | destination_id: 4796 | type: integer 4797 | description: 'Destination identifier.' 4798 | source_id: 4799 | type: integer 4800 | nullable: true 4801 | description: 'Source identifier.' 4802 | private_key_id: 4803 | type: integer 4804 | nullable: true 4805 | description: 'Private key identifier.' 4806 | environment_id: 4807 | type: integer 4808 | description: 'Environment identifier.' 4809 | dockerfile: 4810 | type: string 4811 | nullable: true 4812 | description: 'Dockerfile content. Used for dockerfile build pack.' 4813 | dockerfile_location: 4814 | type: string 4815 | description: 'Dockerfile location.' 4816 | custom_labels: 4817 | type: string 4818 | nullable: true 4819 | description: 'Custom labels.' 4820 | dockerfile_target_build: 4821 | type: string 4822 | nullable: true 4823 | description: 'Dockerfile target build.' 4824 | manual_webhook_secret_github: 4825 | type: string 4826 | nullable: true 4827 | description: 'Manual webhook secret for GitHub.' 4828 | manual_webhook_secret_gitlab: 4829 | type: string 4830 | nullable: true 4831 | description: 'Manual webhook secret for GitLab.' 4832 | manual_webhook_secret_bitbucket: 4833 | type: string 4834 | nullable: true 4835 | description: 'Manual webhook secret for Bitbucket.' 4836 | manual_webhook_secret_gitea: 4837 | type: string 4838 | nullable: true 4839 | description: 'Manual webhook secret for Gitea.' 4840 | docker_compose_location: 4841 | type: string 4842 | description: 'Docker compose location.' 4843 | docker_compose: 4844 | type: string 4845 | nullable: true 4846 | description: 'Docker compose content. Used for docker compose build pack.' 4847 | docker_compose_raw: 4848 | type: string 4849 | nullable: true 4850 | description: 'Docker compose raw content.' 4851 | docker_compose_domains: 4852 | type: string 4853 | nullable: true 4854 | description: 'Docker compose domains.' 4855 | docker_compose_custom_start_command: 4856 | type: string 4857 | nullable: true 4858 | description: 'Docker compose custom start command.' 4859 | docker_compose_custom_build_command: 4860 | type: string 4861 | nullable: true 4862 | description: 'Docker compose custom build command.' 4863 | swarm_replicas: 4864 | type: integer 4865 | nullable: true 4866 | description: 'Swarm replicas. Only used for swarm deployments.' 4867 | swarm_placement_constraints: 4868 | type: string 4869 | nullable: true 4870 | description: 'Swarm placement constraints. Only used for swarm deployments.' 4871 | custom_docker_run_options: 4872 | type: string 4873 | nullable: true 4874 | description: 'Custom docker run options.' 4875 | post_deployment_command: 4876 | type: string 4877 | nullable: true 4878 | description: 'Post deployment command.' 4879 | post_deployment_command_container: 4880 | type: string 4881 | nullable: true 4882 | description: 'Post deployment command container.' 4883 | pre_deployment_command: 4884 | type: string 4885 | nullable: true 4886 | description: 'Pre deployment command.' 4887 | pre_deployment_command_container: 4888 | type: string 4889 | nullable: true 4890 | description: 'Pre deployment command container.' 4891 | watch_paths: 4892 | type: string 4893 | nullable: true 4894 | description: 'Watch paths.' 4895 | custom_healthcheck_found: 4896 | type: boolean 4897 | description: 'Custom healthcheck found.' 4898 | redirect: 4899 | type: string 4900 | nullable: true 4901 | description: 'How to set redirect with Traefik / Caddy. www<->non-www.' 4902 | enum: 4903 | - www 4904 | - non-www 4905 | - both 4906 | created_at: 4907 | type: string 4908 | format: date-time 4909 | description: 'The date and time when the application was created.' 4910 | updated_at: 4911 | type: string 4912 | format: date-time 4913 | description: 'The date and time when the application was last updated.' 4914 | deleted_at: 4915 | type: string 4916 | format: date-time 4917 | nullable: true 4918 | description: 'The date and time when the application was deleted.' 4919 | compose_parsing_version: 4920 | type: string 4921 | description: 'How Coolify parse the compose file.' 4922 | custom_nginx_configuration: 4923 | type: string 4924 | nullable: true 4925 | description: 'Custom Nginx configuration base64 encoded.' 4926 | type: object 4927 | ApplicationDeploymentQueue: 4928 | description: 'Project model' 4929 | properties: 4930 | id: 4931 | type: integer 4932 | application_id: 4933 | type: string 4934 | deployment_uuid: 4935 | type: string 4936 | pull_request_id: 4937 | type: integer 4938 | force_rebuild: 4939 | type: boolean 4940 | commit: 4941 | type: string 4942 | status: 4943 | type: string 4944 | is_webhook: 4945 | type: boolean 4946 | is_api: 4947 | type: boolean 4948 | created_at: 4949 | type: string 4950 | updated_at: 4951 | type: string 4952 | logs: 4953 | type: string 4954 | current_process_id: 4955 | type: string 4956 | restart_only: 4957 | type: boolean 4958 | git_type: 4959 | type: string 4960 | server_id: 4961 | type: integer 4962 | application_name: 4963 | type: string 4964 | server_name: 4965 | type: string 4966 | deployment_url: 4967 | type: string 4968 | destination_id: 4969 | type: string 4970 | only_this_server: 4971 | type: boolean 4972 | rollback: 4973 | type: boolean 4974 | commit_message: 4975 | type: string 4976 | type: object 4977 | Environment: 4978 | description: 'Environment model' 4979 | properties: 4980 | id: 4981 | type: integer 4982 | name: 4983 | type: string 4984 | project_id: 4985 | type: integer 4986 | created_at: 4987 | type: string 4988 | updated_at: 4989 | type: string 4990 | description: 4991 | type: string 4992 | type: object 4993 | EnvironmentVariable: 4994 | description: 'Environment Variable model' 4995 | properties: 4996 | id: 4997 | type: integer 4998 | uuid: 4999 | type: string 5000 | resourceable_type: 5001 | type: string 5002 | resourceable_id: 5003 | type: integer 5004 | is_build_time: 5005 | type: boolean 5006 | is_literal: 5007 | type: boolean 5008 | is_multiline: 5009 | type: boolean 5010 | is_preview: 5011 | type: boolean 5012 | is_shared: 5013 | type: boolean 5014 | is_shown_once: 5015 | type: boolean 5016 | key: 5017 | type: string 5018 | value: 5019 | type: string 5020 | real_value: 5021 | type: string 5022 | version: 5023 | type: string 5024 | created_at: 5025 | type: string 5026 | updated_at: 5027 | type: string 5028 | type: object 5029 | PrivateKey: 5030 | description: 'Private Key model' 5031 | properties: 5032 | id: 5033 | type: integer 5034 | uuid: 5035 | type: string 5036 | name: 5037 | type: string 5038 | description: 5039 | type: string 5040 | private_key: 5041 | type: string 5042 | format: private-key 5043 | is_git_related: 5044 | type: boolean 5045 | team_id: 5046 | type: integer 5047 | created_at: 5048 | type: string 5049 | updated_at: 5050 | type: string 5051 | type: object 5052 | Project: 5053 | description: 'Project model' 5054 | properties: 5055 | id: 5056 | type: integer 5057 | uuid: 5058 | type: string 5059 | name: 5060 | type: string 5061 | description: 5062 | type: string 5063 | environments: 5064 | description: 'The environments of the project.' 5065 | type: array 5066 | items: 5067 | $ref: '#/components/schemas/Environment' 5068 | type: object 5069 | Server: 5070 | description: 'Server model' 5071 | properties: 5072 | id: 5073 | type: integer 5074 | description: 'The server ID.' 5075 | uuid: 5076 | type: string 5077 | description: 'The server UUID.' 5078 | name: 5079 | type: string 5080 | description: 'The server name.' 5081 | description: 5082 | type: string 5083 | description: 'The server description.' 5084 | ip: 5085 | type: string 5086 | description: 'The IP address.' 5087 | user: 5088 | type: string 5089 | description: 'The user.' 5090 | port: 5091 | type: integer 5092 | description: 'The port number.' 5093 | proxy: 5094 | type: object 5095 | description: 'The proxy configuration.' 5096 | proxy_type: 5097 | type: string 5098 | enum: 5099 | - traefik 5100 | - caddy 5101 | - none 5102 | description: 'The proxy type.' 5103 | high_disk_usage_notification_sent: 5104 | type: boolean 5105 | description: 'The flag to indicate if the high disk usage notification has been sent.' 5106 | unreachable_notification_sent: 5107 | type: boolean 5108 | description: 'The flag to indicate if the unreachable notification has been sent.' 5109 | unreachable_count: 5110 | type: integer 5111 | description: 'The unreachable count for your server.' 5112 | validation_logs: 5113 | type: string 5114 | description: 'The validation logs.' 5115 | log_drain_notification_sent: 5116 | type: boolean 5117 | description: 'The flag to indicate if the log drain notification has been sent.' 5118 | swarm_cluster: 5119 | type: string 5120 | description: 'The swarm cluster configuration.' 5121 | settings: 5122 | $ref: '#/components/schemas/ServerSetting' 5123 | type: object 5124 | ServerSetting: 5125 | description: 'Server Settings model' 5126 | properties: 5127 | id: 5128 | type: integer 5129 | concurrent_builds: 5130 | type: integer 5131 | dynamic_timeout: 5132 | type: integer 5133 | force_disabled: 5134 | type: boolean 5135 | force_server_cleanup: 5136 | type: boolean 5137 | is_build_server: 5138 | type: boolean 5139 | is_cloudflare_tunnel: 5140 | type: boolean 5141 | is_jump_server: 5142 | type: boolean 5143 | is_logdrain_axiom_enabled: 5144 | type: boolean 5145 | is_logdrain_custom_enabled: 5146 | type: boolean 5147 | is_logdrain_highlight_enabled: 5148 | type: boolean 5149 | is_logdrain_newrelic_enabled: 5150 | type: boolean 5151 | is_metrics_enabled: 5152 | type: boolean 5153 | is_reachable: 5154 | type: boolean 5155 | is_sentinel_enabled: 5156 | type: boolean 5157 | is_swarm_manager: 5158 | type: boolean 5159 | is_swarm_worker: 5160 | type: boolean 5161 | is_usable: 5162 | type: boolean 5163 | logdrain_axiom_api_key: 5164 | type: string 5165 | logdrain_axiom_dataset_name: 5166 | type: string 5167 | logdrain_custom_config: 5168 | type: string 5169 | logdrain_custom_config_parser: 5170 | type: string 5171 | logdrain_highlight_project_id: 5172 | type: string 5173 | logdrain_newrelic_base_uri: 5174 | type: string 5175 | logdrain_newrelic_license_key: 5176 | type: string 5177 | sentinel_metrics_history_days: 5178 | type: integer 5179 | sentinel_metrics_refresh_rate_seconds: 5180 | type: integer 5181 | sentinel_token: 5182 | type: string 5183 | docker_cleanup_frequency: 5184 | type: string 5185 | docker_cleanup_threshold: 5186 | type: integer 5187 | server_id: 5188 | type: integer 5189 | wildcard_domain: 5190 | type: string 5191 | created_at: 5192 | type: string 5193 | updated_at: 5194 | type: string 5195 | delete_unused_volumes: 5196 | type: boolean 5197 | description: 'The flag to indicate if the unused volumes should be deleted.' 5198 | delete_unused_networks: 5199 | type: boolean 5200 | description: 'The flag to indicate if the unused networks should be deleted.' 5201 | type: object 5202 | Service: 5203 | description: 'Service model' 5204 | properties: 5205 | id: 5206 | type: integer 5207 | description: 'The unique identifier of the service. Only used for database identification.' 5208 | uuid: 5209 | type: string 5210 | description: 'The unique identifier of the service.' 5211 | name: 5212 | type: string 5213 | description: 'The name of the service.' 5214 | environment_id: 5215 | type: integer 5216 | description: 'The unique identifier of the environment where the service is attached to.' 5217 | server_id: 5218 | type: integer 5219 | description: 'The unique identifier of the server where the service is running.' 5220 | description: 5221 | type: string 5222 | description: 'The description of the service.' 5223 | docker_compose_raw: 5224 | type: string 5225 | description: 'The raw docker-compose.yml file of the service.' 5226 | docker_compose: 5227 | type: string 5228 | description: 'The docker-compose.yml file that is parsed and modified by Coolify.' 5229 | destination_type: 5230 | type: string 5231 | description: 'Destination type.' 5232 | destination_id: 5233 | type: integer 5234 | description: 'The unique identifier of the destination where the service is running.' 5235 | connect_to_docker_network: 5236 | type: boolean 5237 | description: 'The flag to connect the service to the predefined Docker network.' 5238 | is_container_label_escape_enabled: 5239 | type: boolean 5240 | description: 'The flag to enable the container label escape.' 5241 | is_container_label_readonly_enabled: 5242 | type: boolean 5243 | description: 'The flag to enable the container label readonly.' 5244 | config_hash: 5245 | type: string 5246 | description: 'The hash of the service configuration.' 5247 | service_type: 5248 | type: string 5249 | description: 'The type of the service.' 5250 | created_at: 5251 | type: string 5252 | description: 'The date and time when the service was created.' 5253 | updated_at: 5254 | type: string 5255 | description: 'The date and time when the service was last updated.' 5256 | deleted_at: 5257 | type: string 5258 | description: 'The date and time when the service was deleted.' 5259 | type: object 5260 | Team: 5261 | description: 'Team model' 5262 | properties: 5263 | id: 5264 | type: integer 5265 | description: 'The unique identifier of the team.' 5266 | name: 5267 | type: string 5268 | description: 'The name of the team.' 5269 | description: 5270 | type: string 5271 | description: 'The description of the team.' 5272 | personal_team: 5273 | type: boolean 5274 | description: 'Whether the team is personal or not.' 5275 | created_at: 5276 | type: string 5277 | description: 'The date and time the team was created.' 5278 | updated_at: 5279 | type: string 5280 | description: 'The date and time the team was last updated.' 5281 | show_boarding: 5282 | type: boolean 5283 | description: 'Whether to show the boarding screen or not.' 5284 | custom_server_limit: 5285 | type: string 5286 | description: 'The custom server limit.' 5287 | members: 5288 | description: 'The members of the team.' 5289 | type: array 5290 | items: 5291 | $ref: '#/components/schemas/User' 5292 | type: object 5293 | User: 5294 | description: 'User model' 5295 | properties: 5296 | id: 5297 | type: integer 5298 | description: 'The user identifier in the database.' 5299 | name: 5300 | type: string 5301 | description: 'The user name.' 5302 | email: 5303 | type: string 5304 | description: 'The user email.' 5305 | email_verified_at: 5306 | type: string 5307 | description: 'The date when the user email was verified.' 5308 | created_at: 5309 | type: string 5310 | description: 'The date when the user was created.' 5311 | updated_at: 5312 | type: string 5313 | description: 'The date when the user was updated.' 5314 | two_factor_confirmed_at: 5315 | type: string 5316 | description: 'The date when the user two factor was confirmed.' 5317 | force_password_reset: 5318 | type: boolean 5319 | description: 'The flag to force the user to reset the password.' 5320 | marketing_emails: 5321 | type: boolean 5322 | description: 'The flag to receive marketing emails.' 5323 | type: object 5324 | responses: 5325 | '400': 5326 | description: 'Invalid token.' 5327 | content: 5328 | application/json: 5329 | schema: 5330 | properties: 5331 | message: 5332 | type: string 5333 | example: 'Invalid token.' 5334 | type: object 5335 | '401': 5336 | description: Unauthenticated. 5337 | content: 5338 | application/json: 5339 | schema: 5340 | properties: 5341 | message: 5342 | type: string 5343 | example: Unauthenticated. 5344 | type: object 5345 | '404': 5346 | description: 'Resource not found.' 5347 | content: 5348 | application/json: 5349 | schema: 5350 | properties: 5351 | message: 5352 | type: string 5353 | example: 'Resource not found.' 5354 | type: object 5355 | securitySchemes: 5356 | bearerAuth: 5357 | type: http 5358 | description: 'Go to `Keys & Tokens` / `API tokens` and create a new token. Use the token as the bearer token.' 5359 | scheme: bearer 5360 | tags: 5361 | - name: Applications 5362 | description: Applications 5363 | - name: Databases 5364 | description: Databases 5365 | - name: Deployments 5366 | description: Deployments 5367 | - name: Projects 5368 | description: Projects 5369 | - name: Resources 5370 | description: Resources 5371 | - name: 'Private Keys' 5372 | description: 'Private Keys' 5373 | - name: Servers 5374 | description: Servers 5375 | - name: Services 5376 | description: Services 5377 | - name: Teams 5378 | description: Teams 5379 | ```