NixOS modules for matrix related services
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Daniel Løvbrøtte Olsen 161d1ed360 document some breaking changes 5 days ago
pkgs/matrix-sliding-sync Import sliding sync from nixpkgs unstable 5 days ago
sliding-sync Implement easy sliding sync setup 5 days ago
synapse-module Implement easy sliding sync setup 5 days ago
COPYING Add a license 7 months ago
MIGRATIONS.MD document some breaking changes 5 days ago
README.MD document some breaking changes 5 days ago
flake.lock introduce matrix-lib 8 months ago
flake.nix Import sliding sync from nixpkgs unstable 5 days ago
lib.nix introduce matrix-lib 8 months ago
module.nix Import sliding sync from nixpkgs unstable 5 days ago

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