Matrix Helm Charts

Overview

A collection of helm charts to deploy Matrix-related components into Kubernetes, with example values.yaml files pre-configured for use with Matrix.

All charts are created and tested against a deployed ESS Community instance but should work with any Matrix deployment accessible from your cluster.

Feel free to join the Matrix Room to discuss:

Matrix

Usage

Generally speaking, installation / usage follows these steps:

  1. You configure a values.yaml file for your environment then deploy the helm chart using it. (Matrix-specific values.yaml files in this repository are provided as examples, just replace the placeholder values).
  2. Point your Synapse deployment at the generated App Service Registration file, i.e. if using ESS Community, just redeploy with the sample values.yaml per the chart README.md.
  3. Start a DM with the bot @componentnamebot:example.com, i.e. @whatsappbot:example.com, login etc.

Tip

You should start with the INSTALLATION guide!

OCI Registry (Preferred)

All charts are published as OCI artifacts on GHCR:

helm upgrade --install <release-name> oci://ghcr.io/cyclikal94/matrix-helm-charts/<chart-name> --namespace <namespace> --create-namespace --values <values-file>

HTTP Registry (Legacy-Compatible)

The legacy index-based repository remains available:

helm repo add matrix-helm-charts https://cyclikal94.github.io/matrix-helm-charts
helm repo update
helm upgrade --install <release-name> matrix-helm-charts/<chart-name> --namespace <namespace> --create-namespace --values <values-file>

Components

Tip

Click on the desired helm charts’ badge to be taken to its README for detailed deployment information.

Components are organised into categories copying the matrix.org Ecosystem section. As such components will be either Clients, Bridges, Servers, or Integrations - where components aren’t present on matrix.org I’ll do my best to put them in an appropriate category. The remaining catefories of SDKs, Distribution and Hosting are unlikely to be applicable here.

Given this is new, I’m actively looking for useful new charts to make, I’m prioritising projects listed on matrix.org Ecosystem likely filtering on a “Maturity” of Stable / Beta - if you have suggestions, please do raise an issue!

Integrations

ntfy

binwiederhier/ntfy

HTTP-based pub-sub notification service. Useful to allow providing Matrix push notifications on Android without Google. You’ll need to be using a Matrix Android client that supports serving push notification via UnifiedPush, i.e. Element X.

Bridges

matrix-appservice-irc

matrix-org/matrix-appservice-irc

IRC bridge for Matrix. This bridge allows you to join IRC channels and chat to IRC users via Matrix rooms. For capabilities etc. check it’s entry on matrix.org IRC Bridges.

Mautrix Bridges

Given there are so many mautrix bridges, I’m collating them under a dedicated section. They also, for the most part, all use the same base chart and so setup (values.yaml / App Service Registration) is the same for all.

Python Bridges

mautrix-googlechat

mautrix/googlechat

A Matrix-Google Chat puppeting bridge. For all 5 of you using Google Chat this will allow continuing those conversations in Matrix. No it’s not, Allo, Hangouts or Meet - why do/did they have so many. I think this is some holdover from Google+. For capabilities etc. check it’s entry on matrix.org Google Chat Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-telegram

mautrix/telegram

A Matrix-Telegram hybrid puppeting/relaybot bridge. Note this is a mautrix python bridge, so I believe will eventually be replaced with a go variant. For capabilities etc. check it’s entry on matrix.org Telegram Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

Go Bridges

Double puppetting is enabled by default, and as such, any charts sharing the same mautrix-go-base chart version will use the same double puppet App Service registration automatically.

mautrix-go-base

cyclikal94/matrix-helm-charts

The base chart used for all mautrix- go bridges. Created in order to reduce duplication, all dependant charts use this base chart, then extend as needed for bridge specifics.

mautrix-bluesky

mautrix/bluesky

A Matrix-Bluesky DM puppeting bridge. No category for Bluesky bridges on matrix.org Ecosystem Bridges for this one. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-gmessages

mautrix/gmessages

A Matrix-Google Messages puppeting bridge. For capabilities etc. check it’s entry on matrix.org SMS Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-gvoice

mautrix/gvoice

A Matrix-Google Voice puppeting bridge. No category for Google Voice bridges on matrix.org Ecosystem Bridges for this one. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-linkedin

mautrix/linkedin

A Matrix-LinkedIn puppeting bridge. For capabilities etc. check it’s entry on matrix.org LinkedIn Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-meta

mautrix/meta

A Matrix-Meta puppeting bridge. For capabilities etc. check it’s entry on matrix.org Instagram Bridges, don’t let the link fool you, it also does Facebook Messaging. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-signal

mautrix/signal

A Matrix-Signal puppeting bridge. For capabilities etc. check it’s entry on matrix.org Signal Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-slack

mautrix/slack

A Matrix-Slack puppeting bridge based on slack-go. For capabilities etc. check it’s entry on matrix.org Slack Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-twitter

mautrix/twitter

A Matrix-Twitter DM puppeting bridge. For capabilities etc. check it’s entry on matrix.org X Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-whatsapp

mautrix/whatsapp

A Matrix-WhatsApp puppeting bridge based on whatsmeow. For capabilities etc. check it’s entry on matrix.org Whatsapp Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

mautrix-zulip

mautrix/zulip

A Matrix-Zulip puppeting bridge. For capabilities etc. check it’s entry on matrix.org Zulip Bridges. For hands-on mautrix docs, check docs.mau.fi, just note you only need to care about the custom configuration (everything else is handled by the chart).

Credits

This project has been a bunch of work, but it is nothing without the underlying projects these charts deploy. These charts could not exist without the people who built and maintain those cool things, so credit and thanks goes to them.

  • @binwiederhier / binwiederhier/ntfy contributors, this was the original chart / plan for this project, created to be able to deploy ntfy alongside ess-helm easily.
  • @matrix.org / matrix-org/matrix-appservice-irc contributors, this was the first helm chart I setup that meant I had to figure out App Service Registration via the charts. Hopefully the way it works makes sense!
  • @tulir / @mautrix contributors, it’s kinda crazy how many bridges there are and that they all nicely work the same. It meant after creating the mautrix-go-base chart and getting mautrix-whatsapp working, it was just copy/paste for the rest! As this point, they are the bulk of these charts so… you should seriously check out the repos links above!