Loading nixos/modules/services/web-apps/jitsi-meet.nix +33 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,13 @@ in off if you want to configure it manually. ''; }; excalidraw.enable = mkEnableOption (lib.mdDoc "Excalidraw collaboration backend for Jitsi"); excalidraw.port = mkOption { type = types.port; default = 3002; description = lib.mdDoc ''The port which the Excalidraw backend for Jitsi should listen to.''; }; }; config = mkIf cfg.enable { Loading Loading @@ -246,6 +253,7 @@ in "muc_rate_limit" "limits_exception" "persistent_lobby" "room_metadata" ]; extraPluginPaths = [ "${pkgs.jitsi-meet-prosody}/share/prosody-plugins" ]; extraConfig = lib.mkMerge [ Loading Loading @@ -393,6 +401,20 @@ in ''; }; systemd.services.jitsi-excalidraw = mkIf cfg.excalidraw.enable { description = "Excalidraw collaboration backend for Jitsi"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; environment.PORT = toString cfg.excalidraw.port; serviceConfig = { Type = "simple"; ExecStart = "${pkgs.jitsi-excalidraw}/bin/jitsi-excalidraw-backend"; Restart = "on-failure"; Group = "jitsi-meet"; }; }; services.nginx = mkIf cfg.nginx.enable { enable = mkDefault true; virtualHosts.${cfg.hostName} = { Loading Loading @@ -434,6 +456,10 @@ in locations."=/interface_config.js" = mkDefault { alias = overrideJs "${pkgs.jitsi-meet}/interface_config.js" "interfaceConfig" cfg.interfaceConfig ""; }; locations."/socket.io/" = mkIf cfg.excalidraw.enable { proxyPass = "http://127.0.0.1:${toString cfg.excalidraw.port}"; proxyWebsockets = true; }; }; }; Loading Loading @@ -473,6 +499,13 @@ in }; }; services.jitsi-meet.config = mkIf cfg.excalidraw.enable { whiteboard = { enabled = true; collabServerBaseUrl = "https://${cfg.hostName}"; }; }; services.jitsi-videobridge = mkIf cfg.videobridge.enable { enable = true; xmppConfigs."localhost" = { Loading Loading
nixos/modules/services/web-apps/jitsi-meet.nix +33 −0 Original line number Diff line number Diff line Loading @@ -169,6 +169,13 @@ in off if you want to configure it manually. ''; }; excalidraw.enable = mkEnableOption (lib.mdDoc "Excalidraw collaboration backend for Jitsi"); excalidraw.port = mkOption { type = types.port; default = 3002; description = lib.mdDoc ''The port which the Excalidraw backend for Jitsi should listen to.''; }; }; config = mkIf cfg.enable { Loading Loading @@ -246,6 +253,7 @@ in "muc_rate_limit" "limits_exception" "persistent_lobby" "room_metadata" ]; extraPluginPaths = [ "${pkgs.jitsi-meet-prosody}/share/prosody-plugins" ]; extraConfig = lib.mkMerge [ Loading Loading @@ -393,6 +401,20 @@ in ''; }; systemd.services.jitsi-excalidraw = mkIf cfg.excalidraw.enable { description = "Excalidraw collaboration backend for Jitsi"; after = [ "network.target" ]; wantedBy = [ "multi-user.target" ]; environment.PORT = toString cfg.excalidraw.port; serviceConfig = { Type = "simple"; ExecStart = "${pkgs.jitsi-excalidraw}/bin/jitsi-excalidraw-backend"; Restart = "on-failure"; Group = "jitsi-meet"; }; }; services.nginx = mkIf cfg.nginx.enable { enable = mkDefault true; virtualHosts.${cfg.hostName} = { Loading Loading @@ -434,6 +456,10 @@ in locations."=/interface_config.js" = mkDefault { alias = overrideJs "${pkgs.jitsi-meet}/interface_config.js" "interfaceConfig" cfg.interfaceConfig ""; }; locations."/socket.io/" = mkIf cfg.excalidraw.enable { proxyPass = "http://127.0.0.1:${toString cfg.excalidraw.port}"; proxyWebsockets = true; }; }; }; Loading Loading @@ -473,6 +499,13 @@ in }; }; services.jitsi-meet.config = mkIf cfg.excalidraw.enable { whiteboard = { enabled = true; collabServerBaseUrl = "https://${cfg.hostName}"; }; }; services.jitsi-videobridge = mkIf cfg.videobridge.enable { enable = true; xmppConfigs."localhost" = { Loading