Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.frankenpress.com/llms.txt

Use this file to discover all available pages before exploring further.

This guide spins up a working WordPress site on a local kind cluster. It uses the published fp-runtime image and the fp-site-template template repo unchanged — no fork required for the smoke test.

Prerequisites

  • Docker Desktop or OrbStack (macOS), or Docker Engine on Linux
  • kind ≥ v0.20
  • kubectl ≥ v1.27
  • helmv3.8 (OCI registry support is required)
  • composer (only for the optional fork-and-build step)
The default Helm install brings up 5 pods (site + mariadb + redis + minio + minio-console). Budget at least 2 CPU and 3 GB RAM for the cluster.

3-step quickstart

1

Create a kind cluster

kind create cluster --name frankenpress
kubectl config use-context kind-frankenpress
Verify the node is ready:
kubectl get nodes
# NAME                         STATUS   ROLES           AGE   VERSION
# frankenpress-control-plane   Ready    control-plane   30s   v1.35.0
2

Install the chart

The chart is published as an OCI artifact on GHCR. Install it with all subchart defaults (in-cluster MariaDB + Redis + MinIO — fine for kind, not for production):
helm install mysite oci://ghcr.io/eightoeight/charts/fp-site \
  --version 0.1.0 \
  --namespace mysite --create-namespace \
  --wait --timeout=10m
The --wait flag blocks until all pods are Ready. Expect 1–2 minutes on a cold image cache.
The default image.repository points at the demo site image ghcr.io/eightoeight/fp-site-template:0.1.0. To deploy your own site, fork fp-site-template, push a v*.*.* tag (CI builds + pushes to your GHCR), then add --set image.repository=ghcr.io/<your-org>/<your-site>,image.tag=v1.0.0.
3

Visit your site

Port-forward the Service to your local machine:
kubectl --namespace mysite port-forward svc/mysite-fp-site 8080:80
On first install, run the WordPress installer:
kubectl --namespace mysite exec deploy/mysite-fp-site -- \
  wp --allow-root --path=/app/web/wp core install \
    --url=http://localhost:8080 \
    --title="My FrankenPress site" \
    --admin_user=admin \
    --admin_email=admin@example.com \
    --admin_password=admin \
    --skip-email
Then open http://localhost:8080/wp/wp-admin/ in your browser. Log in with admin / admin.
You should see the WordPress admin dashboard. Confirm the “Update WordPress” / “Update Plugins” / “Update Themes” buttons are absent — the lockdown is hard-coded.

Tear it down

helm uninstall mysite --namespace mysite
kubectl delete namespace mysite
kind delete cluster --name frankenpress

Common things to do next

Your first site

The full builder path: fork the template, customise locally, publish to your GHCR, deploy your own image.

Add a plugin

composer require wpackagist-plugin/<slug> — composer.json + lock, rebuild the image, redeploy.

Production topology

Replace MariaDB / Redis / MinIO subcharts with operator-managed services and AWS S3.

All env vars

Every FP_* and WP_* env var the platform reads, with defaults.
Smoke-tested. This quickstart is run end-to-end against a fresh kind cluster as part of FrankenPress release validation. If a step fails, open an issue with the output — we treat docs drift as a real bug.