My Homelab setup running as a K3S cluster.
- GitOps: everything should be deployed and reproducible with Flux
- Secrets should be safely stored in the repository
- SSL certificates for all services
- Monitoring stack with Prometheus and Grafana
- GPU pass-through for hardware acceleration
- Expose services to the outside world
- Monitor all deployed applications
- Reliable storage
- Monitoring alerts
The repository structure follows the Flux recommendations, but I've also added an extra layer to provide a better separation of concerns. The idea is to have the following dependency graph
┌───►Apps
Infrastructure│
└───►Core Services
Infrastructure contains controllers and its configurations that do not expose any external services. They provide the fundamental resources to other services such as SSL certificates, secrets management, storage and so on.
Core services are composed of the administrative services exposed from the cluster. This includes any administrative dashboards and monitoring stacks.
Apps are the user-facing services provided by the cluster.
- GitOps setup with Flux
- Manifests validation in CI
- Ensure bootstrap order is correct
- Flux UI
- Secrets management
- SSL certificates
- Secrets replication for certificates
- SSL certificate prod
- Monitoring stack
- Structure the repository
- Persist Prometheus data
- Research Cloudflare tunnel vs VPN
- Implement solution with Tailscale
- Figure out how to do storage
- Longhorn basic setup
- Longhorn UI
- Multiple disks on longhorn
- Monitor longhorn with prometheus
How to migrate data to longhorn volumes
https://www.youtube.com/watch?v=0CV__VnbYCc&t=205s
- kube-prometheus-stack deploy
- Alertmanager setup
- Provision strava datasource
- Provision strava dashboard
- Multiple users on strava dashboard
- Provision custom Kubernetes dashboard
- Loki setup
- Monitor loki and promtail
- Deploy
- Gpu acceleration
- Media folder on dedicated drive
- Deploy
- Settings
- Annotations
- Deploy
- Monitoring
https://github.com/onedr0p/exportarr
- Deploy
- Monitoring: https://github.com/esanchezm/prometheus-qbittorrent-exporter
- Deploy
- Monitoring
- Deploy
- Monitoring
- Deploy
- Monitoring
- Deploy
- Monitoring
- Deploy
- Monitoring
- Deploy
- Monitoring
- Deploy
- Monitoring
- Deploy
- Monitoring