---
title: "Create (Public)"
method: POST
path: "/applications/public"
tags: ["Applications"]
---

# Create (Public)

`POST /applications/public`

Create new application based on a public git repository.

## Request body

- object
  - `project_uuid` string, required — The project UUID.
  - `server_uuid` string, required — The server UUID.
  - `environment_name` string, required — The environment name. You need to provide at least one of environment_name or environment_uuid.
  - `environment_uuid` string, required — The environment UUID. You need to provide at least one of environment_name or environment_uuid.
  - `git_repository` string, required — The git repository URL.
  - `git_branch` string, required — The git branch.
  - `build_pack` 'nixpacks' | 'railpack' | 'static' | 'dockerfile' | 'dockercompose', required — The build pack type.
  - `ports_exposes` string — The ports to expose.
  - `destination_uuid` string — The destination UUID.
  - `name` string — The application name.
  - `description` string — The application description.
  - `domains` string — The application URLs in a comma-separated list.
  - `git_commit_sha` string — The git commit SHA.
  - `docker_registry_image_name` string — The docker registry image name.
  - `docker_registry_image_tag` string — The docker registry image tag.
  - `is_static` boolean — The flag to indicate if the application is static.
  - `is_spa` boolean — The flag to indicate if the application is a single-page application (SPA). Only relevant when is_static is true.
  - `is_auto_deploy_enabled` boolean — The flag to indicate if auto-deploy is enabled on git push. Defaults to true.
  - `is_force_https_enabled` boolean — The flag to indicate if HTTPS is forced. Defaults to true.
  - `is_preview_deployments_enabled` boolean — Enable preview deployments for pull requests.
  - `static_image` 'nginx:alpine' — The static image.
  - `install_command` string — The install command.
  - `build_command` string — The build command.
  - `start_command` string — The start command.
  - `ports_mappings` string — The ports mappings.
  - `base_directory` string — The base directory for all commands.
  - `publish_directory` string — The publish directory.
  - `health_check_enabled` boolean — Health check enabled.
  - `health_check_path` string — Health check path.
  - `health_check_port` string, nullable — Health check port.
  - `health_check_host` string, nullable — Health check host.
  - `health_check_method` string — Health check method.
  - `health_check_return_code` integer — Health check return code.
  - `health_check_scheme` string — Health check scheme.
  - `health_check_response_text` string, nullable — Health check response text.
  - `health_check_interval` integer — Health check interval in seconds.
  - `health_check_timeout` integer — Health check timeout in seconds.
  - `health_check_retries` integer — Health check retries count.
  - `health_check_start_period` integer — Health check start period in seconds.
  - `limits_memory` string — Memory limit.
  - `limits_memory_swap` string — Memory swap limit.
  - `limits_memory_swappiness` integer — Memory swappiness.
  - `limits_memory_reservation` string — Memory reservation.
  - `limits_cpus` string — CPU limit.
  - `limits_cpuset` string, nullable — CPU set.
  - `limits_cpu_shares` integer — CPU shares.
  - `custom_labels` string — Custom labels.
  - `custom_docker_run_options` string — Custom docker run options.
  - `post_deployment_command` string — Post deployment command.
  - `post_deployment_command_container` string — Post deployment command container.
  - `pre_deployment_command` string — Pre deployment command.
  - `pre_deployment_command_container` string — Pre deployment command container.
  - `manual_webhook_secret_github` string — Manual webhook secret for Github.
  - `manual_webhook_secret_gitlab` string — Manual webhook secret for Gitlab.
  - `manual_webhook_secret_bitbucket` string — Manual webhook secret for Bitbucket.
  - `manual_webhook_secret_gitea` string — Manual webhook secret for Gitea.
  - `redirect` 'www' | 'non-www' | 'both', nullable — How to set redirect with Traefik / Caddy. www<->non-www.
  - `instant_deploy` boolean — The flag to indicate if the application should be deployed instantly.
  - `dockerfile` string — The Dockerfile content.
  - `dockerfile_location` string — The Dockerfile location in the repository.
  - `docker_compose_location` string — The Docker Compose location.
  - `docker_compose_custom_start_command` string — The Docker Compose custom start command.
  - `docker_compose_custom_build_command` string — The Docker Compose custom build command.
  - `docker_compose_domains` object[] — Array of URLs to be applied to containers of a dockercompose application.
    - `name` string — The service name as defined in docker-compose.
    - `domain` string — Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")
  - `watch_paths` string — The watch paths.
  - `use_build_server` boolean, nullable — Use build server.
  - `use_build_secrets` boolean — Use Docker Build Secrets for build-time environment variables.
  - `is_git_submodules_enabled` boolean — Clone Git submodules.
  - `is_git_lfs_enabled` boolean — Enable Git LFS.
  - `is_git_shallow_clone_enabled` boolean — Use a shallow Git clone.
  - `disable_build_cache` boolean — Disable the build cache.
  - `inject_build_args_to_dockerfile` boolean — Inject build arguments into the Dockerfile build.
  - `include_source_commit_in_build` boolean — Include the source commit in the build.
  - `is_env_sorting_enabled` boolean — Sort environment variables.
  - `is_pr_deployments_public_enabled` boolean — Make pull request deployments public.
  - `stop_grace_period` integer, nullable — Container stop grace period in seconds.
  - `docker_images_to_keep` integer — Number of Docker images to retain.
  - `is_gzip_enabled` boolean — Enable gzip compression.
  - `is_stripprefix_enabled` boolean — Enable path prefix stripping.
  - `is_raw_compose_deployment_enabled` boolean — Deploy the raw Docker Compose definition.
  - `is_http_basic_auth_enabled` boolean — HTTP Basic Authentication enabled.
  - `http_basic_auth_username` string, nullable — Username for HTTP Basic Authentication
  - `http_basic_auth_password` string, nullable — Password for HTTP Basic Authentication
  - `connect_to_docker_network` boolean — The flag to connect the service to the predefined Docker network.
  - `force_domain_override` boolean — Force domain usage even if conflicts are detected. Default is false.
  - `autogenerate_domain` boolean — If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.
  - `is_container_label_escape_enabled` boolean — Escape special characters in labels. By default, $ (and other chars) is escaped. So if you write $ in the labels, it will be saved as $$. If you want to use env variables inside the labels, turn this off.
  - `tags` string[] — Tags to assign to the application.
  - `is_preserve_repository_enabled` boolean — Preserve repository during deployment.

## Response `201`

Application created successfully.

- object
  - `uuid` string

## Other responses

- `400` — Invalid token.
- `401` — Unauthenticated.
- `409` — Domain conflicts detected.

---

[API](https://skmtc.net/coollabsio/apis/coolify.md) · [All operations](https://skmtc.net/coollabsio/apis/coolify/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/coollabsio/coolify/versions/08be5dc8e729/schema)
