diff --git a/machines/gerd.nix b/machines/gerd.nix index 59c791c..cbc4941 100644 --- a/machines/gerd.nix +++ b/machines/gerd.nix @@ -20,6 +20,7 @@ ./gerd/services/nextcloud.nix ./gerd/services/stalwart + ./gerd/services/element.nix ./gerd/services/matrix-synapse.nix ]; diff --git a/machines/gerd/services/element.nix b/machines/gerd/services/element.nix new file mode 100644 index 0000000..2ad420c --- /dev/null +++ b/machines/gerd/services/element.nix @@ -0,0 +1,36 @@ +{ config, pkgs, ... }: + +let + svc_domain = "chat.${config.mine.shared.settings.domain}"; + + # configure element web client + pkg_element = pkgs.element-web.override { + conf = { + default_theme = "dark"; + features.feature_latex_maths = true; + disable_guests = true; + + default_server_name = config.mine.shared.settings.domain; + }; + }; +in { + services.nginx.virtualHosts."${svc_domain}" = { + forceSSL = true; + enableACME = true; + locations."/".root = pkg_element; + }; + + mine.shared.meta.element = { + name = "Element"; + description = "We host our own Element instance, get on it and start chatting!"; + url = "https://${svc_domain}"; + + package = let + pkg = pkg_element; + in { + name = pkg.pname; + version = pkg.version; + meta = pkg.meta; + }; + }; +} diff --git a/machines/gerd/services/matrix-synapse.nix b/machines/gerd/services/matrix-synapse.nix index 2cbe497..63a002f 100644 --- a/machines/gerd/services/matrix-synapse.nix +++ b/machines/gerd/services/matrix-synapse.nix @@ -182,6 +182,8 @@ in { matrix-synapse-config-authelia-secret.owner = matrix_synapse_user; }; + mine.shared.settings.matrix-synapse.domain = svc_domain; + mine.shared.meta.matrix-synapse = { name = "Matrix Synapse"; description = "We host our own Matrix homeserver using Synapse! Login using your favourite which supports OpenID.";