Compare commits

...

2 Commits

Author SHA1 Message Date
d601a28f5c not a draft 2026-03-21 21:21:01 +00:00
f02418421e new article 2026-03-21 21:20:19 +00:00

194
posts/homelab.norg Normal file
View File

@@ -0,0 +1,194 @@
@document.meta
title: How I fell in with Linux
description: Haha war of the worlds reference
authors: [
Adumh00man
]
categories: [
blog
voidarc
homelab
linux
webdev
]
created: 2026-03-21T19:08:28+00:00
updated: 2026-03-21T21:20:48+0100
draft: false
layout: post
version: 1.1.1
@end
* 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.