Skip to main content
kombify TechStack is your homelab’s control center. Tell it what you want, and it figures out how to make it happen — from a single server to a multi-node cluster.

The simple version

What does Stack do?

Imagine you want a private photo cloud for your family. Instead of spending days researching Docker, reverse proxies, and SSL certificates, you write a simple configuration file describing what you want. Stack handles everything else — validation, setup, deployment, and ongoing maintenance.
kombination.yaml
# This is all you write
stackkit: base-kit
services:
  - traefik    # Handles web traffic
  - immich     # Your photo cloud
Stack transforms this into hundreds of lines of configuration and deploys it to your server automatically.
Stack is a Go-based orchestration engine that:
  • Reads your kombination.yaml specification
  • Validates it against CUE schemas from StackKits
  • Generates OpenTofu/Docker configurations
  • Deploys via mTLS-secured gRPC agents on your nodes
  • Continuously monitors for drift between desired and actual state
Tech stack: Go 1.25+, PocketBase (SQLite), OpenTofu, CUE, gRPC with mTLS

Key features

Write once, deploy anywhere

Your entire homelab configuration lives in one YAML file — version-controlled, shareable, reproducible

Test before you break things

Simulate deployments in Docker before touching real hardware

Works with what you have

Already running servers? Stack discovers them and lets you adopt gradually

Self-healing

Detects when reality drifts from your configuration and can fix it automatically

How it works

Describe what you want

Use the Easy Wizard or write a simple YAML file — no need to understand Docker, networking, or certificates

Stack validates your choices

Your configuration is checked against proven patterns to catch errors before deployment

Infrastructure code is generated

Stack creates all the complex configuration files you’d otherwise write by hand

Services are deployed

Lightweight agents on your servers apply the changes and report back
Data flow explained:
  1. Input — Configuration enters via Web UI, CLI, or direct YAML file
  2. Unifier Engine — Parses, validates against CUE schemas, resolves dependencies, generates OpenTofu code
  3. State Management — PocketBase stores stack state, job history, and agent registry
  4. Agent Communication — gRPC with mutual TLS ensures secure, authenticated communication
  5. Deployment — Agents execute changes on their respective nodes

Architecture at a glance

Ports and services

ServicePortWhat it does
Dashboard5261Web interface for managing your homelab
API5260REST API + PocketBase admin panel
gRPC5263Secure communication with agents
ComponentTechnologyPurpose
BackendGo 1.25+Core services, agents, CLI
FrontendSvelteKit 2.xModern reactive dashboard
DatabasePocketBase (SQLite)Embedded state management
IaC EngineOpenTofu 1.6+Infrastructure provisioning
ValidationCUE 0.15+Type-safe schema validation
NetworkinggRPC + mTLSEncrypted agent communication
Why these choices?
  • Go — Single binary, low memory, cross-platform
  • PocketBase — Zero-config embedded database with auth
  • OpenTofu — Open-source Infrastructure as Code engine, battle-tested
  • CUE — Catch configuration errors before deployment
  • mTLS — Every connection is encrypted and authenticated

Core principles

1. Your intent stays untouched

kombify TechStack never modifies your configuration file. All transformations create separate artifacts that you can inspect.

2. One Stack = one homelab

A single kombify TechStack instance manages one homelab. That homelab can include multiple physical servers (nodes), but they belong to one logical unit.
Need multiple homelabs? Use kombify Cloud to manage several Stack instances from one dashboard.

3. Brownfield-friendly

Already have servers running? kombify TechStack doesn’t force you to start from scratch:
  • Managed — Stack fully controls configuration and deployment
  • Unmanaged — Stack sees the device but doesn’t touch it
  • You can gradually move devices from unmanaged to managed as you’re ready

Quick Example

kombination.yaml
version: "1.0"
stackkit: base-kit

meta:
  name: my-homelab
  domain: home.example.com

nodes:
  - name: proxmox-01
    type: hypervisor
    connection:
      host: 192.168.1.100
      user: root
      ssh_key: ~/.ssh/id_ed25519

services:
  - traefik      # Reverse proxy with auto-SSL
  - authelia     # Single sign-on
  - homepage     # Dashboard
  - immich       # Photo management
# Validate configuration
kombify validate

# Preview changes
kombify plan

# Apply to infrastructure
kombify apply

Self-Hosting

Self-Hosting Guide

Deploy kombify TechStack on your own infrastructure with Docker Compose

Next Steps

Quick Start

Deploy your first stack in 10 minutes

Architecture Deep Dive

Understand the Unifier, agents, and data flow

Getting Help

Troubleshooting

Common issues and solutions

Discord

Real-time community support

GitHub

Report issues and contribute