71 lines
1.8 KiB
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}";
|
|
};
|
|
};
|
|
}
|