The defaultDocumentation Index
Fetch the complete documentation index at: https://docs.frankenpress.com/llms.txt
Use this file to discover all available pages before exploring further.
fp-site Helm install bundles in-cluster MariaDB + Redis +
MinIO subcharts so a helm install works on kind with zero
prerequisites. These defaults are not for production. This page
documents the recommended swaps.
Production swap matrix
| Component | Default (dev / kind) | Recommended for production |
|---|---|---|
| Database | bitnami/mariadb subchart | MariaDB Operator |
| HTTP cache | bitnami/redis subchart | DragonflyDB Operator |
| Object storage | bitnami/minio subchart | AWS S3 / Cloudflare R2 / GCS XML |
| WP keys+salts | auto-generated Job | External Secrets Operator |
Why swap?
MariaDB Operator vs the bundled subchart
MariaDB Operator vs the bundled subchart
The bundled
bitnami/mariadb is a single-replica StatefulSet
with no automatic backups, no failover, no point-in-time recovery,
and no schema migration tooling. Fine for kind, dangerous for
production.MariaDB Operator
provides a declarative MariaDB custom resource with replication,
backups (Galera, mariabackup, mysqldump), User / Database /
Grant CRDs, and Galera cluster mode for HA.DragonflyDB vs Redis
DragonflyDB vs Redis
Souin uses the RESP protocol to talk to its cache backend.
DragonflyDB is a drop-in Redis-protocol-compatible
in-memory store with dramatically better single-node throughput
(Dragonfly’s docs cite ~25× over Redis on multi-core hardware
because of its lock-free shared-nothing architecture).The Dragonfly Operator
deploys it declaratively. From FrankenPress’s perspective it’s just
a Redis-protocol endpoint — set
externalCache.host and we don’t
care what’s actually behind the address.AWS S3 (or R2 / GCS) vs in-cluster MinIO
AWS S3 (or R2 / GCS) vs in-cluster MinIO
Self-hosted object storage in your cluster is operationally costly
(replication, backups, the data plane is on the same critical path
as everything else). A managed S3-compatible service (AWS S3,
Cloudflare R2, Google Cloud Storage XML, Backblaze B2) takes that
operational burden off you and is usually cheaper at WordPress-site
scale.
humanmade/s3-uploads (which fp-mu-plugin configures) talks the
S3 API; it doesn’t care which provider answers.External Secrets Operator vs the auto-generated Job
External Secrets Operator vs the auto-generated Job
The chart’s default
keysSalts.autoGenerate: true runs a one-shot
Job that creates a Secret containing the eight WP auth keys +
salts on first install. Fine for instant deploy, but for production
you want secrets to live in your cloud secret manager (AWS Secrets
Manager, GCP Secret Manager, HashiCorp Vault, 1Password Connect,
etc.).Set keysSalts.autoGenerate: false and keysSalts.existingSecret: <name>, then have ESO sync the values into that Secret.End-to-end production values
Image promotion across environments
Multi-site
For multiple sites in one cluster, each gets its own:- Namespace
- Helm release (
helm install <release-name> ...) - DB / cache / S3 endpoints (or shared infrastructure with per-site DBs / buckets)
- Secret with WP keys+salts