Introduction
A production-ready Helm chart for deploying WordPress with NGINX on Kubernetes. Developed by IO ANALYTICA.
wordpress-nginx is a Helm chart and a container image. The chart deploys WordPress on Kubernetes; the image holds WordPress, NGINX and PHP-FPM, and its tag is the chart version, so a chart version always names one image.
Why this chart
A place to go from the Bitnami WordPress chart. The chart's values keep the names of the Bitnami chart's: database, ingress, persistence, probes, scheduling and most other settings are set through the same keys. What differs is listed in Coming from the Bitnami chart. The chart depends on no Bitnami chart or image.
Security and comfort for the people who run the site.
- NGINX executes PHP only for WordPress's own entry points (PHP execution allowlist), and the chart can refuse further paths before any request reaches PHP (Denied paths).
- An optional watcher reports unexpected files on the site's volume as Prometheus metrics (File-integrity monitoring).
- A daily tracker proposes each new WordPress release as a chart release, and a daily scan checks the published image. Update policy describes both, including what the scan cannot see.
- The wordpress-idx sidecar gives the site a full-text search over posts, pages and comments, with an API that an agent can use for research.
Features
- NGINX as web server (instead of Apache) with PHP-FPM
- Internal or external MariaDB database
- Internal Dragonfly cache server (serves both Redis and Memcached protocols) or external cache
- W3 Total Cache auto-configuration for object and database caching
- Full-text search sidecar (wordpress-idx) with FlexSearch-based API
- Prometheus metrics via NGINX exporter sidecar
- Horizontal Pod Autoscaling with CPU/memory targets
- Network Policies for pod-level firewall rules
- Dual Ingress support (primary + secondary for wp-admin restrictions)
- Resource presets (nano through 2xlarge) for quick sizing
What a release runs
| Part | Image | Runs |
|---|---|---|
| WordPress, NGINX, PHP-FPM | ghcr.io/ioanalytica/wordpress-nginx, tagged with the chart version | always |
| MariaDB | the mariadb image of the MariaDB project | by default; off with an external database |
| Dragonfly | the Dragonfly project's image | with memcached.enabled, see Cache |
| wordpress-idx | ghcr.io/ioanalytica/wordpress-idx | with idx.enabled, see Search index |
| NGINX Prometheus exporter | nginx/nginx-prometheus-exporter | with metrics.enabled, see Metrics |
| File-integrity watcher | the wordpress-nginx image | with fim.enabled, see File-integrity monitoring |
The image describes what the wordpress-nginx image contains.
Next steps
- Install the chart.
- Configuration: the settings most sites change first.
- Parameters: where each group of values is described.