synix/tests/run/synapse.nix
sid 95a533c876
All checks were successful
Deploy docs / build-and-deploy (push) Successful in 3s
initial commit
2026-02-23 20:34:35 +01:00

95 lines
2.5 KiB
Nix

{
name = "synapse-test";
nodes.machine =
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.matrix-synapse;
keyFile = pkgs.writeText "livekit.key" "API Secret: secret";
in
{
# fake sops module
options.sops = lib.mkOption {
type = lib.types.attrs;
default = { };
};
imports = [
../../modules/nixos/matrix-synapse
../../modules/nixos/coturn
../../modules/nixos/maubot
];
config = {
services.matrix-synapse = {
enable = true;
coturn.enable = true;
settings = {
registration_shared_secret = "secret";
turn_shared_secret = "turn-secret";
};
};
services.coturn = {
enable = true;
no-tls = true;
static-auth-secret = "turn-secret";
};
services.maubot = {
enable = true;
extraConfigFile = builtins.toString (
pkgs.writeText "maubot-extra" ''
homeservers:
${cfg.settings.server_name}:
url: http://127.0.0.1:${builtins.toString cfg.port}
secret: ${cfg.settings.registration_shared_secret}
admins:
alice: password
''
);
};
services.livekit.keyFile = keyFile;
services.lk-jwt-service.keyFile = keyFile;
services.nginx.enable = true;
networking.domain = "example.com";
networking.firewall.enable = false; # simplify networking for test
# Override SSL/ACME requirements for test
services.nginx.virtualHosts."example.com".forceSSL = lib.mkForce false;
services.nginx.virtualHosts."example.com".enableACME = lib.mkForce false;
};
};
testScript = ''
start_all()
machine.wait_for_unit("default.target")
machine.wait_for_unit("matrix-synapse.service")
machine.wait_for_open_port(8008)
machine.wait_for_unit("livekit.service")
machine.wait_for_open_port(7880)
machine.wait_for_unit("lk-jwt-service.service")
machine.wait_for_open_port(8080)
machine.wait_for_unit("coturn.service")
machine.wait_for_open_port(3478)
machine.wait_for_unit("maubot.service")
machine.wait_for_open_port(29316)
machine.succeed("curl -f http://localhost:8008/_matrix/client/versions")
# machine.succeed("curl -f http://localhost:29316/_matrix/maubot/v1/logs") # TODO: add auth
'';
}