How I fell in with Linux

Some Backstory

Linux is not hard to learn. Some say it is, but they're wrong. If one can be afraid of a terminal, then I must be the bravest man alive. But, I digress. I began many moons ago, when I was still young, innocent, and didn't know what nix was (what precious days). I began tinkering with some ubuntu virtual machines, but, since I didn't have much of a use for them, I stuck to the desolate landscape of windows, which was still pretty good at the time, to be fair. This was in the dark days before windows 11 struck, and before RAM was £3000. Skip forward, to when I decided that building a PC was a good use of money. I will admit, it was a steal, even for the time. I was doing LTT challenges before they were even popular, managing to build a fully functional machine for the low low price of about £700. In what was to be the first issue I had ever faced, I decided to install windows. Foolish.

That is not the point of this story, though. Fast forward again, to when I aqquired, through some sheer luck, a relative's old desktop. It was, of course, a piece of shit. 4gb of ram, something something pentium. It was hardly anything to write home about. The only thing it had going was that it had a whole terabyte of storage hidden within, a drive I am still using 4 years on, as of writing this, to store all of my legally aqquired media (I'll get to it later). I had the brilliant idea of turning it into a server. Of course, instead of doing anything moderately intelligent, I installed ubuntu on it, and accessed it over rdp for about 6 months. I know, revolutionary. This was the legendary Server01, or, at least, the first iteration.

The first iteration

As far as I can remember, I never really hosted anything interesting for the first stretch of time. But, after seeing my success in hosting a whole docker container (thanks networkchuck), the linux addiction began to take hold of me. I scoured facebook marketplace for anything that could satiate my urge to fuck about with json more efficiently, until I came across a diamond in the rough. For a measly £20, an old workstation. A HP Optiplex. Server02.

8 whole gigs of ram, a (moderately) more powerful processor, and even more storage. It was a dream come true. It was around this time, too, that I installed either Arch or fedora on my laptop (All I can remember is that it had kde and was a laggy piece of shit), which let me get used to how linux actually functioned. After another banger video from networkchuck, detailing the installation of a load balancer, the Kemp Loadmaster (I would come to hate that name), I finally had the inspiration to reinstall everything. The second iteration had begun.

The one with Alpine

I couldn't tell you why, but I got it in my head that Alpine was the lightest distro. Knowing that my "servers" (if you could call them that) were basically E waste, I figured that alpine was the obvious choice, because of how fast it was, or something. It probably had something to do with all the docker images that were based on it, but now I know that they're only based on alpine for the sake of it. Alpine is a small distro, sure, but for that storage space, you sacrifice basically everything you need to live. I.e. packages.

Even so, I transfered the kemp install over to a usb and began the installation. Both servers kitted out with only the finest alpine images money could buy. I was quick to install docker and get up basically the only service that I had at the time, plex.

Plex

Plex is shit. I can see that now. Before I knew it was propriotary nonsense, I thought it was amazing. Fast, efficient, something something. Who am I kidding, I saw it on an LTT video and installed it immediately. I can't remember what I even hosted on there, since it was way before I installed the arr stack or anything like that, but I switched over to my love jellyfin a few months later.

Alpine lasted a good while. I was still on windows at this point, and only really used the servers for silly little services. Before that, though, I need to explain a key part of the plan

Humble beginnings

In the same video explaining the load balancer, Chuck showed me how to get a free domain. I needed a name, and voidarc was something I had recently cooked up for some story or another, so I went with that. As you can see, it stuck. Hence, voidarc.tk was born.

Voidarc.tk was to become a core part of my life. Using the newfound power that came with a commercial load balancer, I began adding services left right and center, services that would follow me, if not uselessly, all the way through until the co.uk days. Some notable services included: kasm, a remote app gateway, which was fun while it lasted, but alltogether useless; portainer, that I never once used to start a container; code-server, where I ended up doing most of my development and management, just to name a few. The domain also allowed me to host public minecraft servers, the domains for which had remained unchanged until a few months ago. A few attempts at making an ssh server over https were made, but none were sucessful, because I was doing it wrong.

