# Macharian This repository contains everything I've got running on my home servers. ## Servers My setup is currently as follows: - Proteus Quartus: an ASUS NUC 14 running a [Talos](https://talos.dev) node on bare metal - Proteus Secundus: an ASUS NUC 15 running a Talos node on bare metal - Paleon: A [Scaleway](https://scaleway.com/) VPS running an NGINX reverse proxy that exposes certain services over Tailscale to the outside world. ## Kubernetes Kubernetes cluster Proteus currently consists of two nodes, Proteus Secundus and Proteus Quartus, both running Talos. The cluster is managed via [Flux](https://github.com/fluxcd/flux2) which uses the [`kubernetes`](./kubernetes) folder in this repository as source. [Renovate](https://github.com/renovatebot/renovate) helps keep everything up to date. The core components are: - [cert-manager](https://github.com/cert-manager/cert-manager) creates SSL certificates for everything running in the cluster - [Istio](https://istio.io) manages the network & ingress with [metallb](https://metallb.io) as load balancer - [Tailscale](https://tailscale.com) exposes certain services over VPN to the internet - [Longhorn](https://longhorn.io) manages storage for k8s - [authentik](https://github.com/goauthentik/authentik) provides Single Sign-On either via OIDC or integrated via istio - [sops](https://github.com/getsops/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](https://immich.app/) and documents/calendars via [NextCloud](https://nextcloud.com/) - A Media Center, running in the media namespace, with automated tracking of movies, shows, and artists; using [Plex](https://plex.tv/), [*arr](https://wiki.servarr.com/), and more. - Smaller stuff like a [Unifi](https://ui.com) controller or a wiki for a [WarHammer 40k Imperium Maledictum](https://cubicle7games.com/warhammer-40k-roleplay-imperium-maledictum) roleplay group - Underlying technology such as [Redis](https://github.com/redis/redis) and [PostgreSQL](https://www.postgresql.org/) ## Hardware - 1x ASUS NUC14RVHU7000R0 Revel Canyon U7 155H - 64 GB RAM - 1x 2TB M.2 NVMe - 1x 4TB SATA SSD (warp) - 1x ASUS NUC 15 Pro Slim Kit RNUC15CRKU700002 barebone - 64 GB RAM - 1x 2TB M.2 NVMe 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 maybe one other server—having two k8s nodes has downsides that a third node would solve—but that has to wait until after we've moved to a house that doesn't only have network cables in the living room. ## Gratitude I had little to no experience with Kubernetes and DevOps when I bought my first NUC to use as server. The [home-ops repo of GitHub user onedr0p](https://github.com/onedr0p/home-ops) has been instrumental in getting me started with flux and renovate, and I use a lot of [containers](https://github.com/home-operations/containers) they have set up.