Move mautrix into its own file

This commit is contained in:
batteredbunny 2024-11-13 00:17:00 +02:00
parent f88e9e7d71
commit 6b8a64c374
4 changed files with 93 additions and 87 deletions

View file

@ -240,16 +240,6 @@ in
}
'';
# mautrix-discord media proxy https://docs.mau.fi/bridges/go/discord/direct-media.html
"discord-media.catnip.ee".extraConfig = ''
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
resolvers 1.1.1.1
}
reverse_proxy :29334
'';
"ntfy.catnip.ee".extraConfig = ''
tls {
dns cloudflare {env.CLOUDFLARE_API_TOKEN}

View file

@ -15,6 +15,7 @@
./drives.nix
./games/palworld.nix
./games/minecraft
./services/mautrix.nix
inputs.lastfm-status.nixosModules.default
inputs.confess.nixosModules.${system}.default
inputs.common-modules.nixosModules.nixos-upgrade
@ -83,11 +84,6 @@
systemd.services = {
caddy.serviceConfig.ReadWriteDirectories = lib.mkForce [ "/var/lib/caddy" "/run/mastodon-web" ];
mautrix-telegram.path = with pkgs; [
lottieconverter # for animated stickers conversion, unfree package
ffmpeg # if converting animated stickers to webm (very slow!)
];
tailscaled.environment = {
TS_NO_LOGS_NO_SUPPORT = "true";
};
@ -238,8 +234,6 @@
"/var/lib/private/ntfy-sh"
"/var/lib/private/drasl"
"/var/lib/acme"
"/var/lib/mautrix-discord"
"/var/lib/private/mautrix-telegram"
"/var/lib/tailscale"
"/var/lib/private/scrutiny"
"/var/lib/caddy"
@ -716,57 +710,6 @@
'';
};
# /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 settings.ports.mautrix-telegram}";
port = settings.ports.mautrix-telegram;
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";
};
};
};
};
# /var/lib/matrix-synapse
matrix-synapse = {
enable = true;
@ -799,7 +742,6 @@
room_name = "Server Notices";
auto_join = true;
};
database = {
name = "psycopg2";
args = {
@ -807,14 +749,6 @@
user = "matrix-synapse";
};
};
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"
];
listeners = [
{
bind_addresses = [ "127.0.0.1" ];

View file

@ -22,16 +22,6 @@
"${toString settings.ports.epicgames-freegames-node}:3000"
];
};
mautrix-discord = {
autoStart = true;
image = "dock.mau.dev/mautrix/discord:v0.7.0";
volumes = [
"/var/lib/mautrix-discord:/data"
];
extraOptions = [
"--network=host"
];
};
plextraktsync = {
autoStart = true;
image = "ghcr.io/taxel/plextraktsync";

92
services/mautrix.nix Normal file
View file

@ -0,0 +1,92 @@
{ pkgs, settings, ... }: {
virtualisation.oci-containers.containers.mautrix-discord = {
autoStart = true;
image = "dock.mau.dev/mautrix/discord:v0.7.0";
volumes = [
"/var/lib/mautrix-discord:/data"
];
extraOptions = [
"--network=host"
];
};
# mautrix-discord media proxy https://docs.mau.fi/bridges/go/discord/direct-media.html
services.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
services.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 settings.ports.mautrix-telegram}";
port = settings.ports.mautrix-telegram;
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";
};
};
};
};
services.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"
];
systemd.services.mautrix-telegram.path = with pkgs; [
lottieconverter # for animated stickers conversion, unfree package
ffmpeg # if converting animated stickers to webm (very slow!)
];
services.borgbackup.jobs."borgbase".paths = [
"/var/lib/mautrix-discord"
"/var/lib/private/mautrix-telegram"
];
}