diff options
| author | Max Audron <audron@cocaine.farm> | 2023-08-11 16:51:35 +0200 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2023-08-11 16:51:35 +0200 |
| commit | 5828af9fc19e18dc85e49fcc1a251a7eb25d909c (patch) | |
| tree | c70c3e52237c08d3fdcb2f1269c524c25e3feeb8 /modules/matrix/default.nix | |
init
Diffstat (limited to 'modules/matrix/default.nix')
| -rw-r--r-- | modules/matrix/default.nix | 73 |
1 files changed, 73 insertions, 0 deletions
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; + }; +} |
