A K3s cluster defined as code.
The core components of the cluster
Logo | Name | Description |
---|---|---|
K3s | Lightweight Kubernetes | |
Traefik | Kubernetes Ingress Controller | |
Helm | The package manager for Kubernetes | |
Flux CD | Continuous delivery solutions for Kubernetes |
The infrastructure that everything else depends on
Logo | Name | Description |
---|---|---|
Local Path Provisioner | Local storage based on hostPath and local storage providers |
|
cert-manager | X.509 certificate management for Kubernetes |
The applications that run in my homelab (listed in alphabetical order)
Logo | Name | Description |
---|---|---|
Code Server | A Dockerized version of code-server | |
CyberChef | A Dockerized version of GCHQ's Cyber Swiss Army Knife | |
Diagrams.net (aka Draw.io) | Diagram creation | |
Focalboard | Project and task management (Kanban board) | |
Grafana | Part of the TIG stack (Telegraf, InfluxDB, Grafana) | |
IT-Tools | Collection of handy online tools for developers | |
Joplin | Joplin sync server | |
![]() |
jqplay | A playground for jq, written in Go |
Miniflux | Minimalist and opinionated feed reader | |
pgAdmin 4 | Management tool for Postgres | |
Portainer | Web-based management for Kubernetes | |
Registry | Docker image registry | |
Registry UI | Docker image registry UI | |
Startpage | PHP/HTML startpage (my own container image) | |
string.is | A Dockerized version of string.is | |
Traefik dashboard | This was already installed, just exposing it with ingress and basic auth | |
Weave GitOps | Web-based management for Flux | |
WebDAV | Nginx WebDAV server (my own container image) | |
whoami | Test web app written in Go |
See the README for more information
- Change intervals under
cluster/charts
from 1m to 1h - Auto-issue certs using cert-manager
- Setup renovatebot
- Add cert-manager CRDs to renovatebot (discussion here)
- Setup Docker digest pinning
- Change install bash scripts to Ansible or Terraform (example here)
- Setup yamlint (using GitHub Actions or just by running
pip3 install yamllint
in the workflow)