The linux era

By this time, it was the summer of 2023. My laptop had Arch on it by now, after going through a phase of being a windows machine because I couldn't figure out intel drivers, and I was on holiday. This was the turning point. This was the holiday that turned me into a loser. For the first week, nothing interesting happened, the same for the next week. I was using the code server I had set up to program one thing or another, but the fact I was using linux at all was completely lost on me. It wasn't until that fateful day when someone I knew on the campsite offered to show me her laptop that it clicked. She brought out a thinkpad, and displayed on the screen was a linux desktop the likes of which I had never seen before. The linux desktop that would end me.

Hyprland

The transition to Linux

I didn't know at the time what hyprland was, or how it worked, but after seeing such a beautiful system with my own mortal eyes, I knew I wanted in. I researched, coming across sway and some other nonsense I ended up not using. After a trip onto r/unixporn, I realised that almost everyone was using hyprland. So, I did the same. I decided, still on holiday, to reinstall arch with hyprland and configure it, so that when I got back home, I could install it on my main machine.

Needless to say, it was a success. In the beginning, there was a lot of stealing configs, as is normal, because I had no idea what I was doing. The day came, and I erased windows for the final time. Of course, I used archinstall, but it hardly made a difference. The first day was spent trying to figure out modesetting so that my gpu, a GTX 1070, would work with wayland. I hate kernel options.

A time came when I decided that there needed to be a change, so I installed a complete solution, called hyprdots. This is when I realised that I hated that idea of bloat. I understood the minimalists! But anyway, this is an article on servers, not other random shit. I digress.

The penultimate era: the plateu

I realised eventually that Alpine was also shit. So, in a frantic evening of usb installers, I switched server02 over to arch. And so it remains to this day. I wouldn't be surprised if there were still remnants of zammad lurking in the /etc folder. Zammad was a ticketing system that was a royal pain in my ass to install, and broke at every possible convenience. Don't even know why I needed it in the first place, if I'm honest. Server01 remained on alpine, and still does for some reason, but only because I can't be bothered to wait for my home assistant image to copy over to a usb. Not happening with usb2 speeds. There was a period where I tried to use proxmox on server01, since I only wanted vms on there, but it was too slow to bother, so I gave in to the alpine gods and removed that kvm entry. This is where development began to slow to a halt. I had bought a .co.uk domain by now, and the services I used were now set in stone. I wasn't using jellyfin daily yet, or really anything. The most I used my servers was to watch some manually downloaded show that I could've just found online. I believe that that was how I first watched JJK.

