1
0
Fork 0
pvv-nixos-config/hosts/bicep/services/matrix/hookshot/default.nix

71 lines
1.8 KiB
Nix

{ config, lib, unstablePkgs, inputs, ... }:
let
cfg = config.services.matrix-hookshot;
webhookListenAddress = "127.0.0.1";
webhookListenPort = 9000;
in
{
imports = [
./module.nix
];
sops.secrets."matrix/registrations/matrix-hookshot" = {
sopsFile = ../../../../../secrets/bicep/matrix.yaml;
key = "registrations/matrix-hookshot";
owner = config.users.users.matrix-synapse.name;
group = config.users.groups.keys-matrix-registrations.name;
};
systemd.services.matrix-hookshot = {
serviceConfig.SupplementaryGroups = [ config.users.groups.keys-matrix-registrations.name ];
};
services.matrix-hookshot = {
enable = true;
package = unstablePkgs.matrix-hookshot;
registrationFile = config.sops.secrets."matrix/registrations/matrix-hookshot".path;
settings = {
bridge = {
bindAddress = "127.0.0.1";
domain = "pvv.ntnu,no";
url = "https://matrix.pvv.ntnu.no";
mediaUrl = "https://matrix.pvv.ntnu.no";
port = 9993;
};
listeners = [
{
bindAddress = webhookListenAddress;
port = webhookListenPort;
resources = [
"webhooks"
# "metrics"
# "provisioning"
"widgets"
];
}
];
generic = {
enabled = true;
outbound = true;
};
feeds = {
enabled = true;
};
};
};
services.matrix-hookshot.serviceDependencies = [ "matrix-synapse.target" "nginx.service" ];
services.matrix-synapse-next.settings = {
app_service_config_files = [ config.sops.secrets."matrix/registrations/matrix-hookshot".path ];
};
services.nginx.virtualHosts."hookshot.pvv.ntnu.no" = {
enableACME = true;
locations."/" = {
proxyPass = "http://${webhookListenAddress}:${toString webhookListenPort}";
};
};
}