services.jicofo.enable

Whether to enable Jitsi Conference Focus - component of Jitsi Meet.

type

boolean

example

{
  services.jicofo.enable = true;
}

default

{
  services.jicofo.enable = false;
}

services.jicofo.bridgeMuc

JID of the internal MUC used to communicate with Videobridges.

type

string

example

{
  services.jicofo.bridgeMuc = "jvbbrewery@internal.meet.example.org";
}

services.jicofo.componentPasswordFile

Path to file containing component secret.

type

string

example

{
  services.jicofo.componentPasswordFile = "/run/keys/jicofo-component";
}

services.jicofo.config

Contents of the sip-communicator.properties configuration file for jicofo.

type

attribute set of string

example

{
  services.jicofo.config = {
    _type = "literalExpression";
    text = ''
      {
        "org.jitsi.jicofo.auth.URL" = "XMPP:jitsi-meet.example.com";
      }
      
    '';
  };
}

default

{
  services.jicofo.config = {};
}

services.jicofo.userDomain

Domain part of the JID for XMPP user connection.

type

string

example

{
  services.jicofo.userDomain = "auth.meet.example.org";
}

services.jicofo.userName

User part of the JID for XMPP user connection.

type

string

default

{
  services.jicofo.userName = "focus";
}

services.jicofo.userPasswordFile

Path to file containing password for XMPP user connection.

type

string

example

{
  services.jicofo.userPasswordFile = "/run/keys/jicofo-user";
}

services.jicofo.xmppDomain

Domain name of the XMMP server to which to connect as a component.

If null, is used.

type

null or string

example

{
  services.jicofo.xmppDomain = "meet.example.org";
}

services.jicofo.xmppHost

Hostname of the XMPP server to connect to.

type

string

example

{
  services.jicofo.xmppHost = "localhost";
}

services.jitsi-meet.enable

Whether to enable Jitsi Meet - Secure, Simple and Scalable Video Conferences.

type

boolean

example

{
  services.jitsi-meet.enable = true;
}

default

{
  services.jitsi-meet.enable = false;
}

services.jitsi-meet.config

Client-side web application settings that override the defaults in config.js.

See for default configuration with comments.

type

attribute set

example

{
  services.jitsi-meet.config = {
    _type = "literalExpression";
    text = ''
      {
        enableWelcomePage = false;
        defaultLang = "fi";
      }
      
    '';
  };
}

default

{
  services.jitsi-meet.config = {};
}

services.jitsi-meet.extraConfig

Text to append to config.js web application config file.

Can be used to insert JavaScript logic to determine user's region in cascading bridges setup.

type

strings concatenated with "\n"

default

{
  services.jitsi-meet.extraConfig = "";
}

services.jitsi-meet.hostName

Hostname of the Jitsi Meet instance.

type

string

example

{
  services.jitsi-meet.hostName = "meet.example.org";
}

services.jitsi-meet.interfaceConfig

Client-side web-app interface settings that override the defaults in interface_config.js.

See for default configuration with comments.

type

attribute set

example

{
  services.jitsi-meet.interfaceConfig = {
    _type = "literalExpression";
    text = ''
      {
        SHOW_JITSI_WATERMARK = false;
        SHOW_WATERMARK_FOR_GUESTS = false;
      }
      
    '';
  };
}

default

{
  services.jitsi-meet.interfaceConfig = {};
}

services.jitsi-meet.jicofo.enable

Whether to enable JiCoFo instance and configure it to connect to Prosody.

Additional configuration is possible with .

type

boolean

default

{
  services.jitsi-meet.jicofo.enable = true;
}

services.jitsi-meet.nginx.enable

Whether to enable nginx virtual host that will serve the javascript application and act as a proxy for the XMPP server. Further nginx configuration can be done by adapting

. It is highly recommended to enable the and options: services.nginx.virtualHosts.${config.services.jitsi-meet.hostName} = { enableACME = true; forceSSL = true; };

type

boolean

default

{
  services.jitsi-meet.nginx.enable = true;
}

services.jitsi-meet.prosody.enable

Whether to configure Prosody to relay XMPP messages between Jitsi Meet components. Turn this off if you want to configure it manually.

type

boolean

default

{
  services.jitsi-meet.prosody.enable = true;
}

services.jitsi-meet.videobridge.enable

Whether to enable Jitsi Videobridge instance and configure it to connect to Prosody.

Additional configuration is possible with .

type

boolean

default

{
  services.jitsi-meet.videobridge.enable = true;
}

