← All projects
Personal project

Personal Homelab

My own always-on home server—private storage, custom scripts, and self-deployed software on repurposed hardware, built and maintained end to end.

Last updated October 2026

Overview

I wanted private, always-available alternatives to cloud subscriptions for storage, media, and productivity. I built and operate a headless Linux server from repurposed hardware, using Docker to isolate services and authenticated encrypted connections for remote access. It now runs 22 Compose projects, including custom tools for needs off-the-shelf apps do not cover.

Dark project list showing self-hosted services such as Anytype, Authelia, Chromium, Immich, and Paperless.
Take a closer look
Homelab project list showing deployed applications and services.

What it is

The server hosts storage, media, productivity tools, monitoring, and automation for everyday use. It runs headlessly on repurposed hardware and stays online around the clock.

Each service runs in its own Docker container, alongside custom scripts and internal tools. I manage their configuration and updates from the same Linux host.

Services and Uptime

A Compose project may contain multiple containers. Private connection and configuration details are omitted.

22 Compose projects 5 categories

Files & photos

  • immich-app
  • paperless
  • scanserv

Productivity & media

  • anytype
  • clipsapp
  • immich-selfie-timelapse
  • musicbot

Network & access

  • authelia
  • cloudflared
  • pihole

Monitoring & alerts

  • gatus
  • gotify
  • myportfolio-status-monitor
  • scrutiny
  • umami
  • watchyourlan

Apps & custom tools

  • chromium
  • geopulse
  • gods-eye-view
  • myportfolio
  • termix
  • windows

Why I built it

I wanted real infrastructure experience, not just code that deploys somewhere I never touch. Running my own server means thinking about reliability, security, backups, and debugging in ways side projects alone do not cover.

It also replaced a growing list of monthly subscriptions with tools I own and understand. When something breaks late at night, I fix it—and that cycle of building, breaking, and recovering is where most of the learning happens.

Diagram: remote devices connect to a private Linux home server through an authenticated encrypted tunnel or mesh VPN. The server runs segmented Docker networks with 22 Compose projects and monitoring.
Take a closer look
Private remote access, segmented services, and monitoring.

Security and access

The core rule is simple: nothing sits open on the public internet. Anything I reach from outside home passes through encrypted tunnels and has to authenticate first, including hardware-backed multi-factor authentication before a session starts.

Private devices connect over a mesh VPN as if they share the same local network. Workloads live on segmented Docker networks, containers run with minimal privileges, and DNS-level filtering cuts down junk and risk across the environment.

Keeping it running

Getting a server working once is easy. Keeping it reliable for months is the real work. I use uptime monitoring and alerting to catch problems early, and I track disk health because consumer hardware rarely warns you before it fails.

When a new need comes up, I write the script or service, containerize it, and ship it alongside the rest of the stack. Routine updates, backup checks, log digging, and the occasional late-night container restart are all part of operating something you depend on every day.

Lessons learned

The biggest takeaway is the difference between making something work once and keeping it working indefinitely. Coursework ends when the assignment ships; a homelab has to survive hardware failures, upstream updates, and the kind of slow drift that breaks things in ways no test suite catches.

I learned to think about failure modes before they happen—backups that are actually tested, monitoring that alerts before users notice, and network segmentation that limits blast radius when something goes wrong. Reliability is not a feature you bolt on; it is a habit you build into every decision.

Highlights

  • Designed a security-first architecture with no directly exposed services, identity-gated remote access, hardware-backed MFA, segmented container networks, and edge-layer traffic filtering
  • Built operational discipline through uptime monitoring, proactive alerting, and hardware health tracking to catch failures before they cause outages
  • Gained sustained hands-on experience with Linux administration, Docker orchestration, DNS, VPN networking, and access control through daily use of self-managed infrastructure
  • Demonstrated initiative and self-directed learning by building a real environment to close the gap between coursework and the skills production teams expect

Skills & Technologies

LinuxDockerDocker ComposeBashSystem AdministrationNetworkingVPNSecurityMonitoring

Glossary

DNS
Domain Name System: the service that translates names, such as website addresses, into network addresses.
Docker
A tool that packages applications with their dependencies into isolated environments called containers.
Docker Compose
A tool for defining and running multiple Docker containers together from one configuration file.
Homelab
A personal setup of servers and networking equipment used to run services and learn infrastructure skills.
MFA
Multi-factor authentication: signing in with more than one type of proof, such as a password and a security key.
VPN
Virtual private network: an encrypted connection that lets devices communicate over a private network.
See more glossary terms