The pgBackRest GitHub repository was archived this week — the maintainer announced that the project is no longer being actively developed. For anyone running production PostgreSQL backups via pgBackRest (and that’s a lot of people; it’s been the de facto …
Category: Sysadmin
System administration topics — Linux, OpenLiteSpeed, MySQL, monitoring.
SSH ProxyJump: reach private servers through a bastion without copying keys to it
You have a private server in a VPC that’s only reachable through a bastion host. The “obvious” way to SSH there is the wrong way: copy your private key onto the bastion, then SSH from bastion to the private box. …
Get WordPress off MySQL root: per-site users in one Python loop
If you run more than one WordPress site on a single server and every wp-config.php has DB_USER = 'root', your eight sites are effectively one site as far as a compromise is concerned. One vulnerable plugin on any of …
~/.ssh/config power user features: ProxyJump, ControlMaster, IdentitiesOnly, and a starter file
Most people use ~/.ssh/config as a glorified shortcut file: Host server with a HostName and a User, save five seconds of typing. That’s the entry point, and it’s fine. But the file is a much more powerful configuration system …
Recovering a malformed wp_options.active_plugins: the SQL REPLACE() trap and how to rebuild
You have a WordPress site that’s returning HTTP 200, the homepage renders, but something’s quietly off. WooCommerce features aren’t loading. LiteSpeed Cache settings page is empty. The Mailpoet sender isn’t sending. None of these would normally fail at the same …
Hide the OpenLiteSpeed admin panel: bind 7080 to 127.0.0.1 + reach it via SSH tunnel
OpenLiteSpeed’s admin panel runs on port 7080 by default and binds to *. That means anyone with your server’s IP can hit https://your-ip:7080/ and reach the admin login form. The form has authentication, sure — but having a login …
Keep tmux sessions alive across Mac sleep + Wi-Fi changes: ServerAliveInterval vs autossh vs mosh
You SSH into a server, start a long-running build inside tmux, close the laptop lid to walk to lunch, come back fifteen minutes later — and your terminal greets you with Connection to server.example.com closed by remote host. The …
macOS launchd: the actual replacement for cron when you want a recurring task on your Mac
You write a Python script that needs to run every fifteen minutes on your Mac. You add a line to crontab -e, save, walk away. Two days later you check and notice it never ran. The cron file is …
Per-vhost PHP versions in OpenLiteSpeed: keep one site on 7.4 while everything else moves to 8.2
Modernizing the PHP runtime on a multi-tenant LSWS box is rarely an “all sites at once” affair. Some sites are on a custom theme that uses PHP 4-style class constructors. Some have a plugin still calling create_function(), removed in …