---
title: Charmhub | Deploy Synapse using Charmhub - The Open Operator Collection
description: Deploy the latest version of Synapse as a Kubernetes Operator on any
  cloud.
url: https://charmhub.io/synapse/docs/reference-integrations
---

# Synapse

[Canonical IS DevOps](https://charmhub.io/publisher/canonical-is-devops "View all packages from Canonical IS DevOps")

* [Canonical IS DevOps](https://charmhub.io/publisher/canonical-is-devops "View all packages from Canonical IS DevOps")

Platform:

stable 426

```
juju deploy synapse
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

---

#### Relevant links

* [Homepage](https://github.com/canonical/synapse-operator)

---

#### Contacts

##### Maintainers

+ [Launchpad Team](https://launchpad.net/~canonical-is-devops)

* [Submit a bug](https://github.com/canonical/synapse-operator/issues)

---

Share your thoughts on this charm with the community on discourse.

[Join the discussion](https://discourse.charmhub.io/)

# Integrations

### [backup](https://charmhub.io/synapse/docs/reference-integrations#p-29232-backup)

*Interface*: s3

*Supported charms*: [s3-integrator](https://charmhub.io/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](https://charmhub.io/synapse/docs/reference-integrations#p-29232-db)

*Interface*: pgsql

*Supported charms*: [postgresql-k8s](https://charmhub.io/postgresql-k8s),
[postgresql](https://charmhub.io/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](https://charmhub.io/synapse/docs/reference-integrations#p-29232-grafana-dashboard)

*Interface*: grafana-dashboard

*Supported charms*: [grafana-k8s](https://charmhub.io/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](https://github.com/matrix-org/synapse/blob/master/contrib/grafana/synapse.json). 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](https://charmhub.io/synapse/docs/reference-integrations#p-29232-ingress)

*Interface*: ingress

*Supported charms*: [nginx-ingress-integrator](https://charmhub.io/nginx-ingress-integrator),
[traefik](https://charmhub.io/traefik-k8s)

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](https://microk8s.io/docs/addon-ingress).

Example ingress integrate command:

```
juju integrate synapse nginx-ingress-integrator
```

### [metrics-endpoint](https://charmhub.io/synapse/docs/reference-integrations#p-29232-metrics-endpoint)

*Interface*: [prometheus\_scrape](https://charmhub.io/interfaces/prometheus_scrape-v0)

*Supported charms*: [prometheus-k8s](https://charmhub.io/prometheus-k8s)

Metrics-endpoint relation allows scraping the `/metrics` endpoint provided by
Synapse. The metrics are exposed in the [open metrics format](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#data-model) 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”](https://github.com/matrix-org/synapse/blob/master/docs/metrics-howto.md).

Metrics-endpoint integrate command:

```
juju integrate synapse prometheus-k8s
```

### [redis](https://charmhub.io/synapse/docs/reference-integrations#p-29232-redis)

*Interface*: redis

*Supported charms*: [redis-k8s](https://charmhub.io/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](https://matrix-org.github.io/synapse/latest/workers.html) in documentation repository for Synapse.

Example redis integrate command:

```
juju integrate synapse redis-k8s
```

### [saml](https://charmhub.io/synapse/docs/reference-integrations#p-29232-saml)

*Interface*: saml

*Supported charms*: [saml-integrator](https://charmhub.io/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](https://charmhub.io/synapse/docs/explanation-charm-architecture).

### [smtp](https://charmhub.io/synapse/docs/reference-integrations#p-29232-smtp)

*Interface*: smtp

*Supported charms*: [smtp-integrator](https://charmhub.io/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](https://charmhub.io/synapse/docs/explanation-charm-architecture).

---
