---
title: "Create (Dockerfile without git)"
method: POST
path: "/applications/dockerfile"
tags: ["Applications"]
---

# Create (Dockerfile without git)

`POST /applications/dockerfile`

Create new application based on a simple Dockerfile (without git).

## 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.
  - `dockerfile` string, required — The Dockerfile content.
  - `build_pack` 'dockerfile' — 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.
  - `docker_registry_image_name` string — The docker registry image name.
  - `docker_registry_image_tag` string — The docker registry image tag.
  - `ports_mappings` string — The ports mappings.
  - `base_directory` string — The base directory for all commands.
  - `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.
  - `is_force_https_enabled` boolean — The flag to indicate if HTTPS is forced. Defaults to true.
  - `use_build_server` boolean, nullable — Use build server.
  - `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.

## Response `201`

Application created successfully.

- object
  - `uuid` string

## Other responses

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

## Changes

- **2026-05-11** `fd4ed0ae37b2` — 4 breaking
  - removed the enum value `dockercompose` of the request property `build_pack`
  - removed the enum value `nixpacks` of the request property `build_pack`
  - removed the enum value `railpack` of the request property `build_pack`
  - removed the enum value `static` of the request property `build_pack`
- **2026-05-11** `f5ba4e171986` — 1 info
  - added the new `railpack` enum value to the request property `build_pack`
- **2026-05-11** `eb92e28d2a45` — 1 breaking
  - removed the enum value `railpack` of the request property `build_pack`
- **2026-05-06** `8f7a4f15a4ca` — 1 info
  - added the new `railpack` enum value to the request property `build_pack`
- **2026-04-29** `8578338e81f0` — 1 breaking
  - removed the enum value `railpack` of the request property `build_pack`

[Full history](https://skmtc.dev/coollabsio/apis/coolify/changes/applications/dockerfile/post.md)

---

[API](https://skmtc.dev/coollabsio/apis/coolify.md) · [All operations](https://skmtc.dev/coollabsio/apis/coolify/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/coollabsio/coolify/revisions/ccd37e78d00a/schema)
