Homelab Infrastructure
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
- Orange Pi 4 Pro (ARM SBC, Rockchip SoC)
- Linux on ARM
- External USB storage for the media and photo libraries
- Services: Jellyfin (media), Immich (photo backup), Navidrome (music), plus whatever else has earned a spot
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
- Containerized service deployment
- Service-per-directory layout for configs and persistent data
- External drive mounts for the big libraries — the board's internal storage stays for the OS and containers
- LAN access for streaming/backup clients
security considerations / methodology
- Services are LAN-facing — nothing is deliberately exposed to the internet
- Per-service credentials; the box's accounts are not reused anywhere else
- The Pi also gets treated as untrusted-relative-to-the-desktop — compromising it should not get you anything else
interesting problems encountered
- ARM compatibility — not every image ships an ARM build or behaves the same on the Rockchip platform
- Power/storage tradeoffs on a board with USB-attached drives
what i built
- A working self-hosted services stack on a single ARM board
- The deployment and maintenance workflow that keeps it running
results
A homelab that actually gets used — media, photos, and music served off hardware I own, running services I deployed and maintain myself.
evidence
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."