I bought a $100 mini PC on a lark, installed Docker on it, and eventually cancelled the monthly bills I used to pay for the same jobs. None of the apps I run are exotic. What follows is the actual setup, what it costs in time, and the parts where the hosted tools still beat it, because pretending otherwise would waste both of our mornings.
The setup that makes the math work
The mini PC is a small fanless box with about 8 GB of RAM and a 256 GB SSD. It idles at around 6 watts, sits behind the printer on a shelf, and runs without much attention. The monthly power cost is roughly the price of a single fancy coffee. Everything on it is a Docker container with a small compose file, and every container is mapped to a folder on the host so I can back the whole thing up with a single rsync job.
That last point matters more than any single app. The single biggest risk in this setup is not the apps, the hardware, or the networking. It is forgetting to back up the data, then losing a disk. A weekly cron that rsyncs the host data folder to a small external SSD that you rotate to a different physical location once a month is the entire backup story, and it is the part you cannot skip.
- Three containers, one host folder per container, one rsync job for the lot
- A $100 mini PC idles around 6 watts and survives the kind of neglect a real home server takes
- A weekly external-SSD rsync is the entire backup story, and it is the part you cannot skip
- The hosted alternative is a monthly bill and the same backup problem on someone else’s server
File sync is the load-bearing piece
If you asked me which container to install first, I would say the file sync one, and I would say it without hesitation. Almost everything else in a home cloud is a multiplier on top of having files in the right place at the right time, and a good sync tool removes the manual copy step from every other part of your life.
The tool I use is a peer-to-peer file sync daemon that talks to my devices directly. There is no central server in the loop, only a discovery service that helps devices find each other when they cannot. Every device gets a unique identifier, you pair them once, and after that, file changes propagate in the background. If you have ever used Dropbox, the model will feel familiar. If you have ever used Dropbox and then read the news, the privacy model will feel better.
The modes are what make it useful instead of merely functional. Every synced folder can be set to send and receive, send only, or receive only. Send only is what I use for the phone screenshot folder, so a delete on the laptop cannot reach back to the phone. Receive only is what I use for the archive of finished project files, so a stray edit on the laptop cannot overwrite the canonical copy.
- Devices talk directly when they are on the same network, and relay through a server when they are not
- The web UI runs on a non-standard port and should sit behind a reverse proxy with auth
- File versioning is not built in, so pair it with periodic snapshots if you need history
- One open port on the host is enough for direct connections between devices on the same network
Of course, there is no shared team drive and no live co-editing. If your work depends on multiple people typing in the same document at the same time, you still need a hosted tool for that one job. For everything else, the sync model has been quietly replacing shared folders and email attachments in my life for three years.
A notes container that stays out of the way
The second container holds my notes, and I will not name the specific app because the space is crowded and several good options exist. What I care about is what it does not do, because every notes app I have ever used eventually became annoying in a new way.
I want a tool that stores files as plain Markdown on disk, so I can grep across my own writing with one shell command. I want a web UI that opens from any browser, because the browser is the only client I can trust to be on every machine I touch. I want local-first sync, so the server is a sync target and not a single point of failure. I want a clean export path to plain files, so a project shutdown does not lock me out of my own writing. Those four constraints narrow the field quickly.
- Plain Markdown on disk, so grep, ripgrep, and any future tool can read your notes
- A web UI you can reach from any browser without installing anything
- Local-first sync so the server dying does not destroy your notes
- An export path that works without the original project being alive
The bigger lesson here is that you should pick a notes tool based on whether you will open it every day, not on its feature list. A notes app you do not open is worse than no notes app, and I have lived through enough abandoned note systems to know that my own enthusiasm for a new tool has a half-life of about three weeks.
The password manager is the one that pays for itself fastest
The third container is the one that pays for the rest of the setup. A self-hosted password vault that speaks the same protocol as the popular commercial app lets you point the existing mobile and desktop clients at your own server, and everything else just works. If you have not used a password manager before, the short version is that you remember one strong master password, the app creates and stores a unique password for every site, and you never reuse a password again. If you have used one, you already know reusing passwords is how most people get owned online.
The commercial versions of these tools charge somewhere between ten and sixty dollars a year. The self-hosted version is free in money, but it costs you in responsibility. The password database is one file on the host, and if that file dies, your accounts are reachable only from whatever devices already have an unlocked copy of the vault cached. New devices cannot sync until the database comes back.
- One SQLite file holds every password, so back it up to two different locations
- Vault caching means existing devices keep working even when the server is down
- You give up the commercial features like SSO and directory sync, which matters for teams but not for personal use
- The mobile and desktop apps are the same ones the commercial product uses, so the experience is identical
Backup discipline is the trade-off I would actually warn you about. I keep two copies of the vault file, one on the host and one on a different physical drive that gets rotated out of the house. That is the minimum. If you skip that step, you will eventually wish you had not.
Where the hosted tools still win
Pretending the hosted alternatives do nothing better would be dishonest. Live collaborative documents are still a real gap, and they matter for any project where two people are typing in the same file at the same time. The hosted photo apps have a decade of computer-vision work behind them, and your self-hosted photo setup will not match that without weeks of tuning. The first-party mobile apps from the major vendors are smoother than the self-hosted equivalents, particularly on iOS.
What the self-hosted version gives back is real. No monthly bill, after the third year the cost is just the electricity to keep the box on. Real privacy, in the sense that nothing you write or store leaves a network you control. Speed on the local network, with a 2 GB folder sync completing in seconds rather than the round-trip to a remote data center. None of those wins are theoretical.
Trade-offs
The honest accounting for three small containers on a $100 mini PC looks like this.
- The first weekend takes real time, and you will hit one weird problem that takes an hour to solve
- You trade the polish of first-party apps for control, especially on iOS
- The backup discipline is yours, and a forgotten external drive will hurt you eventually
- Live collaboration and a few other hosted features are gone, so keep a hosted tool for shared documents
Start with the file sync container, sync one folder between two devices, and leave it alone for a week. Add the notes container once that feels normal. Add the password manager once you trust the pattern. By month three, you have a private cloud, you have cancelled the monthly bills, and you have not lost a weekend to configuration.