I didn't set out to build a homelab. I set out to get my photos back.
The Google Problem
For a while, my photo management strategy was "upload everything to Google Photos and never think about it." It worked — until it didn't.
Google started compressing "original quality" uploads. Then they changed the names. Then the search got weird. And one day I tried to download my entire library and they hit me with a takeout limit that made me laugh out loud.
I had 40,000 photos hostage on someone else's server, and the only way to get them all was to wait twelve hours for a zip file that might corrupt halfway through.
That was the straw. Not a dramatic breaking point — just a slow, engineer-grade accumulation of annoyance that finally tips past "tolerable."
Finding Proxmox
I'd been hearing about self-hosted alternatives for a while. PhotoPrism — AI-powered photo management that could sort, tag, and search my library without sending anything to the cloud. Nextcloud — file sync that I owned outright. Both were open source. Both ran on Docker or bare Linux.
But I didn't want to install them directly on my laptop alongside whatever else I was running. I wanted them isolated. I wanted to be able to break things without breaking everything. I wanted a reason to try something I'd been reading about but never touched.
Proxmox VE is a free, open-source hypervisor. Debian under the hood, web UI on top, and the ability to run full virtual machines alongside lightweight containers — all on the same box.
The pitch was simple: install once, create as many isolated environments as you want. If PhotoPrism ate itself, I could nuke the container and start over in minutes without touching anything else. That sold me.
I didn't benchmark alternatives. I didn't write a comparison spreadsheet. I read the install page, saw "click through a wizard," and thought: yeah, I can do that.
The Laptop
The candidate was an HP Pavilion that had been sitting on a shelf for two years. i5-6200U, 16 GB RAM, 240 GB SSD, NVIDIA 940M. It wasn't server-grade hardware — it wasn't even "good" hardware anymore. But it was enough.
"The best machine for a homelab is the one you already own."
I burned Proxmox to a USB drive on my main machine, plugged it into the Pavilion, and booted. Twenty minutes later, the web UI was live at https://<host-ip>:8006. I remember sitting on my bed, laptop open, thinking: "That's it? That's the whole hypervisor?"
It didn't feel momentous at the time. It felt like setting up a router — functional, unglamorous, and then you move on with your life. Except this time, I didn't move on. I started creating my first container immediately.
PhotoPrism and Nextcloud: Where It Started
The original plan was brutally simple:
- PhotoPrism in an LXC container — point it at my photo library, let it chew through everything with its AI tagging, and give me a beautiful web interface to search and browse.
- Nextcloud in another container — replace Google Drive for file sync. Contacts, calendars, documents. My stuff, on my hardware.
Two containers. That was the scope. No home automation. No voice assistant. No AI brain.
PhotoPrism was the first thing I deployed. I plugged in an external drive with my Google Photos export — 80 GB of JPEGs — pointed the container at it, and hit "Import." Overnight, it indexed every photo. Face recognition. Location data from EXIF tags. Automatic categories. I woke up to a fully tagged library that I could search by person, place, or date.
It was the first time my photos felt mine again.
Nextcloud came next. CalDAV for calendar sync. WebDAV for file access. The Android app for auto-upload from my phone. It wasn't as polished as Google Drive — the UI felt a bit more "enterprise admin panel" than "consumer app" — but it was mine. If it broke, I could look at the logs. If it got slow, I could see why. That transparency was the feature I didn't know I was missing.
And then — here's the part I didn't plan — I started thinking about what else I could put on this box.
The Creep
Nobody warns you about homelabs. You start with a clear scope — PhotoPrism and Nextcloud, done — and then you think, "Well, while I'm here, maybe I should also..."
A DNS sinkhole to kill ads across the network. That's small, right? One tiny container.
Then a home automation platform. I had a handful of smart switches scattered across the apartment and toggling them through five different apps was getting old. Just a simple thing to unify them. How hard could it be?
Then a voice pipeline, because tapping a phone screen to turn off a light felt like a downgrade from the switches I already had.
Then an AI agent to orchestrate the whole thing, because I definitely should not have been SSH-ing in at midnight to restart a service.
Each addition felt small. Harmless. A weekend project. But the weekend projects started demanding the most resources, the most attention, the most architecture. Home Assistant needed a dedicated VM. The voice pipeline needed GPU passthrough. The AI agent needed RAM and a scheduling layer.
Two containers became a nervous system. And somewhere along the way, the services I started with — PhotoPrism, Nextcloud — quietly moved to the background. They still run. PhotoPrism still indexes new photos when I plug in a camera. Nextcloud still syncs my files. But they're no longer the centerpiece.
Home Assistant runs 25 smart switches across every room. It controls lights, ACs, fans, geysers. It's the thing I interact with most. And OpenClaw — the AI agent living in an Ubuntu VM — is the thing that makes this whole setup feel smart instead of just self-hosted. Those two aren't the plan anymore. They're the reason the plan exists.
That's not what I signed up for. But it's what I built.
What I Didn't Expect
The biggest surprise was how boring it is once it's running. Not "unimpressive" — boring in the best way. Lights respond. Music plays. The voice thing answers when I talk to it. No monthly fees, no terms of service updates, no feature I didn't ask for being pushed into my life.
The Pavilion gets warm under load, and it's not silent. It's a laptop cooling a hypervisor running services it was never designed for. It's not elegant. But it works. And every time I say "lights off" and the room goes dark and the speaker answers — and I know nothing left my house to make it happen — that feeling is why I keep adding "just one more thing."
Where We're Headed
Part 1 ended with the question: what would you run on yours? I still don't know the full answer. But I know the story isn't about PhotoPrism anymore, or Nextcloud. It's about what happens when you build a foundation and it starts telling you what to build next.
Home Assistant will be the heart. A voice pipeline will be the mouth. And somewhere in there, an AI agent will wake up and start running the show.
But first, the foundation. And the foundation is a 2015 laptop running Proxmox, with two containers that started everything and four services that stole the spotlight.
This is Part 2. Part 3 will dig into Home Assistant — how 25 smart switches across the apartment turned an experiment into infrastructure.
Words are mine. Structure is Vyasa's. The Pavilion is still warm.
Top comments (0)