There was a time when software (and games! Games are just software for fun!) were distributed on DVD. A physical disk that you would insert into your system to load up software and install. This was the 2000's, when computers prided themselves on being personal computation devices. A Chromebook was a curiosity at the time, promising to run most of your software in "someone else's computer"; all you needed was the internet and the interface. The Chromebook was a reckoning. Through the 2010's we slowly moved into the clouds of various giants; it was the easy way to compute. The giants were renting out services - subscriptions started gaining foothold as the second best way to make money online after advertisements - and we were happy to give away the control in exchange for convenience. A minor consequence of this is that an entire generation of computer scientists hasn't had the opportunity to start off as computer enthusiasts - the primordial hacker mindset is slowly waning in prominence.
It is 2024, and I say it is time we revisited some of the fundamental joys of setting up our own systems.
Why? Good question.
- Philosophically, it is a form of rebellion, carving out a niche in a world dominated by monopolies, resisting the forces that be from having complete control over our digital selves. Showing the world a different way of living. One of the last bastions of online freedom, self-hosters stand alongside open-source-ers, data-hoard-ers, privacy-ers, matrix/activity-pub/decentralized-tech-ers, piracy-ers, de-google-ers and hack-ers.
- Practically, it is foolishness, for what you save in money you lose in time and sanity. Seriously, else-hosting is the practical option, let someone else worry about the reliability, concurrency, redundancy and availability of your systems.
- Intellectually, it is the digital garage of constant tweaking of systems, a source of zen and arcane knowledge. Where you retire after a day's work to work on your favourite toys.
So most importantly, it is supposed to be fun. A hobby.
And like every hobby there are a lot of gatekeepers. People who believe having a personal server that you can touch is a necessity to call yourself a self-hoster. Eh. Don't listen to them. Self-hosting is as much about the software as it is about the hardware. I say we get the enthusiasts by any means necessary; they will eventually grow into full-fledged self-hosting. Or not. It doesn't matter! This is supposed to be fun, why are you stopping people from having fun?
And so, here is a gentle introduction to self-hosting that is not "true self-hosting", but whatever. Sue me. We will operate at the software level only, and laugh at the feeble protestations of the rigidly-defined self-hoster loyalists. We will dispense with the heavy prose after this point.
A shared web hosting service is a web hosting service where many services reside on one web server connected to the Internet. The overall cost of server maintenance is spread over many customers.
You need a space to host. I recommend Uberspace. They are the most heart-warmingly nice people about hosting; they operate on the idea of "here's a screwdriver, try not to burn down the building, but have fun". Excellent.
So, make an account on Uberspace - did I also mention that you pay after the month ends, so technically everyone gets a free month of trial? I mean, can they get more awesome? (pst, they do).
The Secure Shell Protocol is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
Here's the cool part: you now have SSH access to a computer in the cloud with 10GB of storage and 1.5GB of RAM. Go ahead, do it now. Run ls
to be greeted by your brand spanking new empty user directory.
The Software
What to do, what to install…. I will give you two resources to peruse.
- Uberspace Labs - An Uberspace specific installation guide to various software that you can play around with on Uberspace. Highly recommend searching for anything you want here first.
- Awesome-Selfhosted - A broader listing of self-hostable software. If it is on here, it means there is a decent amount of community behind that software; it should cover 90% of the broadly self-hostable programs.
You cannot use Docker in Uberspace. The memory constraints are too low to run a full virtualization suite. Which is a bummer for the larger software and docker-only installations but there are workarounds for it. You can install software from source or pull the final run-time from the dockerisation process and use it as a build image (I leave this as an exercise for the intrepid reader :)).
But what exactly do I install first?? Alright, alright. Author suggests the following two trackers - one for finance, and one for videos and website updates.
Actual Budget
Have you always wanted a way to track your finances - expenditures, net worth, spend patterns, etc.? Have also been wary of putting all this sensitive information in the hands of others? What if there was a way to be in control of your data, yet have it accessible across the world via a browser?
Actual Budget is a super fast and privacy-focused app for managing your finances. At its heart is the well proven and much loved Envelope Budgeting methodology.
I use this and I have written a guide on how to install this here.
Make sure to peek into the reports section - you should be able to slice and dice your finances and gain tons of insight out of it. For instance, turns out what I considered to be minor purchases actually add up over the month, and I spend an inordinate amount of money on commute!
Miniflux
Miniflux is a minimalist and opinionated feed reader.
There is a way to keep track of your favourite news outlets and magazines, be posted on the latest blog posts of your favourite writers. You could also build a dedicated ad-free feed timeline of your YouTube subscriptions.
RSS (Really Simple Syndication) is a web feed that allows users and applications to access updates to websites in a standardized, computer-readable format. Subscribing to RSS feeds can allow a user to keep track of many different websites in a single news aggregator, which constantly monitor sites for new content, removing the need for the user to manually check them.
Bonus: YouTube has an RSS feed and the embedded YouTube player is ad-free.
Install Miniflux on Uberspace. Add feeds of your favourite YouTube channels. Hop into settings and enable Fever API.
Now any RSS client which is capable of reading from the Fever API should be able to access your RSS aggregator in the cloud. If you are in the Apple ecosystem I highly recommend Unread by Golden Hill Software.
With this I have a dedicated recent first timeline of all the videos as they are released.
I also have separate categories of feed for news and comics - there is a ton of webcomics out there beyond xkcd, smbc and oatmeal - a great way to catch up is via RSS.
Bonus: Your Domain
The coolest part about self-hosting is showing off your stuff. What better way to show off your things than to have a personal domain - a place you can call your own. Head over to a domain name registrar and grab a site on the net-estate. I suggest Porkbun.
Now you have a bunch of extraordinary things you can do. With something like awesauce.com
:
- You can point the various services you host on Uberspace to subdomains of your main site. Show off your
actual.awesauce.com
andminiflux.awesauce.com
! - Check with your email provider if they allow you to set up custom domain. You may have to pay for the privilege. Once done you have achieved another freedom - now you can shift the underlying email service provider while keeping the address the same. All mails, for forever, can come to
[email protected]
. Woohoo! - Point a subdomain or a URL path to your GitHub repository and host publicly accessible files like your resume:
awesauce.com/files/resume.pdf
This has not been a detailed step by step walkthrough on how to do things, by design. You are meant to go and explore; this is simply a way pointer to invigorate your curiosities.
Here is a final reader's exercise: Figure out a way to send yourself a mobile notification when a particular item comes back in stock or website changes :D
This made it to the HackerNews front page, head over there for some good discussion around the topic.