I've been self-hosting different apps and services for the past few months, which has been an enlightening experience. I love many of the different services I encountered, with one of my favorites being a tasks app I self-hosted to help me get a better view of my chores.
But through all the discovery and troubleshooting, I've also gained insights into why so many people choose not to self-host. Some of this is due to convenience, but also to some of the drawbacks of self-hosting for ordinary people.
5 reasons self-hosted software is gaining popularity again
Self-hosting software comes with certain undeniable benefits
We're used to trading our privacy for convenience
Self-hosting is not all that convenient
One thing I've learned about self-hosting is that while it's fun and can teach you a lot, it's not all that convenient. It safeguards your privacy and gives you control over your data, but we've also become used to trading privacy in the name of convenience.
As Google's tracking practices became more well-known, I've tried to move away from as many apps from the company as possible. But there are also apps that keep me in Google's ecosystem, and this is largely down to the convenience that they provide.
I have become more discerning over time when it comes to the apps I use, and I won't sign up for a service just because it's convenient. At the same time, though, many people I know would rather just use the simplest option available. Since I self-host apps on my main PC, I have had to make certain trade-offs.
My services aren't exposed to the internet, meaning that I can't access them when I'm away from home. And I shut down my containers when I switch off my PC each day to save power, meaning I don't get round-the-clock access even when I'm at home. This lack of convenience makes me realize why I used to opt for cloud-hosted solutions instead.
Self-hosting can be a very technical process
A lack of coding experience can be a detriment
When I started self-hosting, I went with the quickest and simplest way for me to get started without learning coding or using a different operating system. While I'm glad I used Docker Desktop to get started, as I've wanted to host more complex services, my lack of technical experience has limited what I can do.
I've started looking at a virtual private server (VPS) as one way to make my services more accessible from multiple devices and when I'm traveling. But I also need to learn a lot more about the intricacies of remotely accessing self-hosted services in order to ensure that my VPS is secure. This requirement for technical knowledge is why I haven't exposed any ports to the internet yet for my current setup.
I've also found that my lack of coding knowledge means that I spend hours troubleshooting services with no idea about why they might not be working correctly. Thankfully, GitHub issues pages have helped me figure out some fixes. However, I've also had to ask my code-savvy friend for help on a few occasions to figure out why a service isn't working. If you don't have people to help you out, and you don't have coding knowledge yourself, self-hosting can feel like a Herculean task.
Self-hosting is not always cost-effective at first
It depends on what you have lying around
You can get started with self-hosting for free, but what services you can use may depend on what hardware you have available. Certain services require more RAM, processing power, or storage than others. As I've looked for an alternative to hosting services on my main PC, I've struggled to find a cost-effective solution to my current setup.
My old laptop is out of commission, so repurposing it to set up a home lab isn't viable. I also don't have many components lying around that I could use to build a bare-metal server. When it comes to using a NAS or even buying a Raspberry Pi, my budget doesn't have enough room.
I've really wanted to get started using Home Assistant, but because it doesn't work well in a Docker container, I've had to hold off until I can afford hardware that can host Home Assistant OS. I'm currently looking at trying out Oracle Cloud's free plan, but it's possible my lack of technical knowledge will make this free solution difficult to use.
Even when a service is set up, it might still break
You need to be ready for more inconveniences
There are a variety of ways you can make self-hosting simpler, such as using tools to update containers or setting up a dashboard like Homarr. But I've specifically avoided using a tool like Watchtower to update my Docker containers due to concerns about updates breaking services.
I've also had services work perfectly one day, only to stop working the next, despite me not changing any configuration or files. If you've spent ages trying to get the service to work in the first place, this can be incredibly demotivating. It's why I've sometimes just stopped using certain apps even though I enjoy their functionality.
This is less of a barrier for software developers, since they can usually pinpoint the issue fairly quickly. But you need both the knowledge and the time to fix these errors when they spring up — making it less appealing to those who don't.
Despite running dozens of containers, I refuse to self-host my own email server
I've been self-hosting services on local hardware for a long time, and have built an empire of containerized applications. However, the thought of deploying my own email server scares me. Don't get me wrong, I don't mind setting up DNS records, SSL encryption certificates, reverse DNS, and all the other grand-sounding components required for this project. But putting all that effort into an email server, only for other clients to report my emails as spam, makes it hard to justify spending hours behind a self-hosted mailing setup.
I'm still going to keep self-hosting, but at a slower pace than I'd like
I've personally enjoyed self-hosting, but my experience has made it clearer why many people opt not to. I have a great motivating factor to expand my skills and try out services — I write about technology for a living. However, for an ordinary person or even developers who don't have a lot of time, I can understand why self-hosting is not always a viable option.
