Skip to content

WordPress

Deploy WordPress on Kubernetes using the official wordpress Docker image (Apache variant). Supports MySQL subchart or external database, scheduled backups, and monitoring.

Key Features

  • Official WordPress Image — Apache variant with PHP
  • MySQL Subchart — Bundled MySQL via HelmForge dependency
  • External Database — Connect to existing MySQL/MariaDB
  • Scheduled Backups — mysqldump + wp-content archive to S3
  • Ingress Support — TLS with cert-manager
  • PHP Configuration — Custom php.ini via ConfigMap
  • Prometheus Metrics — Apache exporter sidecar

Installation

HTTPS repository:

helm repo add helmforge https://repo.helmforge.dev
helm repo update
helm install wordpress helmforge/wordpress

OCI registry:

helm install wordpress oci://ghcr.io/helmforgedev/helm/wordpress

Basic Example

# values.yaml
wordpress:
  siteTitle: 'My Blog'
  adminUser: admin
  adminPassword: 'change-me'

mysql:
  enabled: true
  auth:
    password: 'db-password'

persistence:
  enabled: true
  size: 5Gi

ingress:
  enabled: true
  ingressClassName: traefik
  hosts:
    - host: blog.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: wordpress-tls
      hosts:
        - blog.example.com

External Database Example

mysql:
  enabled: false

database:
  external:
    host: db.example.com
    name: wordpress
    username: wordpress
    existingSecret: wordpress-db

Key Values

KeyDefaultDescription
wordpress.adminUseradminAdmin username
wordpress.adminPassword""Admin password (auto-generated)
wordpress.debugfalseEnable WP_DEBUG
database.modeautoDatabase mode (auto, external, mysql)
mysql.enabledtrueDeploy MySQL subchart
mysql.auth.databasewordpressDatabase name
php.ini""Custom PHP settings
ingress.enabledfalseEnable ingress
metrics.enabledfalseEnable Prometheus metrics
backup.enabledfalseEnable S3 backups
persistence.enabledtrueEnable persistent storage
persistence.size5GiPVC size

More Information

See the source code and full values reference on GitHub.