Synapse

  • By Canonical IS DevOps
Channel Revision Published Runs on
latest/stable 240 02 May 2024
Ubuntu 22.04
latest/edge 251 Today
Ubuntu 22.04
juju deploy synapse
Show information

Platform:

Integrations

backup

Interface: s3 Supported charms: s3-integrator

In order to perform backups, Synapse has to be integrated with the s3-integrator charm using the endpoint backup. Backups will be stored, listed and recovered from the location indicated in the S3 compatible object storage provider configuration provided by the integration. The Synapse charm will back up the media files, signing keys and sqlite database file if applicable. If Synapse database integration is used, the Synapse charm will not back up the related database.

Example backup integrate command: juju integrate synapse:backup s3-integrator

db

Interface: pgsql Supported charms: postgresql-k8s, postgresql

Database integration is a required relation for the Synapse charm to supply structured data storage for Synapse.

Example db integrate command: juju integrate synapse postgresql-k8s:db

grafana-dashboard

Interface: grafana-dashboard Supported charms: grafana-k8s

Grafana-dashboard relation enables quick dashboard access already tailored to fit the needs of operators to monitor the charm. The template for the Grafana dashboard for Synapse charm can be found at /src/grafana_dashboards/synapse.json. It was extracted from matrix/synapse repository. In Grafana UI, it can be found as “Synapse Operator” under the General section of the dashboard browser (/dashboards). Modifications to the dashboard can be made but will not be persisted upon restart/redeployment of the charm.

Grafana-Prometheus integrate command:

juju integrate grafana-k8s:grafana-source prometheus-k8s:grafana-source

Grafana-dashboard integrate command:

juju integrate synapse grafana-dashboard`

ingress

Interface: ingress Supported charms: nginx-ingress-integrator, traefik

Ingress manages external http/https access to services in a kubernetes cluster. Note that the kubernetes cluster must already have an nginx ingress controller already deployed. Documentation to enable ingress in MicroK8s can be found in Addon: Ingress.

Example ingress integrate command: juju integrate synapse nginx-ingress-integrator

metrics-endpoint

Interface: prometheus_scrape Supported charms: prometheus-k8s

Metrics-endpoint relation allows scraping the /metrics endpoint provided by Synapse. The metrics are exposed in the open metrics format and will only be scraped by Prometheus once the relation becomes active. For more information about the metrics exposed, refer to “How to monitor Synapse metrics using Prometheus”.

Metrics-endpoint integrate command: juju integrate synapse prometheus-k8s

redis

Interface: redis Supported charms: redis-k8s

Integrating Synapse with Redis is required by horizontal scaling the charm. If the integration is not present, the charm will be blocked.

See more information in Scaling synapse via workers in documentation repository for Synapse.

Example redis integrate command: juju integrate synapse redis-k8s

saml

Interface: saml Supported charms: saml-integrator

Integrating Synapse with SAML Integrator provides SAML configuration details so users can be authenticated in via a SAML server.

Example saml integrate command: juju integrate synapse saml-integrator:saml

Note that public_baseurl configuration set the public-facing base URL that clients use to access this Homeserver. It’s used as entity_id if set instead of https://server_name.

See more information in Charm Architecture.

smtp

Interface: smtp Supported charms: smtp-integrator

Integrating Synapse with SMTP Integrator provides SMTP configuration details so a smtp server can be used in Synapse.

Example smtp integrate command: juju integrate synapse smtp-integrator:smtp

Note that the smtp-integrator provides two interfaces, smtp and smtp-legacy. Only use the first one if the Juju version used supports secrets. The “From” email is set with the Synapse configuration option notif_from.

For the smtp-integrator, insecure configurations with transport_security=none or not authenticated connections with auth_type=none are not supported.

See more information in Charm Architecture.