Jekyll2024-07-26T01:28:44+02:00http://localhost:4000/feed.xmlDerisis13’s temporary blogJust some nerd rambling8VIM review2024-07-26T00:00:00+02:002024-07-26T00:00:00+02:00http://localhost:4000/2024/07/26/8vim<p>8VIM is an alternative keyboard created by Ravi Agarwal.
Its premise is to replace the traditional target-based typing on touchscreens with more ergonomic, fast, and memorable gestures.
It promises better accuracy, speed, and helpful shortcuts for editing text while typing.
After one month of learning and then six months of exclusive usage on mobile, I’m ready to give my review.
I’m comparing it to OpenBoard, my previous keyboard app, in both cases using the Hungarian layout, as I need to write using the language’s special (umlaut) characters.</p>
<h1 id="getting-used-to">Getting used to</h1>
<p>Just like regular vim, usage is initially limited by a lack of practice.
As mentioned above, it took me a month to stop learning, meaning that I ceased to see any improvement in my speed or accuracy.
The reason I’m hesitant to say I’ve mastered it is that neither aspect was to my liking—it was neither faster nor more accurate than OpenBoard.</p>
<h1 id="the-good">The good</h1>
<p>The clipboard is very well done.
Having a paste gesture is convenient and the clipboard history is a first-class implementation.
The one thing I didn’t understand is, why pasting is disabled when typing passwords.
As autofill is still broken within my password manager, this made it really troublesome to log in.
Since most of my passwords are unique, and I rely on a manager to keep track of them, this was a real hindrance.</p>
<p>Navigation gestures are also the best I’ve experienced.
They are a strong selling point of the application, there’s a good reason why Termux also includes arrow keys in its auxiliary keybar.
Speaking of Termux, the control modifier can also be useful, but most of the time apps don’t expect it, so it’s not as useful as I wished it was.</p>
<p>But the primary reason I wanted to use 8VIM was the ability to touch type.
With vibration feedback, I could look away from the screen and still be sure what I was typing was correct - although it was slower than looking at my input.
I’ve never tried any keyboard for the visually impaired, but 8VIM might hold its ground against them - assuming you can learn it blindly - at least for letters, that is.</p>
<h1 id="the-bad">The bad</h1>
<p>It may have been due to my aged (4-year-old) phone, but 8VIM sometimes just froze and took no further input.
It never lasted longer than a few seconds, but it was still annoying, even for that short time.</p>
<p>Since changing capitalization requires a full turn (which is longer than typing any character), an auto-capitalization would have been welcome.
This problem is exacerbated by the annoyance of correcting mistakes: first finish the word, then swipe back, then correct the letter, and if you’re not careful, you insert an extra space you have to clean up.
It’s not impossible, just tedious.</p>
<p>But the worst experience is with symbols and numbers.
To type them you have to use a numpad, reverting to the old targeting method, instead of the gestures.
It’s really annoying, especially when mixed with letters (for example ham callsigns).
I wish they were more ergonomic, meaning I could input them blindly, and preferably without lifting my finger (literally).</p>
<h1 id="the-ugly">The ugly</h1>
<p>In May, I started to grow suspicious of my speed and accuracy when typing, so I reverted to OpenBoard, just for comparison.
As much as I wished it were not the case, I was neither slower nor did I make more mistakes.
But the easy access to the numbers and the vast array of available symbols (something that was limited to four or five times less in 8VIM) were refreshingly convenient.</p>
<p>OpenBoard’s clipboard history is just as good as 8VIM’s and is not hidden when I need it the most.
Navigation is not as smooth as in 8VIM, but I can still swipe the spacebar to go left or right, which is almost as good.</p>
<p>Another big improvement (that shouldn’t be one) is that OpenBoard can function in landscape mode - something that 8VIM developers just didn’t bother to fix.
And while the enter “key” in 8VIM is inconsistent - sometimes inserting newline (eg. in Facebook Messenger), sometimes sending the message (eg. in Discord) - OpenBoard’s enter always puts newline.</p>
<h1 id="verdict">Verdict</h1>
<p>8VIM remains a party trick - a way to make your phone unusable for others - but no more.
The touch typing promise is limited by the inability to input numbers and symbols blindly, and the promise of one-handedness is limited by the one hand’s grip without the thumb (as it’s used for typing).
So unless you’re blind, have only one hand and only type telegraphs, it’s not for you.</p>8VIM is an alternative keyboard created by Ravi Agarwal. Its premise is to replace the traditional target-based typing on touchscreens with more ergonomic, fast, and memorable gestures. It promises better accuracy, speed, and helpful shortcuts for editing text while typing. After one month of learning and then six months of exclusive usage on mobile, I’m ready to give my review. I’m comparing it to OpenBoard, my previous keyboard app, in both cases using the Hungarian layout, as I need to write using the language’s special (umlaut) characters.Creating a better, new world2024-05-26T00:00:00+02:002024-05-26T00:00:00+02:00http://localhost:4000/2024/05/26/creating-a-better-new-world<p><em>A comparative analysis of Code Geass and Death Note</em></p>
<p>Code Geass is one of my favourite anime, so when people recommended me Death Note as a similar story, I was intrigued.
During the first episodes I saw the similarities in the motives, and decided to write a comparative analysis to extract the archetypes represented by the two protagonists (antagonists?), Lelouch vi Britannia and Light Yagami.
Needless to say, this analysis contains full spoilers of both anime.</p>
<h1 id="dark-tetrad-traits">Dark tetrad traits</h1>
<p>The dark tetrad is an extension of the dark triad personality traits proposed by pscyhologists Delroy L. Paulhus and Kevin M. Williams.
The dark triad encapsulates the traits narcisism (to hold oneself in extremely high regard, in some cases infallable), machiavellianism (to see other people as means to achieve onselve’s goal) and pscyhopaty (to be void of remorse and consciense).
The fourt trait - sadism (to find pleasure in causing pain) - was proposed only later, extending the triad into a quad.
This collection of personality types is considered dark because they each lean towards malevolance, exploitation and antisocial behaviour.
Exploring these traits is the core of both stories, which is apparent in their main characters.</p>
<p>Light Yagami is a prime example of the dark tetrad.
He’s clearly the unredeemable antagonist of the story, he’s fully aware of the consequences of his actions yet he’s fully committed to them.
This is trait pscyhopaty, as he shows no remorse no matter who he has to kill to achieve his goal, his utopia.
He also displays machiavellianism by even considering of sacraficing her sister to save himself, but also when pretending to work with the investigations and “befriends” L.
Most notable is his narcisism, putting himself in the position of god of the new world, being extremely smug about his victories and trembling in the face of defeat.
This is probably the most characteristic trait of Light.
His sadism is questionable, because he doesn’t actively cause unneccessary pain, but how he can’t help but announce his victory every single time suggests that there might be some hint of it.</p>
<p>Lelouch vi Britannia is on the other hand a much lighter case.
In some sense he can be called a humanitarian - rising against the opression of the Japanese, fighting for his sister, Nunally - it’s not clear troughout the story if he’s evil or good.
Later it turns out that his support of the operssed was only a secondary goal to destroying his father, which marks him as a machiavelli person along with his exploitation of Rolo, Shirley and Karen.
His thesis in his constant fighting with Suzaku is whether the ends justify the means, which furthers the machiavelli line.
With the character of Zero he also exhibits similar narcisistic behaviour as Light, he deems himself as the maker of miracles (a roundabout way of saying I’m god) and their isolation inside their school environments also supports this.
The feeling of righteousness is also a characteristic of a narcisist, because it puts them above the others morally.
In the Zero requiem arc, Lelouch emphasises these traits to appear totally antagonistic and draw the hatred of the whole world onto himself.
His self-sacrafice shows an imporvement in his narcisistic traits by admitting to the idea that the world would be better without him, but paradoxically also states that only he could bring about the end of worldwide conflict and opression.
Sacraficing oneself is also the ultimate argument of his utlitarianism, by showing that even his life (something that many people hold most prescious) is below his final goal, maintaining his integrity even after betraying almost every single person that trusted him.
Where he remains relatable (as oppose to Light) is how he feels remorseful and grieves many times during the series.
This excludes him being a pscyhopat or a sadist, unlike Light.</p>
<h1 id="values-and-motivations">Values and motivations</h1>
<p>The backgrounds of the two antagonists (protagonists?) are strikingly similar.
They both start off as excelling high-school students, which might be the most boring occupation out there.
Where they diverge is the rest of the worlds they inhabit.
While both find theirs rotten, Light lives in what’s essentially the same as our world - which although has its problems, but definitely doesn’t profit from his radical actions as Kira.
On the other hand, Lelouch lives in a reality where there’s real opression, real genocide and real tyranny - even though he’s in the privileged class, he can’t stay silent about it.
In both series, storytelling amplifies this argument, by showing only minimal crimes in Death Note but full purges and exploitation of the “elevens” in Code Geass.</p>
<p>The two characters’ families highly define their actions, but interestingly in an almost opposite way.
Light has his sense of justice as a familial heritage from his father, and thus destined to pretend to be his ally, whereas Lelouch is at conflict with his father (and also most his half-siblings), and destined to fight against him.
His sense of justice comes from his personal experience of abusement and goes against the exploitative nature of his ancestors - not unique in his generation, as Euphemia and Nunally also find Britannia despicable, but he’s the one who takes action first.</p>
<p>They both state they want to make the world a better place, and show that they are willing to go extreme measueres to acheive it.
But there’s an interesting difference: Lelouch wants a world where he and his sister can live peacefully - which is value added to the existing - whereas Light wants a world without crime - which is something subtracted from the existing.
I generally value constructive methods and tend to be sceptical of destructive methods.
The outcome of the two stories seems to support this, as Lelouch attains redemption while Kira is punished as a criminal.</p>
<p>An interesting parallel is the assumption of sectret identities.
Light is dubbed Kira by the internet, and Lelouch creates Zero as a (literal) mask for himself.
This shows that they both willing to tell lies both to their families and to their allies to protect themselves.
But they differ again in that Light - like a true pscyhopath - lies to anyone, even his last words are lies, but Lelouch is sworn against lying to Nunally.</p>A comparative analysis of Code Geass and Death NoteStorage in my home server2024-05-26T00:00:00+02:002024-05-26T00:00:00+02:00http://localhost:4000/2024/05/26/storage<p>This is part two of my server writeup.
I’ll discuss how I organized the storage of my server starting from the hard drives, touching on file systems and redundancy, and even going into the folder structure, permissions and shared folders.</p>
<h1 id="changes-to-the-host-system">Changes to the host system</h1>
<p>As I mentioned in my last post, my power solution is the weakest link in my system.
Changing to a USB-C PD charger and trigger board didn’t help much either: the current spikes from hardware spinup were too much even for that.
In this regard, I’m finding the salvaged PSU better, but I won’t change back to it, as it’d be a shock and fire hazard.
Having an unstable PSU caused corruption of my data, which is unacceptable.</p>
<p>The requirements also changed since last time: I no longer intend to replace the Synology NAS, I only want to store my data on this server.
This allowed me to drop two of the four redundant disks, which means I’m inside the power budget, however even with two disks I was still getting some errors.
Strangely the errors were only affecting one disk.
I got one with the same capacity to replace it, but the system became unusably glitchy, crashing and rebooting after about an hour of usage, every single time, until none of the disks were detected.
It turned out that the six-port PCIe-SATA adapter died on me.
I replaced it with the two-port one I wrote about in part zero (as it’s sufficient now), and then also replaced the misbehaving disk with another one.</p>
<p>With these modifications, my server has been running stable for more than a month now (except when I tripped a breaker, but let’s not count that).
No crashes, no errors in <code class="language-plaintext highlighter-rouge">dmesg</code>.
It appears I’ve fixed all hardware issues, and I can move on with the configuration.</p>
<h1 id="block-storage-and-file-system">Block storage and file system</h1>
<p>The system boots from a 16GB eMMC module I bought with the SBC.
It’s fine for the most part, but container and VM images need to live elsewhere, as they wouldn’t fit otherwise.</p>
<p>I also briefly used a 16GB SD card for swapping (to avoid the OOM killer) but I removed it when the server was crashing constantly.
It doesn’t look like the system is missing it at all.</p>
<p>There’s a 2.5” 1TB HDD attached via a USB3 SATA adapter that serves as a non-redundant local backup storage.
I use it to push (borg) backups from my laptop to and for backups of the most important data on the server as well as system and docker configurations.
It’s formatted to BTRFS to take advantage of its extra features (compared to ext4).</p>
<p>The main storage is the two 1TB HDDs in BTRFS-RAID1.
I choose BTRFS for redundancy instead of MDRAID, because this way BTRFS can take full advantage of the redundancy and correct more errors.
I’m not sure if it’s a testament to this or the quality of my “power supplies”, but while I had 20-30 files rendered partially unreadable with my RAID-6 config, I had none with the BTRFS-RAID1 one.
Do note, that BTRFS on multiple devices is not the best idea, see this article for details: https://arstechnica.com/gadgets/2021/09/examining-btrfs-linuxs-perpetually-half-finished-filesystem/
The best solution would be ZFS, but as explained previously, it’s not possible for now.</p>
<h1 id="folder-layout-and-permissions">Folder layout and permissions</h1>
<p>The redundant array serves two purposes: it holds docker configurations (to increase availability) and all the user data.
They are separated into <code class="language-plaintext highlighter-rouge">compose/</code> and <code class="language-plaintext highlighter-rouge">fileserver/</code>.
Compose holds docker, volumes and compose-files, but not images.
Fileserver is shared via SMB and houses one folder for each user, plus a <code class="language-plaintext highlighter-rouge">public/</code> directory.
They all have <code class="language-plaintext highlighter-rouge">Documents/</code>, <code class="language-plaintext highlighter-rouge">Downloads/</code>, <code class="language-plaintext highlighter-rouge">Music/</code>, <code class="language-plaintext highlighter-rouge">Pictures/</code>, <code class="language-plaintext highlighter-rouge">Templates/</code> and <code class="language-plaintext highlighter-rouge">Videos/</code> but media is usually uploaded to <code class="language-plaintext highlighter-rouge">public/</code> and documents are kept in user directories.</p>
<p>Everything on this array is owned by <code class="language-plaintext highlighter-rouge">www-data:users</code>.
I would have liked to restrict (write) access to user directories to the users that they belong to, but Nextcloud (which I extensively use) mandates that all directories are owned by the mentioned user and group.
To enforce this, all docker containers are configured with a PUID of 33, a PGID of 100 and a UMASK of 002, and in SMB <code class="language-plaintext highlighter-rouge">forceuser=www-data</code> and <code class="language-plaintext highlighter-rouge">forcegroup=users</code> options are set for the share.
NFS is avoided since it doesn’t have these options.</p>
<p>On the root of the non-redundant disk, there’s a directory exposed as an SMB share, titled “Backup”.
Its purpose is to allow backups to be made from computers on the local network.
An Rsync task is set up to create a copy of it in an offsite NAS in the family for a 3-2-1 backup scheme.
Outside of the backup directory is a folder containing docker images and another one for Jellyfin to use as a (transcode) cache and metadata storage.
These aren’t critical so it’d be a waste to store them on RAID.
In the future, I’d like to set up an Rsync target to this disk to receive remote backups from someone.
I also set up an ISCSI target on this disk but I have yet to put it to use.</p>
<h1 id="summary">Summary</h1>
<p>I have 2 TB of usable space in my server.
1 TB is redundant and is used as a high-availability NAS, with only the most important files backed up elsewhere.
The other 1TB is non-redundant and is used only for containers, caching and as a local backup storage, which saved me a lot of time already.
The local backups are further reinforced by an offsite copy, at a family member.
They are both running BTRFS for its advanced features.
Various workarounds are in effect on the redundant array to ensure compatibility with Nextcloud, for which all files need to be owned by a specific user and group.</p>This is part two of my server writeup. I’ll discuss how I organized the storage of my server starting from the hard drives, touching on file systems and redundancy, and even going into the folder structure, permissions and shared folders.Host System2024-05-06T00:00:00+02:002024-05-06T00:00:00+02:00http://localhost:4000/2024/05/06/host<p><em>This post was supposed to be published in December 2023, but due to technical dificulties I didn’t do it at the time.
It’s remained an important part of my server writeup, even though some of it is no longer representative of my setup.</em></p>
<p>This is part one of my server writeup.
I’ll go through the hardware choices I made so far and the operating system and core software components.
I’ll also briefly mention how I started out as well as what upgrades I’m planning to make.
I didn’t want to buy something new because of budget concerns, so my choice was dictated by what I already had.</p>
<h1 id="the-rockpro64">The RockPro64</h1>
<p>As the main platform running my home server, I choose the RockPro64, with 4GB of onboard memory.
In <a href="https://derisis13.github.io/2023/12/08/statusquo.html">part zero</a> I already spoke about the hardware I’m replacing, this single-board computer should be more powerful than both combined.
I also experimented with a Chinese motherboard and an Intel i7-2670QM (a 2nd gen mobile i7) but I didn’t find the extra performance to be useful (<a href="https://browser.geekbench.com/v5/cpu/16451184">benchmark</a>), and the power draw was too much for my taste.
While my old setup used 20-21W combined, the x86 setup drew 35-36W on average while the RockPro64 drew 17-18W on average; all of them with two HDDs.
If I ever feel like running out of CPU performance I can still try overclocking the RK3399, I haven’t experimented with this yet, but I hope the stock 1.42 GHz was a conservative choice.</p>
<p>I bought this SBC in 2021 to experiment on (in some sense this computer taught me to use Linux), and sat abandoned since the end of the 2nd COVID wave in a cardboard box.
I ran it first in this cardboard box with two HDDs, but that couldn’t be the permanent solution, so I adapted it to some ITX mounting holes (with a piece of FR4) and placed it inside the biggest case I could find at home.
This time I also included a bigger PCIe SATA card based on the ASM1166 and added two extra hard drives in RAID-6 (I’ll talk about this decision in the next chapter).
Currently, the disks are 2x2TB and 2x1TB of spinning rust (for a total of 2TB pooled), but once the migration is complete it’ll have 4x 3TB for 6TB usable storage.</p>
<p>These parts are all spares I had lying around, they have bad sectors and they have strange read/write errors at the filesystem level that I attribute to them overloading the power supply.
This is a salvaged unit I pulled from a set-top box (same as <a href="https://ha5kfu.hu/2023/04/05/vfd-kijelzo-ujrahasznositasa/">this one</a> I used in another project) and it can officially provide 1A@12V.
It was good enough when I started, but it seems I hit its limit.
I already ordered a USB-C PD charger with a trigger board that should give me 3x as much power and not be a shock- and fire hazard.</p>
<p>The biggest limit of this setup is memory.
4GB is just not enough to run Linux, docker containers and spin up at least one virtual machine.
To make it just a little less critical (avoid the OOM killer) I added a 16GB microSD card as a swap partition - I have no idea how long it’ll hold but it’s cheap to replace.</p>
<h1 id="openmediavault">OpenMediaVault</h1>
<p>On my x86 server, I used TrueNAS Scale, and while I was satisfied with ZFS and how it handled SMB shares, the way it complained as soon as I tried to touch the CLI was off-putting and I couldn’t get used to its docker UI at all.
Additionally, it’s not available on ARM as far as I know, so I couldn’t use it even if I wanted to.</p>
<p>So I installed Debian Bullseye and OpenMediaVault 6 on top (just like when I first bought the system).
Many in the self-hosting community find OMV a lesser, unprofessional experience (as opposed to TrueNAS or UnRaid) but I really like the balance it strikes between ease of use and how similar it feels to the CLI tools I’m used to.
With all of its plugins it offers a complete experience, and what’s missing can be added from docker.
I currently have the plugins for system backups, borg backup, tgt (iSCSI target), wireguard, docker-compose, cputemp (installed by default), flashmemory (folder2ram, installed by default because I boot from eMMC) and kvm (although I no longer have a use for it).</p>
<p>All in all it’s a solid experience, OMV only adds to stock Debian and takes none of it away.
I think this pattern is not appreciated enough.</p>
<h1 id="summary">Summary</h1>
<p>I run a RockPro64 SBC with 4GB RAM, supported by some swap.
The performance is just enough for my use case, but it leaves not much space for future expansion, I have it pretty much maxed with the software I’ll write about in the next parts.
Storage still needs to be upgraded (I still have to purchase the drives) and the PSU is at its limit, but a new one is on its way.</p>
<p>I installed OpenMediaVault and I love how it only adds to Linux and takes nothing away.
It’s a solid foundation for my storage and other services and I find it more convenient than TrueNAS Scale.</p>
<p>In the next part, I’ll write about the storage setup, from hard disks to folders.</p>This post was supposed to be published in December 2023, but due to technical dificulties I didn’t do it at the time. It’s remained an important part of my server writeup, even though some of it is no longer representative of my setup.Singularity Feedback Loop2023-12-19T00:00:00+01:002023-12-19T00:00:00+01:00http://localhost:4000/2023/12/19/singularity<p>In this short essay, I’ll examine the idea of the Singularity Feedback Loop.
I’ll touch on Trans- and Posthumanism (which I’ll shorten to Transhumanism) but the focus will be this discipline’s dreaded and awaited messiah: the Technological Singularity.</p>
<h1 id="growth-and-singularity">Growth and Singularity</h1>
<p>The idea of Singularity is simple: once men create a machine capable of producing a better machine than humans could, it then repeats this process indefinitely.
At the birth of the computer, intelligence became a physical product - and thus it can be manufactured by machines.
With the emergence of generative AI models we have seen working computer code written by computer code, however, these are still much less complex than the generating program.
Based on the exponential growth of computers’ transistor counts (known as Moore’s law), it’s not too difficult to theorize something similar for AI.</p>
<p>But even Gordon Moore acknowledged the “red brick wall”, beyond which growth is impossible, due to physical limitations.
And as anyone who has learned system theory knows, even feedback - no matter how explosive it is - is limited by the boundaries of the system it’s part of.
Growth forever is possible, in the case of asymptotic growth, but this isn’t a continuously accelerating process.
To think you can create something out of nothing or more out of less contradicts the laws of thermodynamics.
You would have - even if not in the traditional sense - made a perpetuum mobile.
And the thing that can create something out of nothing has always been a religious deity.</p>
<h1 id="the-singularity-is-religious">The Singularity is religious</h1>
<p>And so the followers of this discipline created their own religions - extropianism, singulitarianism - they believe something that’s above the laws of the world as we know it.
And from it, they seek to free mankind from its flesh prison, much like traditional religions.
But unlike how the followers of other religions claim to have seen or heard their deity, or at least know someone who has; not a single person has made contact with the Singularity, as it doesn’t exist yet.
And if you ask me, it’ll never transcend the realm of fantasy, as it’s impossible to create something from nothing.</p>
<h1 id="the-singularity-is-the-philosophers-stone">The Singularity is the Philosopher’s Stone</h1>
<p>Humans always had the desire to create the ultimate creation.
Since the middle ages we have tried to make perpetual motion devices, and to this day charlatans are trying to sell them as “free energy devices”.
A similar invention, that also made its way (conceptually) to Transhumanism is the philosopher’s stone, sought by the alchemists.
This device would have provided its wielder eternal life (much like Transhumanists would like to artificially surpass death) and infinite wealth and prosperity (another goal of Transhumanism) by turning ordinary metals into gold.</p>
<p>Even though the alchemists never succeeded in their original goals (now we see why they didn’t even have a chance) their contribution to natural sciences is not negligible, and they had a comparable impact on the arts and literature.
They never reached eternal life nor infinite wealth, but from their “failed” experiments came fragments of knowledge, on which modern science is built.
So I keep smiling at the Transhumanists - as long as their methods are kept clean, I want them to carry out their experiments, and even though they won’t succeed, we can still be grateful for their “failed” attempts.</p>In this short essay, I’ll examine the idea of the Singularity Feedback Loop. I’ll touch on Trans- and Posthumanism (which I’ll shorten to Transhumanism) but the focus will be this discipline’s dreaded and awaited messiah: the Technological Singularity.Server Setup Part 0 - Status Quo2023-12-08T00:00:00+01:002023-12-08T00:00:00+01:00http://localhost:4000/2023/12/08/statusquo<p>Since August I’ve been upgrading my home server setup.
It’s not yet 100% complete, but most of the architectural decisions are already behind me.
I wish to document this process so that others can learn from it and as a reminder for myself if I ever forget how I did something.
This is part zero of my writeup, which’ll be about the hardware and software used prior to the upgrade.
This should serve as a comparison baseline.</p>
<h2 id="nas">NAS</h2>
<p>I had a 2-bay Synology NAS for some years now.
It has been passed down to me from a family member along with drives to populate it.
It’s configured in RAID-1 with 2x 3TB HDDs.
This capacity was almost filled up, which meant it was time to migrate from it.</p>
<p>This NAS ran an SMB server, an ISCSI target, a VPN server, a DDNS updater, streamed music and had a BitTorrent client.
The processor and RAM limitations crippled the responsiveness of these services, and the configuration was very limited as well.
It was a good computer, but it no longer satisfied my needs - at least not for the price I wanted to pay.</p>
<h2 id="linux-server">Linux server</h2>
<p>To expand into additional services that my NAS couldn’t provide, I got a cheap laptop with a broken hinge (from a family member as well) and installed the XFCE spin of Fedora workstation on it.
I like this device for how simple it is: 5W idle power draw, 4-core Intel CPU (passively cooled by a piece of metal), the entire board being just one card, except the socketed RAM and the WLAN card (which I found has no black/whitelist).
Its IO is limited to 2 USB, 2 SATA (one for ODD) and 100MB internet.
The keyboard and screen were nice to have when I started out, and the battery came in useful during power outages.</p>
<p>This would have been a terrible fileserver but it ran PiHole and HomeAssistant in docker with great stability until recently the network interface started having issues.
Fun fact: this was also the machine I used for building Fedora packages for ani-cli.</p>
<h2 id="what-wont-change-now">What won’t change now</h2>
<p>I’ll go over a few devices I use at home but won’t change now.
They are still relevant as services will interact with them.</p>
<p>I picked up a decent-size UPS from the trash a few years ago - it turned out to only need a new battery.
Now it has backup power for my NAS and router.</p>
<p>My networking is done by an ISP-provided all-in-one, which I hate but don’t want to change just now.
There’s also an unmanaged network switch to provide extra wired connections.</p>
<p>For media, I have a Chromecast (TV is not smart), a Pi 3 with Kodi and a Pi 1 with Volumio.
With the exception of the Chromecast they get their files trough mounted SMB shares.</p>
<p>There are a few IoT devices with open firmware I use for home automation and some that aren’t connected to the internet because their firmware is proprietary, outdated and they would be a security risk to my network.</p>
<h2 id="comming-up">Comming up</h2>
<ol>
<li>Host System - the metal that’ll run my services</li>
<li>Filesystem layout - from disks to directories</li>
<li>Networking - connecting to the web</li>
<li>Docker and nextcloud - how not to get in your own way</li>
<li>Torrent and media management - My Lord, is that legal?</li>
<li>Media serving - the forgotten world of DLNA and UPNP/AV</li>
<li>Home automation - my home is smart</li>
<li>Backup strategy - because RAID is not a backup</li>
<li>Migration - moving it all in</li>
</ol>Since August I’ve been upgrading my home server setup. It’s not yet 100% complete, but most of the architectural decisions are already behind me. I wish to document this process so that others can learn from it and as a reminder for myself if I ever forget how I did something. This is part zero of my writeup, which’ll be about the hardware and software used prior to the upgrade. This should serve as a comparison baseline.