Homelab · Self-hosting
Hearth
A small self-hosted infrastructure project built around repurposed hardware, practical experimentation, and learning how the pieces of a network fit together.
01 · Overview
A home for useful services.
Hearth began as an experiment in giving older hardware another useful life. Rather than building around one application, I use it as a small platform for learning Linux administration, networking, storage, containers, reverse proxies, DNS, monitoring, and self-hosting.
The system is deliberately modest. That constraint has made resource allocation and service boundaries part of the project rather than something I can simply solve with more hardware.
02 · Constraints
Working with what I already had.
Hearth is deliberately built around hardware I already owned. The main host is a 2011 Mac mini with 16 GB of memory, so resource efficiency is part of the architecture rather than an afterthought.
Storage uses ordinary ext4 filesystems on external disks instead of a more complex storage stack. This keeps the drives portable, makes the system easier to understand, and leaves room to replace the host later without tying the data to one machine.
03 · Stack
Small services, clear responsibilities.
04 · Architecture
Separate the services that matter.
Administrative services remain on the local network; only explicitly selected services are exposed publicly.
05 · Learning in practice
Connecting coursework with real infrastructure.
Building Hearth has helped me connect the web-development concepts I am learning at university with a real deployment environment. Although this portfolio is deliberately static, many of the underlying skills are the same ones involved in dynamic web development: understanding how requests reach a server, organising site structure, configuring a web server, managing permissions, handling DNS, and deciding what should or should not be publicly accessible.
Working with dynamic server-side technologies such as PHP has also made the trade-offs more apparent. A static site removes much of the application runtime and database surface area, but it still needs to be deployed, routed, secured, and maintained. This has helped me think less in terms of individual languages or tools and more in terms of the complete path between a user and an application.
My networking studies reinforce the same idea from another direction. DNS resolution, IP addressing, and service discovery are things I now use directly rather than only studying conceptually. Running services such as Pi-hole and Caddy has made it easier to see how the networking, web-server, and application layers fit together.
06 · Next
Still evolving.
Future work includes expanding game-server experiments, improving backup automation, refining monitoring, and continuing to document the infrastructure as it grows.
Technologies used in practice
Tools connected to real work.
Proxmox VE
Created and managed lightweight LXC containers with separate responsibilities and resource limits.
Caddy
Configured reverse proxying and HTTPS for selected public-facing services.
Pi-hole
Deployed DNS filtering, tested client resolution, and connected DNS behaviour to networking theory.
Samba
Configured authenticated LAN file sharing across mounted storage and Unix permissions.
Linux
Administered Debian-based services, systemd units, storage mounts, permissions, networking, and service troubleshooting.
Python
Used small maintenance scripts to safely edit and validate portfolio content.