Skip to content

luissimas/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Why would you use Kubernetes in a homelab?

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages