This repository contains everything I've got running on my home servers.
My setup is currently as follows:
- macharian: the physical machine running Debian with several KVM guests:
- andosk: Ubuntu VM running pi-hole
- cytheris: Ubuntu VM running Kubernetes
- Yix: Ubuntu VM running MinIO for S3 storage
- Persepolis: Home Assistant OS VM
- Gallosque: Ubuntu VM running Tailscale VPN for outside access
- gallosque nebula: A Scaleway VPS running an NGINX reverse proxy that exposes certain services via gallosque over Tailscale to the outside world.
The kubernetes cluster currently consists of a single node (cytheris) running microk8s.
The cluster is managed via Flux which uses the kubernetes
folder in this repository as source. Renovate helps keep everything up to date.
The core components are:
- cert-manager: Creates SSL certificates for everything running in the cluster
- cilium: Internal Kubernetes networking
- ingress-nginx: Ingress controller for everything running in kubernetes that is exposed to the internal network, or via Gallosque to the external network
- authentik: Single Sign-On either via OIDC or integrated via ingress-nginx
- sops: Keeps secrets commited in this repo actually secret
The applications running on kubernetes fall into several categories:
- Self-hosted storage for Photos via Immich and documents/calendars via NextCloud
- A Media Center, running in the media namespace, with automated tracking of movies, shows, and artists; using Plex, *arr, and more.
- Smaller stuff like a Unifi controller or a wiki for a WarHammer 40k Imperium Maledictum roleplay group
- Underlying technology such as Redis and PostgreSQL
- 1x ASUS NUC14RVHU7000R0 Revel Canyon U7 155H
- 64 GB RAM
- 1x 2TB M.2 NVMe
- 1x 4TB SATA SSD (warp)
This hardware is currently situated next to our TV, which greatly hampers the options for expansion. I would love to expand and add proper storage (a NAS) and at least one other server, but that has to wait until after we've moved to a house that doesn't only have network cables in the living room.
I might be a software engineer but I had little to no experience with Kubernetes and DevOps when I bought my server. The home-ops repo of GitHub user onedr0p has been instrumental in getting me started with flux and renovate, and I use a lot of containers they have set up.