Create new application based on a simple Dockerfile (without git).
Authorization
bearerAuth Go to Keys & Tokens / API tokens and create a new token. Use the token as the bearer token.
In: header
Request Body
application/json
Application object that needs to be created.
TypeScript Definitions
Use the request body type in TypeScript.
The project UUID.
The server UUID.
The environment name. You need to provide at least one of environment_name or environment_uuid.
The environment UUID. You need to provide at least one of environment_name or environment_uuid.
The Dockerfile content.
The build pack type.
"nixpacks" | "static" | "dockerfile" | "dockercompose"The ports to expose.
The destination UUID.
The application name.
The application description.
The application URLs in a comma-separated list.
The docker registry image name.
The docker registry image tag.
The ports mappings.
The base directory for all commands.
Health check enabled.
Health check path.
Health check port.
Health check host.
Health check method.
Health check return code.
Health check scheme.
Health check response text.
Health check interval in seconds.
Health check timeout in seconds.
Health check retries count.
Health check start period in seconds.
Memory limit.
Memory swap limit.
Memory swappiness.
Memory reservation.
CPU limit.
CPU set.
CPU shares.
Custom labels.
Custom docker run options.
Post deployment command.
Post deployment command container.
Pre deployment command.
Pre deployment command container.
Manual webhook secret for Github.
Manual webhook secret for Gitlab.
Manual webhook secret for Bitbucket.
Manual webhook secret for Gitea.
How to set redirect with Traefik / Caddy. www<->non-www.
"www" | "non-www" | "both"The flag to indicate if the application should be deployed instantly.
The flag to indicate if HTTPS is forced. Defaults to true.
Use build server.
HTTP Basic Authentication enabled.
Username for HTTP Basic Authentication
Password for HTTP Basic Authentication
The flag to connect the service to the predefined Docker network.
Force domain usage even if conflicts are detected. Default is false.
If true and domains is empty, auto-generate a domain using the server's wildcard domain or sslip.io fallback. Default: true.
trueEscape 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.
trueResponse Body
application/json
application/json
application/json
application/json
curl -X POST "https://app.coolify.io/api/v1/applications/dockerfile" \ -H "Content-Type: application/json" \ -d '{ "project_uuid": "string", "server_uuid": "string", "environment_name": "string", "environment_uuid": "string", "dockerfile": "string" }'{ "uuid": "string"}{ "message": "Invalid token."}{ "message": "Unauthenticated."}{ "message": "Domain conflicts detected. Use force_domain_override=true to proceed.", "warning": "Using the same domain for multiple resources can cause routing conflicts and unpredictable behavior.", "conflicts": [ { "domain": "example.com", "resource_name": "My Application", "resource_uuid": "abc123-def456", "resource_type": "application", "message": "Domain example.com is already in use by application 'My Application'" } ]}