nixos/jibri: init at 8.0-93-g51fe7a2

This module was written by @puckipedia for nixcon-video-infra 2020.
Minor changes made by @cleeyv for compat with existing jibri package.
Co-authored-by: Puck Meerburg <puck@puck.moe>

Cleeyv 3473cff4 c6c77e81

Changed files
+50 -6
nixos
modules
+1
nixos/modules/module-list.nix
···
./services/networking/iscsi/root-initiator.nix
./services/networking/iscsi/target.nix
./services/networking/iwd.nix
+
./services/networking/jibri/default.nix
./services/networking/jicofo.nix
./services/networking/jitsi-videobridge.nix
./services/networking/kea.nix
+17 -6
nixos/modules/services/networking/jibri/default.nix
···
recording = {
recordings-directory = "/tmp/recordings";
+
<<<<<<< HEAD
finalize-script = "${cfg.finalizeScript}";
+
=======
+
finalize-script = "/path/to/finalize"; # TODO(puck): replace with actual noop default
+
>>>>>>> a1dc2ddd630 (nixos/jibri: init at 8.0-93-g51fe7a2)
};
streaming.rtmp-allow-list = [ ".*" ];
···
'';
};
+
=======
+
>>>>>>> a1dc2ddd630 (nixos/jibri: init at 8.0-93-g51fe7a2)
xmppEnvironments = mkOption {
description = ''
XMPP servers to connect to.
···
config = mkIf cfg.enable {
users.groups.jibri = { };
+
users.groups.plugdev = { };
users.users.jibri = {
isSystemUser = true;
group = "jibri";
···
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
-
path = [ pkgs.chromedriver pkgs.chromium pkgs.ffmpeg-full ];
+
path = with pkgs; [ chromedriver chromium ffmpeg-full ];
script = (concatStrings (mapAttrsToList
(name: env: ''
···
'')
cfg.xmppEnvironments))
+ ''
+
<<<<<<< HEAD
${pkgs.jre8_headless}/bin/java -Djava.util.logging.config.file=${./logging.properties-journal} -Dconfig.file=${configFile} -jar ${pkgs.jibri}/opt/jitsi/jibri/jibri.jar --config /var/lib/jibri/jibri.json
+
=======
+
${pkgs.jre_headless}/bin/java -Djava.util.logging.config.file=${./logging.properties-journal} -Dconfig.file=${configFile} -jar ${pkgs.jibri}/opt/jitsi/jibri/jibri.jar --config /var/lib/jibri/jibri.json
+
>>>>>>> a1dc2ddd630 (nixos/jibri: init at 8.0-93-g51fe7a2)
'';
environment.HOME = "/var/lib/jibri";
···
};
};
-
systemd.tmpfiles.rules =
-
[
-
"d /var/log/jitsi/jibri 755 jibri"
-
];
+
systemd.tmpfiles.rules = [
+
"d /var/log/jitsi/jibri 755 jibri jibri"
+
];
# Configure Chromium to not show the "Chrome is being controlled by automatic test software" message.
environment.etc."chromium/policies/managed/managed_policies.json".text = builtins.toJSON { CommandLineFlagSecurityWarningsEnabled = false; };
+
warnings = [ "All security warnings for Chromium have been disabled. This is necessary for Jibri, but it also impacts all other uses of Chromium on this system." ];
boot = {
extraModprobeConfig = ''
···
};
};
-
meta.maintainers = with lib.maintainers; [ ];
+
meta.maintainers = lib.teams.jitsi.members;
}
+32
nixos/modules/services/networking/jibri/logging.properties-journal
···
+
handlers = java.util.logging.FileHandler
+
+
java.util.logging.FileHandler.level = FINE
+
java.util.logging.FileHandler.pattern = /var/log/jitsi/jibri/log.%g.txt
+
java.util.logging.FileHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+
java.util.logging.FileHandler.count = 10
+
java.util.logging.FileHandler.limit = 10000000
+
+
org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.level = FINE
+
org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.pattern = /var/log/jitsi/jibri/ffmpeg.%g.txt
+
org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+
org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.count = 10
+
org.jitsi.jibri.capture.ffmpeg.util.FfmpegFileHandler.limit = 10000000
+
+
org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.level = FINE
+
org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.pattern = /var/log/jitsi/jibri/pjsua.%g.txt
+
org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+
org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.count = 10
+
org.jitsi.jibri.sipgateway.pjsua.util.PjsuaFileHandler.limit = 10000000
+
+
org.jitsi.jibri.selenium.util.BrowserFileHandler.level = FINE
+
org.jitsi.jibri.selenium.util.BrowserFileHandler.pattern = /var/log/jitsi/jibri/browser.%g.txt
+
org.jitsi.jibri.selenium.util.BrowserFileHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+
org.jitsi.jibri.selenium.util.BrowserFileHandler.count = 10
+
org.jitsi.jibri.selenium.util.BrowserFileHandler.limit = 10000000
+
+
org.jitsi.level = FINE
+
org.jitsi.jibri.config.level = INFO
+
+
org.glassfish.level = INFO
+
org.osgi.level = INFO
+
org.jitsi.xmpp.level = INFO