services.jitsi-meet.videobridge.passwordFile

File containing password to the Prosody account for videobridge.

If null, a file with password will be generated automatically. Setting this option is useful if you plan to connect additional videobridges to the XMPP server.

type

null or string

example

{
  services.jitsi-meet.videobridge.passwordFile = "/run/keys/videobridge";
}

default

{
  services.jitsi-meet.videobridge.passwordFile = null;
}

services.jitsi-videobridge.enable

Whether to enable Jitsi Videobridge, a WebRTC compatible video router.

type

boolean

example

{
  services.jitsi-videobridge.enable = true;
}

default

{
  services.jitsi-videobridge.enable = false;
}

services.jitsi-videobridge.config

Videobridge configuration.

See for default configuration with comments.

type

attribute set

example

{
  services.jitsi-videobridge.config = {
    _type = "literalExpression";
    text = ''
      {
        videobridge = {
          ice.udp.port = 5000;
          websockets = {
            enabled = true;
            server-id = "jvb1";
          };
        };
      }
      
    '';
  };
}

default

{
  services.jitsi-videobridge.config = {};
}

services.jitsi-videobridge.extraProperties

Additional Java properties passed to jitsi-videobridge.

type

attribute set of string

default

{
  services.jitsi-videobridge.extraProperties = {};
}

services.jitsi-videobridge.nat.localAddress

Local address when running behind NAT.

type

null or string

example

{
  services.jitsi-videobridge.nat.localAddress = "192.168.1.42";
}

default

{
  services.jitsi-videobridge.nat.localAddress = null;
}

services.jitsi-videobridge.nat.publicAddress

Public address when running behind NAT.

type

null or string

example

{
  services.jitsi-videobridge.nat.publicAddress = "1.2.3.4";
}

default

{
  services.jitsi-videobridge.nat.publicAddress = null;
}

services.jitsi-videobridge.openFirewall

Whether to open ports in the firewall for the videobridge.

type

boolean

default

{
  services.jitsi-videobridge.openFirewall = false;
}

services.jitsi-videobridge.xmppConfigs

XMPP servers to connect to.

See for more information.

type

attribute set of submodule

example

{
  services.jitsi-videobridge.xmppConfigs = {
    _type = "literalExpression";
    text = ''
      {
        "localhost" = {
          hostName = "localhost";
          userName = "jvb";
          domain = "auth.xmpp.example.org";
          passwordFile = "/var/lib/jitsi-meet/videobridge-secret";
          mucJids = "jvbbrewery@internal.xmpp.example.org";
        };
      }
      
    '';
  };
}

default

{
  services.jitsi-videobridge.xmppConfigs = {};
}

services.jitsi-videobridge.xmppConfigs.<name>.disableCertificateVerification

Whether to skip validation of the server's certificate.

type

boolean

default

{
  services.jitsi-videobridge.xmppConfigs.<name>.disableCertificateVerification = false;
}

services.jitsi-videobridge.xmppConfigs.<name>.domain

Domain part of JID of the XMPP user, if it is different from hostName.

type

null or string

example

{
  services.jitsi-videobridge.xmppConfigs.<name>.domain = "auth.xmpp.example.org";
}

default

{
  services.jitsi-videobridge.xmppConfigs.<name>.domain = null;
}

services.jitsi-videobridge.xmppConfigs.<name>.hostName

Hostname of the XMPP server to connect to. Name of the attribute set is used by default.

type

string

example

{
  services.jitsi-videobridge.xmppConfigs.<name>.hostName = "xmpp.example.org";
}

services.jitsi-videobridge.xmppConfigs.<name>.mucJids

JID of the MUC to join. JiCoFo needs to be configured to join the same MUC.

type

string

example

{
  services.jitsi-videobridge.xmppConfigs.<name>.mucJids = "jvbbrewery@internal.xmpp.example.org";
}

services.jitsi-videobridge.xmppConfigs.<name>.mucNickname

Videobridges use the same XMPP account and need to be distinguished by the nickname (aka resource part of the JID). By default, system hostname is used.

type

string

services.jitsi-videobridge.xmppConfigs.<name>.passwordFile

File containing the password for the user.

type

string

example

{
  services.jitsi-videobridge.xmppConfigs.<name>.passwordFile = "/run/keys/jitsi-videobridge-xmpp1";
}

services.jitsi-videobridge.xmppConfigs.<name>.userName

User part of the JID.

type

string

default

{
  services.jitsi-videobridge.xmppConfigs.<name>.userName = "jvb";
}