Skip to content

Configuring Synapse Pro for small hosts

New to Synapse Pro for small hosts? We recommend starting with the overview documentation for a high-level introduction.

Configuration

To setup Synapse Pro for small hosts, deploy the Synapse Pro Shards Helm chart (synapse-shards) to setup a Synapse Pro Shards cluster.

In the cluster, the Synapse Pro Shards controller is in charge of managing tenants and shards in the Kubernetes namespace. ESS Pro instances must be deployed in the same namespace as the synapse-shards cluster in order to use multi-tenancy and sharding.

Managing Synapse homeserver tenants

To deploy Synapse as a tenant in a Synapse Shards cluster, you need to provide the following values:

synapse:
  asTenantHook:
    enabled: true
    clusterId: # the synapse-shards cluster id
    # namespace: # the synapse-shards cluster namespace, if deployed in cluster scope

Migrating a small host tenant to a dedicated Synapse deployment

If a homeserver has out-grown the "small host" category and needs to be scaled to a dedicated process with workers, the migration is straightforward. Simply disable the synapse.asTenantHook.enabled value to deploy and manage the homeserver by the normal matrix-stack chart.

synapse:
  asTenantHook:
    enabled: false

Note: Multi-Tenancy is still in active development, and is released as a preview feature. For now, you will have to delete the generated secret named <release name>-synapse-tenant and restart the shards to disable the configured homeserver tenant when doing so.

Advanced

Watching tenants metrics

The chart automatically deploys the required ServiceMonitor if the CRDs are installed in the cluster.

The metrics prefix is synapse_shards_controller_.

Please reach out to Element to get the Grafana dashboard.

Backups

Shards are managed by the Synapse Pro Shards controller. You should back up the helm chart values used to deploy the Synapse Pro Shards controller in Git, according to GitOps best practices. Using the helm chart involves creating ConfigMap and Secrets that you should also back up.

Homeserver tenants are totally normal Synapse servers and should be backed up using the standard backup procedures:

Media storage

Because of tenant mobility, we cannot rely on local media storage. Instead, we package multi_synapse with the s3_storage_provider module. This module should be used for each homeserver tenant to store its media in a distinct bucket.

See the S3 storage section in the Synapse docs for more information about configuring S3 storage.