Homelab: self-hosting on a mini-PC
July 17, 2026
For a while now, a good part of what I use day to day no longer runs in someone else's cloud, but on a small machine sitting at home. My homelab is a personal server that stays on around the clock, hosting my own services and letting me practice system administration and networking on real infrastructure rather than on a tutorial.
The hardware
Everything fits on a mini-PC. The criterion was not raw power but the opposite trade-off: enough resources to run a handful of services continuously while staying quiet and energy-efficient, since the machine never shuts down. A mini-PC checks those boxes without taking up space or making noise in a home.
Linux and Docker
The base is a headless Linux server, and everything else lives in Docker containers orchestrated with Docker Compose. Each service is described in a file: its image, its volumes, its variables. The benefit is twofold. First, isolation: a service that crashes or that I want to remove does not drag the others down. Second, reproducibility: the whole configuration is text, versionable, and I can reapply it with a single command if I start over.
The services
Two families coexist today. On the media side, a server that centralizes and streams my library to my screens, without depending on a subscription or an outbound connection. On the network side, Pi-hole filters ads and tracking for the whole local network by acting as a DNS resolver, and a VPN lets me reach my services from outside as if I were home. It is also where I run my own projects under test, in an environment I control end to end.
Exposing it cleanly
Giving access to these services without turning the machine into a sieve takes a bit of method. A reverse proxy, Nginx Proxy Manager, sits in front of everything: it gives each service its own subdomain and handles HTTPS certificates automatically, so nothing travels in the clear. One front door, properly closed, rather than one open port per service.
Backups and monitoring
A server hosting things you care about has to be able to fail without it being a disaster. Scheduled backups regularly copy the data and configurations, and a bit of monitoring warns me when a service stops responding or a resource runs hot. The goal is not datacenter-grade high availability, but never losing data and always knowing what is going on.
What it gives me
A homelab is not a collection of services: it is a permanent training ground. You touch the command line, containers, DNS, certificates, backups, the same building blocks as a production setup, but with the freedom to break everything and start again. It is the best way I have found to learn infrastructure: by actually running it.