I am a big fan of self-hosted apps, which are a bit different from the desktop apps I talk about in a previous post. Self-hosted apps are web based applications that you run on your own server. The “server” can be just about any computer you have access to.

Self-hosted apps are an alternative to the cloud based services that you sign up for and simply access with a username & password. The “cloud” just means it’s running on someone else’s computer, where they take care of installing and maintaining the software to host that service you are using, such as Google Photos or Apple iCloud. If that cloud service is free, it’s possible that you are the product. Perhaps the company is using your data to profit in some manner, or they are making money by showing you advertisements while you are using the service.

Why Self-Host Apps?

My first self-hosted app was way back in 2001, when my high school buddies and I scraped together spare parts for a Counter-Strike server, which we hosted in a nearby colocation facility. Colocation is like a hotel for computers, where you send them your computer and they plug it in for you - providing you with fast internet and reliable power. We called our clan clandomo.com, affectionately named after the ubiquitous Domo of the era. The server grew to be quite popular over the year we ran it. I have many fond memories gaming with real life friends and strangers over the internet on that server. On occasion we would get together for a LAN party, which was always a blast. We are well into our 30s now, but still get together for a good old fashioned LAN when we can!

clandomo counter-strike server exterior clandomo counter-strike server interior

Colocation Facility LAN Party

We opted for a colocation facility since home internet connections at the time had very limited bandwidth. I was lucky enough to have a particularly fast ADSL line at home, which if memory serves was 1.5 Mbps down and 256 Kbps up. Our parents would not have been too pleased if we slowed down the home internet connection with a server we wanted to keep running 24/7.

Alcatel 1000 ADSL Modem For some reason my Dad still has the ADSL modem, 20+ years later

I still remember marveling at result of running the dslreports.com speedtest the first time I ran it on the colocated server, which was so fast it broke the UI!

Colocation facility speedtest Seems like broadband!

The server hosting fee was about $70 per month, which we fortunately never had to pay due some sort of billing error by the vendor. I still remember the day I showed up at the datacenter to pick up the server when we decided to take it down. I was about 16 years old at the time. They had me sign in, show my drivers license, gave me the rack location, power drill to unscrew the mounting bolts, and let me do my thing. I couldn’t believe they were actually letting me go inside to retrieve the server myself! It was so cool seeing the inside of a datacenter for the first time, I couldn’t help but snap a few pictures which I’m sure was against the rules.

So why did we bother with self hosting that Counter-Strike server? It was certainly a lot of effort, and there were alternatives available at the time. Game Server hosting companies existed that you could rent a Counter-Strike server from, where they manage running the hardware and software for you and simply give you RCON access and maybe a way to upload config files. For a fast paced first-person shooter, minimizing the lag between you and the server is very important, so we needed the server to be located geographically close to us. Hosting it on our own hardware allowed us to ensure the server had adequate resources for a consistent experience, avoiding any potential overselling the hosting companies were known to do. It also allowed us to run whatever else we wanted to on the server, such as an FTP server to share files or a web server to host our website.

That’s really what it comes down to with the reason for self-hosting, it’s all about having control. You get to control what software you run, how you run it, and most importantly: you control your data. Why is that so important? If you don’t control the data, the company that does control it may do things with your data that you do not agree with, or restrict your access to the data. Some recent examples include:

For the streaming services in particular, the media available to you at any given time is contingent upon business negotiations and contract renewals that are completely out of your control. For this reason, I never warmed up to the idea of subscribing to a music streaming service. I prefer to own digital copies of the music, which I store on my own hard drive. That way, some company can’t decide to reach into my music library and remove something due to licensing changes.

Self-hosting is certainly not without any downsides, however. The biggest of which is the time investment required to not only get things set up, but also the ongoing maintenance burden of keeping everything up to date and running smoothly. There’s no comparison to the ease of a cloud based solution, where a corporation with vast resources can worry about security, backups, and availability so that you don’t have to. With self-hosting, all of those become your problem to deal with. That’s part of the fun though!

Things have gotten easier to self-host over the years, but it’s still not something I would suggest to others unless they have the desire and curiosity to treat it as a hobby. I thoroughly enjoy tinkering with my self-hosted apps and infrastructure, so it’s a time commitment I’m willing to take on. Even though a lot of self-hosted apps are open source and completely free to use, I like supporting the indie developers and I encourage others to do the same. It takes a lot of time and effort to create and maintain these apps, I feel that it’s only fair to compensate the developers in some way for creating something I found useful, whether it’s financially or through code contributions.

My Favorite Self Hosted Apps

Additional Resources for Self-Hosted Apps

Self-Hosted Apps - January 19, 2024 - Greg Barker