~/projects/homelab-infra/README.md

Homelab Infrastructure

status: running source: private type: infrastructure / self-hosting
orange pi 4 prolinux / armdockerself-hostingstorage

what it is

A self-hosted services box I built and administer myself — an Orange Pi 4 Pro single-board computer running my media, photos, and music stack instead of paying for cloud subscriptions. It's also where I practice real Linux systems administration: it's a machine that has to stay up, stay backed up, and stay maintainable.

problem / objective

Run a real services stack on cheap, low-power hardware — media streaming, photo backup, and music — without handing my data to a subscription service, and without it turning into an unmaintainable mess. The honest constraint is that a homelab nobody maintains becomes a pile of broken containers, so it had to be set up in a way I could actually keep alive.

environment

architecture / design

Everything lives on one low-power ARM board: services run as containers, libraries sit on attached USB storage, and clients reach it over the LAN. The design goal was separation of concerns per service — each app owns its config and data directory so a bad upgrade to one doesn't take the others down.

technical implementation

security considerations / methodology

interesting problems encountered

what i built

results

A homelab that actually gets used — media, photos, and music served off hardware I own, running services I deployed and maintain myself.

evidence

Orange Pi 4 Pro with attached external USB drives
$ the hardware — orangepi 4 pro with the external drives that hold the libraries
Orange Pi 4 Pro board close-up — USB ports and status LEDs
$ board close-up — usb-attached storage and the status leds doing their thing
Homelab topology — Orange Pi 4 Pro services and LAN clients
$ topology — one SBC, service containers, USB storage, LAN clients; nothing published externally
Addresses, ports, and service configs stay private. The diagram shows structure, not the real network layout.

what i learned / next steps

Real Linux service administration on ARM — the difference between "it runs" and "it keeps running." Next: proper monitoring and a backup story for the libraries that isn't "the drive is the backup."