My hugo-deploy: A Simple Script That Keeps My Blog Running

Why This Script Exists Every time I write a new blog post, Hugo has to rebuild the entire site. That means recompiling all the markdown, regenerating all the HTML, copying files to the web root where nginx can serve them, and fixing Linux file permissions so nginx can actually read them. Doing all that manually is tedious. Running separate commands every time is error-prone. I wanted one command that does everything. ...

July 27, 2026 · 6 min

Building a Fedora System Updater with Live Status Indicators

I spent the last month building what should have been a simple update checker for my G4 Fedora 44 box. Turned into a proper rabbit hole once I discovered the system was hanging after three days of suspend. Here’s what I learned. The Problem I run a lot of machines. Rather than babysitting each one for updates, I wanted something like CachyOS has: a tray icon that checks hourly, shows a green dot when up to date, red when updates are pending, and handles the background automation so I never have to think about it. ...

July 26, 2026 · 8 min

qnap manager : one menu driven tool for all my qnap operations

I run a QNAP TS-459 Pro+ as my homelab NAS, connected to several Linux machines across different distros. Fedora 44, NixOS, Solus, whatever. The problem: I had to remember different commands to check disk status, restart NFS, fix permissions, manage keepalive scripts, diagnose remote access issues. Instead of hunting through notes or SSH-ing and fumbling around, I wanted one tool. A menu. Same commands, same approach, any distro. Works local or remote. I can call it from my home bin folder and it just works. ...

July 23, 2026 · 5 min

Backing Up This Blog: Every Wrong Turn Before It Actually Worked

Why I wanted this backed up properly This whole site, every post, the theme, the config, lives in one folder on the T620. Nothing about that folder is protected by anything beyond the disk it sits on. Wanted a real backup, and wanted it copied off the box entirely, not just sitting in a second folder on the same machine. First attempt at excluding the build output Wanted to back up the Hugo source without dragging along the generated public folder or the build cache, since both regenerate automatically from a normal deploy and just bloat the archive for no reason: ...

July 20, 2026 · 5 min

The Companion Script: Fixing Stale QNAP Mounts on the Server Side

Same symptom, completely different machine I already wrote about the remount script I built for my NixOS desktop … clearing stale network mount units through systemd when a share drops. This is the other half of that same story, except this one lives on JackSparrow2 itself (the T620 server) and fixes a genuinely different failure, even though the symptom looks identical from the client side: a share that used to work suddenly doesn’t. ...

July 18, 2026 · 6 min

Why I Wrote a Remount Script for My NixOS Network Shares

The problem this actually solves On a normal distro, if a network mount goes stale … the connection dropped, the server bounced, whatever … the fix is usually sudo umount then sudo mount -a, reading straight from /etc/fstab. Simple, because fstab is a plain text file you can just point tools at. NixOS doesn’t work that way. fileSystems entries in configuration.nix get compiled into individual systemd .mount units automatically at build time. There’s no /etc/fstab to edit or run mount -a against in the traditional sense … the mounts exist purely as generated systemd units with names like mnt-t620\x2drelationships.mount. ...

July 18, 2026 · 5 min

My Btrfs Scrub Alias, and What Every Flag in It Actually Does

Why I bothered making this an alias at all Btrfs needs a bit more active maintenance than ext4 or XFS … it’s got its own checksumming, its own way of allocating chunks across a volume, and if you never touch it, things can quietly degrade in ways you won’t notice until something actually breaks. I got tired of typing three separate commands in the right order every time, so I turned it into one alias that does all three, in sequence, with actual visible output so I know what stage it’s on. ...

July 18, 2026 · 4 min

Killing a WPS Office Segfault the Ugly but Permanent Way

The actual bug WPS Office’s flatpak ships a background helper called wpscloudsvr that reliably segfaults … null-pointer deref inside libqingbangong.so, r15=0x0, the works. Not a config issue, not something I broke, just a genuinely broken binary shipped in the package. It doesn’t crash the whole app, just spams crash reports and burns CPU respawning itself. The fix nobody’s going to like, but it works You can’t easily patch a binary inside a flatpak sandbox, and there’s no config flag to just disable this one helper. So: bind-mount /dev/null directly over the broken executable. The file still “exists” as far as the OS is concerned, it just contains nothing … attempting to execute it does nothing, silently, forever. ...

July 18, 2026 · 3 min

Hard-Won Lessons Setting Up Samba + SFTP on a NAS

The idea was simple All I wanted was for my T620 to mount the QNAP shares, retire the QNAP as the “brain,” and have the T620 do everything … Samba, SFTP, the lot … while the QNAP just sat there as dumb storage in the background. Simple networking. I have never been more wrong about something taking one evening. Boot failure #1: the NFS ordering cycle First attempt, I set up NFS mounts from the QNAP onto the T620, then re-exported those same paths back out via NFS so other machines could reach them through the T620. Seemed logical … one machine, one point of access. ...

July 18, 2026 · 6 min