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.
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:
- When deploying tenants with ESS Pro, our standard backup recommendations apply.
- When using your own deployment system, you should follow the official Synapse documentation for backups.
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.