Almost a year ago, I started my self-hosting journey. While I'm impressed with how much I've learned, there were also plenty of bumps along the way.
I realized there are a lot of things people over-simplify about self-hosting. I also made plenty of mistakes. So, based on my experience, here are a few of the tips I would give to others who want to try out self-hosting.
Self-hosting isn't the solution everyone thinks it is
There are limits when it comes to self-hosting as an alternative to Big Tech
Start with what you have
It will help you learn the fundamentals
You'll hear a lot about which devices people consider the best for self-hosting services. But when you're starting out, it's best to start with what you have. This allows you to experiment with self-hosting without an upfront cost. It also lets you learn in an environment that you're familiar with.
For me, this meant self-hosting on my Windows desktop PC. It wasn't the most convenient in terms of keeping services online, since I power my computer off every night. But it gave me the space to learn how to self-host in Docker without needing to buy a new device or learn how to use a completely different OS.
Eventually, I started hosting certain services on my NAS. It made me realize how different various platforms can be, even if you're still using Docker to host your services.
Test before you invest
The reality often differs from the theory
When you hear about a great self-hosted service that can free you from cloud subscriptions, but requires certain hardware to run optimally, it can be tempting to buy everything you need before you set it up.
But it's better to test out a service first before you buy dedicated hardware for it. Sometimes you'll find that, as great as a piece of software sounds, it just doesn't work for you in reality. It might not gel well with your routine, or it simply requires too much maintenance.
This is one reason why I still like to test services on my main PC first. It lets me get a feel of a service and figure out whether I like it. For example, I really enjoy Immich and Paperless-ngx, so I'm saving up so that I can buy a more powerful device to host the services on.
Take a break when you're frustrated
Pushing too hard takes the joy out of the hobby
Troubleshooting is a natural part of self-hosting. If it's a dealbreaker for you, it's a sign that you should skip self-hosting.
With that said, though, even the most dedicated enthusiast can become frustrated while troubleshooting problems. Trying to push through the frustration can make it worse, sapping the joy out of self-hosting. It's why I recommend taking a break if you find yourself feeling tense and defeated.
Taking a break doesn't always fix problems, but I've often found that I come back later with a clearer head. This helps me find solutions that were staring me right in the face. It's actually a tip that I came across while researching woodworking as a hobby. I realized that it also applied to self-hosting — minus the risk of carpentry accidents.
Focus on self-hosting on your home network first
Remote access can wait for later
If you have robust networking knowledge, then you can ignore this tip. But if terms like "reverse proxy," "tunneling technology," and "port forwarding" are new to you, then trying to set up remote access to your self-hosted services early on can easily become overwhelming.
I recommend first trying out services on your home network and getting used to using them there. Then, when you're ready, you can start researching different solutions for remote access. You should always ensure you choose a secure solution and don't expose your server ports to the public internet.
There are a lot of solutions to choose from, with varying levels of skill required to deploy them. For me, a Cloudflare Tunnel was the best solution, as it allowed me to access services hosted on my NAS without needing to expose any ports.
You'll need robust backups before migrating services
You become responsible for data loss
One of the reasons I haven't quit Google One despite starting self-hosting is that my data in Photos and Drive serves as my off-site backup. If you follow the 3-2-1 backup rule, you need to have backups on multiple devices, as well as a backup off-premises.
It's pretty easy to lose your data while self-hosting services. Drives can fail, updates can break services, and if you're a beginner, you might mis-configure something.
That's why it's really important to make sure you have a robust backup strategy before you become completely reliant on a self-hosted service. You should also double-check that your services are saving data correctly. For example, a permissions issue on my NAS meant that while my notes app data was saving in the container, it was not saving the files to my drive.
If you're going to be self-hosting important data in your services, make sure that you have additional copies and backups you can use if something happens to your main server.
5 things I wish I knew before going all-in on self-hosting
Hosting your own services isn't all fun and games
It's a good time to start self-hosting
With more people interested in taking control over their data and moving away from subscriptions, it's a great time to experiment with self-hosting. Even if you don't self-host everything, you can find some pretty great apps.
There are a few containers I recommend for beginners that can help you get familiar with the concept. But the most important thing is to take your time and find services that suit you.
