The Caveats of Self-Hosting At Home

Introduction

This essay was written by me, Brandon Nolet, in the context that my power went out yesterday.

Availability

Unless you’re someone who’s thought ahead, you’re shit outta luck when it comes to power outages. The moment your power goes out, everything is basically inaccessible. Your Gitea, your Plex movies, and especially all the files only available through your Nextcloud install.

Without any form of backup power, you’re at the finicky whims of your electricity provider. This is especially problematic if you have a RAID setup as you could easily introduce corruption across the array if an intensive write process is taking place at the time you lose power. A UPS like this should suffice to help avoid these kinds of issues.

If you’re making sure to sync/remotely download all of your data, this shouldn’t be an issue, but when you’re running you’re running “production” software like a blog or a public Gitea installation, then you might also want to get a UPS.

Security

If someone hacks into your server, you or your team are the sole people responsible for the security aspect of that. If you host data/services for other people, you can’t blame someone else. You become the one that everyone else will blame. If you lose all of someone’s data, unless you have a previous agreement that states that you’re not responsible for data loss, you’ll be the one they call to when they find their data is missing. Actually, even if you tell people it’s possible all the data could be lost, people will still blame you. It’s human nature, I think.

As a full administrator of your self-hosting setup, you’re in charge of security. This means that you need to stay on top of updates and the latest security flaws. There are a few sources to keep on top of things but subscribing to your distro’s security/bug mailing lists are also a good idea. Here are the ones for Ubuntu, for example:

The last one is more about discussion than security advisories.

Making sure that security updates are installed regularly should keep you safe most of the time, but it doesn’t hurt to be extra careful. Some basic hardening tips for Linux servers can be found here. Some of these may not be that useful in the context of self-hosting, but are good to be aware of nonetheless.

One last thing to consider about security is that not only is the data on the server vulnerable to theft, everything on your home network might be vulnerable to compromise. Consider how you’re going to segregate your network from this machine, if at all. You’re exposing this server to the internet, after all.

Residential Internet

It was only recently that I found out that my ISP doesn’t block port 443. That being said, if you’re willing to host insecure websites, at my place you’d be SOL. There are lots of ISPs out there that block common ports known for people to be hosting servers on. If you’re stuck with one of these ISPs you might have to pay more just to get those ports unblocked.

There’s also the fact that residential internet speeds are almost never guaranteed. This is especially true for cable-provided internet connections. Due to the physical contruction of these networks, it’s near impossible to guarantee the top speed available to you. If you’re on fiber-provided internet, you might be in luck.

Lastly, with residential internet, you have to deal with generally low speeds. This is fine when you’re the only one accessing the service you’re providing. This isn’t fine when you have four people trying to stream The Dark Knight movie in 1080p resulution from your Emby install. Most upload speeds for a residential internet connection range between 1 and 15 mbps. Each 1080p connection, depending on the bitrate, takes somewhere between 3-5 mbps to stream. Some bitrates can go all the way up to 10mbps requirements.

Hardware

Lastly, you need to have the appropriate hardware. Most people hosting one or two light things like a blog and a Gitea install will be fine with something like a Raspberry Pi 4, 4GB. For someone like me, I need something more beefy. A full-size core i5 workstation should do for most of the rest of people.

If you’re especially keen on improving your self-hosted setup, though, you might want to look into custom building a server for yourself. Either head over to your favourite hardware outlet, or you could even get a prebuilt PC custom specced from someone like BitFenix or iBuyPower. Wait, were those the good ones in LinusTechTips’ pre-built vendor comparison?

Conclusion

There are probably other caveats that I didn’t write about here, but I can’t think of them. Keeping these things in mind, though, you should be without too many surprises if you decide to self-host from your home.