NixOS modules for matrix related services
Go to file
Daniel Lovbrotte Olsen 50ae1b6e57 Implement easy sliding sync setup
Co-authored-by: h7x4 <h7x4@nani.wtf>
2023-09-24 04:39:20 +02:00
pkgs/matrix-sliding-sync Import sliding sync from nixpkgs unstable 2023-09-24 03:32:54 +02:00
sliding-sync Implement easy sliding sync setup 2023-09-24 04:39:20 +02:00
synapse-module Implement easy sliding sync setup 2023-09-24 04:39:20 +02:00
COPYING Add a license 2023-02-17 01:16:02 +01:00
README.MD Implement easy sliding sync setup 2023-09-24 04:39:20 +02:00
flake.lock introduce matrix-lib 2023-01-20 08:11:33 +01:00
flake.nix Import sliding sync from nixpkgs unstable 2023-09-24 03:32:54 +02:00
lib.nix introduce matrix-lib 2023-01-20 08:11:33 +01:00
module.nix Import sliding sync from nixpkgs unstable 2023-09-24 03:32:54 +02:00

README.MD

With matrix.YOURDOMAIN pointing at the server:

{
  imports = [ ./synapse-module ];

  services.matrix-synapse-next = {
    enable = true;

    workers.federationSenders = 1;
    workers.federationReceivers = 1;
    workers.initialSyncers = 1;
    workers.normalSyncers = 1;
    workers.eventPersisters = 2;
    workers.useUserDirectoryWorker = true;

    enableNginx = true;

    settings = {
      server_name = "YOURDOMAIN";
      
      database = {
        name = "psycopg2";
        args = {
          host = "localhost";
          user = "synapse";
          password = "synapse";
          dbname = "synapse";
        };
      };
    };
  };
  
  services.redis.servers."".enable = true;
}

is ~enough to get a functional matrix-server running with some workers

Sliding Sync (Element X)

Just add the following to your config and point slidingsync.YOURDOMAIN at the server

services.matrix-synapse-next = {
  enableSlidingSync = true;
};

matrix-synapse.sliding-sync.environmentFile = "/some/file/containing/SYNCV3_SECRET=<some secret>";

If using well-known delagation make sure YOURDOMAIN/.well-known/matrix/client matches what's in matrix.YOURDOMAIN/.well-known/matrix/client