Skip to content
Adam Brown edited this page May 17, 2023 · 23 revisions

Overview

The Hale Platform is a WordPress Multisite instance running on kubernetes.

Key components are made up of:

  • A pod with two containers - an NGINX sidecar container and a WordPress/PHP-FPM container.
  • A service that routes to the pods on port 8080.
  • A connection to a single RDS instance that uses a MariaDB database. All sites are on this DB instance.
  • A single s3 bucket to hold all documents and images uploaded to the sites.

Server-side caching has been added to the NGINX sidecar configuration.

Blank diagram (2)

Pod architecture

Pods (1)

We use two containers per pod. One is an NGINX sidecar container and second is the WordPress container running PHP-FPM. The NGINX sidecar container is required as it needs to mount in the same directory as WordPress and direct site specific traffic to PHP-FPM running in front of WordPress. We need PHP-FPM as NGINX cannot process PHP natively.

Both containers are official DockerHub images but have been modified to work with multisite, and are located in the root directory of hale-platform.

Multisite configurations

In order to launch the site as a WordPress Multisite instance, we need to add our own script to the WordPress official image entrypoint which allows us to add in everything that turns a normal WP site into a multisite. It is added in the image under entrypoint.

Any variables or secrets required for the application to work, are loaded in by GitActions via a Helm chart.

Clone this wiki locally