Kubernetes cluster (K3s) hosted on a Raspberry Pi to manage my home media and networking configuration.
Ansible playbooks to automate the initial pi setup, cluster deployment and cluster destruction.
Flash Raspberry Pi OS Lite (64-bit) and run ./setup.sh
to lockdown the pi and assign a static IP address.
Run ./create.sh
to install K3s and applications.
Run ./destroy.sh
to uninstall the cluster.
- Pi-hole - advertising-aware DNS/web server.
- RSS Tracker - email notifications for rss feed updates.
- Prometheus Stack - enable alerts and cluster visualisation on grafana.
- NextCloud - self-hosted cloud storage.
- Pi-hole backups - automated weekly backup and reload on deployment of pi-hole's database using Google Drive.
- Home Assistant - centralise home IoT devices from multiple providers.
- OctoPrint - remote dashboard for 3D printers.
- Bitwarden - open source password manager.
- Google Drive Service Account Token - used for pihole backup jobs
- Cloudflare DNS API Token - used for cert-manager challenge
- A Record - dashboard -
nginx-ingress-external-ip
- DNS only (no cloudflare proxy) - A Record - pihole -
nginx-ingress-external-ip
- DNS only (no cloudflare proxy) - A Record - prometheus -
nginx-ingress-external-ip
- DNS only (no cloudflare proxy) - A Record - alertmanager -
nginx-ingress-external-ip
- DNS only (no cloudflare proxy) - A Record - grafana -
nginx-ingress-external-ip
- DNS only (no cloudflare proxy) - A Record - cloud -
nginx-ingress-external-ip
- DNS only (no cloudflare proxy)
- First metallb ip pool address - Nginx ingress
- Second metallb ip pool address - Pihole DNS ingress