the case for selfhosting & homelabbing

there is a computer in my house that is never off. several, actually. i bought most of them with no real plan for what they would run, which sounds like the confession of an impulse buyer, and is, but it also turns out to be the correct way to do this. this post is the sales pitch i end up giving friends anyway, written down: what i run, what it cost, what it saves, and the parts that are hard to put a number on, which turn out to be most of it.

the mini rack: a small status display, the 2.5 gig switch with yellow patch cables, a mini pc, a drive enclosure on top, and a panasonic laptop showing dashboards

the fleet

newton is the main hypervisor, a little azw mini pc running proxmox. it holds seven guests: an ai playground vm, home assistant for the lights, archimedes for game servers, faraday the jump host, a pi-hole, a syncthing hub that keeps every machine's folders agreeing with each other, and a container whose entire life is compiling a window manager fork. its ssd sits at 99.8% full, which as far as i can tell is the natural resting state of any disk you personally own.

tesla is the second proxmox node, a used thinkcentre tiny. it is on wifi, which every guide tells you not to do, and its guests live behind a little nat because you cannot bridge wifi. the guides are right, it is worse, and it has not mattered once. for a while the machine was shelved in a stack of books between latin insults and the guns of august, airflow apparently fine. nobody at a real datacenter will let you rack a server like this, which is exactly my point.

tesla, a thinkcentre tiny, shelved in a stack of books like it belongs there tesla plugged into the desk monitor, proxmox console sitting at the login prompt

the nas is a two-bay ugreen and the actual workhorse: jellyfin and the arr stack (there is a whole post on that), the rom library, the ebook pipeline, and every web thing i host, including the page you are reading. it recently ate two 8tb ironwolfs, which was the most satisfying unboxing i have had in years, two bare drives and a screwdriver on a desk.

nas storage upgrade day: two 8tb ironwolf drives, empty trays, and the ugreen chassis on the desk

the jetson is an nvidia orin nano, the gpu box, which currently spends its cuda cores collecting 90s banner ads into an archive. and holding it all together, a ten inch mini rack with an eight port 2.5 gig switch, a tiny screen that shows system graphs and mostly exists to look important, and a japanese import panasonic let's note whose one job is displaying dashboards. it does that job beautifully.

what it cost, roughly

guesses, i did not keep receipts:
newton, ~$250, plus ~$70 of ram when the guest list outgrew it
tesla, used, ~$80
nas, ~$260, plus ~$330 of ironwolf
jetson, $249
switch ~$90, rack ~$60, drive enclosure and a frankly embarrassing number of cables, call it $150

so about $1,500, spread over a year and a half of birthdays and impulse buys. the operating bill is electricity: the whole shelf draws maybe 70 watts, which where i live is $12 to $15 a month. that is the entire recurring cost. there is no invoice, no tier, no seat, no plan.

the back of the rack, where the cable management lives, in the sense that it does not

what it saves, roughly

the honest math: streaming i no longer pay for, ~$40 a month. two terabytes of cloud storage, ~$10. renting a game server, ~$15. a small vps to host a website, ~$6. call it $70 a month, so the hardware pays for itself in under two years.

that is also the dishonest math, because it prices my time at zero. but my time really is zero here, in the only way that matters: the labor is the hobby. i was going to spend those evenings fiddling with something regardless, and this way the fiddling leaves behind services my family actually uses. that is the trick of the whole thing. the accounting only works because the work is the fun part, and it genuinely is.

the wow server

i wanted to try out world of warcraft, wrath of the lich king specifically, and the 2008 way of doing that no longer exists. the community's answer is open server reimplementations, so archimedes got one, running beside the other game servers. the whole thing is two daemons and a database: an auth server that answers the login screen, a world server that simulates azeroth, and a mysql database holding all of it, every npc, every spawn point, every quest, the entire planet in tables. the client stays untouched except for one line in a realmlist file, pointed at the lab instead of blizzard.

and it is exactly as cool as it sounds. there is a complete copy of azeroth idling on a shelf in my house, running its weather and respawn timers whether or not anyone logs in. i can walk into northrend on hardware i own, or flip on gm mode and teleport anywhere, fly through zones, spawn whatever i want. a whole world, humming away next to the blog you are reading.

