Skip to main content
This guide will help you to deploy a production ready Chatwoot instance with Helm Charts. To quickly try out the charts, follow the two steps below. For a production deployment, please make sure to pass in the required arguments to helm using your custom values.yaml file.

Prerequisites

  • Kubernetes 1.16+
  • Helm 3.1.0+
  • PV provisioner support in the underlying infrastructure
The helm installation will create 3 “Persistent Volume Claims” for redis, rails and postgres. Setup up a default “Storage Class” (for automatic PV) or create 3 “Persistent Volumes” with the size of 8GB, before installing chatwoot. If the “Persistent Volume Claims” do not claim the “Persistent Volumes”, leave storageClassName blank (inside the PV .yaml files).

Installing the chart

To install the chart with the release name chatwoot, use the following. To deploy it in chatwoot namespace, pass -n chatwoot to the command.
The command deploys Chatwoot on the Kubernetes cluster in the default configuration. The parameters section lists the parameters that can be configured during installation.
List all releases using helm list

Uninstalling the chart

To uninstall/delete the chatwoot deployment:
The command removes all the Kubernetes components associated with the chart and deletes the release.
Persistent volumes are not deleted automatically. They need to be removed manually.

Parameters

Chatwoot Image parameters

Chatwoot Environment Variables

Email setup for conversation continuity (Incoming emails)

Postgres variables

Redis variables

Logging variables

Third party credentials

Autoscaling

Install with custom parameters

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,
The above command sets the Chatwoot server frontend URL to chat.yourdoamain.com. Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
You can use the default values.yaml file.

Postgres

PostgreSQL is installed along with the chart if you choose the default setup. To use an external Postgres DB, please set postgresql.enabled to false and set the variables under the Postgres section above.

Redis

Redis is installed along with the chart if you choose the default setup. To use an external Redis DB, please set redis.enabled to false and set the variables under the Redis section above.

Autoscaling

To enable horizontal pod autoscaling, set web.hpa.enabled and worker.hpa.enabled to true. Also make sure to uncomment the values under, resources.limits and resources.requests. This assumes your k8s cluster is already having a metrics-server. If not, deploy metrics-server with the following command.

Upgrading

Do helm repo update and check the version of charts that is going to be installed. Helm charts follows semantic versioning and so if the MAJOR version is different from your installed version, there might be breaking changes. Please refer to the changelog before upgrading.

Troubleshooting

pod has unbound immediate PersistentVolumeClaims

Make sure the “Persistent Volume Claims” can be satisfied. Refer to prerequisites.

ActionController::InvalidAuthenticityToken HTTP Origin header

If you are recieving the above error when trying to access the superadmin panel, configure your ingress controller to forward the protocol of the origin request. For nginx ingress, you can do this by setting the proxy_set_header X-Forwarded-Proto https; config. Refer this issue to learn more.