Self-Hosting with NixOS
2025-11-25
Recently I found myself doing something I never thought I’d do: running my own Git server, password manager, and a handful of other services on a VPS that costs less per month than a cup of coffee from Third Wave Coffee shops. For the longest time I thought self-hosting was something only proper preppers did, the kind of people who can debug kernel panics in their sleep and turns out I was wrong. Self-hosting isn’t about being a wizard - it’s about taking back a bit of control in a world where every service wants 10 bucks a month and the “right” to train AI models on your data. Let me be honest, I’m not going to pretend this was all smooth sailing, but it’s been quite rewarding. And if someone like me can do it, anyone can.
Stop Trusting the Cloud
The breaking point for me was password managers. I was happily using a commercial service (won’t name names, but you can probably guess) when they announced their third price increase in two years. A monthly subscription to store encrypted text files felt a bit excessive, to be fair. Then I started thinking about all the other services I was paying for: GitHub for private repos, various cloud storage providers, all charging monthly fees that added up to more than my conscience could afford.
But it wasn’t just the money. It was the nagging feeling that I was handing over control of increasingly important parts of my digital life to companies that could change terms, shut down, or get acquired at any moment. Who knows what happens to your data when the next acquisition happens? I like the idea of not being dependent on some random company’s business model.
So I decided to try self-hosting. Not everything at once - I’m not that ambitious - but starting with the services that mattered most: Git repositories and password management.
Finding a Home
I ended up going with Racknerd, a VPS provider I found through the r/selfhosted community. The pricing is honestly ridiculous - I pay 30 bucks a year for 2GB of memory and proper CPU cores. That’s about 2.50 a month. I’ve spent more on a coffee today. Comparing that to what DigitalOcean or AWS want to charge and it’s a no-brainer.
The servers just work too. I’ve had 99%+ uptime, and when I’ve had questions, the community (both Racknerd’s and the wider self-hosting crowd) has been genuinely helpful.
A Declarative Config
Most people self-hosting use Ubuntu or Debian, which is perfectly fine. But I’d been hearing about NixOS for ages and decided to take the plunge. Admittedly, this was probably a bit of a drain for a first self-hosting project, but I’m stubborn.
NixOS is different from every other Linux distribution you’ve used. Instead of installing packages and editing config files willy nilly until things work, you declare everything in configuration files. Your entire system - every package, every service, every setting - is defined in code. Change the code, rebuild the system, and either it works or it rolls back to the previous state. That is what I love about it, it either works or doesn’t there’s no in between.
The learning curve was steep, I won’t lie. The documentation can be very cryptic, error messages are sometimes baffling, and there were moments where I thought “why didn’t I just use Ubuntu?” But once it clicks, it’s brilliant. In this age of LLMs and information at just a few fingertips away I persisted at it. Now, I can blow away my entire server and rebuild it from configuration files in minutes. I can test changes safely. I can see exactly what’s running and why.
Is it for everyone? Probably not. But for someone who likes tinkering and wants to actually understand their system, it’s been quite nice.
The Services
Right, so what am I actually running? Let me walk through the main ones:
Forgejo - My own Git server. It’s like having a personal GitHub, but without Microsoft peeking at my code for their next AI model. I’ve got it running at a subdomain, and it handles all my repositories. Push and pull speeds are faster than GitHub (probably because I’m the only user), and I get all the features I actually use: web interface, issue tracking, pull requests and also a barebones CLI, bless the souls who work for the greater good. Plus, I quite like knowing my code is mine.
Vaultwarden - This replaced my commercial password manager. It’s compatible with the Bitwarden apps (which are excellent), but runs on my own server. I’ve cranked the encryption settings up higher than the defaults, added two-factor auth, and set up automatic backups. Now I’ve got unique 20-character passwords for everything, and I’m not paying a monthly subscription for the privilege.
Traefik - A reverse proxy that automatically handles routing and SSL certificates. When I add a new service, it automatically gets a proper HTTPS certificate from Let’s Encrypt via Cloudflare’s DNS API. No manual certificate management, no messing about with nginx configs. It just works. I was skeptical at first, but it’s genuinely useful over the long run.
Tailscale - Traditional VPNs are so old school. Tailscale lets me securely access my server and home network from anywhere without port forwarding or certificate hell. Install app, sign in, done. I use it for admin access and for connecting to services I don’t want publicly accessible.
Backups
About two months in, I accidentally deleted my Vaultwarden database. Well, not deleted exactly - I ran a NixOS rebuild that wiped the data directory because I’d misconfigured something. My heart properly sank.
Fortunately, I’d set up automated backups with Restic and Backblaze B2. Restore took about five minutes, and I lost nothing. Lesson learned: test your backups before you need them. Now I’ve got a monthly calendar reminder to actually verify I can restore from backup. The peace of mind is worth the effort.
The costs are almost comically low too. Backblaze charges are very low for per GB per month. Six months of daily automated backups and cleanups I am still not breaking the bank. Compare that to Dropbox’s subscription for storage I don’t need.
What I’ve Learned
It’s not as hard as you think: Self-hosting has a reputation for being complex, but the tools have gotten really good. Traefik handles SSL automatically. NixOS handles configuration management. The community has figured out the tricky bits and shared solutions.
Start small: I didn’t try to replace everything at once. Start with one service you care about, get it working, then add more. Trying to deploy ten services on day one is a recipe for frustration.
The community is brilliant: r/selfhosted, r/NixOS, various Discord servers - people genuinely want to help. I’ve asked some properly daft questions and got helpful answers every time.
It’s actually fun: There’s something deeply satisfying about running your own infrastructure. When I push code to my own Git server or save a password to my own password manager, I get a little hit of satisfaction. Probably says something about me, but there you go.
The Downsides
Let’s be fair - it’s not all sunshine and roses:
Time investment: Getting everything set up took several weekends. Not full-time work, but it wasn’t trivial either. Maintenance is minimal now (maybe an hour a month), but the initial setup required proper time.
Responsibility: When something breaks (and things will break), you’re the one fixing it. There’s no support ticket to file. This can be educational or frustrating, depending on your mood and the time of day.
Not for everyone: If you just want things to work and don’t care about the details, paying for commercial services makes sense. Self-hosting is for people who enjoy tinkering and want control.
Complexity creep: It’s easy to go overboard. “I should add monitoring! And automated deployments! And maybe a dashboard!” Before you know it, you’re maintaining a small data center. Keep your complexity away from me; I can only handle so much.
Thoughts
Six months in, I’m paying about 30 bucks a year for hosting that replaced services costing me over 100 annually. But honestly, the money isn’t the main benefit. It’s the control, the learning, and the satisfaction of running something myself.
Would I recommend this to everyone? Probably not. If you’re happy with commercial services and they work for you, brilliant. But if you’re curious about how things actually work, frustrated with subscription fatigue, or just want to own your digital life a bit more, self-hosting is genuinely rewarding.
The tools are better than ever. NixOS makes configuration reproducible and safe. Traefik makes SSL trivial. Communities are welcoming and helpful. You don’t need to be a sysadmin - you just need to be willing to learn and comfortable with occasionally breaking things.
I’ve got plans to add more services (a self hosted micro blogging go2social site, a Pangolin style web proxy), but I’m taking it slow. No need to rush. The infrastructure is solid, the backups work, and everything just… runs (for now).
If you’re thinking about trying self-hosting, I’d say go for it. Start with something small - maybe a password manager or a Git server. Pick a cheap VPS (Racknerd’s sales are genuinely good), join the communities, and give it a shot. Worst case, you learn something. Best case, you end up with infrastructure you control and understand.
Anyway, I hope this has been useful, or at the very least interesting. If you’re curious about the actual configuration files, they’re all in my Forgejo instance (which, of course, is self-hosted). Jobs a goodun.