Homelab

Goal

To set up a software / infrastructure lab primarily for testing, experimentation, and learning. It also needs to be able to host some useful services, such as file hosting and synchronisation.

I already have a server to use, so the solution needs to work on that. This also means I can turn it off when not needed, and save compared to cloud hosting.

The system should also be maleable and adaptable to support changes, experimentation, and evolution.

Technology

Architecture

Each service / project will have its own namespace, keeping them reasonably separate. This diagram is a highly simplified view of that architecture.

The only service that is explicitly included in the diagram is Traefik - as it is the ingress controller, it provides access to the other services and projects. Additionally, the provisioning and management of the cluster through GitHub Actions and Terraform is included.

Architecture for my homelab

Architecture for my homelab

Skills

Kubernetes logo
Terraform logo
Github logo