Set up sliding sync for Matrix self-hosted instances
Adapt to Element X client by adding Sliding Sync to your self host Matrix Synapse server, with Docker Compose, Nginx reverse proxy, CloudFlare worker function.
As I am working on a brand new Discord-styled modern Matrix client, I went into an issue: because I use the newest Matrix Rust SDK, it requires Sliding Sync (as does the new Element X app). So my self-hosted test Matrix server no longer works.
I could not find any guides on how to set this up. So I am writing it here on how I did it by referencing the official documentation:
Docker compose file
For just running the sliding sync server
Remember to modify `SYNCV3_SERVER` to be your own instance’s hostname
Generate a secret code:
Start docker:
For running Matrix server with sliding sync server:
Setup Nginx
If you use Nginx for forwarding requests, you should add the below in your existing Nginx configuration file:
By the way, here is an example Nginx file for a Matrix instance:
Modify your Matrix .well-known file
It should look like this, but with all hostname replaced:
If your sliding sync proxy `org.matrix.msc3575.proxy` runs on the same server, set it to be the same as your `m.homeserver`
If you’re hosting your website on CloudFlare, you should use a CloudFlare worker to respond the well known file:
If you’re using Nginx, you should provide a custom well known file, and write the rule to read all well known requests from your given path.
Here is the example content of the client
file located at `/var/www/html/.well-known/matrix/client`
Here is the example content of the server
file located at `/var/www/html/.well-known/matrix/server`
Don’t forget to apply the updated configuration file: