What's running on my home server
- Pixel Renaissance Dad
- Tech
- 24 Apr, 2026
In the previous post I wrote about why I built a home server and how I got Debian running on a small mini PC. The short version: subscription fatigue, a low-power box that fits on a shelf, a headless Linux install, and a couple of weekends of increasingly confident Googling.
This one is about what actually runs on it. What gets used, what surprised me, and what the family interacts with daily without having any idea there’s a Linux machine behind it.
Samba — file sharing across the house
The first service I set up was Samba, which handles file sharing across the local network. If you’ve ever mapped a network drive on Windows or mounted a remote folder on Linux, that’s roughly what this is. There’s a shared folder on the server, and every device in the house can see it.
My wife uses it to add films, series, books, and the kids’ content — she maps the share on her own machine, drops the files in, and it’s done. The kids’ school stuff is supposed to end up there too — that part’s more aspiration than habit so far. I use it to move files between my laptop and whatever machine I’m working on that day without thinking about USB drives or cloud uploads.
It just looks like a folder. Nobody knows or cares what’s underneath it. This is, I’ve found, the highest compliment you can give a piece of infrastructure.
Setting Samba up on Debian takes maybe 30 minutes. You install the package, create a shared directory, write a short configuration file, set a separate Samba password for your user, and restart the service. Windows sees it automatically. Linux clients can mount it with a few lines of configuration. The whole thing is remarkably undramatic — which is not always true of Linux networking, as anyone who has spent an afternoon troubleshooting a firewall rule will tell you.
Jellyfin — the streaming service we actually own
This one is the centrepiece of the whole setup, and honestly the main reason the family has embraced the server so completely without ever caring about the technical bits.
Jellyfin is an open-source media server. You point it at directories containing films, TV series, books, photos — and it builds a clean, browsable library. It has apps for phones, tablets, smart TVs, web browsers. It streams your own content to any of those devices exactly like a commercial streaming service, except there are no ads, no regional restrictions, nothing gets pulled from the catalogue, and there’s no monthly bill.
We have a library for films, one for series, one for the kids’ content, one for ebooks. The children watch their cartoons on a tablet. My wife and I watch films on the TV. Jellyfin handles multiple simultaneous streams without complaining, which given that 16 GB of RAM is sitting mostly idle was never going to be a problem.
The interface is clean and modern. The family picked it up without being told how. If you showed it to someone who had no idea what Jellyfin was, they’d assume you were paying for it.
One genuine delight: no more “this film has been removed from the service.” What I put in stays there.
The other thing worth mentioning, especially as a parent: Jellyfin has proper per-user accounts with parental controls. The kids’ profiles only show their library. The content they can access is exactly what I’ve put in it — not what an algorithm decided to surface at 7 pm on a Tuesday, not whatever managed to slip past a streaming platform’s content filters, and definitely not ads. My kids have never seen a pre-roll ad before a cartoon. I’m quietly proud of that.
ZoneMinder
The server also runs ZoneMinder, which manages a camera system for the house. It records footage, handles motion detection, and serves a web interface for live views. Having it run on the same machine as everything else was either elegant engineering or laziness. I haven’t decided.
Nextcloud — the cloud storage we actually control
Samba is brilliant when you’re on the home network. The moment you walk out the front door with your phone, it becomes less useful — you’d need Tailscale active, you’d need to know the path, you’d need to think about it. That’s one step too many for daily life.
Nextcloud fills that gap. I used a cloud photo service for years without thinking much about it. Then I thought about it. Where are those photos actually stored? Whose servers? Under what terms, exactly, and how might those terms change? Nextcloud gives you the same experience — automatic photo sync when you’re on WiFi, a web interface you can reach from anywhere, desktop clients, shared folders — except the server is the box on your shelf.
If I’m being honest, it’s more infrastructure than habit so far. The setup works. I just haven’t fully broken the reflex of reaching for whatever cloud service I’ve used for years. The option is there and it’s mine — that’s the part that matters.
Tailscale — the thing that made the whole setup sing
I want to spend some time on this one because it genuinely changed how I think about remote access to a home network.
Initially I set up WireGuard as a VPN, which works well and is technically solid. But the configuration process is involved: you need to set up dynamic DNS because most home internet connections don’t have a static public IP, you need to forward a port on your router, you need to distribute configuration files to each client device, and you need to keep it all in sync. It works. It’s just friction.
Tailscale is a different approach. It’s a managed VPN layer built on WireGuard under the hood, but the user experience is completely different. You install the Tailscale client on your server. You install it on your laptop, your phone, whatever devices you want. They all join a private network — your “tailnet.” From that point on, those devices can always reach each other, from anywhere in the world, as if they’re on the same local network.
No port forwarding. No dynamic DNS. No configuration files to distribute. You install the app, you log in, it works.
The practical result: when I’m travelling, my phone can open the Jellyfin app and stream directly from my home server over Tailscale, exactly as if I were sitting in my living room. The server’s local IP address is reachable from anywhere my phone has internet. I can access the file shares, the media server, everything — with zero extra configuration beyond the initial setup.
It’s one of those rare pieces of software that does exactly what it promises and feels like it should have always existed.
Vaultwarden — passwords that live at home
I spent years mildly worried about the password manager situation. Not worried enough to do anything about it, just enough to think about it occasionally while staring at the ceiling. LastPass had that breach. Every cloud-based password manager is, by definition, someone else’s database of your credentials.
Vaultwarden is a self-hosted compatible server for the Bitwarden password manager ecosystem. You run it on your own hardware, your passwords never leave your network, and you get the full Bitwarden client experience on every device — browser extensions, mobile apps, autofill, the works. The clients don’t know or care that the server is sitting on a shelf at home instead of in some data centre.
I don’t miss LastPass. I especially don’t miss worrying about LastPass.
Ollama — AI that stays in the house
This one feels a bit absurd to type, but it works and I use it more than I expected.
Ollama lets you run large language models locally, on your own hardware, with no API keys, no usage fees, and no prompts being sent to someone else’s servers. You pull a model — Mistral, Llama, Gemma, take your pick — and you have a local AI assistant that answers to you and nobody else.
I’ll be honest: a machine with an Intel Celeron is not going to win any benchmarks against the big cloud models. The models I run are smaller, the responses take a moment longer. But for summarising things, helping me think through code, or answering questions I’d rather not donate to someone’s training data, it’s completely adequate.
There’s something quietly satisfying about running AI locally in 2026. The whole pitch of AI has been cloud-dependent from the start. Having a version that lives on your own machine, available offline, not watching what you ask — it feels appropriately defiant.
What’s not running on it
I want to mention this because home server discussions online have a tendency to become arms races. Docker, Kubernetes, a dozen services in containers, dashboards monitoring other dashboards.
None of that is here.
Everything on this server is installed directly on the system: a few Debian packages, some systemd services that start automatically on boot. The configuration files live in the usual places. There’s nothing exotic to maintain, nothing that requires understanding container orchestration to troubleshoot at midnight.
The honest exception: software RAID for data redundancy has been on the to-do list since day one and has somehow never made it to the top. Multiple drives, MDADM, RAID 5 — proper protection if a disk quietly fails in the night. I know how to do it. One of these weekends it will actually happen. In the meantime, the data lives in at least two places, which is not the same as proper redundancy but is better than nothing.
The simplicity everywhere else is deliberate. The server exists to serve the family, not to be a project that needs constant attention. Simple installations that I actually understand are worth more to me than a sophisticated stack that would require hours of archaeology to debug at eleven at night.
The right amount of complexity is the amount the problem actually needs.
The honest accounting
The server cost money once — the hardware was a birthday present from my wife, requested by me, which is either deeply romantic or deeply nerdy depending on who you ask. Probably both. It costs nothing on an ongoing basis — no subscriptions, no cloud fees, no licences. The electricity for a 10–15 W device running continuously works out to something negligible on the bill each month.
The files are mine. The media is mine. The hardware is mine. If something goes wrong, I fix it. If something needs changing, I change it. There’s no account to get locked out of, no terms-of-service update that changes what I’m allowed to do with my own data. Tailscale excepted — that one is absolutely someone else’s infrastructure and I am fully, cheerfully dependent on it. I’ve made my peace with this.
Mostly, this is what ownership used to feel like, before software ate everything and turned it into a rental market.
The server sits on a shelf. The family uses it every day — they know it’s there, I may have mentioned it — they just don’t particularly need to know more than that. I can’t remember the last time it needed rescuing.
That’s not a coincidence. That’s the whole point.