The Engine Room: A Tour of My Homelab

Published on 2025-10-12

Every project needs a workshop, a place to tinker, build, and sometimes, break things. For a developer, that workshop is often digital. While cloud platforms offer endless possibilities, I found a unique satisfaction and an incredible learning opportunity in building my own from the ground up. This post is a tour of my personal homelab—the quiet, efficient engine running in the corner that powers this portfolio, my home automation, and more.

It all started after I had been doing some networking related projects at work, and the Dunning-Kruger effect hit me hard: I had now been looking at some servers, how hard could it be to just set up my own? All I wanted after all was just a little server that could maybe host some stuff and game server. Then suddenly I spotted a pretty decent mini-PC on an outlet sale, and the stars clearly aligned for me to quickly put together my dream setup. While the journey definitely was longer than first anticipated, I'm very pleased with the result.

Here is a little tour of my homelab setup.

The Core Stack: Hardware & Hypervisor

For the hardware, it was important that the setup was small, silent and power-efficient: I don't have a lot of space at home, so setting up a loud server rack would definitely be out of scope.

  • The Machine: An ASUS PN64 Mini PC with an Intel Core i5-12500H, 32GB of RAM, and a 1TB NVMe SSD. It's a compact powerhouse that provides more than enough resources for my needs without a sound or a high electricity bill. Best of all, I stumbled over it on an outlet sale meaning the price was not that bad either.
  • The Foundation: Proxmox Virtual Environment (VE). This is the operating system for the entire server. It’s a powerful, open-source hypervisor that lets me create and manage both full Virtual Machines (VMs) and lightweight Linux Containers (LXCs). Think of it as a digital landlord, dividing the server's resources into isolated apartments for each application to live in. I primarily use LXCs for their low overhead, which lets me run dozens of services without breaking a sweat.

The Network's Brains: DNS & Reverse Proxy

Getting services to run is one thing; making them accessible, secure, and easy to use is another. Two key services form the central nervous system of my network.

AdGuard Home: The Traffic Cop

Running in a lightweight container, AdGuard Home acts as the DNS resolver for my entire home network. Its job is twofold:

  1. Network-Wide Ad-Blocking: It filters out ads, trackers, and malware at the network level, meaning every device—from our phones to our smart TV—benefits from a cleaner, more private internet experience without needing any client-side software.
  2. Internal DNS: It manages all my internal domain names (like proxmox.home). When I type that into my browser, AdGuard knows not to go out to the internet, but to point my computer directly to the right internal server.

Nginx Proxy Manager: The Friendly Receptionist

This is arguably the most critical piece of the puzzle for external access. Nginx Proxy Manager (NPM) sits as the single gateway between the internet and my internal services. When you visit martin.dvalin.dev, you're talking to NPM first. It handles a few crucial tasks:

  • Directing Traffic: It looks at the domain you requested and forwards you to the correct internal container, whether it's my portfolio, a game server, or our analytics page.
  • SSL Management: It automatically obtains and renews SSL certificates (via Let's Encrypt), ensuring that all traffic to my public services is encrypted and secure.
  • Hiding the Mess: It allows me to expose multiple websites and services from a single public IP address, without fumbling with different port numbers in the URL.

What's Running in the Lab? A Few Highlights

The real fun of a homelab is the services you can run on it. My setup is a mix of practical tools, professional projects, and personal hobbies.

  • This Website (and Others): The portfolio you're reading right now is a Next.js static site served by a tiny Nginx container. My partner's portfolio, built on WordPress, also lives here in its own isolated container.
  • Home Assistant: The brain of our smart home runs in a dedicated VM, giving it the deep system access it needs to communicate with various devices. It controls our lights, sensors, and automates dozens of daily routines.
  • Privacy-First Analytics: Instead of Google Analytics, my sites use a self-hosted instance of Plausible CE. It gives me insight into website traffic without collecting any personal data or using cookies, respecting visitor privacy.
  • Game Servers: For fun, I spin up game servers using AMP. It runs in its own container and lets friends and I connect for gaming sessions on demand.
  • The Unsung Hero (DDNS): Like most residential connections, my public IP address can change. A simple ddclient script runs in a dedicated container, constantly checking my public IP and updating my domain's DNS records via Namecheap's API. It’s a small but vital piece of automation that ensures dvalin.dev always points to my front door.

Final Thoughts: Why Bother?

Building and maintaining this lab has been a very rewarding ongoing projects I've undertaken. It’s a practical application of skills in networking, Linux administration, and cybersecurity. It has forced me to solve real-world problems and has given me a deep appreciation for the complex infrastructure that powers the modern web.

More than anything, it's a space that is truly mine. In a world of SaaS and cloud services, there's a unique value in having a corner of the digital world that you've built, configured, and maintained yourself.

Thank you for reading.