Files
nicksOs/modules/services/matrix.nix
T
2026-07-28 12:29:22 +02:00

73 lines
1.8 KiB
Nix

{config, ...}: {
services.matrix-tuwunel = {
enable = true;
settings.global = {
server_name = "nicknase27.com";
address = ["0.0.0.0"];
port = [6167];
allow_federation = true;
allow_registration = true;
new_user_displayname_suffix = " ";
registration_token_file = "${config.age.secrets.matrix-register.path}";
unix_socket_path = "/run/tuwunel/tuwunel.sock";
unix_socket_perms = 660;
well_known_client = "https://nicknase27.com";
well_known_server = "nicknase27.com:443";
msc4140_enabled = true;
};
};
services.livekit = {
enable = true;
keyFile = config.age.secrets.livekit-keys.path;
openFirewall = true;
settings = {
port = 7880;
bind_addresses = ["0.0.0.0"];
rtc = {
tcp_port = 7881;
port_range_start = 50100;
port_range_end = 50200;
use_external_ip = false;
node_ip = "130.61.151.118";
};
};
};
services.lk-jwt-service = {
enable = true;
port = 8081;
keyFile = config.age.secrets.livekit-keys.path;
livekitUrl = "wss://matrix-rtc.nicknase27.com";
};
# Pass homeserver restriction environment variable to native JWT service
systemd.services.lk-jwt-service.environment = {
LIVEKIT_FULL_ACCESS_HOMESERVERS = "nicknase27.com";
};
age.secrets = {
matrix-register = {
file = ../../secrets/matrix-register.age;
path = "/run/secrets/matrix-register";
owner = "tuwunel";
group = "tuwunel";
};
livekit-keys = {
file = ../../secrets/livekit-keys.age;
path = "/run/secrets/livekit-keys";
};
};
networking.firewall = {
allowedTCPPorts = [7881];
allowedUDPPortRanges = [
{
from = 50100;
to = 50200;
}
];
};
}