Skip to content

redzumi/mautic-chart

Repository files navigation

Mautic Helm Chart

This Helm chart deploys Mautic version 7 on Kubernetes following the official Docker Compose architecture with separate web, cron, and worker components.

Architecture

This chart deploys Mautic following the official multi-container architecture:

  • Web: Serves the HTTP frontend (Apache + PHP)
  • Cron: Runs scheduled tasks (segments, campaigns, emails)
  • Worker: Processes background jobs asynchronously

All components share a common PersistentVolume for config, logs, and media files.

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.0+
  • PV provisioner support in the underlying infrastructure
  • ReadWriteMany storage class (if running multiple web replicas)

Installing the Chart

To install the chart with the release name mautic:

./install.sh

Or manually:

helm install mautic . --namespace mautic --create-namespace

Installing From a Helm Repo

If you publish this chart to a Helm repository (for example via GitHub Pages or Artifact Hub), users can install it like this:

helm repo add mautic https://<your-domain>/mautic-chart
helm repo update
helm install mautic mautic/mautic --namespace mautic --create-namespace

Uninstalling the Chart

To uninstall/delete the mautic deployment:

./uninstall.sh

This command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following table lists the configurable parameters of the Mautic chart and their default values.

Parameter Description Default
web.replicaCount Number of web replicas 1
cron.enabled Enable cron deployment true
cron.replicaCount Number of cron replicas 1
worker.enabled Enable worker deployment true
worker.replicaCount Number of worker replicas 1
image.repository Mautic image repository mautic/mautic
image.tag Mautic image tag 7-apache
image.pullPolicy Image pull policy IfNotPresent
service.type Kubernetes service type ClusterIP
service.port Kubernetes service port 80
automountServiceAccountToken Automount service account token false
podSecurityContext Pod security context {}
containerSecurityContext Container security context {}
ingress.enabled Enable ingress controller resource true
ingress.annotations Ingress annotations {}
ingress.hosts Ingress hosts configuration See values.yaml
volume.enabled Enable persistent volume true
volume.spec.resources.requests.storage PVC storage request 10Gi
mariadb.enabled Deploy MariaDB StatefulSet true
mariadb.auth.database MariaDB database name mautic
mariadb.auth.username MariaDB username mautic
mariadb.auth.password MariaDB password "" (auto-generated if empty)

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example:

helm install mautic . \
  --namespace mautic \
  --set mariadb.auth.password=secretpassword

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example:

helm install mautic . --namespace mautic -f values.yaml

Persistence

The Mautic image stores the application data at the /var/www/html path of the container.

Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube.

MariaDB

This chart deploys MariaDB using a StatefulSet with the official Bitnami MariaDB Docker image. The database is deployed in the same namespace and automatically configured for Mautic. You can configure MariaDB by setting values under the mariadb key in values.yaml. If you leave mariadb.auth.rootPassword or mariadb.auth.password empty, the chart generates random passwords in the MariaDB Secret.

To use an external database instead, set mariadb.enabled: false and configure MAUTIC_DB_HOST in extraEnvs.

Production Notes

For production, consider enabling stricter pod settings and requests/limits. Examples:

helm install mautic . \
  --namespace mautic \
  --set automountServiceAccountToken=false \
  --set podSecurityContext.fsGroup=33 \
  --set containerSecurityContext.allowPrivilegeEscalation=false

Upgrading

To 1.0.0

This is the initial release of the custom Mautic Helm chart for version 7.

About

Chart deploys Mautic version 7 on Kubernetes following the official Docker Compose architecture with separate web, cron, and worker components

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors