What is a StackKit?
A StackKit combines three concepts to produce your infrastructure: A StackKit is a smart configuration system that:- Validates your choices against proven architecture patterns
- Detects your runtime environment and applies context-aware defaults
- Merges composable Add-Ons for additional capabilities
- Generates production-ready infrastructure code
The problem StackKits solve
- The challenge
- The solution
You want to set up a homelab. You’ve heard of:
- Traefik (or Caddy? or nginx?)
- Authelia (or Authentik? or Keycloak?)
- Portainer (or Dockge? or Coolify?)
- Immich (or Photoprism?)
- Which tools work well together?
- How do I configure them correctly?
- What are the best practices?
- How do I avoid security issues?
Available StackKits
StackKits are architecture patterns, not node-count definitions.Base Kit
Single-environment patternAll services in one deployment target. Simple, predictable.
- Docker Compose
- Any node count
- Context-aware defaults
Modern Homelab Kit
Hybrid infrastructure patternBridges local and cloud environments with VPN overlay.
- Multi-environment
- Coolify PAAS
- Public + private services
High Availability Kit
High-availability patternRedundancy, failover, and quorum-based consensus.
- Docker Swarm cluster
- Keepalived VIP
- 3+ nodes recommended
The three concepts
1. StackKit = Architecture pattern
A StackKit defines how services relate to each other, not how many servers you have.| StackKit | Pattern | Example |
|---|---|---|
| base | Single-environment | 1 Pi running all services, or 3 servers sharing the same stack |
| modern | Hybrid | Home server + cloud VPS connected via VPN |
| ha | HA cluster | 3-node Docker Swarm with failover |
2. Node-Context = auto-detected environment
Each node is automatically classified based on hardware and provider metadata:| Context | Detection | Affects |
|---|---|---|
| local | Physical hardware, no cloud metadata | Self-signed TLS, Dokploy PAAS, local DNS |
| cloud | Cloud provider metadata detected | Let’s Encrypt, Coolify PAAS, public DNS |
| pi | ARM + low memory or RPi detection | Reduced services, ARM images, tmpfs |
At Level 0 (standalone CLI), you specify context manually. At Level 2+ (with kombify TechStack agent), context is auto-detected from hardware reports.
3. Add-Ons = composable extensions
Add-Ons replace the old monolithic variant system. They are stackable and declare their compatibility:| Add-On | Category | Compatible StackKits |
|---|---|---|
monitoring | Observability | base, modern, ha |
backup | Data | base, modern, ha |
vpn-overlay | Networking | modern, ha |
gpu-workloads | Compute | base, modern |
media | Applications | base, modern |
smart-home | IoT | base |
kombination.yaml
Progressive capability model
StackKits operates at different capability levels depending on how you access it:| Level | Name | Access Method | Capabilities |
|---|---|---|---|
| 0 | Standalone CLI | stackkit CLI directly | CUE validation, IaC generation, direct provisioning |
| 1 | Control Plane | kombify TechStack Web UI/API | Unifier pipeline, wizard UI, StackKit resolver |
| 2 | Worker Agent | kombify TechStack + gRPC Agent | Context auto-detection, placement engine |
| 3 | Runtime Intelligence | Day-2 operations | Drift detection, auto-remediation, cert renewal |
| 4 | AI-Assisted (SaaS) | kombify Sphere | Natural language config, predictive scaling |
How StackKits work
Context-driven defaults matrix
The combination of StackKit × Context produces curated default configurations:| local | cloud | pi | |
|---|---|---|---|
| base | Dokploy, self-signed TLS | Coolify, Let’s Encrypt | Lean Docker, reduced services |
| modern | Tailscale exit node, hybrid DNS | Multi-cloud mesh | Edge relay role |
| ha | Swarm + Keepalived | Cloud HA + managed LB | Not recommended |
Validation flow
When you runstackkit validate or use kombify TechStack:
StackKit comparison
| Feature | base | modern | ha |
|---|---|---|---|
| Pattern | Single-environment | Hybrid infrastructure | HA cluster |
| Container runtime | Docker Compose | Docker + Coolify | Docker Swarm |
| Typical nodes | 1 (supports N) | 2+ (multi-environment) | 3+ (odd for quorum) |
| Complexity | Low | Medium | High |
| VPN overlay | Optional (Add-On) | Built-in | Optional |
| Failover | No | No | Yes |
| Best for | First homelab, single VPS | Hybrid setups, public services | Production workloads |
Choosing a StackKit
I'm new to homelabs
I'm new to homelabs
Use: baseStart simple with a single-environment setup:
- Easy to understand
- Minimal resource requirements
- Great for learning
- Add capabilities later with Add-Ons
I want local + cloud
I want local + cloud
Use: modernFor hybrid setups connecting different environments:
- VPN overlay connects all nodes
- Public services via cloud nodes
- Private services stay local
- Coolify manages deployments
I need high availability
I need high availability
Use: haWhen downtime is unacceptable:
- Automatic failover
- Database clustering
- Load balancing with Keepalived
- Requires 3+ nodes (odd number for quorum)
Next steps
Base Kit
Detailed documentation for the single-environment StackKit
CUE language basics
Learn the CUE language used in StackKits
Customization guide
How to customize StackKits for your needs
Quick start
Deploy your first StackKit
