server.nix/services/mautrix.nix

95 lines
2.8 KiB
Nix

{ pkgs, settings, ... }: let
appservicePort = 8009;
in {
virtualisation.oci-containers.containers.mautrix-discord = {
autoStart = true;
image = "dock.mau.dev/mautrix/discord:v0.7.2";
volumes = [
"/var/lib/mautrix-discord:/data"
];
extraOptions = [
"--network=host"
];
};
services = {
# mautrix-discord media proxy https://docs.mau.fi/bridges/go/discord/direct-media.html
caddy.virtualHosts."discord-media.catnip.ee".extraConfig = ''
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
resolvers 1.1.1.1
}
reverse_proxy :29334
'';
# /var/lib/mautrix-telegram
mautrix-telegram = {
enable = true;
environmentFile = "/etc/secrets/mautrix-telegram.env";
settings = {
homeserver = {
address = "http://localhost:${toString settings.ports.synapse}";
domain = "catnip.ee";
};
appservice = {
address = "http://localhost:${toString appservicePort}";
port = appservicePort;
provisioning.enabled = false;
id = "telegram";
public = {
enabled = true;
prefix = "/telegram";
external = "https://matrix.catnip.ee/telegram";
};
};
bridge = {
encryption.allow = true;
permissions = {
"@admin:catnip.ee" = "admin";
"@kaya:catnip.ee" = "admin";
"catnip.ee" = "full";
"*" = "relaybot";
};
animated_sticker = {
target = "gif";
args = {
width = 256;
height = 256;
fps = 30; # only for webm
background = "020202"; # only for gif, transparency not supported
};
};
};
telegram = {
device_info = {
device_model = "GooglePixel 6";
system_version = "SDK 32";
app_version = "8.7.4 (26367)";
lang_code = "en";
system_lang_code = "en";
};
};
};
};
matrix-synapse.settings.app_service_config_files = [
# sudo rm /var/lib/matrix-synapse/telegram-registration.yaml
# sudo cp /var/lib/mautrix-telegram/telegram-registration.yaml /var/lib/matrix-synapse/
# sudo chown matrix-synapse:matrix-synapse /var/lib/matrix-synapse/telegram-registration.yaml
# sudo systemctl restart matrix-synapse
"/var/lib/matrix-synapse/telegram-registration.yaml"
"/var/lib/mautrix-discord/registration.yaml"
];
borgbackup.jobs."borgbase".paths = [
"/var/lib/mautrix-discord"
"/var/lib/private/mautrix-telegram"
];
};
systemd.services.mautrix-telegram.path = with pkgs; [
lottieconverter # for animated stickers conversion, unfree package
ffmpeg # if converting animated stickers to webm (very slow!)
];
}