deployment

  • The incident that was a certificate, again

    The third certificate incident in six years, each with a different cause. An expired certificate on a service nobody remembered was serving TLS.

  • The archive table nobody could delete from

    900 million rows, a retention policy, and a legal question nobody had asked. A table that grows forever because deleting from it might be illegal.

  • Core as a Composer package, and where wp-content goes

    WordPress installed as a dependency, which requires the content directory to move out of the core directory. The constants must be defined before core loads, which means wp-config.php…

  • Disabling the admin updater on purpose

    A Composer-managed install where an update through the admin would be silently reverted on the next deploy. Disabling it is correct and the confusion it causes is a…

  • Docker Compose in production, and why it is still here

    Six years of Compose on a VPS, and an annual conversation about orchestration. Nothing is wrong, which is why the conversation keeps happening.

  • A cold start after a deploy, warmed deliberately

    A deploy that invalidates the opcode cache and the application cache simultaneously, and a first minute that is measurably worse. Warming before the health check passes is the…

  • Debian 13, and a rebuild that took an afternoon

    A major distribution release, and a rebuild rather than an upgrade, which took four hours because the provisioning script had been fixed in February. The February exercise is…

  • OIDC to a second cloud, and the trust policy I got wrong

    A second provider, a second trust policy, and a subject claim pattern that was broader than intended. The wildcard is the default in every example and it is…

  • Managing WordPress entirely through Composer

    turkerdev/wp-composer, and an install where nothing is committed except a lock file. Core, themes and plugins as dependencies.

  • wp-cli in a pipeline, and the user it runs as

    A deploy step running WP-CLI as root, and every file it touches becoming unwritable by the web process. The –allow-root flag makes the warning go away and makes…