From deb236c834d1d1d8da763054e7e7bc9bacf495a8 Mon Sep 17 00:00:00 2001 From: pinpox Date: Thu, 31 Jul 2025 14:38:19 +0200 Subject: [PATCH] services/jitsi: Add missing dependency To be able to use jitsi's breakout rooms (`muc_breaktout_rooms`), prosody needs to include the `cjson` lua dependency. --- .../modules/services/web-apps/jitsi-meet.nix | 46 +++++++++++-------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/nixos/modules/services/web-apps/jitsi-meet.nix b/nixos/modules/services/web-apps/jitsi-meet.nix index fa9ea8e698c6..0d55f5e31b70 100644 --- a/nixos/modules/services/web-apps/jitsi-meet.nix +++ b/nixos/modules/services/web-apps/jitsi-meet.nix @@ -8,6 +8,7 @@ with lib; let + cfg = config.services.jitsi-meet; # The configuration files are JS of format "var <> = <>;". In order to @@ -231,6 +232,14 @@ in config = mkIf cfg.enable { services.prosody = mkIf cfg.prosody.enable { + + # required for muc_breakout_rooms + package = lib.mkDefault ( + config.services.prosody.package.override { + withExtraLuaPackages = p: with p; [ cjson ]; + } + ); + enable = mkDefault true; xmppComplianceSuite = mkDefault false; modules = { @@ -419,6 +428,7 @@ in cfg.videobridge.passwordFile else "/var/lib/jitsi-meet/videobridge-secret"; + in '' ${config.services.prosody.package}/bin/prosodyctl register focus auth.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jicofo-user-secret)" @@ -445,13 +455,12 @@ in systemd.services.jitsi-meet-init-secrets = { wantedBy = [ "multi-user.target" ]; - before = - [ - "jicofo.service" - "jitsi-videobridge2.service" - ] - ++ (optional cfg.prosody.enable "prosody.service") - ++ (optional cfg.jigasi.enable "jigasi.service"); + before = [ + "jicofo.service" + "jitsi-videobridge2.service" + ] + ++ (optional cfg.prosody.enable "prosody.service") + ++ (optional cfg.jigasi.enable "jigasi.service"); serviceConfig = { Type = "oneshot"; UMask = "027"; @@ -462,18 +471,17 @@ in script = let - secrets = - [ - "jicofo-component-secret" - "jicofo-user-secret" - "jibri-auth-secret" - "jibri-recorder-secret" - ] - ++ (optionals cfg.jigasi.enable [ - "jigasi-user-secret" - "jigasi-component-secret" - ]) - ++ (optional (cfg.videobridge.passwordFile == null) "videobridge-secret"); + secrets = [ + "jicofo-component-secret" + "jicofo-user-secret" + "jibri-auth-secret" + "jibri-recorder-secret" + ] + ++ (optionals cfg.jigasi.enable [ + "jigasi-user-secret" + "jigasi-component-secret" + ]) + ++ (optional (cfg.videobridge.passwordFile == null) "videobridge-secret"); in '' ${concatMapStringsSep "\n" (s: ''