diff --git a/nixos/module/hectic/service/element-rtc.nix b/nixos/module/hectic/service/element-rtc.nix index 867182e..c5ec333 100644 --- a/nixos/module/hectic/service/element-rtc.nix +++ b/nixos/module/hectic/service/element-rtc.nix @@ -9,9 +9,15 @@ config, ... }: let - cfg = config.hectic.services.matrix; + legacyCfg = config.hectic.services.matrix; + clusterCfg = config.hectic.generic.matrix-cluster; + clusterSynapseEnabled = + clusterCfg.enable + && (if clusterCfg.overrideEnableSynapse != null then clusterCfg.overrideEnableSynapse else clusterCfg.role == "primary"); + enabled = legacyCfg.enable || clusterSynapseEnabled; + matrixDomain = if legacyCfg.enable then legacyCfg.matrixDomain else clusterCfg.matrixDomain; in { - config = lib.mkIf cfg.enable (let + config = lib.mkIf enabled (let keyFile = "/run/livekit.key"; in { services.livekit = { @@ -23,7 +29,7 @@ in { services.lk-jwt-service = { enable = true; - livekitUrl = "wss://${cfg.matrixDomain}/livekit/sfu"; + livekitUrl = "wss://${matrixDomain}/livekit/sfu"; inherit keyFile; }; @@ -40,11 +46,11 @@ in { }; systemd.services.lk-jwt-service.environment.LIVEKIT_FULL_ACCESS_HOMESERVERS = - cfg.matrixDomain; + matrixDomain; services.nginx = { enable = true; - virtualHosts.${cfg.matrixDomain} = { + virtualHosts.${matrixDomain} = { forceSSL = true; enableACME = true; @@ -57,18 +63,18 @@ in { ''; return = ''200 '{ "m.homeserver": { - "base_url": "https://${cfg.matrixDomain}" + "base_url": "https://${matrixDomain}" }, "m.identity_server": { "base_url": "https://vector.im" }, "org.matrix.msc3575.proxy": { - "url": "https://${cfg.matrixDomain}" + "url": "https://${matrixDomain}" }, "org.matrix.msc4143.rtc_foci": [ { "type": "livekit", - "livekit_service_url": "https://${cfg.matrixDomain}/livekit/jwt" + "livekit_service_url": "https://${matrixDomain}/livekit/jwt" } ] }' ''; diff --git a/nixos/module/hectic/service/element.nix b/nixos/module/hectic/service/element.nix index c56042c..21cc532 100644 --- a/nixos/module/hectic/service/element.nix +++ b/nixos/module/hectic/service/element.nix @@ -9,23 +9,29 @@ config, ... }: let - cfg = config.hectic.services.matrix; + legacyCfg = config.hectic.services.matrix; + clusterCfg = config.hectic.generic.matrix-cluster; + clusterSynapseEnabled = + clusterCfg.enable + && (if clusterCfg.overrideEnableSynapse != null then clusterCfg.overrideEnableSynapse else clusterCfg.role == "primary"); + enabled = legacyCfg.enable || clusterSynapseEnabled; + matrixDomain = if legacyCfg.enable then legacyCfg.matrixDomain else clusterCfg.matrixDomain; in { - config = lib.mkIf cfg.enable { - services.nginx.virtualHosts."element.${cfg.matrixDomain}" = { + config = lib.mkIf enabled { + services.nginx.virtualHosts."element.${matrixDomain}" = { enableACME = true; forceSSL = true; root = pkgs.element-web.override { conf = { default_server_config = { - "m.homeserver".base_url = "https://${cfg.matrixDomain}"; - "m.homeserver".server_name = cfg.matrixDomain; + "m.homeserver".base_url = "https://${matrixDomain}"; + "m.homeserver".server_name = matrixDomain; "m.identity_server".base_url = "https://vector.im"; }; room_directory.servers = [ - cfg.matrixDomain + matrixDomain ]; default_theme = "dark";