59 lines
1.6 KiB
Nix
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;
|
|
};
|
|
}
|