From 5828af9fc19e18dc85e49fcc1a251a7eb25d909c Mon Sep 17 00:00:00 2001 From: Max Audron Date: Fri, 11 Aug 2023 16:51:35 +0200 Subject: init --- modules/matrix/default.nix | 73 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 modules/matrix/default.nix (limited to 'modules/matrix/default.nix') diff --git a/modules/matrix/default.nix b/modules/matrix/default.nix new file mode 100644 index 0000000..7964f9b --- /dev/null +++ b/modules/matrix/default.nix @@ -0,0 +1,73 @@ +{ config, lib, pkgs, secrets, ... }: + + +let cfg = config.services.matrix; +in +{ + imports = [ + ./options.nix + ./conduit.nix + ./mautrix-slack.nix + ]; + + services.matrix = { + server_name = "vapor.systems"; + admin_email = "info@cocaine.farm"; + }; + + services.heisenbridge = { + enable = true; + owner = "@audron:vapor.systems"; + homeserver = "https://${cfg.matrix_hostname}"; + # extraArgs = [ "--generate-compat" ]; + # + package = pkgs.heisenbridge.overrideAttrs (prev: rec { + version = "1.14.2"; + + src = pkgs.fetchFromGitHub { + owner = "hifi"; + repo = prev.pname; + rev = "refs/tags/v${version}"; + sha256 = "sha256-qp0LVcmWf5lZ52h0V58S6FoIM8RLOd6Y3FRb85j7KRg="; + }; + + patches = [ + ./patches/heisenbridge_channel_name.patch + ./patches/heisenbridge_private_name.patch + ./patches/heisenbridge_user_presence.patch + ]; + }); + + identd.enable = true; + }; + + + services.mautrix-slack = { + enable = true; + environmentFile = "/var/lib/mautrix-slack/secrets.env"; + settings = { + homeserver = { + address = "https://${cfg.matrix_hostname}"; + domain = cfg.server_name; + }; + + appservice = + let s = builtins.fromJSON (builtins.readFile "${secrets}/matrix/mautrix-slack.json"); + in + { + as_token = s.as_token; + hs_token = s.hs_token; + }; + + bridge = { + permissions = { + "*" = "relay"; + "vapor.systems" = "user"; + "@audron:vapor.systems" = "admin"; + }; + }; + }; + + configurePostgresql = true; + }; +} -- cgit v1.2.3