In some corners of the Internet, self-hosting is a big thing. There's a huge community to be found in places like Reddit, some great podcasts and so many helpful resources to learn from.
But what does self-hosting actually mean?
In simple terms, it's all about hosting your own services over reliance on a public cloud, wherever that comes from. It could be file storage, it could be a media server, a home automation system, security cameras, you name it, there's probably someone who's at least tried to self host it.
I've been very happy with my little home setup and the journey it took me on. I've started to learn some skills along the way and as we go into 2022, here's a little about the what, the why, and the still to come.
Why bother self-hosting at all?
Public cloud services are extremely convenient. That's why they're so popular. And I'm not saying services like OneDrive are bad; far from it. But for reasons I don't fully understand (perhaps getting older and angrier, perhaps lockdown boredom), through 2021 I started taking more interest in which companies had access to my data.
Some of it is about privacy, but there's also a growing skepticism deep within me about reliance on a few big cloud providers for too many services. The recent AWS outages serve as a stark reminder that when something goes wrong, I can't access my doorbell properly. This seems like a ridiculous problem to have.
So, I started looking at what I could do to both be more mindful of my data and the rabbit hole then led to self-hosting. I haven't replaced everything that relies on someone else's infrastructure, but I've made a start. And perhaps I'm a little surprised at how enjoyable the whole process has been.
Learning new skills along the way
One of the best parts of this whole process has been starting to learn some new skills. I'm hardly an expert in any of them, but without getting into self-hosting I'd probably never have touched any of this.
I've been learning to use Linux since the first great lockdown of 2020, when I got bored and thought I'd give it a try. But that's always been on a desktop level like Windows 11. Through self-hosting, I've started to dabble in the world of servers and Docker containers while learning more about tools like SSH and even networking basics.
I love learning new IT skills, but in recent years I've definitely been a bit of a slacker. In recent months I've dabbled with Ubuntu Server, Docker, Portainer, building my own configuration files and the wonders of VLANs, all through getting into self-hosting. And the great thing is that it really is an endless rabbit hole. One thing leads to another which leads to another and so on.
A year ago, even though I'd been spending more time using Linux, in particular WSL on Windows 10, the command line still daunted me. Going into 2022 I find that working in a terminal is strangely satisfying.
What I'm actually self-hosting
So, to the good stuff: what am I actually self-hosting? I've tried a bunch of different apps and services across a number of devices. I started out on my Synology NAS before branching out a little and repurposing old hardware. I have a 2012 Apple Mac Mini that's useless as a Mac now, but it makes a fantastic little server box. My old Raspberry Pi 3 was found in a drawer and that's doing work as well.
The main service I've fell in love with this year is AdGuard Home. I've used Pi-Hole in the past but never really got attached to it. As good as it is, my inner noob is much more at home with the slick user interface and more beginner-friendly approach you get from AdGuard Home. It's running on my Raspberry Pi right now, though 2022 may see it relocated when I finally get proper fiber.
Also running on that same Raspberry Pi is a rudimentary local file server. It's a simple Samba setup, mostly in existence because I read a blog post on it and thought I'd give it a try. It's set up with a small USB flash drive connected to the Pi and I've been using it to share files across my home network that I don't need long-term or syncing to all my devices. It probably won't be around too much longer, but it's been handy.
On the old Mac Mini is where the bulk of the load lives right now. It's not running macOS of course, instead using Ubuntu Server 20.04 LTS. Even for a computer approaching 10 years old, Ubuntu Server is extremely lightweight with no desktop environment weighing it down. And currently, everything on here lives in a Docker container which is managed through the Portainer GUI.
Portainer is especially good for Docker novices like me, as it removes the need to handle Docker Compose files directly. You can either use one of the pre-selected app templates or simply point it at the Docker image for the service you want to set up and leave it to do the rest. To access the apps, all that's needed is a web browser.
Currently being hosted there is:
- Podgrab - A local podcast server that allows streaming or downloads and can generate OPML or custom RSS feeds to use on other devices.
- Whoogle - Google search but without Google's crap. The search results are identical but it's faster and much cleaner without ads and trackers.
- Libreddit - A tracker-free, extremely fast front-end for Reddit. You can't log in, but if you never comment, like me, the experience is pretty perfect.
- YouTube DL - A GUI for the well-known YouTube DL command-line app.
- Homer - A customizable dashboard for accessing self-hosted services and more.
- Guacamole - A clientless remote access gateway that allows easy SSH access to my various devices from a web browser.
And over on my Synology NAS, I've finally got round to setting up a Plex server again with live TV and DVR thanks to HDHomeRun integration. I've also been using Nextcloud these last couple of months, set up on a DigitalOcean remote instance. Nextcloud is really fantastic and I use it for a number of purposes, including syncing offline copies of my work for the site, managing calendars and email, file backups and sync, and even handling RSS.
All of the services I'm self-hosting, with the exception of Plex, are free and open-source, which has been another priority throughout 2021.
To say I'm hooked on self-hosting is an understatement. It's addictive, and much like building a gaming PC, there's always the "next step" with hardware and software.
In 2022, I'm determined to carry on what I've learned and build upon it, developing more skills and trying things I previously would have run away from like Forrest Gump at full tilt. So I'll be dipping my toes into the world of homelabs, which goes hand-in-hand with self-hosting.
A homelab can be a giant server rack full of thousands of dollars of gear, or it can be a Raspberry Pi. And anything in between. Most of the services I've been using are incredibly lightweight which means there's really no need to spend money on new, expensive hardware.
I am looking to expand though. On the list of things to start learning in 2022 is virtualization with Proxmox/VMWare ESXi, Kubernetes, and (finally) starting to learn to code, well, something. I plan to pick up another 2012 Mac Mini or something similarly old, small and cheap, to maybe cluster together, and at least a Raspberry Pi 4.
I've already built a cheap home server rack from an IKEA Lack table of all things (post coming on that in the new year) and grabbed some ex-enterprise network gear for peanuts to set up a fully wired network in my office, separate from the home Wi-Fi.
We've no idea if 2022 is going to be better or worse than 2020 and 2021 at this point, but I'm going into it with a new hobby and a pretty massive to-do list.