A Tale of a Frugal Home Server
NixOS +
diff --git a/home-server/jellyfin.png b/home-server/jellyfin.png
new file mode 100644
index 00000000..a7c35924
Binary files /dev/null and b/home-server/jellyfin.png differ
diff --git a/index.html b/index.html
index 0662946e..fd1b7ead 100644
--- a/index.html
+++ b/index.html
@@ -4,7 +4,7 @@
Sandbox Escape
Python
CTF
- Note: This post is a draft Having run an on-premise server for the past two years, I think my setup has finally
+Throughout the rest of the post, you will come across the following broad strokes:'> Having run an on-premise server for the past two years, I think my setup has finally
matured enough to be worth talking about. At any point, you can check out the source code for the server’s infrastructure here for a concrete example.
For each service I talk about, I will also link the respective definitions in my config. My minimalist mindset has unsurprisingly aided the architecture of my server.
Throughout the rest of the post, you will come across the following broad strokes: The server is an old laptop which was on the verge becoming e-waste. Despite having a touchscreen
display, the LCD had been battered into shards, making it no better than a shiny paperweight. Although one could have kept the display, I carefully disassembled the machine to disconnect the corresponding
-ribbon cable because we are aiming for a headless setup. Removing the display also reduces the power draw. I have seen a lot of people grow monstrous fleets of docker containers in the name of “simplicity” and ease of use.
+ribbon cable because we are aiming for a headless setup. Removing the display reduced the power draw to 4 watts at idle. Thus, I would highly recommend it. I have seen a lot of people grow monstrous fleets of docker containers in the name of “simplicity” and ease of use.
Yet others take this further with dedicated operating systems like CasaOS to install containerized services in a single click. Sure, these solutions might be easy but they are certainly not simple.
Containers introduce the overhead of Linux kernel namespaces. This means
accessing files on the host additionally requires creating a mount namespace. To avoid all of that overhead, I opted for NixOS. With NixOS, I can define the state of my system in a single configuration file, ensuring that the services
@@ -27,7 +24,17 @@ but the filesystem is usually FUSE mounted as The adde
as our user. SFTP is fast and available on almost all platforms: Finally, we can talk about weeding out the proprietary services that are holding us back
and replacing them with more privacy respecting alternatives. Since I backup my phone’s camera roll to the server, it’s often nice to have these photos and videos
tagged and organized. Photoprism packs all the functionality of Google Photos including tagging people,
-pets and places in photos, as well as searching through them along the timeline.A Tale of a Frugal Home Server
NixOS
+A Tale of a Frugal Home Server
NixOS
Home Server
Automation
Jellyfin
diff --git a/index.xml b/index.xml
index cadf494d..522db3a2 100644
--- a/index.xml
+++ b/index.xml
@@ -5,10 +5,7 @@ start this year off by going back to the roots.</p>
<blockquote>
<p>The Multiverse is within your grasp! Unfortunately, the server that contains
the secrets of the multiverse is in a universe where keyboards only have numbers
-and (most) symbols.</p>A Tale of a Frugal Home Server
A Tale of a Frugal Home Server
Hardware

Software

Software
sshfs.Freedom from the Botnet
Google Photos → Photoprism (source)


Instead of overpriced and restrictive services like Netflix or Spotify that shove ads in your face +even if you have paid for them, I have migrated to buying pieces of media including movies +and music, ripping them off the discs and saving them on the server. This way we don’t have to sit +through piles of DVDs to find out a movie to rewatch.
Albeit there’s a caveat to this, media that is not sold in physical copies.
I have set Jellyfin to monitor a directory where I store the ripped media from the CDs or DVDs. +Jellyfin then automatically updates its catalogue (index) when something new is added.
For music, Jellyfin also supports adding lyrics through .lrc files. A feature that is paywalled
+on services like Spotify.
Here’s a screenshot of the one album I have so far.

Using Nix for infrastructure has been a great success in my books. One of the greatest appeals is that +there’s little to no setup involved for most of the services, because someone else has already figured +that out for you!
I have also enabled automatic updates which are scheduled every week. This works while leaving a backup of +the last known working state (generation), so even if the update fails, the server must keep working. +There’s simply no way for the software side of the server to break.
What does that mean to an outsider? Less tech savvy people in my family just need to power the machine on +if it isn’t already. That’s it!
Sysadmins need not apply.