Homelab

Image

Links

About

Local infrastructure that hosts my personal projects.

Tech stack

Hardware

  • Server
    • CPU: Intel(R) Core(TM) i5-14500
    • RAM: 64G
    • Storage: 1T M.2 NVMe
  • VPN server:

    My old PC, currently just runs the VPN server

    • CPU: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
    • RAM: 8G
    • Storage:
      • 128G SSD
      • 1T HDD

OS

  • Ubuntu 24.04

DNS

  • External Domain registration and DNS provider: CloudFlare
    • Uses CloudFlare API and ipify to implement DDNS, updates DNS record every 5 minutes, runs locally as a docker container
  • Local DNS: CoreDNS
    • Self hosted with docker
    • Used for registering domains that are only accessible in my local network

VPN

  • OpenVPN with TUN interface

Container orchestration

  • K3s with Cilium as kube-proxy replacement
  • Rancher as the UI for K3s

Persistent Storage

  • Longhorn
  • Rancher Local-Path, pre-installed with k3s
  • NFS server for storing backup

API Gateway

  • Istio and K8s gateway API for external traffic
  • Traefik for internal use ( domains accessible in LAN )
  • Automated TLS with Cert-manager and Let's encrypt with DNS challenge

CI/CD

  • Drone CI
  • Helm: stored in a git repository
  • Harbor: self hosted image registry

Monitoring

  • Hardware and resources:
    • Prometheus: collect metrics
    • Grafana: visualization

Details

For more details, please refer to the Blog Post