Go to file
2022-06-08 00:06:05 +02:00
.gitlab/agents Add dev-env kubernetes agent 2022-05-27 22:27:30 +02:00
adguard Add adguard configuration with proper env variable sourcing 2022-06-01 23:45:57 +02:00
dashboard Update kubernetes dashboard to be accessible from localhost, waiting for TLS 2022-05-15 21:43:20 +02:00
minecraft Add working minecraft configuration 2022-06-06 18:41:15 +02:00
nginx Fix nginx routing setup 2022-05-15 20:30:42 +02:00
res Add longhorn storage classes 2022-06-06 18:40:29 +02:00
traefik-lb Add websecure endpoint port 2022-05-15 21:43:31 +02:00
.gitlab-ci.yml Test gitlab integration 2022-05-28 14:05:44 +02:00
README.md Change README formatting 2022-06-08 00:06:05 +02:00

K3s cluster

Name Usage Accessibility Host DB type Automated backups Configured
therbron.com Personal website Public Socrates - Nothing to backup No
Traefik Reverse proxy and load balancer Public* Socrates - Git configuration Partial (Missing TLS)
Adguard DNS ad blocker and custom DNS server Private Socrates - ? Yes
Owncloud Infinity Scale File hosting webUI Public Plato PostgreSQL ? No
Home assistant Home automation and monitoring Private Pythagoras-a PostgreSQL ? No
Vikunja To-do and Kanban boards Public Pythagoras-b - ? No (To be integrated in Gitlab)
Gitlab Version control system Public Pythagoras-b PostgreSQL ? No
Wiki Documentation manager Public Pythagoras-b - ? No (Migrate to VuePress and Gitlab)
Vaultwarden Password manager Public Pythagoras-b PostgreSQL ? No
Jellyfin Media streaming Public Archimedes - ? No
Sonarr TV shows collection manager Private Plato SQLite** ? No
Radarr Movie collection manager Private Plato SQLite** ? No
Jackett Torrent indexer Private Plato - ? No
Deluge Torrent client Private Plato - ? No
Minecraft Vanilla minecraft server for friends Public Archimedes - Longhorn snapshots Yes

** Current implementation only support SQLite, making manual backups a necessity

TODO

  • Change host/deployment specific variables to use environment variables
  • Write CI/CD pipeline to create environment loaded files
  • Write CI/CD pipeline to deploy cluster
  • Look into CockroachDB for redundant database
  • Add TLS certificates for every http applications
  • Configure IP range accessibility through Traefik (Internal vs external services)

Notes

Add node to the list of available load balancer kubectl label node <node-name> svccontroller.k3s.cattle.io/enablelb=true

Install traefik through helm

helm repo add traefik https://helm.traefik.io/traefik
helm repo update
helm install -f helm/traefik/values.yaml traefik traefik/traefik

Install longhorn

kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml