Skip to main content
Learn how to deploy, update, and manage your infrastructure using kombify TechStack’s deployment pipeline.

Deployment workflow

Deploy a new stack

1

Create your spec file

Create or update your kombination.yaml:
kombination.yaml
stackkit: base-kit

nodes:
  - name: main-server
    type: local
    connection:
      host: 192.168.1.100
      user: root

services:
  traefik:
    enabled: true
  dokploy:
    enabled: true
2

Validate configuration

Validate your spec before deployment:
curl -X POST http://localhost:5260/api/v1/unifier/validate \
  -H "Content-Type: application/yaml" \
  --data-binary @kombination.yaml
Or via the web UI: Stack → Validate
3

Generate infrastructure code

Generate OpenTofu and Docker configurations:
curl -X POST http://localhost:5260/api/v1/unifier/generate \
  -H "Content-Type: application/yaml" \
  --data-binary @kombination.yaml
4

Preview changes

See what will be created before applying:
curl -X POST http://localhost:5260/api/v1/unifier/preview \
  -H "Content-Type: application/yaml" \
  --data-binary @kombination.yaml
5

Apply deployment

Deploy to your infrastructure:
curl -X POST http://localhost:5260/api/v1/stacks/{stack-id}/provision
This triggers the full deployment pipeline:
  1. Run pre-checks on target nodes
  2. Apply OpenTofu configuration
  3. Deploy Docker services
  4. Verify health checks

Deployment states

StateDescription
pendingDeployment queued
validatingValidating spec
generatingGenerating IaC
planningRunning tofu plan
applyingApplying changes
deployingDeploying services
verifyingRunning health checks
completedSuccessfully deployed
failedDeployment failed
rolled_backRolled back to previous state

Update an existing stack

Apply changes without downtime:
curl -X POST http://localhost:5260/api/v1/stacks/{stack-id}/deploy \
  -H "Content-Type: application/json" \
  -d '{"strategy": "rolling"}'

Destroy a stack

This will permanently destroy all resources. Make sure to backup any data first.
curl -X POST http://localhost:5260/api/v1/stacks/{stack-id}/destroy

Deployment jobs

All deployments run as background jobs. Check job status:
# List recent jobs
curl http://localhost:5260/api/v1/jobs

# Get specific job status
curl http://localhost:5260/api/v1/jobs/{job-id}

Job status response

{
  "id": "job_abc123",
  "type": "provision",
  "status": "running",
  "progress": 65,
  "started_at": "2026-02-03T10:00:00Z",
  "steps": [
    {"name": "validate", "status": "completed"},
    {"name": "generate", "status": "completed"},
    {"name": "apply", "status": "running"},
    {"name": "verify", "status": "pending"}
  ]
}

Pre-deployment checks

Stack runs pre-checks before deployment to ensure nodes are ready:
CheckDescription
ConnectivitySSH/agent connection working
OS compatibilitySupported distribution and version
ResourcesSufficient CPU, RAM, disk
DockerDocker installed and running
PortsRequired ports available
# Run pre-checks manually
curl -X POST http://localhost:5260/api/v1/workers/{worker-id}/prechecks

Rollback

If a deployment fails, Stack can rollback to the previous state:
# Automatic rollback (enabled by default)
curl -X POST http://localhost:5260/api/v1/stacks/{stack-id}/deploy \
  -d '{"auto_rollback": true}'

# Manual rollback
curl -X POST http://localhost:5260/api/v1/stacks/{stack-id}/rollback

Next steps

Monitoring

Monitor your deployed infrastructure

Drift detection

Detect and fix configuration drift