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 AuthenticationCategory: INFRASTRUCTURE
Nginx 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.
I was looking for a way to automate this. The goal was simple: ensure that dynamic modules are always compatible with a new Nginx version. And if the recompilation fails for any reason, the entire Nginx update must be aborted.
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 TemplatesDocker Update Automation: Advanced Bash Pipelining. paperless-ngx
This article documents a reliable update script for the Paperless-NGX stack, which minimizes the risk of container failures during automated maintenance. The focus here is not just on simple automation, but on ensuring the integrity of the process—especially handling logs and exit codes within complex Bash pipelines.
Continue reading Docker Update Automation: Advanced Bash Pipelining. paperless-ngxPaperless-NGX Maintenance: Routine Updates and Major Stack Upgrades
This article documents the process for updating and upgrading the Paperless-NGX stack. This covers everything from simple container image updates to complex major version upgrades of backend services like PostgreSQL.
Continue reading Paperless-NGX Maintenance: Routine Updates and Major Stack Upgrades