My Self Hosting Journey after ~18 months
How I reclaimed my data, saved money, and stayed sane doing it.
It’s been around a year and a half since I started self hosting. It all started when I bought a Raspberry Pi for no good reason. I installed a few apps before succumbing to compute limits. At times, it would randomly shut down because it could not get enough power. I cannot even plug an HDD as it would pull too much power. I bought a used Dell Optiplex from a second-hand seller. I think it was a company pull-out which was fine as I got it for just ~1000 PHP. I then upgraded the SSD and the RAM which took ~9000 PHP (this was before the RAMpocalypse and the SSD shortage). And now, for a year, it is going very smoothly.
During that time, I migrated most of my digital life back to the home server. The most notable I got scared of was a password manager. I initially used 1Password and already mastered the workflow for a few years so I thought a move to Vaultwarden was too much friction. After 1Password raised prices though, I decided to pull the plug. Now, I save ~3000 PHP yearly (I was on the family plan).
And because I got a new hobby, I realized paying for Spotify was a waste. I barely listened to music outside of YouTube so I cancelled it. Then, I stopped paying for iCloud Premium because I already set up Immich for my Photos. I also realized that my storage needs can be met for much less so I cancelled my Cloud Drive subscriptions. Overall, I did save quite a bit of money but the biggest plus is being in control of my data.
I have been burned out by the digital software killed, redesigned, or rebranded. Plus, all the data breaches which exposed my data (Going to haveibeenpwned.com is not fun). I have been getting a ton of spam emails and spam texts lately so I have no interest in increasing that amount.
If you want to start self-hosting, here are five tips I recommend:
Use Linux - not Windows. When I started, I used Raspberry Pi OS but eventually moved to Ubuntu 24.04 LTS. As of writing, I still am running it but will move to 26.04 LTS once the point release drops so I can do an in-place upgrade. I recommend to use Ubuntu, but I have tried Debian, AlmaLinux, and even Fedora and Alpine. I can say - just avoid Windows for a home server. Many services you would be interested in would assume Linux. Any that don’t usually has a Linux section. 1. Start with a VPN. You can expose it in the future but for now, start with Tailscale or Wireguard. I recommend Tailscale because there’s a lot of network boogaloo in the name of CGNAT that you may not know you have. Anyhow, a VPN is very nice because it isolates your network from the whole internet which means security just naturally becomes much better. It’s not perfect, but it is much better than exposing it directly. 1. Focus on making the experience as low-maintenance as possible. One of the biggest confusions I have with r/selfhosted is how many people complain about Self Hosting taking a lot of work. Aside from the initial setup, my self hosting services run seamlessly. I do a once-a-month maintenance that lasts ~30 minutes maximum. Aside from that, I genuinely do not need to think about the server.
I have a feeling these Redditors did not focus on making the experience as low maintenance as possible. As much as possible, automate much of the work you can automate because being a full DevOps engineer in your spare time is not for everyone.
Docker is good but Podman is better. I started with Docker and will still recommend it for a beginner. However, I prefer Podman because the defaults are much better.
One note: If you do use Docker, just note that it bypasses your firewall. So make sure to always do this:
127.0.0.1:[host port]:[container port]over[host port]:[container port]and make a reverse proxy do the actual exposing.In Podman, this only is true for rootful. For rootless Podman, this does not happen because it cannot bypass the firewall and write iptables/nftables directly.
Backups are not negotiable. Once you move everything to your home server, do NOT compromise on backups. Always have at least 3 copies. I have one in a USB drive, a storage box, and S3 Glacier. The first one is for quick local restores, the second is in case a fire happens or something corrupts the drive, and the last is a “break glass in case”. Overkill? Maybe. But given that I am in charge of my data now, I would rather not risk it.
And make sure to test them. That’s the whole point of my once-a-month maintenance jig. Otherwise, you may be in a world of hurt to realize your backup script was actually broken when you needed it.
Self-hosting is still way too technical for too many people. But I love the feeling of being in control of my data. Even if services increase in price or do much worse, I can safely focus on my little world.
There are still problems of course. Open source is very vulnerable to maintainer burnout and there have been many apps that did that to me. I also don’t believe everything should be self-hosted (email is a big one) but for most services, I can wager that being in control of your data is much better.