Applications
Manage applications through the API — deploy from Git repositories, Docker images, Dockerfiles, or Docker Compose files.
List Applications
Returns all applications accessible to the current team.
GET /api/v1/applications
Response:
{
"data": [
{
"uuid": "abc123",
"name": "my-web-app",
"fqdn": "https://myapp.example.com",
"status": "running:healthy",
"build_pack": "nixpacks",
"git_repository": "https://github.com/user/repo",
"git_branch": "main",
"created_at": "2024-01-15T10:30:00Z"
}
]
}
Get Application
GET /api/v1/applications/{uuid}
Response includes full application configuration: build settings, environment variables, domains, health checks, resource limits, and deployment history.
Create Application
Create an application from one of several sources:
From a Public Git Repository
POST /api/v1/applications/public
{
"project_uuid": "proj-abc123",
"environment_name": "production",
"server_uuid": "srv-abc123",
"destination_uuid": "dest-abc123",
"git_repository": "https://github.com/user/repo",
"git_branch": "main",
"build_pack": "nixpacks",
"name": "my-web-app",
"ports_exposes": "3000"
}
| Parameter | Type | Required | Description |
|---|---|---|---|
project_uuid | string | Yes | Target project UUID |
environment_name | string | Yes | Target environment name |
server_uuid | string | Yes | Server to deploy on |
destination_uuid | string | Yes | Docker network/destination UUID |
git_repository | string | Yes | Public Git repository URL |
git_branch | string | Yes | Branch to deploy |
build_pack | string | Yes | nixpacks, dockerfile, dockercompose, dockerimage, railpack, heroku, paketo |
name | string | No | Application name |
ports_exposes | string | No | Exposed port(s), comma-separated |
From a Private GitHub Repository
POST /api/v1/applications/private-github-app
Requires a GitHub App installation. Additional parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
github_app_uuid | string | Yes | GitHub App UUID |
git_repository | string | Yes | Repository (e.g., user/repo) |
From a Deploy Key
POST /api/v1/applications/private-deploy-key
| Parameter | Type | Required | Description |
|---|---|---|---|
private_key_uuid | string | Yes | SSH key UUID |
git_repository | string | Yes | SSH Git URL |
From a Dockerfile
POST /api/v1/applications/dockerfile
| Parameter | Type | Required | Description |
|---|---|---|---|
dockerfile | string | Yes | Dockerfile contents (base64 or raw) |
From a Docker Image
POST /api/v1/applications/dockerimage
| Parameter | Type | Required | Description |
|---|---|---|---|
docker_registry_image_name | string | Yes | Image name (e.g., nginx:latest) |
From Docker Compose
POST /api/v1/applications/dockercompose
| Parameter | Type | Required | Description |
|---|---|---|---|
docker_compose_raw | string | Yes | Docker Compose YAML content |
Response (all create endpoints): 201 Created
{
"uuid": "abc123",
"name": "my-web-app",
"fqdn": "https://abc123.example.com"
}
Update Application
PATCH /api/v1/applications/{uuid}
{
"name": "updated-name",
"fqdn": "https://newdomain.example.com",
"git_branch": "develop",
"ports_exposes": "8080"
}
All fields are optional. Only provided fields are updated.
Delete Application
DELETE /api/v1/applications/{uuid}
| Parameter | Type | Default | Description |
|---|---|---|---|
delete_configurations | boolean | true | Delete configuration files |
delete_volumes | boolean | false | Delete persistent volumes |
docker_cleanup | boolean | true | Remove Docker resources |
Response:
{
"message": "Application deleted."
}
Application Actions
Start Application
POST /api/v1/applications/{uuid}/start
Stop Application
POST /api/v1/applications/{uuid}/stop
Restart Application
POST /api/v1/applications/{uuid}/restart
Deploy Application
Trigger a new deployment:
POST /api/v1/applications/{uuid}/deploy
| Parameter | Type | Default | Description |
|---|---|---|---|
force | boolean | false | Force rebuild without cache |
commit_sha | string | — | Deploy a specific commit |
Response:
{
"message": "Deployment queued.",
"deployment_uuid": "deploy-abc123"
}
Application Logs
Retrieve recent container logs:
GET /api/v1/applications/{uuid}/logs
| Parameter | Type | Default | Description |
|---|---|---|---|
since | integer | 600 | Seconds of log history |
tail | integer | 100 | Number of lines to return |
Environment Variables
List Variables
GET /api/v1/applications/{uuid}/envs
Create Variable
POST /api/v1/applications/{uuid}/envs
{
"key": "DATABASE_URL",
"value": "postgres://user:pass@host/db",
"is_build_time": false,
"is_preview": false
}
Update Variable
PATCH /api/v1/applications/{uuid}/envs
{
"key": "DATABASE_URL",
"value": "postgres://user:newpass@host/db"
}
Bulk Update Variables
PATCH /api/v1/applications/{uuid}/envs/bulk
{
"variables": [
{ "key": "DB_HOST", "value": "db.example.com" },
{ "key": "DB_PORT", "value": "5432" }
]
}
Delete Variable
DELETE /api/v1/applications/{uuid}/envs/{env_uuid}
Persistent Storage
List Volumes
GET /api/v1/applications/{uuid}/storages
Add Volume
POST /api/v1/applications/{uuid}/storages
{
"name": "app-data",
"mount_path": "/data",
"host_path": "/opt/app/data"
}
Delete Volume
DELETE /api/v1/applications/{uuid}/storages/{storage_uuid}