Self-hosted services, in a box?
First off: apologies if you're looking for an answer and not a question! I don't know if self-hosting-in-a-box exists. I want you to email me and tell me if it does.
Motivation
Currently, my photos and documents are sent to an all-powerful tech company's servers where they are, of course, carefully scanned for personal details that can be sold to businesses (and governments), so they can influence (and coerce) me.
Here are a few more appealing alternatives:
- Encrypt everything myself prior to uploading to Big Tech
- Switch to services hosted by businesses that actually respect my privacy (Proton?)
- Self-host my own services, bypassing Big Tech entirely
The first option adds friction and removes features while still relying on Big Tech, so it's only a moderate improvement.
The second option is probably actually the correct answer because others in my family could reasonably hope to understand it.
But the third option sounds the most fun, and is also probably the cheapest, and it's difficult for me to pass up both of the qualities.
My self-hosting dream...
Ideally, I would have a server sitting in my basement that is:
- Hosting various services for photos, documents, music, videos, notes, bookmarks, passwords, etc.
- Connected to a VPN that I can access remotely, when needed
- Backed up off site
- Encrypted, in case someone steals the server
- Simple enough that a family member could at least restart everything, e.g. after a power outage
That's a daunting list, thus reinforcing my hunch that paying for services is probably the best option. Yet, I persist.
...in a box
Wouldn't it be great if there was an ISO for a server operating system, with an installer (or GUI) that set all this stuff up?
The closest things I've found to this are:
HomelabOS looks like it requires a client computer with Docker and a server running Debian or Ubuntu. Sovereign looks like it is more opinionated (e.g. requiring a VPS and tarsnap).
If there are other options in this space, please email me to let me know!
DIY
If I was going to set this up myself, I would try shoving everything into a NixOS configuration. Namely:
- Immich for photos
- SMB or NextCloud for documents
- Jellyfin for music and videos
- Trilium for notes
- Yarr for reading blogs
- ??? for passwords
- Tailscale for VPN and DNS (or manual using Wireguard et al on a VPS)
- Restic (or Borg?) for backups
- Backblaze B2 for off site backup (or a Raspberry Pi with attached storage in a relative's house, connected to the VPN)
Bonus points for throwing a basic, web-based GUI on top of the NixOS configuration for toggling services on and off.
Surely someone has done this before! I really don't want to have to do this myself. Well, actually I kind of do, but I should probably spend my time elsewhere. And, as stated previously, I should really just pay an ethical company to do all the hard work for me, especially if I ever end up incapacitated.
NixOS
One last note: why am I looking at NixOS? A few reasons:
- It supports a huge amount of interesting software
- I like having the entire config in a single file
- I also like that I can tweak the config and have it quickly update the active server with changes (and it works most of the time!)
- I wanted to learn Nix anyway, because I can't be bothered to manually set up development environments anymore
Wrapping up
Will there be a "part 2" to this? Who knows! There probably isn't even an audience for this sort of thing, so I really should be spending my time on something else. But it's such an alluring project that I feel compelled to at least give it a try.