nixos/clients/quadraticserver/matrix/bridges.nix

89 lines
2.1 KiB
Nix

{
lib,
pkgs,
inputs,
config,
...
}:
let
client = config.services.matrix-continuwuity.settings.global.well_known.client;
server_name = config.services.matrix-continuwuity.settings.global.server_name;
settings = {
backfill.enabled = true;
appservice = {
as_token = "$CUSTOM_AS_TOKEN";
hs_token = "$CUSTOM_HS_TOKEN";
};
homeserver = {
domain = server_name;
address = client;
};
bridge = {
encryption = {
allow = true;
default = true;
require = false;
};
permissions = {
"${server_name}" = "user";
"@quadradical:${server_name}" = "admin";
};
};
};
in
{
imports = [
inputs.nix-matrix-appservices.nixosModule
inputs.ooye.modules.default
];
services =
let
domain = "ooye.federated.nexus";
in
{
matrix-appservices.services =
builtins.mapAttrs
(
name: value:
value
// {
inherit settings;
format = "mautrix-go";
port = 8000;
package = value.package.override { withGoolm = true; };
}
)
{
whatsapp = {
host = "127.0.0.4";
serviceConfig.EnvironmentFile = config.age.secrets."whatsapp.age".path;
package = pkgs.mautrix-whatsapp;
};
gmessages = {
host = "127.0.0.5";
serviceConfig.EnvironmentFile = config.age.secrets."gmessages.age".path;
package = pkgs.mautrix-gmessages;
};
};
matrix-ooye = {
enable = true;
homeserver = client;
homeserverName = "federated.nexus";
discordTokenPath = config.age.secrets."discordToken.age".path;
discordClientSecretPath = config.age.secrets."discordClientSecret.age".path;
socket = "8081";
bridgeOrigin = "https://${domain}";
};
caddy.virtualHosts."${domain}".extraConfig =
"reverse_proxy 127.0.0.1:${config.services.matrix-ooye.socket}";
};
systemd.services.matrix-ooye.serviceConfig.Restart = lib.mkForce "always";
}