Checking out an Intel Optane module was always on my bucket list, but I never really had a solid use case for it. Recently, instead of buying a new Raspberry Pi with more physical RAM, I thought: why not give high-speed, ultra-low-latency swap a try?
Continue reading Playing with an Intel Optane on a Raspberry Pi 5Migrating from MinIO to Garage on a Raspberry Pi 5
I recently migrated my self-hosted S3-compatible storage from MinIO to Garage.
While MinIO is the industry leader for enterprise object storage, I needed something lighter for my homelab to serve Paperless-ngx (thousands of small files) and Audiobookshelf (large media files). My choice fell on Garage (v1.0+), an open-source distributed object store tailored for self-hosting.
Continue reading Migrating from MinIO to Garage on a Raspberry Pi 5Restored Article: SPF: The Foundation of Email Sender Authentication
The Sender Policy Framework (SPF) is a foundational email authentication technology. It enables a domain owner to specify, via a special DNS record, which hosts are authorized to send mail on behalf of their domain.
Continue reading Restored Article: SPF: The Foundation of Email Sender AuthenticationNginx Dynamic Modules: Automating Recompilation with APT Hooks
If you’ve ever dealt with Nginx and its dynamic modules, you know the drill. An Nginx package update hits, and suddenly your custom modules – like ModSecurity or GeoIP2 – are no longer compatible. The whole process is a headache: you have to stop Nginx, recompile your modules against the new version, copy the files, and restart the service.
Continue reading Nginx Dynamic Modules: Automating Recompilation with APT HooksRclone’s VFS Cache: A Deep Dive into Optimizing for a Local MinIO S3 Backend
I realized a critical detail about my setup: the standard vfs-cache strategy is a good starting point only if the cache’s performance is superior to the S3 backend. With this theory in mind, it was time to put it to the test.
Audiobookshelf Storage: Using Rclone Volume Plugin vs. Host Mounts
Audiobookshelf is an excellent self-hosted server for audiobooks, podcasts, and ebooks. I decided to integrate this service with S3 as the primary storage layer, as I centralized all my data in Object Storage long ago.
Continue reading Audiobookshelf Storage: Using Rclone Volume Plugin vs. Host MountsZFS Disaster Recovery: Rebuilding and Mirroring a Pool After Top-Level Vdev Error
I recently learned a hard lesson about ZFS Vdev architecture after attempting to convert a single-disk pool into a mirror. By mistake, I added the new disk as a top-level Vdev, rather than attaching it as a mirror. As zpool remove and zpool detach both failed on the top-level Vdev, I was forced to destroy the pool and restore the data from a snapshot.
This process outlines how I recovered data and subsequently created a proper mirror configuration.
Continue reading ZFS Disaster Recovery: Rebuilding and Mirroring a Pool After Top-Level Vdev ErrorKeyDB Performance: Switching from Redis to a Multi-Threaded Drop-in Alternative
I just read a few pages with benchmarks about Redis vs. KeyDB, and my curiosity was piqued. KeyDB, a multi-threaded fork of Redis, promised significant performance and memory usage improvements. This guide shows how I switched three different Redis use cases to KeyDB.
Continue reading KeyDB Performance: Switching from Redis to a Multi-Threaded Drop-in AlternativeContainer Storage Architecture: Deploying Rclone S3 Mounts via Docker Volume Plugin
I rely on S3 for central storage. Since some tools do not support native S3 yet, I use rclone. This article details how I implement a persistent S3 mount directly into a Docker container (paperless-ngx) using the rclone Docker Volume Plugin, which is a superior method to traditional host-level mounts.
Nextcloud S3 Workaround: Multi-User Rclone Mounts with Systemd Templates
I experienced trouble with Nextcloud’s built-in S3 connector, as it would corrupt photos during auto-upload from the Android client. Since dedicated S3FS or Goofys were also not ideal, I decided on a reliable alternative: using rclone to manage the mounts. This strategy allows me to decouple the unreliable Nextcloud S3 implementation from the underlying object storage.
Continue reading Nextcloud S3 Workaround: Multi-User Rclone Mounts with Systemd Templates