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.
Windows Central Newsletter
Get the best of Windows Central in in your inbox, every day!
Richard Devine is a Managing Editor at Windows Central with over a decade of experience. A former Project Manager and long-term tech addict, he joined Mobile Nations in 2011 and has been found on Android Central and iMore as well as Windows Central. Currently, you'll find him steering the site's coverage of all manner of PC hardware and reviews. Find him on Mastodon at mstdn.social/@richdevine
This is fascinating. I don't have time for it, and having dabbled in Linux I know it's a deep rabbit hole. But it's definitely interesting as a project where you learn and get something working out of it. Congrats, Richard. This might inspire a lot of people to try their stuff.
A good illustration as to why "God" was such a popular password for admins back in the day (said the retired admin). It's the big fish, little pond syndrome all over again. Head cheese is quite addictive.
Awesome info, I've been looking for something to do with my 2012 Mac Mini. Down the rabbit hole, I go!! Thanks
Great stuff Richard. Definitely something worth looking into!
This article was an enjoyable first read of 2022 for me.
I had been worried about a few errors or changes in the HTML on my hobby blog and was paranoid about someone changing things around for their own SEO gains or something. I realized that I was also using my host email for most of my other services, like social media, Adobe, Amazon, Netflix, etc. At the very least, I stopped using that email for the other services. If my blog were more successful, I'd be curious about self-hosting it. As we get older, it's all too easy to lose faith and trust in various ways of doing things, especially online. It can be risky to keep all of your eggs in one basket. So, yes, it is satisfying to try to be more independent and learn more skills at the same time. Good luck with building up your skills in 2022. I want to dip my toe into cryptocurrency this year.
I look forward to a follow-up part 2 of this post later in the year.
I'd say for energy efficiency (2012 Mac mini has a 22nm processor) get something newer and cheap. They make some very inexpensive mini PCs these days. You can pick one up with 12nm CPU for around $200. Starting next year you can probably get a 7nm or better Qualcomm cpu mini pc.
To be honest you can do most of this stuff on a Raspberry Pi. The reason I like the old Mac Minis are that they’re still basically silent, and have space inside for two drives and have upgradeable RAM. Plus, and this is the big one, they have VMWare compatible network cards, with the common Realtek stuff you get in a lot of PCs you have to mess about injecting drivers (AFAIK) and I’m way too lazy for that. Power efficiency isn’t something I’m too concerned with yet, not on my small scale (my gaming/work PC drowns anything I’d put in this setup) but it is a tempting prospect for the future for sure. M1 Mac Mini type performance and form factor to run containers and virtual machines from is definitely mouth watering.
I made that move about 5 years back.
Mainly it started as a means to expand my Plex server, but that quickly turned into a self hosting rabbithole. After a bit of tinkering with different platforms I eventually settled on UnRaid.
I used my just replaced mainboard, CPU, and ram, and added a half decent SATA Card.
I snagged five 4TB drives and one 5TB drive, which seemed like endless storage at the time, and setup raid drive. Later down the road I added a used Quadro card for some serious Plex transcoding horsepower. I see you are using Subsonic and BookSonic. I actually came across subsonic near a decade ago, and it was great for hosting my own music.
BookSonic is alright, but honestly if you have a Plex server, do yourself a favor and download Bookcamp.
Yes it has a yearly subscription, but its cheap and its worth it.
Plex is more than capable of handling audiobooks and will even pull down meta-data with the right meta-data agent installed in plex.
What Bookcamp does well, is it records its own play history in your account. Plex does not handle that too well with audio files. It only works about 40% of the time in my experience. Bookcamp on the other hand has not failed me once, even switching between playback devices. I also sold my Smartthings hub the moment I found Home-Assistant.
I just added a Zwave/Zigbee stick to my server, and off I went.
The best part about Home-Assistant besides being compatible with just about everything under the sun, is that its main focus is local control of your smart devices. It will utilize cloud based control if thats the only thing the products parent company offers, but cloud only access is frowned upon in the community.
If you want to dip your toes into the addictive world of home automation, then for sure look look into Home-Assistant.io Also if you are going to host things on your own, it would behove you to look into Lets Encrypt.
LinuxServer has a great container that bundles it with Ngnix.
If you are not aware of what this is, it basically gives you a free SSL server certificate.
When you pair this with your choice of dynamic DNS service (I use No-IP) and Ngnix is gives you an easy and secure method of connecting to your web services on the internet.
If you have never used the Ngnix web host before, it has an excellent reverse proxy.
My favorite way to do it is with sub-domains.
So if my main domain is myhome.com, then you create a subdomain for each of the services you run.
So for instance, subsonic.myhome.com.
Then in Ngnix you setup a reverse proxy for this subdomain. Basically its a rule that whenever someone types in that subdomain over an https connection, it auto forwards to the port for that subdomains service.
The advantage here is that you only need to have port 443 forwarded in your router and nothing else.
Thank you for signing up to Windows Central. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.