← Projects

02 · Linux · Networking · Self-hosting

Homelab

What started as a home server has grown into a homelab where I run the services I use at home and learn as I build, maintain and troubleshoot it.

PlatformUbuntu Linux
InfrastructureDocker · UniFi
FocusNetworking · Automation · Self-hosting
Overview

My server.
My home network.

Today, the homelab consists of an Ubuntu server running most of my services in Docker, alongside a UniFi-managed network and Home Assistant for home automation. Pi-hole provides internal DNS, while Caddy handles reverse proxying and HTTPS for private service addresses under my own domain.

Because I use it every day, it has also become a practical place to learn. When something breaks, I have to work out whether the problem is in a container, the host, DNS or the network.

Architecture

How the network
is arranged.

UniFi handles routing, firewall rules and network segmentation. The Ubuntu server runs most of my self-hosted services.

01Edge
WANInternetInternet connection
02Network
GATEWAYUniFiRouting · firewall · segmentation
03Segments
LANTrusted devicesWorkstations · server
VLANIoTSeparated smart devices
VPNRemote accessVPN access from outside
04Compute
LINUXUbuntu serverDocker · storage · automation
05Services
DNS
Automation
Media
Monitoring
Web hosting
Reverse proxy
Approach

How I run
the homelab.

01

Keep it local

I prefer running services locally when it makes sense, especially for home automation and services I rely on at home.

02

Segment deliberately

I keep IoT devices separate from trusted systems and use firewall rules to allow only the traffic they actually need.

03

Understand what breaks

When something fails, I want to understand where and why rather than simply getting it working again.

04

Keep it maintainable

I organise services into Docker Compose stacks to keep configuration, updates and changes manageable.

Stack

What I use at home.

Operating systemUbuntu Linux
ContainersDocker · Docker Compose
NetworkingUniFi · VLANs · Firewalls
DNSPi-hole
Remote accessWireGuard · Teleport
AutomationHome Assistant · ESPHome
DashboardHomepage
MonitoringBeszel
WebCaddy · Wildcard HTTPS · Astro
AdministrationSSH · UFW · Fail2Ban
Ongoing project

Built to be used.
Never really finished.

The homelab changes as I find new things I want to run, improve or understand. I document the setup as it evolves, both for my own reference and to keep track of how and why things are configured.

View infrastructure documentation on GitHub