explaingit

hobby-kube/guide

5,663Audience · ops devopsComplexity · 4/5Setup · hard

TLDR

A practical written guide for setting up your own Kubernetes cluster on cheap cloud servers like Hetzner or DigitalOcean, covering private networking with WireGuard, persistent storage, ingress, and SSL from scratch.

Mindmap

mindmap
  root((hobby-kube guide))
    What it covers
      Cluster setup
      Private networking
      Persistent storage
      Ingress and SSL
    Tools used
      Kubernetes
      WireGuard
      containerd
      Rook
      Terraform
    Cloud targets
      Hetzner Cloud
      DigitalOcean
      Scaleway
    Audience
      Linux hobbyists
      Personal projects
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Set up a personal Kubernetes cluster on Hetzner or DigitalOcean for under $20 per month without paying for a managed service.

USE CASE 2

Configure WireGuard-based private networking between cluster nodes when the cloud provider does not include an isolated private network at the cheap tier.

USE CASE 3

Get persistent storage working across multiple nodes using Rook so applications survive individual server failures.

USE CASE 4

Route external traffic through an ingress controller and add automatic SSL certificates to apps running on your self-hosted cluster.

Tech stack

KubernetesWireGuardTerraformcontainerdetcd

Getting it running

Difficulty · hard Time to first run · 1day+

Requires familiarity with Linux, SSH, and cloud VMs, configuring WireGuard, etcd, and Rook across multiple nodes takes significant time and troubleshooting.

No license is specified, the content is publicly accessible on GitHub but no explicit usage rights are granted.

In plain English

This repository is a practical guide for hobbyists who want to run their own Kubernetes cluster on a cloud provider without spending money on a managed service. It targets providers like Hetzner Cloud, DigitalOcean, and Scaleway, which offer affordable virtual machines you provision yourself. The guide addresses specific problems that arise when setting up Kubernetes outside of a managed environment: configuring a working ingress controller to accept external traffic, setting up secure private networking between nodes, and getting persistent storage to work reliably across multiple servers. The guide is opinionated on several fronts. For private networking between cluster nodes it uses WireGuard, a modern VPN tool, because cloud providers do not always offer isolated private networks at the low price tier. For container runtime setup it covers containerd and etcd configuration before walking through the Kubernetes installation steps, including initializing the master node and joining worker nodes to the cluster. Role-based access control, deploying services, routing external traffic through an ingress controller, setting up automatic SSL certificates, and deploying the Kubernetes dashboard are all covered as separate sections. The storage section discusses distributed block storage and walks through deploying Rook, a storage orchestration tool, so that applications can use persistent volumes that survive individual server failures. Alongside the written guide, the repository links to Terraform modules (infrastructure automation scripts) that can automate the cluster setup steps described in the text. The author notes the content may become outdated over time given how fast Kubernetes evolves, and contributions to keep it current are welcome. The intended audience is someone comfortable with Linux and cloud virtual machines who wants a working, affordable Kubernetes cluster for personal projects rather than a production enterprise deployment. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I'm following the hobby-kube guide and stuck on WireGuard setup between 3 Hetzner nodes. The nodes can't ping each other on the private subnet. Here's my WireGuard config, what's wrong?
Prompt 2
Help me adapt the hobby-kube Terraform modules to provision 3 DigitalOcean droplets with 2 workers and 1 master using the smallest viable instance sizes.
Prompt 3
I've completed the hobby-kube cluster setup but my ingress controller isn't routing external traffic. Show me how to debug an nginx ingress on a bare-metal cluster.
Prompt 4
I want to add the Kubernetes dashboard from the hobby-kube guide to my cluster. Walk me through the RBAC setup and how to access it safely without exposing it publicly.
Open on GitHub → Explain another repo

← hobby-kube on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.