I tend to think that I got into self-hosting about six years ago when, after reading Free Software, Free Society: Selected Essays of Richard M. Stallman, I decided to ditch Google's services in favour of Nextcloud. I first hosted it on a VPS and, a few years later, transitioned to "real" self-hosting (or self-self-hosting, if you will) using repurposed computer hardware, as shown in the picture above.
However, I recently realized that this has not been my first experience with self-hosting. In fact, I have been self-hosting services since I was a teenager, even if I did not call it that at the time. I am not sure if the term had even been coined yet. It was an era when cloud computing was just getting started.
The year was 2008 or 2009, and I would spend most of my free time tinkering with computers in my parents' basement. My daily driver at the time had an Intel Pentium 4 CPU, 1 GB of RAM, and a 140 GB hard drive. A few years prior, my mom had gotten herself a laptop with a shiny Intel Core 2 Duo processor. She had finally decided she no longer needed her old desktop PC with a Pentium 2. I was therefore allowed to take it and pursue whatever geeky endeavor I deemed fit.
I decided to install Ubuntu Server. It went well. I recall that the installation process was quite guided, asking what kind of server software I wanted to install. I remember checking boxes for FTP, Samba, Apache, MySQL and PHP. Setting up a server sure seemed easy enough. Until the installation was done and the computer rebooted.
I was greeted with a black screen and a command prompt.
Now what? I learned how to use the command line, that's what.
The first thing I did with my server was implement a backup solution for my PC. I installed a freeware file syncing app on my Windows machine that would update a copy of my files on the server every night. Now I am not sure how a computer from the 90s could possibly have had enough storage to do that, so I must have upgraded it with a larger hard drive scavenged from another machine at some point.
I had configured port forwarding on my parents' router to make my web and FTP servers accessible from the outside world. Some day, I was wondering why my server was making a noise every 2 seconds, coinciding with the hard drive activity LED lighting up in sync. After investigating, I discovered in the FTP daemon's logs that an IP address from China was attempting to brute force into my machine. I promptly disabled the port forwarding, and the hard drive noise stopped immediately. I learned something that day: if you expose a service to the internet, somebody will find it and try to break into it.
And then, the summer before I started college, I decided, for some reason, to code my own calendar app, complete with email reminders and everything, all in PHP. The code was terrible (I barely understood for loops at the time!) and the database structure was horrendous (I don't think I even had primary keys on my tables). Nevertheless, it worked. I somehow managed to support recurring events with my database structure that was not even in first normal form. I hosted my calendar app, that I named Chronos, on my server. Over time, I added a page to upload files so I could access them from anywhere, and another page for note taking.
In other words, I basically created my own primitive NextCloud, minus the file syncing client, before NextCloud and ownCloud even existed. And I used it throughout college. I stopped using it when I bought my first handheld device (a used iPod Touch that I got from eBay!), with which I wanted to sync my calendar. I decided that switching to Google Calendar would be less time-consuming than implementing CalDAV on my own app.
I continued using my server for other things though. In the meantime, I had actually upgraded my setup from the Pentium 2 PC to a decommissioned tower server that used to host the accounting system at my mom's workplace. It came with a SCSI hard drive. I added 2 other hard drives, one IDE and one SATA. I combined the three drives into an LVM volume. It was so much fun! That server followed me into my first 2 apartments, and I continued using it until it eventually stopped working. This was when I stopped having a server at home, until I started again.
In a way, when I set up my current server a few years ago, I was only going back to my tech roots. Only, this time, I am using existing FOSS apps instead of my own creations. My hardware modus operandi has not changed though: I am again using repurposed parts that I basically intercepted on their way to the trash. Techie hobbies don't need to be expensive.