.gitlab/agents | ||
adguard | ||
dashboard | ||
minecraft | ||
nginx | ||
res | ||
traefik-lb | ||
.gitlab-ci.yml | ||
README.md |
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