pi/services/continuwuity.nix
2026-04-06 13:07:44 +02:00

59 lines
1.6 KiB
Nix

{ config, pkgs, lib, ... }:
let
serv = import ../config/services.nix;
serviceValidation = import ../validation/service/continuwuity.nix;
continuwuity = serv.continuwuity;
serverName = serviceValidation.getServerName serv;
trustedServers = serviceValidation.getTrustedServers serv;
memoryMax = serviceValidation.getMemoryMax serv;
package = if continuwuity ? package then
pkgs.matrix-continuwuity.overrideAttrs (old: rec {
version = continuwuity.package.version;
pname = old.pname or "matrix-continuwuity";
src = pkgs.fetchFromGitea {
domain = "forgejo.ellis.link";
owner = "continuwuation";
repo = "continuwuity";
tag = "v${version}";
hash = continuwuity.package.sourceHash;
};
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
inherit src;
hash = continuwuity.package.cargoHash;
};
})
else
pkgs.matrix-continuwuity;
in
{
services.matrix-continuwuity = {
enable = true;
package = package;
settings = {
global = {
server_name = serverName;
allow_registration = true;
allow_encryption = true;
allow_federation = true;
max_request_size = 20 * 1024 * 1024; # 20 MiB
trusted_servers = trustedServers;
matrix_rtc = {
foci = [
{ type = "livekit"; livekit_service_url = continuwuity.livekit_url; }
];
};
};
};
};
systemd.services.matrix-continuwuity.serviceConfig =
lib.optionalAttrs (memoryMax != null) {
MemoryMax = memoryMax;
};
}