I had a download manager in some docker container that I had to manually add torrents to so that they would download. What trying times. I definately didn't know what the arr stack was even for back then, but I trudged on. Some other notable services included:

  • Portainer (still didn't use it)
  • homepage, for a time
  • code-server, obviously
  • shellinabox, probably the best thing ever made.

And that's where it stayed for a while. I made no changes, and no efforts to remove the invasive nonsense from my life. How sad :(.

De-corporatifying

There came a time when I got fed up of the overpriced nonsense shit that the companies of the world believe that we should put up with. I wanted freedom. I wanted a better life. And more importantly, I didn't want a gruvbox themed system anymore. So, everything changed I reinstalled arch on my main pc. I re-themed everything. But, most importantly, I purged a load of shit that I didn't use anymore. Of course, this made me install a load of other random shit that I used for all of 10 minutes, but that's the price you pay when you self-host. I stripped down, finally removed portainer, and focused on making my servers as useful as possible. I even automated replacing the ip on cloudflare when fucking vodafone decided it was funny to change it, and not give an option to have a static ip in the first place. This system is, of course, still in use to this day, and is using node.js and a cron job instead of anything more logical. What works, works, but I should probably put it on n8n someday.

I started to use Jellyfin more frequently, and get away from shit social media. I uninstalled snapchat, leaving me with only whatsapp and reddit, which is all the modern man really needs. No more youtube shorts, either. I got into deadmau5, too, but that's unrelated. It was around this time, too, when I decided hosting a mailserver would be a fun thing to do. It was not, and still barely functions to this day.

Then, the final evolution occured.

The last straw

I was interested in nix when i first heard of it. Imagine, a whole system, version controlled and reproducible on any machine. I know now that that was a stupid way to think about it, but it began as it always did, with an install on my laptop. It seemed simple enough, and I got a hyprland system working fairly quickly. Of course, the evolution of my nix config is a whole other story article, so I'll save it for now. I believe once I installed nix, things began to accelerate. I began to wonder what else could be replaced. Could endless reddit feeds be replaced by something more interesting? Could manual downloads be automated? Could I be free of the mortal coil that is Microslop and Github? I began to experiment, on the old trusty server02.

Current era: before proxy manager

It all started when I finally realised what the Arr stack actually was. I had it set up within the day, importing all of my shows. More importantly, I realised that I could automate downloading the albums that were so hard to source on mobile. It began with deadmau5, then some other artists, and before long I had a library of 800 songs that I could listen to without the permission of some old man in a suit (I was using auxio before then, which was open source, but shush). That was the first service that I replaced.

Then came the second. After finishing JJK for the second time, I wanted to see the rest of the story. So, I downloaded the manga. To my server of course. I fired up komga, and then changed my mind when the other options were worse. I finished the manga in about 2 months, before moving onto one punch man, and now one piece (which is peak btw). There was another purge somewhere in the middle of all of this, but I was hardly using any of the other services anyway.

Finally, there was git. Gitea I mean. My github had become bloated with a load of shit that I didn't want anymore, like old dockerfiles and non-functional web games. So, I left it all behind. Gitea was a breeze to set up, and I only had to change over a few links on my local repos in order for it to work. At long last, my config was owned by me. Not microslop

The final realisation

Kemp loadmaster had seen me through over 4 years of trials and tribulations. It was tried and true, and worked even better when you added a * entry in cloudflare. However, it was on one fateful night that I sight of a reddit thread complaining about speed on the Free tier. I clicked, aprehensively, and what I saw next truly rocked me to my core.

Free tier bandwidth cap.

I immediately googled it, and to my utter shock, The free tier had always been limeted to a measly 20mbps. For reference, I was paying for 900. No wonder my sites were slow, I thought, no wonder it took 2 minutes to load a word document. I had always attributed responsiveness to the shit cpu in server02. I would never have thought that my oldest ally would betray me so. So, with a heavy heart, and a somber funeral, I pulled the plug on the kemp loadmaster for the final time.

Modern day Homelabbing

Nginx proxy manager was something I had tried to use before, but not understood in the slightest. Turns out, before, I was putting the urls in the wrong boxes. Once I had switched it over, and given my home assistant vm the ram it deserved, I was finally free. Cryptpad actually loaded! Git pulls were as fast as they were on github! I was free! Thank God, I was free.

Nowadays, I host only what I need on my servers, the latest of which being this Blog site. The only thing I don't use is syncthing, but you never know when that might come in handy. And yes, I did figure out how to use ssh over cloudflare, and do on a regular basis. The Arr stack and jellyfin save me from having to crawl through the pirate bay every time I want to watch a movie, and Cryptpad saves me from the affront to humanity that is onedrive. The last thing I still have to do is switch to grapheneos, but that would be a whole article within itself too.

The moral of the story

If I were a youtuber, I would give some do's and dont's on how to set up your own homelab. But, I'm not a youtuber, or knowledgeable. So, If I had to give some advice, I would say 2 things:

If you're going to start, then do it. If you wait until you're ready, you'll be waiting for the rest of your life.

And, whatever you do...

Stay the fuck away from Zammad.