What's a StackKit?
A StackKit defines an architecture pattern — how services relate to each other. Combined with auto-detected Node-Context and composable Add-Ons, it produces a fully validated, context-aware infrastructure configuration.
The problem StackKits solve
You want to set up a homelab. You’ve heard of:Reverse Proxy
- Traefik?
- Caddy?
- nginx?
Authentication
- Authelia?
- Authentik?
- Keycloak?
Management
- Portainer?
- Dockge?
- Coolify?
Photos
- Immich?
- Photoprism?
- Nextcloud?
- Which tools work well together?
- How do I configure them correctly?
- What are the best practices?
- How do I avoid security mistakes?
The three concepts
1. StackKit = Architecture pattern
A StackKit defines how infrastructure is organized, not how many servers you need.| StackKit | Pattern | What it means |
|---|---|---|
| base | Single-environment | All services in one deployment target |
| modern | Hybrid infrastructure | Local + cloud connected via VPN overlay |
| ha | High-availability cluster | Redundancy, failover, quorum consensus |
2. Node-Context = auto-detected environment
| Context | How it’s detected | What it affects |
|---|---|---|
| local | Physical hardware, no cloud metadata | Self-signed TLS, Dokploy, local DNS |
| cloud | Cloud provider metadata detected | Let’s Encrypt, Coolify, public DNS |
| pi | ARM + low memory or RPi detection | ARM images, reduced services, tmpfs |
3. Add-Ons = composable extensions
Add-Ons replace the old monolithic variant system. They stack and compose:kombination.yaml
Available StackKits
Base Kit
Single-environment
- Docker Compose
- Any node count
- Context-aware defaults
- Perfect first homelab
High Availability Kit
High-availability
- Docker Swarm cluster
- Keepalived VIP
- 3+ nodes recommended
- Automatic failover
Modern Homelab Kit
Hybrid infrastructure
- Local + cloud nodes
- VPN overlay built-in
- Coolify PAAS
- Public endpoints
How StackKits work
Context-driven defaults
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 |
3-Layer architecture
StackKits use a strict 3-layer architecture for maximum reusability:| Layer | Purpose | Managed by |
|---|---|---|
| L1: Foundation | System, security, packages, core identity (LLDAP, Step-CA) | OpenTofu |
| L2: Platform | Container runtime, PAAS, ingress, platform identity | OpenTofu |
| L3: Applications | User services deployed by PAAS | PAAS (Dokploy/Coolify) |
CUE schema definition
Each StackKit is defined in CUE, a powerful configuration language:base-kit/stackfile.cue
Validation flow
Progressive capability model
StackKits operates at different levels depending on how you use it:Example: base StackKit
Minimal configuration
kombination.yaml
With Add-Ons
kombination.yaml
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+ (quorum) |
| Complexity | Low | Medium | High |
| Failover | No | No | Yes |
| Best for | First homelab | Hybrid setups | Production workloads |
Customization
Override defaults
kombination.yaml
Add-On ecosystem
| Add-On | Category | Compatible with |
|---|---|---|
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 |
ci-cd | Development | base, modern, ha |
Next steps
Base Kit details
Explore services and configuration options
CUE basics
Learn the configuration language
Quick start
Deploy your first StackKit
