Skip to main content
Run kombify TechStack on your own infrastructure with full control and no SaaS dependencies. This guide walks you through setting up a complete homelab management system.
What you’ll get: A self-hosted kombify TechStack instance that can manage your homelab, deploy StackKits, and monitor your infrastructure — all running on your own hardware.

Prerequisites

Docker

Docker Engine 24.0+ with Compose v2.20+

System resources

4GB RAM minimum, 10GB disk space
If you prefer a managed experience without self-hosting, see Quick start (SaaS).

Step 1: Install kombify TechStack

1

Create directory and download compose file

mkdir ~/kombify && cd ~/kombify
curl -O https://raw.githubusercontent.com/kombify/techstack/main/docker-compose.yml
2

Start services

docker compose up -d
This starts:
  • kombify TechStack Core (API + PocketBase) on port 5260
  • kombify TechStack UI (SvelteKit dashboard) on port 5261
3

Access the dashboard

Open http://localhost:5261Default credentials:
  • Email: admin@kombistack.local
  • Password: admin123
Change the default password immediately after first login. Go to SettingsSecurityChange Password.

Step 2: Verify installation

Check that all services are running:
curl http://localhost:5260/api/v1/health
# Expected: {"status":"healthy","version":"1.0.0"}

Service ports

ServicePortProtocolDescription
Core API5260HTTPREST API + PocketBase Admin
Frontend5261HTTPSvelteKit Dashboard
gRPC5263gRPC/mTLSAgent communication

Step 3: Create your first stack

1

Start the Easy Wizard

In the dashboard, click “New Homelab”“Easy Wizard”.
The Easy Wizard asks simple questions about what you want to build. For granular control, use the Technical Wizard instead.
2

Answer wizard questions

QuestionExampleWhat it affects
Stack namemy-homelabIdentifier for this stack
StackKitbase-kitBase blueprint to use
Domainhome.localSSL and routing
3

Add your nodes

Add the server(s) you want to manage:
nodes:
  - name: main-server
    type: local
    connection:
      host: 192.168.1.100
      user: root
      ssh_key: ~/.ssh/id_rsa
You can add multiple nodes. kombify TechStack will distribute services across them based on available resources.
4

Select services

Choose services to deploy from the StackKit:
  • ✅ Traefik (reverse proxy with auto-SSL)
  • ✅ Uptime Kuma (monitoring)
  • ✅ Immich (photo management)
  • ✅ Homepage (dashboard)

Step 4: Install agent on target server

The kombify agent runs on each server you want to manage. It communicates with TechStack via mTLS-secured gRPC.
1

Generate agent credentials

In the dashboard, go to “Agents”“Add Agent”.You’ll receive:
  • A unique agent token
  • An installation command
Copy the installation command.
2

Run on target server

SSH into your target server and run the installation:
curl -sSL https://install.kombify.io/agent | sudo sh -s -- \
  --token YOUR_AGENT_TOKEN \
  --server http://your-kombistack-ip:5260
The agent is a lightweight Go binary (~15MB). It connects outbound to Stack, so no inbound ports are required on the target server.
3

Verify connection

The dashboard will show “Agent Connected” with a green status indicator.You can also check agent status on the server:
sudo systemctl status kombify-agent

Step 5: Deploy

1

Review your configuration

Click “Review” to see the generated kombination.yaml.This is your single source of truth — version-controlled, shareable, and fully reproducible.
2

Simulate first (optional but recommended)

Click “Simulate” to test the configuration in kombify Simulate before deploying to real hardware.
3

Apply

Click “Apply” to start deployment.Watch the real-time progress:
✅ Validating configuration...
✅ Connecting to node: main-server
✅ Installing Docker services...
✅ Configuring network...
✅ Deployment complete!
4

Access services

Your services are now running:
  • Traefik: http://your-server:8080
  • Uptime Kuma: http://your-server:3001
  • Immich: http://your-server:2283

Optional: Add kombify Simulate

Test configurations before deploying to real hardware.
# Add to docker-compose.yml
services:
  kombisim:
    image: ghcr.io/kombify/kombisim:latest
    ports:
      - "5270:5270"
      - "2222-2322:2222-2322"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - kombisim-data:/app/data

volumes:
  kombisim-data:
Then restart:
docker compose up -d
Access Simulate at http://localhost:5270.

Configuration

Environment variables

Create a .env file:
.env
# Core API
KOMBISTACK_PORT=5260
KOMBISTACK_GRPC_PORT=5263
KOMBISTACK_LOG_LEVEL=info

# Database
KOMBISTACK_DATA_DIR=./data

# Development mode (disable in production)
KOMBISTACK_DEV_MODE=false

Custom domain

To use a custom domain, update your kombination.yaml:
stack:
  domain: yourdomain.com
  email: admin@yourdomain.com

network:
  ssl:
    provider: letsencrypt

Next steps

Explore kombify TechStack

Learn about TechStack’s features

Use kombify Simulate

Simulate before deploying

Browse StackKits

Explore infrastructure blueprints

Production setup

Configure for production use

Troubleshooting

If ports are already in use, modify docker-compose.yml:
services:
  kombistack:
    ports:
      - "5360:5260"  # Changed from 5260
Add your user to the docker group:
sudo usermod -aG docker $USER
newgrp docker
Check logs:
docker compose logs kombistack
docker compose logs app
Verify network connectivity:
# On target server
curl http://your-kombistack-ip:5260/api/v1/health

# Check agent logs
sudo journalctl -u kombify-agent -f
For production deployments, see the Production checklist.