Category: Matrix

  • Set up sliding sync for Matrix self-hosted instances

    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:

    Cheers!