diff --git a/nixos/configurations/Cape/default.nix b/nixos/configurations/Cape/default.nix index 3dc5cee..ee13b5c 100644 --- a/nixos/configurations/Cape/default.nix +++ b/nixos/configurations/Cape/default.nix @@ -26,6 +26,7 @@ enable = true; serverName = "im.youthlic.fun"; }; + mautrix-telegram.enable = true; caddy = { enable = true; baseDomain = "youthlic.fun"; diff --git a/nixos/modules/programs/default.nix b/nixos/modules/programs/default.nix index 66da533..4502cec 100644 --- a/nixos/modules/programs/default.nix +++ b/nixos/modules/programs/default.nix @@ -1,6 +1,7 @@ { config, lib, ... }: { imports = [ + ./mautrix-telegram.nix ./caddy.nix ./dae ./forgejo.nix diff --git a/nixos/modules/programs/mautrix-telegram.nix b/nixos/modules/programs/mautrix-telegram.nix new file mode 100644 index 0000000..37daf7c --- /dev/null +++ b/nixos/modules/programs/mautrix-telegram.nix @@ -0,0 +1,62 @@ +{ config, lib, ... }: +let + cfg = config.youthlic.programs.mautrix-telegram; +in +{ + options = { + youthlic.programs.mautrix-telegram = { + enable = lib.mkEnableOption "mautrix-telegram"; + }; + }; + config = + let + conduwuit-cfg = config.youthlic.programs.conduwuit; + caddy-cfg = config.youthlic.programs.caddy; + in + lib.mkMerge [ + (lib.mkIf cfg.enable { + sops.secrets.matrix-telegram-bot = { }; + services.mautrix-telegram = { + enable = true; + environmentFile = "${config.sops.secrets.matrix-telegram-bot.path}"; + settings = { + bridge = { + permissions = { + "*" = "relaybot"; + }; + }; + appservice = { + address = "http://127.0.0.1:8482"; + hostname = "0.0.0.0"; + port = 8482; + database = "sqlite:////var/lib/mautrix-telegram/database.db"; + bot_username = "matrix_tg_146bot"; + bot_displayname = "matrix tg bridge"; + }; + }; + }; + nixpkgs.config.permittedInsecurePackages = [ + "olm-3.2.16" + ]; + }) + (lib.mkIf (cfg.enable && conduwuit-cfg.enable) { + services.mautrix-telegram = { + serviceDependencies = [ + "conduwuit.service" + ]; + settings = { + bridge = { + permissions = { + "${conduwuit-cfg.serverName}" = "full"; + "@youthlic:${conduwuit-cfg.serverName}" = "admin"; + }; + }; + homeserver = { + domain = conduwuit-cfg.serverName; + address = "http://127.0.0.1:8481"; + }; + }; + }; + }) + ]; +} diff --git a/secrets/general.yaml b/secrets/general.yaml index be1ca7d..716e0b3 100644 --- a/secrets/general.yaml +++ b/secrets/general.yaml @@ -1,4 +1,5 @@ atuin-key: ENC[AES256_GCM,data:e3K7/7BaeXuR+vHJdtO79UQp3XRvROcD8ISkuCp3KGCSlBKUM3GuCwhIeFoIl0fOUqVYOzcCAcjsH2nBRqcXhtS8jhM=,iv:Mh3jsu6mdj0VOLSIoNz/0awyydVf7q3/E7iB7CJi+UA=,tag:xuHhUmK/J2stdjRrtbhQSw==,type:str] +matrix-telegram-bot: ENC[AES256_GCM,data:4G9JSR4l3043SM63gvJr0xBFuS11eoesi9rrobTxN9HpEGNklYDWHH/+Bm7P/2Bxnye3CiO/Z8KffvbjH8slRHLtbSpo8lRsfi9uRAbeMl7aXe/nTjpN078QSN3WXXc9XqYq0sxwNKPrnW3bmPQsHUiykZ3Go5A9Qw1iIPvPpXITyNbeD0gA+2CBB7PIURI7X0PIgSfUtMFZvl2J9znqCnlfC41bj6aC3sywsEkpuFJiMEojrwl+XmVS/u4eNMq8KiofVn9QlGx5gdGZ9LfZZdc+8E6u5GovqP2JTwwfaeZPzdwdZ2YsdoAvmgAusMfjCNZvHF7msLsOyNJW4592ZC7+fHhRbkKnVKc3OwA4ILWd9Jl0p0BoS0Ckn3V5nUQFgxVJ2O0yd/FLFaEqbeBLHNqC6u9CTYk82Uy23ilXQYKIc9h2wQkM329E6j9Mk0f9uavoYVPkpz6ahLzcni2W26FUkeaZ7PkrHmHWfJvvvi32GB4+q1m0phPmcd3cKVhXhbhLXiBcx2Rj7Q==,iv:Br0w0SiYajFr8p5CZEg47x3KpJ+AOleHthsEc3ho4YI=,tag:k+wptcSnNzfefF66Ug824Q==,type:str] matrix-reg-token: ENC[AES256_GCM,data:Cr5560L9gQo/tKUz1sQOAg5dckI6SyDxeNyrjW4oI6qkV8bxUrMaAGnVkkeF9TF9FgAnRb+7Lm+axd2SmkPWnqrLll2NzLC01zXht9Mq9RroAPXFraEV1X1Ge1qAAtkr,iv:42r93HLVDKuDCOYlfem7oi3gcHfhDYiNbFKOCHxim+o=,tag:9hWGQrWHsv2eYNgFlHtfeA==,type:str] ssh-private-key: deploy: ENC[AES256_GCM,data:tYCsym/IY7uE9is56Qvdm+PxouFPng5hY/nlk/Xsm2qOCjdD2G9PyBTSs4dSil8GYusOdSRAFluCf1awJIHV9CJbCDOBVdzJOeXt19VYm2LQOiU7uOtlhUJYMOyIJjedVpRUfUAI8rQNaANIJ+p40ApnUi3jQbXp66iLZhMs+F2vnWimrorV5if74P+wUCSQEkhWWNBebIlP/JQkmGlS7hSDX9RAUF2m5YzyeTTPEmz/F19Sobq7ws0bxo++v6FiM1Zw/uDPX/NT4h1X/qEu1treRk8eo4+j4ha4OWvM62mecvoPln+Rwp+1q/1Ky0WROFSmIQ0CGJHIwWP4TcDJJeazC/0L5WZAvbHQr6tR7zVeu81OboHfgbrWe4wTzpxGxaRHQVFz+8Q9jpuzYbRnaqUZEfeXQKmSxsmu1SZLIJx/3BFMy8WQnsI0aZJm7Ol/WMY17ikPjC9hFLdzZzDV7zfMIl4TjaFxKpRvWsqtGW55r1IuqnrEFL0M4x9yzGWwT2LQIKqM7AM04phF8Ot8GiNAUPzC5Cm2gwWm,iv:jnNrRZAOsgOiGayLj2mUgODrKMQ66dIYG56G2+1ypYQ=,tag:1jD+1NtWKZye21aTVLTqBw==,type:str] @@ -41,8 +42,8 @@ sops: a1Y1NU9CK2h1SS83VW42bzBMa01yMXMKI1DBtgNlkNCrxUQvnD6a45mQKNfg5gM4 Zb5buo9Jofj4dn/HFwng3T3gxKTrP2Dh74CAH4L0M5yrF9fzk5TCcQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-01-29T13:44:13Z" - mac: ENC[AES256_GCM,data:t+FEBYvgAnfyuexCblrV1Z7JTgd3VCLLRDyhm4+5X7Ci8iZ+46F7w9TBoLLK4buXgEnzF/+Vtmbl1+cPELdkLl4aagvFbGvuR3wpwrfAabVuGlH8aeeNMTGPVU8KT0QBVsYdY7LME71ZN/rAYruyOi/rR5aVKDiYMfBInFCJXOs=,iv:3D8SDGrW7DT19jLHD9WvsSpcrdan1Kj1mGtjMOn2XZw=,tag:sjYS9Mx2yReacpQXBXLGoA==,type:str] + lastmodified: "2025-02-01T06:13:38Z" + mac: ENC[AES256_GCM,data:mved7T7oQeafIv0BWDHj3C5KaDLKSlxji93xMxunl39ApbtGjQjDqpQwVQ4z4dcMeggJo0SlX+o0tTi8KzruIjgywR0hQvGJFl8Iq7zyC5YB7ojukRI3ZO71ry1+BWNLOSCrnzIxbX3LijbDkXZ4pkC2lwrqy63P8BUPYNySTQQ=,iv:ukjQB5Ax6GASPXdXJAy+yqiTxtxQxa+wNMo2RYZFEgk=,tag:Z/5ImiyIHFXMozZsY6L9Dw==,type:str] pgp: [] unencrypted_suffix: _unencrypted - version: 3.9.3 + version: 3.9.4