Skip to main content
kombify Cloud follows a simulation-first philosophy: test your infrastructure configurations in a safe, isolated environment before deploying to real hardware.

Why simulate?

Catch errors early

Identify configuration issues before they affect production

Zero risk

Test destructive changes without impacting real systems

Fast iteration

Spin up and tear down environments in seconds

Cost effective

No cloud costs for testing and development

How kombify Simulate works

kombify Simulate creates lightweight Docker-based “VMs” that simulate your infrastructure:
┌─────────────────────────────────────────────────────────────┐
│                  kombify Simulate Engine                      │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────────────┐    ┌─────────────┐               │
│  │     REST API        │───▶│   Docker    │               │
│  │      :5270          │    │   Engine    │               │
│  └─────────────────────┘    └─────────────┘               │
│                                                             │
│  ┌─────────────────────────────────────────────────────────┤
│  │  Port Range: 30000-39999 (SSH to containers)            │
│  └─────────────────────────────────────────────────────────┘
└─────────────────────────────────────────────────────────────┘

Simulation nodes

Each simulated node is a Docker container with:
  • Real SSH access on ports 30000-39999
  • Persistent storage via Docker volumes
  • Network isolation with custom Docker networks
  • Resource limits to simulate different hardware tiers

Workflow

1

Create simulation

Define your infrastructure in kombify Simulate:
curl -X POST http://localhost:5270/api/v1/simulations \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-homelab-test",
    "nodes": [
      {"name": "vps-web", "location": "vps"},
      {"name": "local-db", "location": "local"}
    ]
  }'
2

Start nodes

curl -X POST http://localhost:5270/api/v1/simulations/{id}/start
kombify Simulate creates Docker containers and assigns SSH ports.
3

Test configuration

SSH into simulated nodes and test your setup:
# Get SSH details
curl http://localhost:5270/api/v1/nodes/{id}/ssh

# SSH into node
ssh -p 30001 root@localhost
# Password: kombisim
4

Deploy with kombify TechStack

Once validated, deploy to real infrastructure:
# Export simulation config
curl http://localhost:5270/api/v1/simulations/{id}/export > kombination.yaml

# Deploy to real hardware
kombistack apply kombination.yaml

Pre-built templates

kombify Simulate includes 6 templates for common scenarios:
2 nodes: Web server + Database
{
  "name": "homelab-basic",
  "category": "homelab",
  "nodes": [
    {"name": "web-server", "location": "local"},
    {"name": "database", "location": "local"}
  ]
}
Use case: Simple web application with database

Integration with kombify TechStack

kombify TechStack can automatically use kombify Simulate for validation:
kombistack.yaml
simulation:
  enabled: true
  endpoint: "http://localhost:5270"
  auto_validate: true
  
validation:
  simulate_before_deploy: true
  simulation_timeout: 300s

Automatic simulation workflow

When simulate_before_deploy is enabled:
1

Create simulation

kombify TechStack sends your kombination.yaml to kombify Simulate
2

Provision simulated nodes

kombify Simulate creates Docker containers matching your spec
3

Run pre-checks

kombify TechStack validates:
  • SSH connectivity
  • Required packages
  • Network configuration
  • Service dependencies
4

Deploy to simulation

Full deployment to simulated infrastructure
5

Validation results

If successful, proceed to real deploymentIf failed, return errors and logs

Testing scenarios

1. Service dependencies

Test that services start in the correct order:
services:
  - name: postgres
    type: database
  
  - name: web-app
    type: application
    depends_on: [postgres]
Simulation validates:
  • PostgreSQL starts first
  • Web app waits for database
  • Connection strings are correct

2. Network configuration

Test firewall rules and port mappings:
services:
  - name: traefik
    firewall:
      allow:
        - port: 80
        - port: 443
Simulation validates:
  • Ports are accessible
  • Firewall rules are applied
  • SSL certificates work

3. Resource constraints

Test with limited resources:
nodes:
  - name: low-spec-server
    resources:
      cpu: 2
      memory: 4GB
Simulation validates:
  • Services run within constraints
  • No OOM errors
  • Performance is acceptable

Best practices

Before making significant infrastructure changes:
  1. Create a simulation matching your current setup
  2. Apply the changes to the simulation
  3. Validate everything works
  4. Deploy to production
Start with a pre-built template and customize:
# Apply template
curl -X POST http://localhost:5270/api/v1/templates/homelab-basic/apply \
  -d '{"simulation_name": "my-test", "auto_start": true}'

# Customize nodes
curl -X PATCH http://localhost:5270/api/v1/nodes/{id} \
  -d '{"resources": {"memory": "8GB"}}'
Delete simulations after testing to free resources:
curl -X DELETE http://localhost:5270/api/v1/simulations/{id}
Save working configurations for reuse:
curl http://localhost:5270/api/v1/simulations/{id}/export > validated-config.yaml

Limitations

kombify Simulate is for testing and validation, not production workloads.
What kombify Simulate simulates:
  • ✅ Service deployment and configuration
  • ✅ Network connectivity and firewall rules
  • ✅ SSH access and authentication
  • ✅ Basic resource constraints
What kombify Simulate does NOT simulate:
  • ❌ Real hardware performance
  • ❌ Actual network latency
  • ❌ Physical hardware failures
  • ❌ Production-scale load

Next steps

kombify Simulate quickstart

Get started with simulation

kombify Simulate templates

Explore pre-built templates

kombify Simulate API reference

Full API documentation

kombify TechStack integration

Configure automatic simulation