Skip to main content
FrankenPress is four repos that compose into one WordPress deployment:

The four repos

runtime

Container image: Caddy + FrankenPHP + Souin compiled in. Published as ghcr.io/frankenpress/runtime:php8.3.

mu-plugin

Slim must-use plugin (4 components): S3 uploads bootstrap, Souin cache invalidator, Site Health overrides, opt-in SMTP mailer. Composer-installable; baked into runtime by default.

site-template

GitHub template repo. Bedrock layout; composer.json with sensible minimal deps. Builds your site image on git push --tags.

charts

Helm chart site. Bitnami-style; bundles MariaDB + Redis + MinIO for instant kind deploys.

Request flow

Souin caches GET responses in Redis. On save_post, SouinInvalidator connects directly to Redis and DELs the relevant keys (Souin’s documented HTTP-level invalidation APIs are broken in cache-handler v0.16.0 — see PHASE-0.md for the investigation).

Image promotion

Each tag produces an immutable site image (WP core + plugins + your custom code baked in). Promoting between environments is a single helm upgrade with a different image tag — no separate code-vs-config to track. This composes cleanly with image-promotion tooling like Kargo or Argo Rollouts but doesn’t mandate them. The chart renders a plain Deployment; consumers wrap with whatever orchestration they prefer.

What stays out

  • No WooCommerce / Yoast / theme picks in site-template. Add what you need via composer require wpackagist-plugin/<slug>.
  • No GitOps controller. The chart renders k8s primitives; you bring your own Argo CD / Flux / Kargo.
  • No multi-cluster federation. One namespace = one site (use multiple Helm releases for multiple sites in one cluster).
  • No admin-installable plugins/themes/core updates. The image is the source of truth; the lockdown is hard-coded.

Production swap matrix

Default (dev / kind)Production
bitnami/mariadb subchartMariaDB Operator
bitnami/redis subchartDragonflyDB Operator (same RESP protocol, dramatically better single-node throughput)
bitnami/minio subchartAWS S3 / Cloudflare R2 / GCS XML
auto-generated WP keys+saltsExternal Secrets Operator → cloud secret manager
Full production walkthrough: Operations → Production topology.