helm-charts/matrix-synapse/README.md

284 lines
18 KiB
Markdown
Raw Permalink Normal View History

---
title: "matrix-synapse"
description: "Matrix reference homeserver"
---
# matrix-synapse
![Version: 1.0.11](https://img.shields.io/badge/Version-1.0.11-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.122.0](https://img.shields.io/badge/AppVersion-1.122.0-informational?style=flat-square)
Matrix reference homeserver
## Maintainers
| Name | Email | Url |
| ---- | ------ | --- |
| WrenIX | | <https://wrenix.eu> |
## Usage
Helm must be installed and setup to your kubernetes cluster to use the charts.
Refer to Helm's [documentation](https://helm.sh/docs) to get started.
Once Helm has been set up correctly, fetch the charts as follows:
```bash
helm pull oci://codeberg.org/wrenix/helm-charts/matrix-synapse
```
You can install a chart release using the following command:
```bash
helm install matrix-synapse-release oci://codeberg.org/wrenix/helm-charts/matrix-synapse --values values.yaml
```
To uninstall a chart release use `helm`'s delete command:
```bash
helm uninstall matrix-synapse-release
```
## Requirements
| Repository | Name | Version |
|------------|------|---------|
2024-12-17 14:19:08 +01:00
| oci://docker.io/bitnamicharts | postgresql | ^16.3.1 |
| oci://docker.io/bitnamicharts | redis | 20.6.3 |
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| config.bindAddresses | list | `["::"]` | The bind addresses to use for the default listeners |
| config.extraListeners | list | `[]` | |
| config.extraMainListenerTypes | list | `[]` | |
| config.reportStats | bool | `false` | |
| config.trustedKeyServers | list | `[{"server_name":"matrix.org"}]` | A set of trusted servers to contact if another server doesn't respond to a signing key request. |
| config.useStructuredLogging | bool | `false` | |
| externalPostgresql.database | string | `"synapse"` | |
| externalPostgresql.extraArgs | object | `{}` | Extra arguments for the database connection ref: https://github.com/matrix-org/synapse/blob/develop/docs/postgres.md#synapse-config |
| externalPostgresql.options | object | `{}` | set extra configuration ref: https://github.com/matrix-org/synapse/blob/develop/docs/postgres.md#synapse-config e.g. txn_limit, allow_unsafe_locale |
| externalPostgresql.port | int | `5432` | |
| externalPostgresql.username | string | `"synapse"` | |
| externalRedis.port | int | `6379` | |
| extraConfig | object | `{}` | |
| extraLoggers | object | `{}` | |
| extraSecrets | object | `{}` | |
| fullnameOverride | string | `nil` | Override the full name of the installed chart. |
| global.image.pullPolicy | string | `nil` | if set it will overwrite all pullPolicy |
| global.image.registry | string | `nil` | if set it will overwrite all registry entries |
| grafana.dashboards.annotations | object | `{}` | |
| grafana.dashboards.enabled | bool | `false` | |
| grafana.dashboards.labels.grafana_dashboard | string | `"1"` | |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.registry | string | `"ghcr.io"` | |
| image.repository | string | `"element-hq/synapse"` | |
| image.tag | string | `nil` | Overrides the image tag whose default is the chart appVersion. |
| ingress.annotations | object | `{}` | |
| ingress.csHosts | list | `[]` | |
| ingress.csPaths | list | `[]` | |
| ingress.enabled | bool | `true` | |
| ingress.hosts | list | `[]` | |
| ingress.includeServerName | bool | `true` | |
| ingress.includeUnderscoreSynapse | bool | `true` | |
| ingress.paths | list | `[]` | |
| ingress.tls | list | `[]` | |
| ingress.traefikPaths | bool | `false` | |
| ingress.wkHosts | list | `[]` | |
| nameOverride | string | `nil` | Override part of the installed name, will still keep release name. |
| persistence.accessMode | string | `"ReadWriteOnce"` | |
| persistence.annotations | object | `{}` | |
| persistence.enabled | bool | `true` | |
| persistence.existingClaim | string | `nil` | A manually managed Persistent Volume and Claim Requires persistence.enabled: true If defined, PVC must be created manually before volume will be bound |
| persistence.hostPath | string | `nil` | Do not create an PVC, direct use hostPath in Pod |
| persistence.size | string | `"10Gi"` | |
| persistence.storageClass | string | `nil` | Persistent Volume Storage Class If defined, storageClassName: <storageClass> If set to "-", storageClassName: "", which disables dynamic provisioning If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. (gp2 on AWS, standard on GKE, AWS & OpenStack) |
| postgresql.auth.database | string | `"synapse"` | |
| postgresql.auth.password | string | `"synapse"` | |
| postgresql.auth.username | string | `"synapse"` | |
| postgresql.enabled | bool | `true` | |
| postgresql.extraArgs | object | `{}` | Extra arguments for the database connection ref: https://github.com/matrix-org/synapse/blob/develop/docs/postgres.md#synapse-config |
| postgresql.options | object | `{}` | set extra configuration ref: https://github.com/matrix-org/synapse/blob/develop/docs/postgres.md#synapse-config e.g. txn_limit, allow_unsafe_locale |
| postgresql.primary.initdb.args | string | `"--lc-collate=C --lc-ctype=C"` | |
| postgresql.primary.persistence.size | string | `"16Gi"` | |
| prometheus.podmonitor.enabled | bool | `false` | |
| prometheus.podmonitor.labels | object | `{}` | |
| prometheus.rules.additionalRules | list | `[]` | |
| prometheus.rules.defaults.enabled | bool | `true` | |
| prometheus.rules.enabled | bool | `false` | |
| prometheus.rules.labels | object | `{}` | |
| publicServerName | string | `nil` | The public Matrix server name, this will be used for any public URLs in config as well as for client API links in the ingress. |
| redis.architecture | string | `"standalone"` | |
| redis.auth.enabled | bool | `true` | |
| redis.auth.existingSecret | string | `nil` | Or use existing secret with "redis-password" key instead of static password |
| redis.auth.existingSecret | string | `""` | name of an existing secret with Redis credentials (instead of auth.password), must be created ahead of time |
| redis.auth.existingSecretPasswordKey | string | `""` | Password key to be retrieved from existing secret |
| redis.auth.password | string | `"synapse"` | XXX Change me! |
| redis.enabled | bool | `true` | |
| redis.global.storageClass | string | `""` | |
| redis.master.persistence.enabled | bool | `true` | |
| redis.master.service.port | int | `6379` | |
| redis.replica.persistence.enabled | bool | `true` | |
| serverName | string | `nil` | The Matrix domain name, this is what will be used for the domain part in your MXIDs. |
| service.port | int | `8008` | |
| service.targetPort | string | `"http"` | |
| service.type | string | `"ClusterIP"` | |
| serviceAccount.annotations | object | `{}` | |
| serviceAccount.create | bool | `false` | |
| signingkey.annotations | object | `{"helm.sh/hook":"pre-install,pre-upgrade","helm.sh/hook-delete-policy":"before-hook-creation,hook-succeeded"}` | Annotations to apply to the job and rbac for signing-key. |
| signingkey.job.enabled | bool | `true` | |
| signingkey.job.publishImage.pullPolicy | string | `"IfNotPresent"` | |
| signingkey.job.publishImage.registry | string | `"docker.io"` | |
| signingkey.job.publishImage.repository | string | `"bitnami/kubectl"` | |
| signingkey.job.publishImage.tag | string | `"latest"` | |
| signingkey.resources | object | `{}` | |
| synapse.affinity | object | `{}` | |
| synapse.annotations | object | `{}` | |
| synapse.extraCommands | list | `[]` | |
| synapse.extraEnv | list | `[]` | |
| synapse.extraVolumeMounts | list | `[]` | |
| synapse.extraVolumes | list | `[]` | |
| synapse.labels | object | `{}` | |
| synapse.livenessProbe.httpGet.path | string | `"/health"` | |
| synapse.livenessProbe.httpGet.port | string | `"http"` | |
| synapse.nodeSelector | object | `{}` | |
| synapse.podSecurityContext | object | `{}` | |
| synapse.readinessProbe.httpGet.path | string | `"/health"` | |
| synapse.readinessProbe.httpGet.port | string | `"http"` | |
| synapse.resources | object | `{}` | |
| synapse.securityContext | object | `{}` | |
| synapse.startupProbe.failureThreshold | int | `12` | |
| synapse.startupProbe.httpGet.path | string | `"/health"` | |
| synapse.startupProbe.httpGet.port | string | `"http"` | |
| synapse.strategy.type | string | `"RollingUpdate"` | |
| synapse.tolerations | list | `[]` | |
| volumePermissions.enabled | bool | `false` | |
| volumePermissions.gid | int | `666` | |
| volumePermissions.image.pullPolicy | string | `"Always"` | |
| volumePermissions.image.registry | string | `"docker.io"` | |
| volumePermissions.image.repository | string | `"library/alpine"` | |
| volumePermissions.image.tag | string | `"3.21.2"` | |
| volumePermissions.resources | object | `{}` | |
| volumePermissions.uid | int | `666` | |
| wellknown.affinity | object | `{}` | |
| wellknown.client | object | `{}` | Data to serve on .well-known/matrix/client. m.homeserver: base_url: https://matrix.example.com |
| wellknown.containerPort | int | `80` | |
| wellknown.element | object | `{}` | Data to serve on .well-known/element/element.json call: widget_url: https://call.element.io |
| wellknown.enabled | bool | `false` | |
| wellknown.env | list | `[]` | |
| wellknown.image.pullPolicy | string | `"IfNotPresent"` | |
| wellknown.image.registry | string | `"docker.io"` | |
| wellknown.image.repository | string | `"library/nginx"` | |
2024-11-30 00:19:23 +01:00
| wellknown.image.tag | string | `"1.27.3"` | |
| wellknown.nodeSelector | object | `{}` | |
| wellknown.podAnnotations | list | `[]` | |
| wellknown.podLabels | object | `{}` | |
| wellknown.podSecurityContext | object | `{}` | |
| wellknown.replicaCount | int | `1` | |
| wellknown.resources | object | `{}` | |
| wellknown.securityContext | object | `{}` | |
| wellknown.server | object | `{}` | The host and port combo to serve on .well-known/matrix/server. m.server: matrix.example.com:443 |
| wellknown.service.annotations | object | `{}` | |
| wellknown.service.port | int | `8080` | |
| wellknown.service.type | string | `"ClusterIP"` | |
| wellknown.tolerations | list | `[]` | |
| workers.appservice.enabled | bool | `false` | |
| workers.appservice.generic | bool | `true` | |
| workers.appservice.name | string | `"appservices"` | |
| workers.default.affinity | object | `{}` | |
| workers.default.annotations | object | `{}` | |
| workers.default.extraCommands | list | `[]` | |
| workers.default.extraEnv | list | `[]` | |
| workers.default.livenessProbe.httpGet.path | string | `"/health"` | |
| workers.default.livenessProbe.httpGet.port | string | `"metrics"` | |
| workers.default.nodeSelector | object | `{}` | |
| workers.default.podSecurityContext | object | `{}` | |
| workers.default.readinessProbe.httpGet.path | string | `"/health"` | |
| workers.default.readinessProbe.httpGet.port | string | `"metrics"` | |
| workers.default.replicaCount | int | `1` | |
| workers.default.resources | object | `{}` | |
| workers.default.securityContext | object | `{}` | |
| workers.default.startupProbe.failureThreshold | int | `6` | |
| workers.default.startupProbe.httpGet.path | string | `"/health"` | |
| workers.default.startupProbe.httpGet.port | string | `"metrics"` | |
| workers.default.strategy.type | string | `"RollingUpdate"` | |
| workers.default.tolerations | list | `[]` | |
| workers.default.volumeMounts | list | `[]` | |
| workers.default.volumes | list | `[]` | |
| workers.federation_sender.enabled | bool | `false` | |
| workers.frontend_proxy.csPaths[0] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/keys/upload"` | |
| workers.frontend_proxy.enabled | bool | `false` | |
| workers.frontend_proxy.listeners[0] | string | `"client"` | |
| workers.generic_worker.csPaths[0] | string | `"/_matrix/client/(api/v1|r0|v3)/events$"` | |
| workers.generic_worker.csPaths[10] | string | `"/_matrix/client/(r0|v3|unstable)/account/3pid$"` | |
| workers.generic_worker.csPaths[11] | string | `"/_matrix/client/(r0|v3|unstable)/account/whoami$"` | |
| workers.generic_worker.csPaths[12] | string | `"/_matrix/client/(r0|v3|unstable)/devices$"` | |
| workers.generic_worker.csPaths[13] | string | `"/_matrix/client/versions$"` | |
| workers.generic_worker.csPaths[14] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/voip/turnServer$"` | |
| workers.generic_worker.csPaths[15] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/event/"` | |
| workers.generic_worker.csPaths[16] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/joined_rooms$"` | |
| workers.generic_worker.csPaths[17] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/search$"` | |
| workers.generic_worker.csPaths[18] | string | `"/_matrix/client/(r0|v3|unstable)/keys/query$"` | |
| workers.generic_worker.csPaths[19] | string | `"/_matrix/client/(r0|v3|unstable)/keys/changes$"` | |
| workers.generic_worker.csPaths[1] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/createRoom$"` | |
| workers.generic_worker.csPaths[20] | string | `"/_matrix/client/(r0|v3|unstable)/keys/claim$"` | |
| workers.generic_worker.csPaths[21] | string | `"/_matrix/client/(r0|v3|unstable)/room_keys/"` | |
| workers.generic_worker.csPaths[22] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/login$"` | |
| workers.generic_worker.csPaths[23] | string | `"/_matrix/client/(r0|v3|unstable)/register$"` | |
| workers.generic_worker.csPaths[24] | string | `"/_matrix/client/v1/register/m.login.registration_token/validity$"` | |
| workers.generic_worker.csPaths[25] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/redact"` | |
| workers.generic_worker.csPaths[26] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/send"` | |
| workers.generic_worker.csPaths[27] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state/"` | |
| workers.generic_worker.csPaths[28] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/(join|invite|leave|ban|unban|kick)$"` | |
| workers.generic_worker.csPaths[29] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/join/"` | |
| workers.generic_worker.csPaths[2] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/publicRooms$"` | |
| workers.generic_worker.csPaths[30] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/profile/"` | |
| workers.generic_worker.csPaths[31] | string | `"/_matrix/client/(r0|v3|unstable)/user_directory/search"` | |
| workers.generic_worker.csPaths[3] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/joined_members$"` | |
| workers.generic_worker.csPaths[4] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/context/"` | |
| workers.generic_worker.csPaths[5] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/members$"` | |
| workers.generic_worker.csPaths[6] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/rooms/.*/state$"` | |
| workers.generic_worker.csPaths[7] | string | `"/_matrix/client/v1/rooms/.*/hierarchy$"` | |
| workers.generic_worker.csPaths[8] | string | `"/_matrix/client/unstable/org.matrix.msc2716/rooms/.*/batch_send$"` | |
| workers.generic_worker.csPaths[9] | string | `"/_matrix/client/unstable/im.nheko.summary/rooms/.*/summary$"` | |
| workers.generic_worker.enabled | bool | `false` | |
| workers.generic_worker.generic | bool | `true` | |
| workers.generic_worker.listeners[0] | string | `"client"` | |
| workers.generic_worker.listeners[1] | string | `"federation"` | |
| workers.generic_worker.paths[0] | string | `"/_matrix/federation/v1/event/"` | |
| workers.generic_worker.paths[10] | string | `"/_matrix/federation/(v1|v2)/send_leave/"` | |
| workers.generic_worker.paths[11] | string | `"/_matrix/federation/(v1|v2)/invite/"` | |
| workers.generic_worker.paths[12] | string | `"/_matrix/federation/v1/event_auth/"` | |
| workers.generic_worker.paths[13] | string | `"/_matrix/federation/v1/exchange_third_party_invite/"` | |
| workers.generic_worker.paths[14] | string | `"/_matrix/federation/v1/user/devices/"` | |
| workers.generic_worker.paths[15] | string | `"/_matrix/key/v2/query"` | |
| workers.generic_worker.paths[16] | string | `"/_matrix/federation/v1/hierarchy/"` | |
| workers.generic_worker.paths[17] | string | `"/_matrix/federation/v1/send/"` | |
| workers.generic_worker.paths[1] | string | `"/_matrix/federation/v1/state/"` | |
| workers.generic_worker.paths[2] | string | `"/_matrix/federation/v1/state_ids/"` | |
| workers.generic_worker.paths[3] | string | `"/_matrix/federation/v1/backfill/"` | |
| workers.generic_worker.paths[4] | string | `"/_matrix/federation/v1/get_missing_events/"` | |
| workers.generic_worker.paths[5] | string | `"/_matrix/federation/v1/publicRooms"` | |
| workers.generic_worker.paths[6] | string | `"/_matrix/federation/v1/query/"` | |
| workers.generic_worker.paths[7] | string | `"/_matrix/federation/v1/make_join/"` | |
| workers.generic_worker.paths[8] | string | `"/_matrix/federation/v1/make_leave/"` | |
| workers.generic_worker.paths[9] | string | `"/_matrix/federation/(v1|v2)/send_join/"` | |
| workers.media_repository.csPaths[0] | string | `"/_matrix/media/.*"` | |
| workers.media_repository.csPaths[1] | string | `"/_synapse/admin/v1/purge_media_cache$"` | |
| workers.media_repository.csPaths[2] | string | `"/_synapse/admin/v1/room/.*/media"` | |
| workers.media_repository.csPaths[3] | string | `"/_synapse/admin/v1/user/.*/media"` | |
| workers.media_repository.csPaths[4] | string | `"/_synapse/admin/v1/media/"` | |
| workers.media_repository.csPaths[5] | string | `"/_synapse/admin/v1/quarantine_media/"` | |
| workers.media_repository.csPaths[6] | string | `"/_synapse/admin/v1/users/.*/media$"` | |
| workers.media_repository.enabled | bool | `false` | |
| workers.media_repository.listeners[0] | string | `"media"` | |
| workers.media_repository.paths[0] | string | `"/_matrix/media/.*"` | |
| workers.pusher.enabled | bool | `false` | |
| workers.user_dir.csPaths[0] | string | `"/_matrix/client/(api/v1|r0|v3|unstable)/user_directory/search$"` | |
| workers.user_dir.enabled | bool | `false` | |
| workers.user_dir.listeners[0] | string | `"client"` | |
| workers.user_dir.name | string | `"userdir"` | |
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs)