matrix-synapse
matrix-synapse
Matrix reference homeserver
Maintainers
| Name | 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 to get started. Once Helm has been set up correctly, fetch the charts as follows:
helm pull oci://codeberg.org/wrenix/helm-charts/matrix-synapseYou can install a chart release using the following command:
helm install matrix-synapse-release oci://codeberg.org/wrenix/helm-charts/matrix-synapse --values values.yamlTo uninstall a chart release use helm’s delete command:
helm uninstall matrix-synapse-releaseRequirements
| Repository | Name | Version |
|---|---|---|
| https://valkey.io/valkey-helm/ | valkey | ^0.9.3 |
| oci://docker.io/bitnamicharts | postgresql | ^16.3.1 |
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 | {"cp_max":10,"cp_min":5} | 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.sslmode | string | "prefer" | set sslmode |
| externalPostgresql.username | string | "synapse" | |
| 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.allowCrossNamespaceImport | bool | false | just for GrafanaDashboard resource |
| grafana.dashboards.annotations | object | {} | |
| grafana.dashboards.enabled | bool | false | |
| grafana.dashboards.folderRef | string | "" | just for GrafanaDashboard resource |
| grafana.dashboards.instanceSelector | object | {} | if defined and grafana-operator deployed it setup instatt an GrafanaDashboard resource |
| grafana.dashboards.labels.grafana_dashboard | string | "1" | |
| image.pullPolicy | string | "IfNotPresent" | This sets the pull policy for images. (could be overwritten by global.image.pullPolicy) |
| image.pullSecrets | list | [] | Optionally specify an array of imagePullSecrets. Secrets must be manually created in the namespace. ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ |
| image.registry | string | "ghcr.io" | image registry (could be overwritten by global.image.registry) |
| image.repository | string | "element-hq/synapse" | image repository |
| 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: |
| postgresql.auth.database | string | "synapse" | |
| postgresql.auth.password | string | "synapse" | |
| postgresql.auth.username | string | "synapse" | |
| postgresql.enabled | bool | true | |
| postgresql.extraArgs | object | {"cp_max":10,"cp_min":5} | Extra arguments for the database connection ref: https://github.com/matrix-org/synapse/blob/develop/docs/postgres.md#synapse-config |
| postgresql.image.repository | string | "bitnamilegacy/postgresql" | |
| 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" | |
| postgresql.sslmode | string | "prefer" | set sslmode |
| 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. |
| 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 | "alpine/kubectl" | |
| signingkey.job.publishImage.tag | string | "1.35.0" | |
| 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 | [] | |
| valkey.auth.aclUsers.default.password | string | "synapse" | |
| valkey.auth.aclUsers.default.passwordKey | string | "" | |
| valkey.auth.aclUsers.default.permissions | string | "~* &* +@all" | |
| valkey.auth.enabled | bool | false | |
| valkey.auth.usersExistingSecret | string | "" | |
| valkey.dataStorage.className | string | "" | |
| valkey.dataStorage.keepPvc | bool | true | |
| valkey.dbid | int | 0 | Database ID for non-default database |
| valkey.external.host | string | "valkey" | |
| valkey.external.port | int | 6379 | |
| valkey.external.user | string | "default" | used together with from valkey.auth.usersExistingSecret and valkey.auth.aclUsers. |
| valkey.internal | bool | true | This configuration enabled valkey that’s deployed for use with workers/sharding, for an external valkey/redis server you want to set false and configure the external block. |
| valkey.service.port | int | 6379 | |
| 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.23.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" | |
| wellknown.image.tag | string | "1.29.4" | |
| 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 |
| workers.frontend_proxy.enabled | bool | false | |
| workers.frontend_proxy.listeners[0] | string | "client" | |
| workers.generic_worker.csPaths[0] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[10] | string | `"/_matrix/client/(r0 | v3 |
| workers.generic_worker.csPaths[11] | string | `"/_matrix/client/(r0 | v3 |
| workers.generic_worker.csPaths[12] | string | `"/_matrix/client/(r0 | v3 |
| workers.generic_worker.csPaths[13] | string | "/_matrix/client/versions$" | |
| workers.generic_worker.csPaths[14] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[15] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[16] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[17] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[18] | string | `"/_matrix/client/(r0 | v3 |
| workers.generic_worker.csPaths[19] | string | `"/_matrix/client/(r0 | v3 |
| workers.generic_worker.csPaths[1] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[20] | string | `"/_matrix/client/(r0 | v3 |
| workers.generic_worker.csPaths[21] | string | `"/_matrix/client/(r0 | v3 |
| workers.generic_worker.csPaths[22] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[23] | string | `"/_matrix/client/(r0 | v3 |
| 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 |
| workers.generic_worker.csPaths[26] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[27] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[28] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[29] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[2] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[30] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[31] | string | `"/_matrix/client/(r0 | v3 |
| workers.generic_worker.csPaths[3] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[4] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[5] | string | `"/_matrix/client/(api/v1 | r0 |
| workers.generic_worker.csPaths[6] | string | `"/_matrix/client/(api/v1 | r0 |
| 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 |
| 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