diff options
Diffstat (limited to 'nixos/hosts/tente/matrix.nix')
-rw-r--r-- | nixos/hosts/tente/matrix.nix | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/nixos/hosts/tente/matrix.nix b/nixos/hosts/tente/matrix.nix new file mode 100644 index 0000000..b60f3cd --- /dev/null +++ b/nixos/hosts/tente/matrix.nix @@ -0,0 +1,39 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.matrix; +in +{ + options.matrix = { + serverName = lib.mkOption { + type = lib.types.str; + }; + apiDomain = lib.mkOption { + type = lib.types.str; + }; + }; + + config = { + services = { + matrix-synapse = { + enable = true; + settings = { + server_name = cfg.serverName; + }; + }; + + nginx.virtualHosts.${cfg.apiDomain} = { + enableACME = true; + forceSSL = true; + + # TODO: add locations."/" with some message + + # Forward all Matrix API calls to the synapse Matrix homeserver. A trailing slash + # *must not* be used here. + locations."/_matrix".proxyPass = "http://127.0.0.1:8008"; + # Forward requests for e.g. SSO and password-resets. + locations."/_synapse/client".proxyPass = "http://127.0.0.1:8008"; + }; + }; + }; +} |