Quick Start¶
Prerequisites¶
- kubectl (1.19+)
- kustomize (4.0+)
- git
- Docker (for building images)
Clone the Repository¶
git clone https://fit.serlo.lu/monty/homelab.git
cd homelab
Repository Structure¶
apps/
├── base/ # Base kustomization for each app
│ ├── mkdocs/
│ ├── pihole/
│ ├── immich/
│ └── ...
└── production/ # Production overlays
infrastructure/
├── base/ # Base infrastructure components
│ ├── traefik-edge/
│ ├── cert-manager/
│ ├── prometheus/
│ └── ...
└── production/ # Production patches & overrides
clusters/
├── production/ # Production cluster (Flux)
├── local/ # Local dev cluster
└── k3s-config/ # k3s-specific configuration
Building Manifests Locally¶
View what will be deployed¶
# Check a single app
kustomize build apps/base/mkdocs
# Check production overrides
kustomize build apps/production
Apply to cluster¶
# Apply infrastructure
kubectl apply -k infrastructure/production
# Apply applications
kubectl apply -k apps/production
Using MkDocs locally¶
# Install dependencies
pip install -r requirements.txt
# Start development server
mkdocs serve
# Open http://localhost:8000
Tip
The development server watches for file changes and auto-reloads.
Next Steps¶
- 📖 Read the Architecture guide
- 🚀 Deploy to your cluster: see individual app docs
- 🔧 Customize for your environment: overlay patterns in
apps/production/andinfrastructure/production/