Skip to content

Latest commit

 

History

History
160 lines (107 loc) · 3.07 KB

README.md

File metadata and controls

160 lines (107 loc) · 3.07 KB

Homelab

My Homelab setup running as a K3S cluster.

Goals

  • 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

Repository structure

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.

TODO

General infrastructure

Flux

  • GitOps setup with Flux
  • Manifests validation in CI
  • Ensure bootstrap order is correct
  • Flux UI

Secrets

  • Secrets management

SSL Certificates

  • SSL certificates
  • Secrets replication for certificates
  • SSL certificate prod
  • Monitoring stack
  • Structure the repository
  • Persist Prometheus data

Expose cluster

  • Research Cloudflare tunnel vs VPN
  • Implement solution with Tailscale

Storage

  • 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

General

https://www.youtube.com/watch?v=0CV__VnbYCc&t=205s

Monitoring

  • 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

Services

Jellyfin

  • Deploy
  • Gpu acceleration
  • Media folder on dedicated drive

Homepage

  • Deploy
  • Settings
  • Annotations

Prowlarr

  • Deploy
  • Monitoring

https://github.com/onedr0p/exportarr

QbitTorrent

Radarr

  • Deploy
  • Monitoring

Sonarr

  • Deploy
  • Monitoring

Bazarr

  • Deploy
  • Monitoring

Readarr

  • Deploy
  • Monitoring

Mealie

  • Deploy
  • Monitoring

Authentik

  • Deploy
  • Monitoring

NextCloud

  • Deploy
  • Monitoring

Immich

  • Deploy
  • Monitoring