Bootstrap a VPS With Ansible in One Run Without Locking Yourself Out

A single Ansible run can take a blank VPS to a hardened, reproducible server. The hard part is not the tasks, it is the order. Here is the ordering that keeps you logged in, the failures that pass green and bite two weeks later, and how to make the second run as safe as the first.

Continue ReadingBootstrap a VPS With Ansible in One Run Without Locking Yourself Out

Automating Server Provisioning for New Clients Without Building a Snowflake Farm

Hand-built client servers fail quietly: you only find out they were never reproducible on the day you need to rebuild one. Here is how to automate server provisioning for new clients using cloud-init for first boot, Ansible for convergence, per-client secrets and a verification gate that refuses to hand over a half-built box.

Continue ReadingAutomating Server Provisioning for New Clients Without Building a Snowflake Farm

WP-CLI Commands That Save Hours (And the One That Bites Back)

The dashboard is fine for editing a post. It is a terrible tool for anything touching a thousand rows, twelve plugins or two servers. Here are the WP-CLI commands that save hours on migrations, plugin conflicts, stalled cron and integrity checks, grouped by the job that eats the time, with the failure modes each one hides.

Continue ReadingWP-CLI Commands That Save Hours (And the One That Bites Back)

You Probably Didn’t Harden That Server: A VPS Setup and Hardening Checklist That Verifies Itself

You set PasswordAuthentication no, restarted SSH, and moved on. Months later the logs show successful password logins, because a vendor drop-in file sorted earlier and won. A VPS setup and hardening checklist where every step comes with the command that proves it worked.

Continue ReadingYou Probably Didn’t Harden That Server: A VPS Setup and Hardening Checklist That Verifies Itself

Your Deploy Key Is a Root Shell: GitHub Actions VPS Deployment Over SSH, Done Carefully

A deploy key in GitHub secrets is a shell on your production server, handed to a container you don't control, running code from maintainers you've never met. Here's how to build the pipeline so a leaked key isn't worth much: forced commands, scoped sudo, pinned actions and a real approval gate.

Continue ReadingYour Deploy Key Is a Root Shell: GitHub Actions VPS Deployment Over SSH, Done Carefully