ssh at 35,000 feet

the red-eye out of honolulu, everyone asleep, seatback map crawling across the pacific. i paid for the wifi, opened the laptop, and sshd home. faraday greets you with a little homemade control center tui, graphs and all, built for exactly this moment. everything was green. someone was streaming a movie off jellyfin while i was eight hours from the mainland.

a dark airplane cabin, the seatback flight map on hnl to jfk, and a terminal sshd into the homelab

i want to be clear that this is completely useless. nothing needed me. the lab does not require supervision from the middle of an ocean. i check anyway, every flight, because there is a specific quiet pleasure in knowing the little shelf at home is humming along without you, and i have stopped pretending to be above it.

everything i make lands on it

this is the part i did not predict, and the part i actually want to sell you on. i did not build the lab for any of what follows. none of it existed yet. there was no use case, there was a pile of hardware and a vague feeling. and then every project i started just assumed the servers existed, the way you assume the house has electricity. this blog is apache in a container on the nas, reaching the internet through a tunnel, no ports open on the router. originmarker runs beside it. so does the silo, a mirror of every xbox 360 avatar item ever made. the jetson feeds the banner ad archive. a little internal file server hands isos to the rest of the lab so i stop re-downloading debian. an mlb reference site sits 90% finished on a vm, waiting for me to remember it. last spring a pipeline turned my latin vocab sheet into anki cards every night before the final. an ai memory experiment journals the whole operation to itself.

none of these would exist if each one had started with renting a server and entering a card number. the marginal cost of a new idea here is zero, so the ideas keep coming, and the servers keep absorbing them. this is the thing i keep trying to explain to people: the uses populate around the hardware. you do not find a use case and then buy a server for it. you buy the server, and the use cases find you, and they do not stop. i have never once sat down to think of something to run on the lab, and the lab has never once had spare room. the surface is always there, already paid for, already on, and that is apparently all it takes.

the part where i mention google

i am required by the bylaws of this hobby to tell you that big tech is reading your email. i will be honest with you: i find the surveillance panic mostly silly. google is not interested in my latin homework, and no advertiser is meaningfully worse off for knowing i watch the same three movies. my pi-hole does not even block ads, only trackers and telemetry, because sites i like are paid for by the ads.

and yet. there is something quietly nice about your photos, your watch history, and your notes living in a box you can physically point at. it is not fear. it is closer to keeping your tools in your own garage instead of renting them back from the hardware store. the honest case for selfhosting is everything above this paragraph; the moral one is a small bonus that costs nothing extra.

the actual case

strip away the money and the projects and what is left is the thing i find hardest to explain: the convenience of a computer that is never off. it is a different category of object. cron means things happen while i sleep, the cards build themselves, the archives grow, the folders sync. nothing has a cold start. nothing asks me to log in to a dashboard and check a usage meter. when i wonder whether something would work, the distance between wondering and knowing is a five minute compose file, because the computer is right there and it is already mine.

and the habit that rewired me most: anything that takes hours gets sent to the lab, not run here. a long build, a huge download, a batch job that grinds overnight. ssh in, start it, close the laptop, walk away. the task cannot die with my battery or my sleep mode or the cafe wifi, because it is not attached to me anymore. it is attached to a machine whose entire identity is that it does not turn off. the laptop is where work starts; the shelf is where it survives.

and the education is free. i did not set out to learn dns, docker networking, filesystems, tunnels, or why you should never fill an ssd to 99.8%. the lab taught me all of it by breaking at convenient times. every failure is a lesson you actually remember, because it is your stuff on your shelf, and nobody is coming to fix it but you.

the whole operation on one desk: the rack on the shelf, a proxmox console on the monitor, handwritten notes everywhere

so that is the case. buy a used mini pc, put one useful thing on it, and let the gravity do the rest. this page came to you off a shelf in my house, through a tunnel, from a computer that has not been off in months. that still delights me every time i think about it.

last updated 08/13/26, e. kruger