about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--hosts/by-name/server2/configuration.nix4
-rw-r--r--modules/by-name/ji/jitsi-meet/module.nix108
-rw-r--r--tests/by-name/ji/jitsi-meet/test.nix103
3 files changed, 0 insertions, 215 deletions
diff --git a/hosts/by-name/server2/configuration.nix b/hosts/by-name/server2/configuration.nix
index a492aed..65e3b24 100644
--- a/hosts/by-name/server2/configuration.nix
+++ b/hosts/by-name/server2/configuration.nix
@@ -57,10 +57,6 @@
         "invidious-router.sils.li"
       ];
     };
-    jitsi-meet = {
-      enable = true;
-      domain = "jitsi-meet.vhack.eu";
-    };
     mail = {
       enable = true;
       fqdn = "mail.foss-syndicate.org";
diff --git a/modules/by-name/ji/jitsi-meet/module.nix b/modules/by-name/ji/jitsi-meet/module.nix
deleted file mode 100644
index d5844be..0000000
--- a/modules/by-name/ji/jitsi-meet/module.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-{
-  config,
-  lib,
-  ...
-}: let
-  cfg = config.vhack.jitsi-meet;
-in {
-  options.vhack.jitsi-meet = {
-    enable = lib.mkEnableOption "jitsi-meet";
-
-    domain = lib.mkOption {
-      type = lib.types.str;
-      description = "The domain jitsi-meet should be served on.";
-    };
-  };
-
-  config = lib.mkIf cfg.enable {
-    nixpkgs.config.permittedInsecurePackages = [
-      # Jitsi uses libolm for E2EE, which is no longer maintained upstream by the element
-      # team (as they switch to a rust new based crypto library.)
-      #
-      # libolm has two CVEs about timing based side-channel attacks in their crypt
-      # primitives. This is not ideal, but it has not (yet) been exploited in the wild and
-      # upstream (i.e. the matrix/element team) claims, that the CVEs are very difficult to
-      # exploit (they have been know _long_ before element switched to the rust version).
-      #
-      # Considering the lack of deployable video conferencing alternatives, the active
-      # interest in upstream to resolve this issue [1] and the fact, that we are unlikely
-      # to be attacked via a target attack, permitting this package seems viable.
-      #
-      # [1]: https://github.com/jitsi/jitsi-meet/issues/15107
-      "jitsi-meet-1.0.8043"
-    ];
-
-    services = {
-      nginx.virtualHosts.${cfg.domain} = {
-        enableACME = true;
-        forceSSL = true;
-      };
-
-      jitsi-meet = {
-        enable = true;
-        hostName = cfg.domain;
-
-        nginx.enable = true;
-
-        config = {
-          enableWelcomePage = true;
-          requireDisplayName = true;
-          analytics.disabled = true;
-
-          # Don't try to GET gravata stuff.
-          disableThirdPartyRequests = true;
-
-          # Avoids a heavy load on conference start.
-          startAudioOnly = true;
-
-          # Only transmit the last four members.
-          channelLastN = 4;
-
-          constraints.video.height = {
-            ideal = 720;
-            max = 1080;
-            min = 240;
-          };
-
-          remoteVideoMenu.disabled = false;
-          breakoutRooms.hideAddRoomButton = false;
-          maxFullResolutionParticipants = 1;
-
-          prejoinPageEnabled = true;
-          defaultLang = "sv";
-        };
-
-        interfaceConfig = {
-          GENERATE_ROOMNAMES_ON_WELCOME_PAGE = false;
-          DISABLE_PRESENCE_STATUS = true;
-
-          SHOW_CHROME_EXTENSION_BANNER = false;
-
-          # The default google play android apps comes with trackers.
-          MOBILE_DOWNLOAD_LINK_ANDROID = "https://f-droid.org/en/packages/org.jitsi.meet/";
-
-          # Don't try to promote the mobile app.
-          MOBILE_APP_PROMO = false;
-
-          SHOW_JITSI_WATERMARK = false;
-          SHOW_WATERMARK_FOR_GUESTS = false;
-        };
-
-        prosody = {
-          enable = true;
-
-          # We only use prosody for jitsi XMPP communication, and therefore can remove support
-          # for general XMPP server stuff.
-          lockdown = true;
-        };
-      };
-
-      jitsi-videobridge = {
-        openFirewall = true;
-        config.videobridge = {
-          cc.assumed-bandwidth-limit = "1000 Mbps";
-        };
-      };
-    };
-  };
-}
diff --git a/tests/by-name/ji/jitsi-meet/test.nix b/tests/by-name/ji/jitsi-meet/test.nix
deleted file mode 100644
index 76d8539..0000000
--- a/tests/by-name/ji/jitsi-meet/test.nix
+++ /dev/null
@@ -1,103 +0,0 @@
-{
-  nixos-lib,
-  pkgsUnstable,
-  nixpkgs-unstable,
-  vhackPackages,
-  pkgs,
-  extraModules,
-  nixLib,
-  ...
-}:
-nixos-lib.runTest {
-  hostPkgs = pkgs;
-
-  name = "jitsi-meet";
-
-  node = {
-    specialArgs = {inherit pkgsUnstable extraModules vhackPackages nixpkgs-unstable nixLib;};
-
-    # Use the nixpkgs as constructed by the `nixpkgs.*` options
-    pkgs = null;
-  };
-
-  nodes = {
-    acme = {...}: {
-      imports = [
-        ../../../common/acme/server.nix
-        ../../../common/dns/client.nix
-      ];
-    };
-    name_server = {nodes, ...}: {
-      imports =
-        extraModules
-        ++ [
-          ../../../common/acme/client.nix
-          ../../../common/dns/server.nix
-        ];
-
-      vhack.dns.zones = {
-        "jitsi-meet.server" = {
-          SOA = {
-            nameServer = "ns";
-            adminEmail = "admin@server.com";
-            serial = 2025012301;
-          };
-          useOrigin = false;
-
-          A = [
-            nodes.server.networking.primaryIPAddress
-          ];
-          AAAA = [
-            nodes.server.networking.primaryIPv6Address
-          ];
-        };
-      };
-    };
-
-    server = {config, ...}: {
-      imports =
-        extraModules
-        ++ [
-          ../../../../modules
-          ../../../common/acme/client.nix
-          ../../../common/dns/client.nix
-        ];
-
-      vhack = {
-        nginx.enable = true;
-        jitsi-meet = {
-          enable = true;
-          domain = "jitsi-meet.server";
-        };
-      };
-    };
-
-    client = {...}: {
-      imports = [
-        ../../../common/acme/client.nix
-        ../../../common/dns/client.nix
-      ];
-    };
-  };
-
-  testScript = {nodes, ...}: let
-    acme = import ../../../common/acme {inherit pkgs;};
-  in
-    acme.prepare ["server" "client"]
-    # Python
-    ''
-      server.wait_for_unit("jitsi-videobridge.service")
-      server.wait_for_unit("jitsi-videobridge2.service")
-
-      with subtest("All services running"):
-        import json
-        def all_services_running(host):
-          (status, output) = host.systemctl("list-units --state=failed --plain --no-pager --output=json")
-          host_failed = json.loads(output)
-          assert len(host_failed) == 0, f"Expected zero failing services, but found: {json.dumps(host_failed, indent=4)}"
-        all_services_running(server)
-
-      client.wait_until_succeeds("curl --silent https://jitsi-meet.server")
-      client.succeed("curl --silent https://jitsi-meet.server | grep 'Join a WebRTC video conference'")
-    '';
-}