nixConfig/nixos/modules/jitsi.nix

62 lines
1.3 KiB
Nix
Raw Normal View History

2023-11-07 23:47:14 +00:00
{
config,
lib,
modulesPath,
...
}: let
inherit
(lib)
2023-10-23 15:43:13 +00:00
mkIf
mkEnableOption
mkOption
2023-11-07 23:47:14 +00:00
head
;
2023-10-23 15:43:13 +00:00
inherit (lib.types) str;
cfg = config.services.mathebau-jitsi;
2023-11-07 23:47:14 +00:00
in {
2023-10-23 15:43:13 +00:00
imports = [(modulesPath + "/services/web-apps/jitsi-meet.nix")];
2023-11-07 23:47:14 +00:00
2023-10-23 15:43:13 +00:00
options.services.mathebau-jitsi = {
enable = mkEnableOption "mathebau jitsi service";
hostName = mkOption {
type = str;
};
localAddress = mkOption {
type = str;
default = (head config.networking.interfaces.enX0.ipv4.addresses).address;
};
};
config = mkIf cfg.enable {
2023-11-07 23:47:14 +00:00
services = {
jitsi-meet = {
enable = true;
config = {
defaultLang = "de";
};
inherit (cfg) hostName;
2023-10-23 15:43:13 +00:00
};
2023-11-07 23:47:14 +00:00
jitsi-videobridge = {
openFirewall = true;
nat = {
publicAddress = "130.83.2.184";
inherit (cfg) localAddress;
};
};
#We are behind a reverse proxy that handles TLS
nginx.virtualHosts."${cfg.hostName}" = {
enableACME = false;
forceSSL = false;
2023-10-23 15:43:13 +00:00
};
};
environment.persistence.${config.impermanence.name} = {
directories = [
"/var/lib/jitsi-meet"
"/var/lib/prosody"
];
};
2023-11-07 23:47:14 +00:00
#The network ports for HTTP(S) are not opened automatically
networking.firewall.allowedTCPPorts = [80 443];
2023-10-23 15:43:13 +00:00
};
}