Jitsi Meet (Nomad)

Overview

This is a complete jitsi-meet installation in one jail that can be started with pot but it can also be deployed via nomad.

The jail configures itself on the first start for your environment (see notes below), for details about how to run jitsi-meet in a FreeBSD jail in general, see this blog post.

NGINX is started as blocking task when the jail is started, all other services are started as services.

Deploying the image or flavour should be quite straight forward and not take more than a few minutes.

Installation

  • Create your local jail from the image or the flavour files as with every other jail (see documentation below).
  • Adjust to your environment: pot set-env -p <yourjailname> -E DOMAINNAME=<yourdomain> -E PUBLICIP=<yourpublicip> -E PRIVATEIP=<yourpotip>
    • <yourjailname> is the name of the newly created/imported jail, e.g. jitsi-meet-nomad-fbsd-amd64-12_1_0_9
    • <yourdomain> should be the FQDN of your server that users can connect to in their web browser, e.g. jitsi.honeyguide.net
    • <yourpublicip> is the public IP address associated with the server behind this domain name
    • <yourpotip> is the IP address that has been created by ‘‘‘pot’’’ when importing/creating the jail (see the output of pot import or pot create, e.g. 10.192.0.3.
  • Forward the needed ports: pot export-ports -p <yourjailname> -e 80:80 -e 443:443 -e 10000:10000 -e 4443:4443 with <yourjailname> again being the name of your newly created/imported jail.
  • Start the pot: pot start <yourjailname>. On the first run the jail will configure itself and start the services.
    If it would not be for the following one workaround step, you could now use your video conference platform.

Workaround for missing UDP port forwarding: pot at the moment only forwards TCP ports, not UDP ports. Therefore you need to fix the port forward each time you start the jail manually with a command like this:

echo "
rdr pass on em0 inet proto tcp from any to <yourhostip> port = http -> <yourpotip> port 80
rdr pass on em0 inet proto tcp from any to <yourhostip> port = https -> <yourpotip>  port 443
rdr pass on em0 inet proto udp from any to <yourhostip> port = 10000 -> <yourpotip>  port 10000
rdr pass on em0 inet proto tcp from any to <yourhostip> port = 4443 -> <yourpotip>  port 4443
" | pfctl -a pot-rdr/<yourjailname> -f -

<yourhostip> is the IP address users will connect to, <yourpotip> is the pot generated IP address (e.g. 10.192.0.3), <yourjailname> is the name you have given your jail.

For more details about nomadimages, see about potluck.

How To Use The Ready-Made Image

FreeBSD 12.1:
pot import -p jitsi-meet-nomad-amd64-12_1 -t 1.0 -U https://potluck.honeyguide.net/jitsi-meet-nomad

FreeBSD 11.4:
pot import -p jitsi-meet-nomad-amd64-11_4 -t 1.0 -U https://potluck.honeyguide.net/jitsi-meet-nomad

Note: Some images might require specific network configuration, double check the Overview-chapter at the top.

Alternatively: Create a Jail With This Flavour Yourself

1. Create Flavour Files

Create the following
/usr/local/etc/pot/flavours/jitsi-meet-nomad.sh
and
chmod ugo+x /usr/local/etc/pot/flavours/jitsi-meet-nomad.sh

#!/bin/sh

[ -w /etc/pkg/FreeBSD.conf ] && sed -i '' 's/quarterly/latest/' /etc/pkg/FreeBSD.conf
ASSUME_ALWAYS_YES=yes pkg bootstrap
touch /etc/rc.conf
sysrc sendmail_enable="NO"
sysrc jitsi_videobridge_enable="YES"
sysrc jitsi_videobridge_flags="--apis=rest,xmpp"
sysrc prosody_enable="YES"
sysrc jicofo_enable="YES"

# Install packages
pkg install -y acme.sh nginx prosody jicofo jitsi-meet jitsi-videobridge 
pkg clean -y

#
# Now generate the run command script
# It configures the system on the first run and then starts nginx as process
# On subsequent runs, it only starts nginx
# 
echo "
#/bin/sh
if [ -e /usr/local/etc/pot-is-configured ]
then
    /usr/local/etc/rc.d/jitsi-videobridge start
    /usr/local/etc/rc.d/prosody start
    /usr/local/etc/rc.d/jicofo start
    nginx -g 'daemon off;'
    exit 0
fi

#
# Check config variables are set
# DOMAINNAME needs to contain the public domain name of the jail (e.g jitsi.honeyguide.net)
# PUBLICIP needs to contain the public IP address used to reach the service (for NAT traversal)
#

if [ -z \${DOMAINNAME+x} ]; 
then 
    echo 'DOMAINNAME is unset'
    exit 1
fi

if [ -z \${PUBLICIP+x} ]; 
then 
    echo 'PUBLICIP is unset'
    exit 1
fi

if [ -z \${PRIVATEIP+x} ];
then
    echo 'PRIVATEIP is unset'
    exit 1
fi

# Generate a password for stitching up the various parts of the configuration
KEYPASSWORD=\"\$(dd if=/dev/urandom count=1 2> /dev/null | uuencode -m - | sed -ne 2p | cut -c-12)\"

#
# Set up software
#

# Set up prosody
echo \"

pidfile = \\\"/var/run/prosody/prosody.pid\\\"
interfaces = { \\\"127.0.0.1\\\" }
admins = { \\\"focus@auth.\$DOMAINNAME\\\" }

modules_enabled = {

        -- Generally required
                \\\"roster\\\"; -- Allow users to have a roster. Recommended ;)
                \\\"saslauth\\\"; -- Authentication for clients and servers. Recommended if you want to log in.
                \\\"tls\\\"; -- Add support for secure TLS on c2s/s2s connections
                \\\"dialback\\\";
                \\\"carbons\\\"; -- Keep multiple clients in sync
                \\\"pep\\\"; -- Enables users to publish their avatar, mood, activity, playing music and more
                \\\"private\\\"; -- Private XML storage (for room bookmarks, etc.)
                \\\"blocklist\\\"; -- Allow users to block communications with other users
                \\\"vcard4\\\"; -- User profiles (stored in PEP)
                \\\"vcard_legacy\\\"; -- Conversion between legacy vCard and PEP Avatar, vcard

        -- Nice to have
                \\\"version\\\"; -- Replies to server version requests
                \\\"uptime\\\"; -- Report how long server has been running
                \\\"time\\\"; -- Let others know the time here on this server
                \\\"ping\\\"; -- Replies to XMPP pings with pongs
                \\\"register\\\"; -- Allow users to register on this server using a client and change passwords
                --\\\"mam\\\"; -- Store messages in an archive and allow users to access it
                --\\\"csi_simple\\\"; -- Simple Mobile optimizations

        -- Admin interfaces
                \\\"admin_adhoc\\\"; -- Allows administration via an XMPP client that supports ad-hoc commands
                --\\\"admin_telnet\\\"; -- Opens telnet console interface on localhost port 5582

        -- HTTP modules
                --\\\"bosh\\\"; -- Enable BOSH clients, aka Jabber over HTTP
                --\\\"websocket\\\"; -- XMPP over WebSockets
                --\\\"http_files\\\"; -- Serve static files from a directory over HTTP

        -- Other specific functionality
                --\\\"limits\\\"; -- Enable bandwidth limiting for XMPP connections
                --\\\"groups\\\"; -- Shared roster support
                --\\\"server_contact_info\\\"; -- Publish contact information for this service
                --\\\"announce\\\"; -- Send announcement to all online users
                --\\\"welcome\\\"; -- Welcome users who register accounts
                --\\\"watchregistrations\\\"; -- Alert admins of registrations
                --\\\"motd\\\"; -- Send a message to users when they log in
                --\\\"legacyauth\\\"; -- Legacy authentication. Only used by some old clients and bots.
                --\\\"proxy65\\\"; -- Enables a file transfer proxy service which clients behind NAT can use
}


c2s_require_encryption = true


s2s_require_encryption = true


s2s_secure_auth = false


--s2s_insecure_domains = { \\\"insecure.example\\\" }


authentication = \\\"internal_hashed\\\"


archive_expires_after = \\\"1w\\\" -- Remove archived messages after 1 week

log = {
        info = \\\"prosody.log\\\"; 
        error = \\\"prosody.err\\\";
        -- \\\"*syslog\\\"; -- Uncomment this for logging to syslog
        -- \\\"*console\\\"; -- Log to the console, useful for debugging with daemonize=false
}

certificates = \\\"certs\\\"


VirtualHost \\\"\$DOMAINNAME\\\"
    authentication = \\\"anonymous\\\"
    ssl = {
        key = \\\"/var/db/prosody/\$DOMAINNAME.key\\\";
        certificate = \\\"/var/db/prosody/\$DOMAINNAME.crt\\\";
    }
    modules_enabled = {
        \\\"bosh\\\";
        \\\"pubsub\\\";
    }
    c2s_require_encryption = false

VirtualHost \\\"auth.\$DOMAINNAME\\\"
    ssl = {
        key = \\\"/var/db/prosody/auth.\$DOMAINNAME.key\\\";
        certificate = \\\"/var/db/prosody/auth.\$DOMAINNAME.crt\\\";
    }
    authentication = \\\"internal_plain\\\"

admins = { \\\"focus@auth.\$DOMAINNAME\\\" }

Component \\\"conference.\$DOMAINNAME\\\" \\\"muc\\\"
Component \\\"jitsi-videobridge.\$DOMAINNAME\\\"
    component_secret = \\\"\$KEYPASSWORD\\\"
Component \\\"focus.\$DOMAINNAME\\\"
    component_secret = \\\"\$KEYPASSWORD\\\"
\" > /usr/local/etc/prosody/prosody.cfg.lua

echo -ne '\n\n\n\n\n\n\n\n\n\n\n' | prosodyctl cert generate \$DOMAINNAME 
echo -ne '\n\n\n\n\n\n\n\n\n\n\n' | prosodyctl cert generate auth.\$DOMAINNAME 
prosodyctl register focus auth.\$DOMAINNAME \$KEYPASSWORD 

# Set up nginx
echo \"
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen 80 default_server;

        server_name _;

        return 301 https://\\\$host\\\$request_uri;
    }

    server {
        listen 0.0.0.0:443 ssl http2;
        ssl_certificate      /usr/local/etc/ssl/\$DOMAINNAME.cer;
        ssl_certificate_key  /usr/local/etc/ssl/\$DOMAINNAME.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        server_name \$DOMAINNAME;
        # set the root
        root /usr/local/www/jitsi-meet;
        index index.html;
        location ~ ^/([a-zA-Z0-9=\?]+)$ {
            rewrite ^/(.*)$ / break;
        }
        location / {
            ssi on;
        }
        # BOSH, Bidirectional-streams Over Synchronous HTTP
        # https://en.wikipedia.org/wiki/BOSH_(protocol)
        location /http-bind {
            proxy_pass      http://localhost:5280/http-bind;
            proxy_set_header X-Forwarded-For \\\$remote_addr;
            proxy_set_header Host \\\$http_host;
        }
        # external_api.js must be accessible from the root of the
        # installation for the electron version of Jitsi Meet to work
        # https://github.com/jitsi/jitsi-meet-electron
        location /external_api.js {
            alias /srv/jitsi-meet/libs/external_api.min.js;
        }
    }
}\" > /usr/local/etc/nginx/nginx.conf

# Set up jitsi-videobridge
echo \"
JVB_XMPP_HOST=localhost
JVB_XMPP_DOMAIN=\$DOMAINNAME
JVB_XMPP_PORT=5347
JVB_XMPP_SECRET=\$KEYPASSWORD

VIDEOBRIDGE_MAX_MEMORY=3072m
\" > /usr/local/etc/jitsi/videobridge/jitsi-videobridge.conf

echo \"
org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false
# The videobridge uses 443 by default with 4443 as a fallback, but since we're already
# running nginx on 443 in this example doc, we specify 4443 manually to avoid a race condition
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=\$PRIVATEIP
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=\$PUBLICIP

#
# For Grafana dashboard
#

# the callstats credentials
io.callstats.sdk.CallStats.appId=\"jistats\"
io.callstats.sdk.CallStats.keyId=\"jistats_\$KEYPASSWORD\"

# enable statistics and callstats statistics and the report interval
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_INTERVAL.callstats.io=30000
org.jitsi.videobridge.STATISTICS_TRANSPORT=callstats.io
\" > /usr/local/etc/jitsi/videobridge/sip-communicator.properties

# Set up jicofo
keytool -noprompt -keystore /usr/local/etc/jitsi/jicofo/truststore.jks -storepass \"\$KEYPASSWORD\" -importcert -alias prosody -file /var/db/prosody/auth.\$DOMAINNAME.crt

echo \"
JVB_XMPP_HOST=localhost
JVB_XMPP_DOMAIN=\$DOMAINNAME
JVB_XMPP_PORT=5347
JVB_XMPP_SECRET=\$KEYPASSWORD
JVB_XMPP_USER_DOMAIN=auth.\$DOMAINNAME
JVB_XMPP_USER_NAME=focus
JVB_XMPP_USER_SECRET=\$KEYPASSWORD

MAX_MEMORY=3072m
\" > /usr/local/etc/jitsi/jicofo/jicofo.conf

# Set up jitsi-meet
echo \"
/* eslint-disable no-unused-vars, no-var */

var config = {
    // Connection
    //

    hosts: {
        // XMPP domain.
        domain: '\$DOMAINNAME',


        bridge: 'jitsi-videobridge.\$DOMAINNAME',

        // Focus component domain. Defaults to focus.<domain>.
        focus: 'focus.\$DOMAINNAME',

        // XMPP MUC domain. FIXME: use XEP-0030 to discover it.
        muc: 'conference.\$DOMAINNAME'
    },

    // BOSH URL. FIXME: use XEP-0156 to discover it.
    bosh: '//\$DOMAINNAME/http-bind',

    // Websocket URL
    // websocket: 'wss://jitsi-meet.example.com/xmpp-websocket',

    // The name of client node advertised in XEP-0115 'c' stanza
    clientNode: 'http://jitsi.org/jitsimeet',

    // The real JID of focus participant - can be overridden here
    // focusUserJid: 'focus@auth.jitsi-meet.example.com',


    // Testing / experimental features.
    //

    testing: {
        // P2P test mode disables automatic switching to P2P when there are 2
        // participants in the conference.
        p2pTestMode: false

        // Enables the test specific features consumed by jitsi-meet-torture
        // testMode: false

        // Disables the auto-play behavior of *all* newly created video element.
        // This is useful when the client runs on a host with limited resources.
        // noAutoPlayVideo: false
    },

    // Disables ICE/UDP by filtering out local and remote UDP candidates in
    // signal
    // Disable measuring of audio levels.
    // disableAudioLevels: false,
    // audioLevelsInterval: 200,

    // Enabling this will run the lib-jitsi-meet no audio detection module which
    // will notify the user if the current selected microphone has no audio
    // input and will suggest another valid device if one is present.
    enableNoAudioDetection: true,

    // Enabling this will run the lib-jitsi-meet noise detection module which will
    // notify the user if there is noise, other than voice, coming from the current
    // selected microphone. The purpose it to let the user know that the input could
    // be potentially unpleasant for other meeting participants.
    enableNoisyMicDetection: true,

    // Start the conference in audio only mode (no video is being received nor
    // sent).
    // startAudioOnly: false,

    // Every participant after the Nth will start audio muted.
    // startAudioMuted: 10,

    // Start calls with audio muted. Unlike the option above, this one is only
    // applied locally. FIXME: having these 2 options is confusing.
    // startWithAudioMuted: false,

    // Enabling it (with #params) will disable local audio output of remote
    // participants and to enable it back a reload is needed.
    // startSilent: false

    // Video

    // Sets the preferred resolution (height) for local video. Defaults to 720.
    // resolution: 720,

    // w3c spec-compliant video constraints to use for video capture. Currently
    // used by browsers that return true from lib-jitsi-meet's
    // util#browser#usesNewGumFlow. The constraints are independent from
    // this config's resolution value. Defaults to requesting an ideal
    // resolution of 720p.

    // startVideoMuted: 10,

    // Start calls with video muted. Unlike the option above, this one is only
    // applied locally. FIXME: having these 2 options is confusing.
    // startWithVideoMuted: false,

    // If set to true, prefer to use the H.264 video codec (if supported).
    // Note that it's not recommended to do this because simulcast is not
    // supported when  using H.264. For 1-to-1 calls this setting is enabled by
    // default and can be toggled in the p2p section.
    // preferH264: true,

    // If set to true, disable H.264 video codec by stripping it out of the
    // SDP.
    // disableH264: false,

    // Desktop sharing

    // The ID of the jidesha extension for Chrome.
    desktopSharingChromeExtId: null,

    // Whether desktop sharing should be disabled on Chrome.
    // desktopSharingChromeDisabled: false,

    // The media sources to use when using screen sharing with the Chrome
    // extension.
    desktopSharingChromeSources: [ 'screen', 'window', 'tab' ],

    // Required version of Chrome extension
    desktopSharingChromeMinExtVersion: '0.1',

    // Whether desktop sharing should be disabled on Firefox.
    // desktopSharingFirefoxDisabled: false,

    // Optional desktop sharing frame rate options. Default value: min:5, max:5.
    // desktopSharingFrameRate: {
    //     min: 5,
    //     max: 5
    // },


    //     // A URL to redirect the user to, after authenticating
    //     // by default uses:
    //     // 'https://jitsi-meet.example.com/static/oauth.html'
    //     redirectURI:
    //          'https://jitsi-meet.example.com/subfolder/static/oauth.html'
    // },
    // When integrations like dropbox are enabled only that will be shown,
    // by enabling fileRecordingsServiceEnabled, we show both the integrations
    // and the generic recording service (its configuration and storage type
    // depends on jibri configuration)
    // fileRecordingsServiceEnabled: false,
    // Whether to show the possibility to share file recording with other people
    // (e.g. meeting participants), based on the actual implementation
    // on the backend.
    // fileRecordingsServiceSharingEnabled: false,

    // Whether to enable live streaming or not.
    liveStreamingEnabled: true,

    // Transcription (in interface_config,
    // subtitles and buttons can be configured)
    // transcribingEnabled: false,

    // Enables automatic turning on captions when recording is started
    // autoCaptionOnRecord: false,

    // Misc

    // Default value for the channel \\\"last N\\\" attribute. -1 for unlimited.
    channelLastN: -1,

    // Disables or enables RTX (RFC 4588) (defaults to false).
    // disableRtx: false,

    // Disables or enables TCC (the default is in Jicofo and set to true)
    // (draft-holmer-rmcat-transport-wide-cc-extensions-01). This setting
    // affects congestion control, it practically enables send-side bandwidth
    // estimations.
    // enableTcc: true,

    //
    // useIPv6: true,

    // Enables / disables a data communication channel with the Videobridge.
    // Values can be 'datachannel', 'websocket', true (treat it as
    // 'datachannel'), undefined (treat it as 'datachannel') and false (don't
    // open any channel).
    // openBridgeChannel: true,


    // UI
    //

    // Use display name as XMPP nickname.
    // useNicks: false,

    // Require users to always specify a display name.
    // requireDisplayName: true,

    // Whether to use a welcome page or not. In case it's false a random room
    // will be joined when no room is specified.
    enableWelcomePage: true,

    // Enabling the close page will ignore the welcome page redirection when
    // a call is hangup.
    // enableClosePage: false,

    // Disable hiding of remote thumbnails when in a 1-on-1 conference call.
    // disable1On1Mode: false,

    // Default language for the user interface.
    // defaultLanguage: 'en',

    // If true all users without a token will be considered guests and all users
    // with token will be considered non-guests. Only guests will be allowed to
    // edit their profile.
    enableUserRolesBasedOnToken: false,

    // Whether or not some features are checked based on token.
    // enableFeaturesBasedOnToken: false,

   
    // and microsoftApiApplicationClientID
    // enableCalendarIntegration: false,

    // Stats
    //

    // Whether to enable stats collection or not in the TraceablePeerConnection.
    // This can be useful for debugging purposes (post-processing/analysis of
    // the webrtc stats) as it is done in the jitsi-meet-torture bandwidth
    // estimation tests.
    // gatherStats: false,

    // The interval at which PeerConnection.getStats() is called. Defaults to 10000
    // pcStatsInterval: 10000,

    // To enable sending statistics to callstats.io you must provide the
    // Application ID and Secret.
    callStatsID: 'jistats',
    callStatsSecret: 'jistats_\$KEYPASSWORD',

    // enables sending participants display name to callstats
    // enableDisplayNameInStats: false,

    // enables sending participants email if available to callstats and other analytics
    // enableEmailInStats: false,

    // Privacy
    //

    // If third party requests are disabled, no other server will be contacted.
    // This means avatars will be locally generated and callstats integration
    // will not function.
    // disableThirdPartyRequests: false,


    // Peer-To-Peer mode: used (if enabled) when there are just 2 participants.
    //

    p2p: {
        // Enables peer to peer mode. When enabled the system will try to
        // establish a direc
        // useStunTurn: true,

        // The STUN servers that will be used in the peer to peer connections
        stunServers: [

            // { urls: 'stun:jitsi-meet.example.com:4446' },
            { urls: 'stun:meet-jit-si-turnrelay.jitsi.net:443' }
        ],

        // Sets the ICE transport policy for the p2p connection. At the time
        // of this writing the list of possible values are 'all' and 'relay',
        // but that is subject to change in the future. The enum is defined in
        // the WebRTC standard:
        // https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum.
        // If not set, the effective value is 'all'.
        // iceTransportPolicy: 'all',

        // If set to true, it will prefer to use H.264 for P2P calls (if H.264
        // is supported).
        preferH264: true

        // If set to true, disable H.264 video codec by stripping it out of the
        // SDP.
        // disableH264: false,

        // How long we're going to wait, before going back to P2P after the 3rd
        // participant has left the conference (to filter out page reload).
        // backToP2PDelay: 5
    },

    analytics: {
        // The Google Analytics Tracking ID:
        // googleAnalyticsTrackingId: 'your-tracking-id-UA-123456-1'

        // The Amplitude APP Key:
        // amplitudeAPPKey: '<APP_KEY>'


    //     // Extensions info which allows checking if they are installed or not
    //     chromeExtensionsInfo: [
    //         {
    //             id: 'kglhbbefdnlheedjiejgomgmfplipfeb',
    //             path: 'jitsi-logo-48x48.png'
    //         }
    //     ]
    },

    // Local Recording
    //

    // localRecording: {
    // Enables local recording.
    // Additionally, 'localrecording' (all lowercase) needs to be added to
    // TOOLBAR_BUTTONS in interface_config.js for the Local Recording
    // button to show up on the toolbar.
    //
    //     enabled: true,
    //

    // The recording format, can be one of 'ogg', 'flac' or 'wav'.
    //     format: 'flac'
    //

    // },

    // Options related to end-to-end (participant to participant) ping.
    // e2eping: {
    //   // The interval in milliseconds at which pings will be sent.
    //   // Defaults to 10000, set to <= 0 to disable.
    //   pingInterval: 10000,
    //
    //   // The interval in milliseconds at which analytics events
    //   // with the measured RTT will be sent. Defaults to 60000, set
    //   // to <= 0 to disable.
    //   analyticsInterval: 60000,
    //   },

    // If set, will attempt to use the provided vi
    // and instead the app will continue to display in the current browser.
    // disableDeepLinking: false,

    // A property to disable the right click context menu for localVideo
    // the menu has option to flip the locally seen video for local presentations
    // disableLocalVideoFlip: false,

    // Mainly privacy related settings

    // Disables all invite functions from the app (share, invite, dial out...etc)
    // disableInviteFunctions: true,

    // Disables storing the room name to the recents list
    // doNotStoreRoom: true,

    // Deployment specific URLs.
    // deploymentUrls: {
    //    // If specified a 'Help' button will be displayed in the overflow menu with a link to the specified URL for
    //    // user documentation.
    //    userDocumentationURL: 'https://docs.example.com/video-meetings.html',
    //    // If specified a 'Download our apps' button will be displayed in the overflow menu with a link
    //    // to the specified URL for an app download page.
    //    downloadAppsUrl: 'https://docs.example.com/our-apps.html'
    // },

    // Options related to the remote participant menu.
    // remoteVideoMenu: {
    //     // If set to true the 'Kick out' button will be disabled.
    //     disableKick: true
    // },

    // If set to true all muting operations of remote participants will be disabled.
    // disableRemoteMute: true,

    // List of undocumented settings used in jitsi-meet
    /**
     _immediateReloadThreshold
     autoRecord
     autoRecordToken
     debug
     debugAudioLev
     iAmSipGateway
     microsoftApiApplicationClientID
     peopleSearchQueryTypes
     peopleSearchUrl
     requireDisplayName
     tokenAuthUrl
     */

    // List of undocumented settings used in lib-jitsi-meet
    /**
     _peerConnStatusOutOfLastNTimeout
     _peerConnStatusRtcMuteTimeout
     abTesting
     avgRtpStatsN
     callStatsConfIDNamespace
     callStatsCustomScriptUrl
     desktopSharingSources
     disableAEC
     disableAGC
     disableAP
     disableHPF
     disableNS
     enableLipSync
     enableTalkWhileMuted
     forceJVB121Ratio
     hiddenDomain
     ignoreStartMuted
     nick
     startBitrate
     */


    // Allow all above example options to include a trailing comma and
    // prevent fear when commenting out the last value.
    makeJsonParserHappy: 'even if last key had a trailing comma'

    // no configuration value should follow this line.
};

/* eslint-enable no-unused-vars, no-var */
\" > /usr/local/www/jitsi-meet/config.js

# Fetch certificates
cd /tmp
acme.sh --force --issue -d \$DOMAINNAME --standalone
mv /root/.acme.sh/\$DOMAINNAME/* /usr/local/etc/ssl/

# Never run this script again on boot
touch /usr/local/etc/pot-is-configured

/usr/local/etc/rc.d/jitsi-videobridge start
/usr/local/etc/rc.d/prosody start
/usr/local/etc/rc.d/jicofo start

nginx -g 'daemon off;'

" > /usr/local/bin/cook
chmod u+x /usr/local/bin/cook

Create the following /usr/local/etc/pot/flavours/jitsi-meet-nomad:

set-attribute -A persistent -V OFF
set-attribute -A no-rc-script -V ON

Create the following /usr/local/etc/pot/flavours/jitsi-meet-nomad+4:

set-cmd -c "/usr/local/bin/cook"

2. Create Jail From Flavour

Run
pot create -b <FreeBSD Version> -p <jailname> -t single -N public-bridge -f fbsd-update -f jitsi-meet-nomad -f jitsi-meet-nomad+4

with your FreeBSD version (e.g. 12.1) and the name your jail should get.

Note: Some images might require specific network configuration, double check the Overview-chapter at the top.

Version History

1.0

  • Initial version with complete documentation

0.9

  • Beta version

These images were built on Tue Jul 21 15:31:51 UTC 2020

Manual Image Download Links

jitsi-meet-nomad-amd64-12_1_1.0.xz ( 547.555 MB )
jitsi-meet-nomad-amd64-12_1_1.0.xz.skein ( 0.250977 KB )

jitsi-meet-nomad-amd64-11_4_1.0.xz ( 511.809 MB )
jitsi-meet-nomad-amd64-11_4_1.0.xz.skein ( 0.250977 KB )

Jenkins Pot Creation Logs

jitsi-meet-nomad-amd64-12_1_1.0:


jitsi-meet-nomad/jitsi-meet-nomad:
set-attribute -A persistent -V OFF
set-attribute -A no-rc-script -V ON
jitsi-meet-nomad/jitsi-meet-nomad.sh:
#!/bin/sh

[ -w /etc/pkg/FreeBSD.conf ] && sed -i '' 's/quarterly/latest/' /etc/pkg/FreeBSD.conf
ASSUME_ALWAYS_YES=yes pkg bootstrap
touch /etc/rc.conf
sysrc sendmail_enable="NO"
sysrc jitsi_videobridge_enable="YES"
sysrc jitsi_videobridge_flags="--apis=rest,xmpp"
sysrc prosody_enable="YES"
sysrc jicofo_enable="YES"

# Install packages
pkg install -y acme.sh nginx prosody jicofo jitsi-meet jitsi-videobridge 
pkg clean -y

#
# Now generate the run command script
# It configures the system on the first run and then starts nginx as process
# On subsequent runs, it only starts nginx
# 
echo "
#/bin/sh
if [ -e /usr/local/etc/pot-is-configured ]
then
    /usr/local/etc/rc.d/jitsi-videobridge start
    /usr/local/etc/rc.d/prosody start
    /usr/local/etc/rc.d/jicofo start
    nginx -g 'daemon off;'
    exit 0
fi

#
# Check config variables are set
# DOMAINNAME needs to contain the public domain name of the jail (e.g jitsi.honeyguide.net)
# PUBLICIP needs to contain the public IP address used to reach the service (for NAT traversal)
#

if [ -z \${DOMAINNAME+x} ]; 
then 
    echo 'DOMAINNAME is unset'
    exit 1
fi

if [ -z \${PUBLICIP+x} ]; 
then 
    echo 'PUBLICIP is unset'
    exit 1
fi

if [ -z \${PRIVATEIP+x} ];
then
    echo 'PRIVATEIP is unset'
    exit 1
fi

# Generate a password for stitching up the various parts of the configuration
KEYPASSWORD=\"\$(dd if=/dev/urandom count=1 2> /dev/null | uuencode -m - | sed -ne 2p | cut -c-12)\"

#
# Set up software
#

# Set up prosody
echo \"

pidfile = \\\"/var/run/prosody/prosody.pid\\\"
interfaces = { \\\"127.0.0.1\\\" }
admins = { \\\"focus@auth.\$DOMAINNAME\\\" }

modules_enabled = {

        -- Generally required
                \\\"roster\\\"; -- Allow users to have a roster. Recommended ;)
                \\\"saslauth\\\"; -- Authentication for clients and servers. Recommended if you want to log in.
                \\\"tls\\\"; -- Add support for secure TLS on c2s/s2s connections
                \\\"dialback\\\";
                \\\"carbons\\\"; -- Keep multiple clients in sync
                \\\"pep\\\"; -- Enables users to publish their avatar, mood, activity, playing music and more
                \\\"private\\\"; -- Private XML storage (for room bookmarks, etc.)
                \\\"blocklist\\\"; -- Allow users to block communications with other users
                \\\"vcard4\\\"; -- User profiles (stored in PEP)
                \\\"vcard_legacy\\\"; -- Conversion between legacy vCard and PEP Avatar, vcard

        -- Nice to have
                \\\"version\\\"; -- Replies to server version requests
                \\\"uptime\\\"; -- Report how long server has been running
                \\\"time\\\"; -- Let others know the time here on this server
                \\\"ping\\\"; -- Replies to XMPP pings with pongs
                \\\"register\\\"; -- Allow users to register on this server using a client and change passwords
                --\\\"mam\\\"; -- Store messages in an archive and allow users to access it
                --\\\"csi_simple\\\"; -- Simple Mobile optimizations

        -- Admin interfaces
                \\\"admin_adhoc\\\"; -- Allows administration via an XMPP client that supports ad-hoc commands
                --\\\"admin_telnet\\\"; -- Opens telnet console interface on localhost port 5582

        -- HTTP modules
                --\\\"bosh\\\"; -- Enable BOSH clients, aka Jabber over HTTP
                --\\\"websocket\\\"; -- XMPP over WebSockets
                --\\\"http_files\\\"; -- Serve static files from a directory over HTTP

        -- Other specific functionality
                --\\\"limits\\\"; -- Enable bandwidth limiting for XMPP connections
                --\\\"groups\\\"; -- Shared roster support
                --\\\"server_contact_info\\\"; -- Publish contact information for this service
                --\\\"announce\\\"; -- Send announcement to all online users
                --\\\"welcome\\\"; -- Welcome users who register accounts
                --\\\"watchregistrations\\\"; -- Alert admins of registrations
                --\\\"motd\\\"; -- Send a message to users when they log in
                --\\\"legacyauth\\\"; -- Legacy authentication. Only used by some old clients and bots.
                --\\\"proxy65\\\"; -- Enables a file transfer proxy service which clients behind NAT can use
}


c2s_require_encryption = true


s2s_require_encryption = true


s2s_secure_auth = false


--s2s_insecure_domains = { \\\"insecure.example\\\" }


authentication = \\\"internal_hashed\\\"


archive_expires_after = \\\"1w\\\" -- Remove archived messages after 1 week

log = {
        info = \\\"prosody.log\\\"; 
        error = \\\"prosody.err\\\";
        -- \\\"*syslog\\\"; -- Uncomment this for logging to syslog
        -- \\\"*console\\\"; -- Log to the console, useful for debugging with daemonize=false
}

certificates = \\\"certs\\\"


VirtualHost \\\"\$DOMAINNAME\\\"
    authentication = \\\"anonymous\\\"
    ssl = {
        key = \\\"/var/db/prosody/\$DOMAINNAME.key\\\";
        certificate = \\\"/var/db/prosody/\$DOMAINNAME.crt\\\";
    }
    modules_enabled = {
        \\\"bosh\\\";
        \\\"pubsub\\\";
    }
    c2s_require_encryption = false

VirtualHost \\\"auth.\$DOMAINNAME\\\"
    ssl = {
        key = \\\"/var/db/prosody/auth.\$DOMAINNAME.key\\\";
        certificate = \\\"/var/db/prosody/auth.\$DOMAINNAME.crt\\\";
    }
    authentication = \\\"internal_plain\\\"

admins = { \\\"focus@auth.\$DOMAINNAME\\\" }

Component \\\"conference.\$DOMAINNAME\\\" \\\"muc\\\"
Component \\\"jitsi-videobridge.\$DOMAINNAME\\\"
    component_secret = \\\"\$KEYPASSWORD\\\"
Component \\\"focus.\$DOMAINNAME\\\"
    component_secret = \\\"\$KEYPASSWORD\\\"
\" > /usr/local/etc/prosody/prosody.cfg.lua

echo -ne '\n\n\n\n\n\n\n\n\n\n\n' | prosodyctl cert generate \$DOMAINNAME 
echo -ne '\n\n\n\n\n\n\n\n\n\n\n' | prosodyctl cert generate auth.\$DOMAINNAME 
prosodyctl register focus auth.\$DOMAINNAME \$KEYPASSWORD 

# Set up nginx
echo \"
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen 80 default_server;

        server_name _;

        return 301 https://\\\$host\\\$request_uri;
    }

    server {
        listen 0.0.0.0:443 ssl http2;
        ssl_certificate      /usr/local/etc/ssl/\$DOMAINNAME.cer;
        ssl_certificate_key  /usr/local/etc/ssl/\$DOMAINNAME.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        server_name \$DOMAINNAME;
        # set the root
        root /usr/local/www/jitsi-meet;
        index index.html;
        location ~ ^/([a-zA-Z0-9=\?]+)$ {
            rewrite ^/(.*)$ / break;
        }
        location / {
            ssi on;
        }
        # BOSH, Bidirectional-streams Over Synchronous HTTP
        # https://en.wikipedia.org/wiki/BOSH_(protocol)
        location /http-bind {
            proxy_pass      http://localhost:5280/http-bind;
            proxy_set_header X-Forwarded-For \\\$remote_addr;
            proxy_set_header Host \\\$http_host;
        }
        # external_api.js must be accessible from the root of the
        # installation for the electron version of Jitsi Meet to work
        # https://github.com/jitsi/jitsi-meet-electron
        location /external_api.js {
            alias /srv/jitsi-meet/libs/external_api.min.js;
        }
    }
}\" > /usr/local/etc/nginx/nginx.conf

# Set up jitsi-videobridge
echo \"
JVB_XMPP_HOST=localhost
JVB_XMPP_DOMAIN=\$DOMAINNAME
JVB_XMPP_PORT=5347
JVB_XMPP_SECRET=\$KEYPASSWORD

VIDEOBRIDGE_MAX_MEMORY=3072m
\" > /usr/local/etc/jitsi/videobridge/jitsi-videobridge.conf

echo \"
org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false
# The videobridge uses 443 by default with 4443 as a fallback, but since we're already
# running nginx on 443 in this example doc, we specify 4443 manually to avoid a race condition
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=\$PRIVATEIP
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=\$PUBLICIP

#
# For Grafana dashboard
#

# the callstats credentials
io.callstats.sdk.CallStats.appId=\"jistats\"
io.callstats.sdk.CallStats.keyId=\"jistats_\$KEYPASSWORD\"

# enable statistics and callstats statistics and the report interval
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_INTERVAL.callstats.io=30000
org.jitsi.videobridge.STATISTICS_TRANSPORT=callstats.io
\" > /usr/local/etc/jitsi/videobridge/sip-communicator.properties

# Set up jicofo
keytool -noprompt -keystore /usr/local/etc/jitsi/jicofo/truststore.jks -storepass \"\$KEYPASSWORD\" -importcert -alias prosody -file /var/db/prosody/auth.\$DOMAINNAME.crt

echo \"
JVB_XMPP_HOST=localhost
JVB_XMPP_DOMAIN=\$DOMAINNAME
JVB_XMPP_PORT=5347
JVB_XMPP_SECRET=\$KEYPASSWORD
JVB_XMPP_USER_DOMAIN=auth.\$DOMAINNAME
JVB_XMPP_USER_NAME=focus
JVB_XMPP_USER_SECRET=\$KEYPASSWORD

MAX_MEMORY=3072m
\" > /usr/local/etc/jitsi/jicofo/jicofo.conf

# Set up jitsi-meet
echo \"
/* eslint-disable no-unused-vars, no-var */

var config = {
    // Connection
    //

    hosts: {
        // XMPP domain.
        domain: '\$DOMAINNAME',


        bridge: 'jitsi-videobridge.\$DOMAINNAME',

        // Focus component domain. Defaults to focus.<domain>.
        focus: 'focus.\$DOMAINNAME',

        // XMPP MUC domain. FIXME: use XEP-0030 to discover it.
        muc: 'conference.\$DOMAINNAME'
    },

    // BOSH URL. FIXME: use XEP-0156 to discover it.
    bosh: '//\$DOMAINNAME/http-bind',

    // Websocket URL
    // websocket: 'wss://jitsi-meet.example.com/xmpp-websocket',

    // The name of client node advertised in XEP-0115 'c' stanza
    clientNode: 'http://jitsi.org/jitsimeet',

    // The real JID of focus participant - can be overridden here
    // focusUserJid: 'focus@auth.jitsi-meet.example.com',


    // Testing / experimental features.
    //

    testing: {
        // P2P test mode disables automatic switching to P2P when there are 2
        // participants in the conference.
        p2pTestMode: false

        // Enables the test specific features consumed by jitsi-meet-torture
        // testMode: false

        // Disables the auto-play behavior of *all* newly created video element.
        // This is useful when the client runs on a host with limited resources.
        // noAutoPlayVideo: false
    },

    // Disables ICE/UDP by filtering out local and remote UDP candidates in
    // signal
    // Disable measuring of audio levels.
    // disableAudioLevels: false,
    // audioLevelsInterval: 200,

    // Enabling this will run the lib-jitsi-meet no audio detection module which
    // will notify the user if the current selected microphone has no audio
    // input and will suggest another valid device if one is present.
    enableNoAudioDetection: true,

    // Enabling this will run the lib-jitsi-meet noise detection module which will
    // notify the user if there is noise, other than voice, coming from the current
    // selected microphone. The purpose it to let the user know that the input could
    // be potentially unpleasant for other meeting participants.
    enableNoisyMicDetection: true,

    // Start the conference in audio only mode (no video is being received nor
    // sent).
    // startAudioOnly: false,

    // Every participant after the Nth will start audio muted.
    // startAudioMuted: 10,

    // Start calls with audio muted. Unlike the option above, this one is only
    // applied locally. FIXME: having these 2 options is confusing.
    // startWithAudioMuted: false,

    // Enabling it (with #params) will disable local audio output of remote
    // participants and to enable it back a reload is needed.
    // startSilent: false

    // Video

    // Sets the preferred resolution (height) for local video. Defaults to 720.
    // resolution: 720,

    // w3c spec-compliant video constraints to use for video capture. Currently
    // used by browsers that return true from lib-jitsi-meet's
    // util#browser#usesNewGumFlow. The constraints are independent from
    // this config's resolution value. Defaults to requesting an ideal
    // resolution of 720p.

    // startVideoMuted: 10,

    // Start calls with video muted. Unlike the option above, this one is only
    // applied locally. FIXME: having these 2 options is confusing.
    // startWithVideoMuted: false,

    // If set to true, prefer to use the H.264 video codec (if supported).
    // Note that it's not recommended to do this because simulcast is not
    // supported when  using H.264. For 1-to-1 calls this setting is enabled by
    // default and can be toggled in the p2p section.
    // preferH264: true,

    // If set to true, disable H.264 video codec by stripping it out of the
    // SDP.
    // disableH264: false,

    // Desktop sharing

    // The ID of the jidesha extension for Chrome.
    desktopSharingChromeExtId: null,

    // Whether desktop sharing should be disabled on Chrome.
    // desktopSharingChromeDisabled: false,

    // The media sources to use when using screen sharing with the Chrome
    // extension.
    desktopSharingChromeSources: [ 'screen', 'window', 'tab' ],

    // Required version of Chrome extension
    desktopSharingChromeMinExtVersion: '0.1',

    // Whether desktop sharing should be disabled on Firefox.
    // desktopSharingFirefoxDisabled: false,

    // Optional desktop sharing frame rate options. Default value: min:5, max:5.
    // desktopSharingFrameRate: {
    //     min: 5,
    //     max: 5
    // },


    //     // A URL to redirect the user to, after authenticating
    //     // by default uses:
    //     // 'https://jitsi-meet.example.com/static/oauth.html'
    //     redirectURI:
    //          'https://jitsi-meet.example.com/subfolder/static/oauth.html'
    // },
    // When integrations like dropbox are enabled only that will be shown,
    // by enabling fileRecordingsServiceEnabled, we show both the integrations
    // and the generic recording service (its configuration and storage type
    // depends on jibri configuration)
    // fileRecordingsServiceEnabled: false,
    // Whether to show the possibility to share file recording with other people
    // (e.g. meeting participants), based on the actual implementation
    // on the backend.
    // fileRecordingsServiceSharingEnabled: false,

    // Whether to enable live streaming or not.
    liveStreamingEnabled: true,

    // Transcription (in interface_config,
    // subtitles and buttons can be configured)
    // transcribingEnabled: false,

    // Enables automatic turning on captions when recording is started
    // autoCaptionOnRecord: false,

    // Misc

    // Default value for the channel \\\"last N\\\" attribute. -1 for unlimited.
    channelLastN: -1,

    // Disables or enables RTX (RFC 4588) (defaults to false).
    // disableRtx: false,

    // Disables or enables TCC (the default is in Jicofo and set to true)
    // (draft-holmer-rmcat-transport-wide-cc-extensions-01). This setting
    // affects congestion control, it practically enables send-side bandwidth
    // estimations.
    // enableTcc: true,

    //
    // useIPv6: true,

    // Enables / disables a data communication channel with the Videobridge.
    // Values can be 'datachannel', 'websocket', true (treat it as
    // 'datachannel'), undefined (treat it as 'datachannel') and false (don't
    // open any channel).
    // openBridgeChannel: true,


    // UI
    //

    // Use display name as XMPP nickname.
    // useNicks: false,

    // Require users to always specify a display name.
    // requireDisplayName: true,

    // Whether to use a welcome page or not. In case it's false a random room
    // will be joined when no room is specified.
    enableWelcomePage: true,

    // Enabling the close page will ignore the welcome page redirection when
    // a call is hangup.
    // enableClosePage: false,

    // Disable hiding of remote thumbnails when in a 1-on-1 conference call.
    // disable1On1Mode: false,

    // Default language for the user interface.
    // defaultLanguage: 'en',

    // If true all users without a token will be considered guests and all users
    // with token will be considered non-guests. Only guests will be allowed to
    // edit their profile.
    enableUserRolesBasedOnToken: false,

    // Whether or not some features are checked based on token.
    // enableFeaturesBasedOnToken: false,

   
    // and microsoftApiApplicationClientID
    // enableCalendarIntegration: false,

    // Stats
    //

    // Whether to enable stats collection or not in the TraceablePeerConnection.
    // This can be useful for debugging purposes (post-processing/analysis of
    // the webrtc stats) as it is done in the jitsi-meet-torture bandwidth
    // estimation tests.
    // gatherStats: false,

    // The interval at which PeerConnection.getStats() is called. Defaults to 10000
    // pcStatsInterval: 10000,

    // To enable sending statistics to callstats.io you must provide the
    // Application ID and Secret.
    callStatsID: 'jistats',
    callStatsSecret: 'jistats_\$KEYPASSWORD',

    // enables sending participants display name to callstats
    // enableDisplayNameInStats: false,

    // enables sending participants email if available to callstats and other analytics
    // enableEmailInStats: false,

    // Privacy
    //

    // If third party requests are disabled, no other server will be contacted.
    // This means avatars will be locally generated and callstats integration
    // will not function.
    // disableThirdPartyRequests: false,


    // Peer-To-Peer mode: used (if enabled) when there are just 2 participants.
    //

    p2p: {
        // Enables peer to peer mode. When enabled the system will try to
        // establish a direc
        // useStunTurn: true,

        // The STUN servers that will be used in the peer to peer connections
        stunServers: [

            // { urls: 'stun:jitsi-meet.example.com:4446' },
            { urls: 'stun:meet-jit-si-turnrelay.jitsi.net:443' }
        ],

        // Sets the ICE transport policy for the p2p connection. At the time
        // of this writing the list of possible values are 'all' and 'relay',
        // but that is subject to change in the future. The enum is defined in
        // the WebRTC standard:
        // https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum.
        // If not set, the effective value is 'all'.
        // iceTransportPolicy: 'all',

        // If set to true, it will prefer to use H.264 for P2P calls (if H.264
        // is supported).
        preferH264: true

        // If set to true, disable H.264 video codec by stripping it out of the
        // SDP.
        // disableH264: false,

        // How long we're going to wait, before going back to P2P after the 3rd
        // participant has left the conference (to filter out page reload).
        // backToP2PDelay: 5
    },

    analytics: {
        // The Google Analytics Tracking ID:
        // googleAnalyticsTrackingId: 'your-tracking-id-UA-123456-1'

        // The Amplitude APP Key:
        // amplitudeAPPKey: '<APP_KEY>'


    //     // Extensions info which allows checking if they are installed or not
    //     chromeExtensionsInfo: [
    //         {
    //             id: 'kglhbbefdnlheedjiejgomgmfplipfeb',
    //             path: 'jitsi-logo-48x48.png'
    //         }
    //     ]
    },

    // Local Recording
    //

    // localRecording: {
    // Enables local recording.
    // Additionally, 'localrecording' (all lowercase) needs to be added to
    // TOOLBAR_BUTTONS in interface_config.js for the Local Recording
    // button to show up on the toolbar.
    //
    //     enabled: true,
    //

    // The recording format, can be one of 'ogg', 'flac' or 'wav'.
    //     format: 'flac'
    //

    // },

    // Options related to end-to-end (participant to participant) ping.
    // e2eping: {
    //   // The interval in milliseconds at which pings will be sent.
    //   // Defaults to 10000, set to <= 0 to disable.
    //   pingInterval: 10000,
    //
    //   // The interval in milliseconds at which analytics events
    //   // with the measured RTT will be sent. Defaults to 60000, set
    //   // to <= 0 to disable.
    //   analyticsInterval: 60000,
    //   },

    // If set, will attempt to use the provided vi
    // and instead the app will continue to display in the current browser.
    // disableDeepLinking: false,

    // A property to disable the right click context menu for localVideo
    // the menu has option to flip the locally seen video for local presentations
    // disableLocalVideoFlip: false,

    // Mainly privacy related settings

    // Disables all invite functions from the app (share, invite, dial out...etc)
    // disableInviteFunctions: true,

    // Disables storing the room name to the recents list
    // doNotStoreRoom: true,

    // Deployment specific URLs.
    // deploymentUrls: {
    //    // If specified a 'Help' button will be displayed in the overflow menu with a link to the specified URL for
    //    // user documentation.
    //    userDocumentationURL: 'https://docs.example.com/video-meetings.html',
    //    // If specified a 'Download our apps' button will be displayed in the overflow menu with a link
    //    // to the specified URL for an app download page.
    //    downloadAppsUrl: 'https://docs.example.com/our-apps.html'
    // },

    // Options related to the remote participant menu.
    // remoteVideoMenu: {
    //     // If set to true the 'Kick out' button will be disabled.
    //     disableKick: true
    // },

    // If set to true all muting operations of remote participants will be disabled.
    // disableRemoteMute: true,

    // List of undocumented settings used in jitsi-meet
    /**
     _immediateReloadThreshold
     autoRecord
     autoRecordToken
     debug
     debugAudioLev
     iAmSipGateway
     microsoftApiApplicationClientID
     peopleSearchQueryTypes
     peopleSearchUrl
     requireDisplayName
     tokenAuthUrl
     */

    // List of undocumented settings used in lib-jitsi-meet
    /**
     _peerConnStatusOutOfLastNTimeout
     _peerConnStatusRtcMuteTimeout
     abTesting
     avgRtpStatsN
     callStatsConfIDNamespace
     callStatsCustomScriptUrl
     desktopSharingSources
     disableAEC
     disableAGC
     disableAP
     disableHPF
     disableNS
     enableLipSync
     enableTalkWhileMuted
     forceJVB121Ratio
     hiddenDomain
     ignoreStartMuted
     nick
     startBitrate
     */


    // Allow all above example options to include a trailing comma and
    // prevent fear when commenting out the last value.
    makeJsonParserHappy: 'even if last key had a trailing comma'

    // no configuration value should follow this line.
};

/* eslint-enable no-unused-vars, no-var */
\" > /usr/local/www/jitsi-meet/config.js

# Fetch certificates
cd /tmp
acme.sh --force --issue -d \$DOMAINNAME --standalone
mv /root/.acme.sh/\$DOMAINNAME/* /usr/local/etc/ssl/

# Never run this script again on boot
touch /usr/local/etc/pot-is-configured

/usr/local/etc/rc.d/jitsi-videobridge start
/usr/local/etc/rc.d/prosody start
/usr/local/etc/rc.d/jicofo start

nginx -g 'daemon off;'

" > /usr/local/bin/cook
chmod u+x /usr/local/bin/cook

jitsi-meet-nomad/jitsi-meet-nomad+1:
jitsi-meet-nomad/jitsi-meet-nomad+1.sh:

jitsi-meet-nomad/jitsi-meet-nomad+2:
jitsi-meet-nomad/jitsi-meet-nomad+2.sh:

jitsi-meet-nomad/jitsi-meet-nomad+3:
jitsi-meet-nomad/jitsi-meet-nomad+3.sh:

jitsi-meet-nomad/jitsi-meet-nomad+4:
set-cmd -c "/usr/local/bin/cook"
jitsi-meet-nomad/jitsi-meet-nomad+4.sh:
Password:=====>  -i auto: assigned 10.192.0.3
===>  Creating a new pot
===>  pot name : jitsi-meet-nomad-amd64-12_1
===>  type : single
===>  base : 12.1
===>  pot_base :
===>  level : 0
===>  network-type: public-bridge
===>  ip : 10.192.0.3
===>  bridge :
===>  dns : inherit
===>  flavours : fbsd-update jitsi-meet-nomad jitsi-meet-nomad+1 jitsi-meet-nomad+2 jitsi-meet-nomad+3 jitsi-meet-nomad+4
===>  Fetching FreeBSD 12.1
===>  Extract the tarball
=====>  Flavour: fbsd-update
=====>  Starting jitsi-meet-nomad-amd64-12_1 pot for the initial bootstrap
=====>  mount /var/pot/jails/jitsi-meet-nomad-amd64-12_1/m/tmp
defaultrouter: NO -> 10.192.0.1
===>  Starting the pot jitsi-meet-nomad-amd64-12_1
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
32-bit compatibility ldconfig path: /usr/lib32
Starting Network: lo0 epair0b.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	inet 127.0.0.1 netmask 0xff000000
	groups: lo
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
epair0b: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8<VLAN_MTU>
	ether 02:cc:35:65:0b:0b
	inet 10.192.0.3 netmask 0xffc00000 broadcast 10.255.255.255
	groups: epair
	media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
	status: active
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
add host 127.0.0.1: gateway lo0 fib 0: route already in table
add net default: gateway 10.192.0.1
add host ::1: gateway lo0 fib 0: route already in table
add net fe80::: gateway ::1
add net ff02::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
Generating host.conf.
Creating and/or trimming log files.
Starting syslogd.
Clearing /tmp (X related).
Updating motd:.
Starting sendmail_submit.
Starting sendmail_msp_queue.
Starting cron.

Tue Jul 21 15:14:25 UTC 2020
/usr/local/etc/pot/flavours/fbsd-update.sh -> /var/pot/jails/jitsi-meet-nomad-amd64-12_1/m/tmp/fbsd-update.sh
=====>  Executing fbsd-update script on jitsi-meet-nomad-amd64-12_1
src component not installed, skipped
freebsd-update fetch should not be run non-interactively.
Run freebsd-update cron instead.
src component not installed, skipped
No updates are available to install.
Run '/usr/sbin/freebsd-update fetch' first.
=====>  Stop the pot jitsi-meet-nomad-amd64-12_1
=====>  Remove epair0[a|b] network interfaces
=====>  unmount /var/pot/jails/jitsi-meet-nomad-amd64-12_1/m/tmp
=====>  unmount /var/pot/jails/jitsi-meet-nomad-amd64-12_1/m/dev
=====>  Flavour: jitsi-meet-nomad
=====>  Executing jitsi-meet-nomad pot commands on jitsi-meet-nomad-amd64-12_1
=====>  Starting jitsi-meet-nomad-amd64-12_1 pot for the initial bootstrap
=====>  mount /var/pot/jails/jitsi-meet-nomad-amd64-12_1/m/tmp
===>  Starting the pot jitsi-meet-nomad-amd64-12_1
add net default: gateway 10.192.0.1
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
32-bit compatibility ldconfig path: /usr/lib32
Starting Network: lo0 epair0b.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	inet 127.0.0.1 netmask 0xff000000
	groups: lo
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
epair0b: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8<VLAN_MTU>
	ether 02:3b:62:08:d1:0b
	inet6 fe80::3b:62ff:fe08:d10b%epair0b prefixlen 64 tentative scopeid 0x2
	inet 10.192.0.3 netmask 0xffc00000 broadcast 10.255.255.255
	groups: epair
	media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
	status: active
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
add host 127.0.0.1: gateway lo0 fib 0: route already in table
add net default: gateway 10.192.0.1
add host ::1: gateway lo0 fib 0: route already in table
add net fe80::: gateway ::1
add net ff02::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
Creating and/or trimming log files.
Starting syslogd.
Clearing /tmp (X related).
Updating motd:.
Starting sendmail_submit.
Starting sendmail_msp_queue.
Starting cron.

Tue Jul 21 15:14:31 UTC 2020
/usr/local/etc/pot/flavours/jitsi-meet-nomad.sh -> /var/pot/jails/jitsi-meet-nomad-amd64-12_1/m/tmp/jitsi-meet-nomad.sh
=====>  Executing jitsi-meet-nomad script on jitsi-meet-nomad-amd64-12_1
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] Installing pkg-1.14.6...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] Extracting pkg-1.14.6: .......... done
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:12:amd64/latest, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
sendmail_enable: NO -> NO
jitsi_videobridge_enable:  -> YES
jitsi_videobridge_flags:  -> --apis=rest,xmpp
prosody_enable:  -> YES
jicofo_enable:  -> YES
Updating FreeBSD repository catalogue...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] Fetching meta.conf: . done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] Fetching packagesite.txz: .......... done
Processing entries: .......... done
FreeBSD repository update completed. 31974 packages processed.
All repositories are up to date.
Updating database digests format: . done
The following 50 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	acme.sh: 2.8.6
	alsa-lib: 1.1.2_2
	bash: 5.0.18_2
	ca_root_nss: 3.54
	curl: 7.71.1
	dejavu: 2.37_1
	expat: 2.2.8
	fontconfig: 2.13.92_2,1
	freetype2: 2.10.2
	gettext-runtime: 0.20.2
	giflib: 5.2.1
	indexinfo: 0.3.1
	java-zoneinfo: 2020.a
	javavmwrapper: 2.7.5
	jicofo: 1.0.555_2
	jitsi-meet: 1.0.4048_2
	jitsi-videobridge: 2.1.183_3
	libICE: 1.0.10,1
	libSM: 1.2.3,1
	libX11: 1.6.9_2,1
	libXau: 1.0.9
	libXdmcp: 1.1.3
	libXext: 1.3.4,1
	libXfixes: 5.0.3_2
	libXi: 1.7.10,1
	libXrender: 0.9.10_2
	libXt: 1.2.0,1
	libXtst: 1.2.3_2
	libedit: 3.1.20191231,1
	libfontenc: 1.1.4
	libidn: 1.35
	libinotify: 20180201_2
	libnghttp2: 1.41.0
	libpthread-stubs: 0.4
	libxcb: 1.13.1
	libxml2: 2.9.10
	lua52: 5.2.4
	lua52-bitop: 1.0.2_2
	lua52-luaexpat: 1.3.0_5
	lua52-luafilesystem: 1.7.0_1
	lua52-luasec: 0.9_1
	lua52-luasocket: 3.0.r1_5,1
	mkfontscale: 1.2.1
	nginx: 1.18.0_20,2
	openjdk8: 8.262.10.1
	pcre: 8.44
	prosody: 0.11.5_1
	readline: 8.0.4
	socat: 1.7.3.4
	xorgproto: 2020.1

Number of packages to be installed: 50

The process will require 384 MiB more space.
180 MiB to be downloaded.
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [1/50] Fetching acme.sh-2.8.6.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [2/50] Fetching nginx-1.18.0_20,2.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [3/50] Fetching prosody-0.11.5_1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [4/50] Fetching jicofo-1.0.555_2.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [5/50] Fetching jitsi-meet-1.0.4048_2.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [6/50] Fetching jitsi-videobridge-2.1.183_3.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [7/50] Fetching socat-1.7.3.4.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [8/50] Fetching curl-7.71.1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [9/50] Fetching libnghttp2-1.41.0.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [10/50] Fetching ca_root_nss-3.54.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [11/50] Fetching pcre-8.44.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [12/50] Fetching lua52-luaexpat-1.3.0_5.txz: .. done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [13/50] Fetching expat-2.2.8.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [14/50] Fetching lua52-5.2.4.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [15/50] Fetching libedit-3.1.20191231,1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [16/50] Fetching lua52-luasec-0.9_1.txz: .... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [17/50] Fetching lua52-luasocket-3.0.r1_5,1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [18/50] Fetching libidn-1.35.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [19/50] Fetching indexinfo-0.3.1.txz: . done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [20/50] Fetching gettext-runtime-0.20.2.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [21/50] Fetching lua52-luafilesystem-1.7.0_1.txz: ... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [22/50] Fetching lua52-bitop-1.0.2_2.txz: . done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [23/50] Fetching openjdk8-8.262.10.1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [24/50] Fetching libXtst-1.2.3_2.txz: ... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [25/50] Fetching libXi-1.7.10,1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [26/50] Fetching libXfixes-5.0.3_2.txz: .. done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [27/50] Fetching libX11-1.6.9_2,1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [28/50] Fetching libxcb-1.13.1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [29/50] Fetching libXdmcp-1.1.3.txz: .. done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [30/50] Fetching xorgproto-2020.1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [31/50] Fetching libXau-1.0.9.txz: .. done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [32/50] Fetching libxml2-2.9.10.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [33/50] Fetching libpthread-stubs-0.4.txz: . done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [34/50] Fetching libXext-1.3.4,1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [35/50] Fetching libXrender-0.9.10_2.txz: .... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [36/50] Fetching libXt-1.2.0,1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [37/50] Fetching libSM-1.2.3,1.txz: ... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [38/50] Fetching libICE-1.0.10,1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [39/50] Fetching fontconfig-2.13.92_2,1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [40/50] Fetching freetype2-2.10.2.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [41/50] Fetching dejavu-2.37_1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [42/50] Fetching mkfontscale-1.2.1.txz: ... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [43/50] Fetching libfontenc-1.1.4.txz: ... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [44/50] Fetching javavmwrapper-2.7.5.txz: ... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [45/50] Fetching java-zoneinfo-2020.a.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [46/50] Fetching giflib-5.2.1.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [47/50] Fetching libinotify-20180201_2.txz: .... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [48/50] Fetching alsa-lib-1.1.2_2.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [49/50] Fetching bash-5.0.18_2.txz: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [50/50] Fetching readline-8.0.4.txz: .......... done
Checking integrity... done (0 conflicting)
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [1/50] Installing xorgproto-2020.1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [1/50] Extracting xorgproto-2020.1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [2/50] Installing libXdmcp-1.1.3...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [2/50] Extracting libXdmcp-1.1.3: ......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [3/50] Installing libXau-1.0.9...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [3/50] Extracting libXau-1.0.9: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [4/50] Installing libxml2-2.9.10...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [4/50] Extracting libxml2-2.9.10: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [5/50] Installing libpthread-stubs-0.4...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [5/50] Extracting libpthread-stubs-0.4: .... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [6/50] Installing libxcb-1.13.1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [6/50] Extracting libxcb-1.13.1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [7/50] Installing indexinfo-0.3.1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [7/50] Extracting indexinfo-0.3.1: .... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [8/50] Installing libX11-1.6.9_2,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [8/50] Extracting libX11-1.6.9_2,1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [9/50] Installing expat-2.2.8...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [9/50] Extracting expat-2.2.8: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [10/50] Installing gettext-runtime-0.20.2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [10/50] Extracting gettext-runtime-0.20.2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [11/50] Installing libXfixes-5.0.3_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [11/50] Extracting libXfixes-5.0.3_2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [12/50] Installing libXext-1.3.4,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [12/50] Extracting libXext-1.3.4,1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [13/50] Installing libICE-1.0.10,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [13/50] Extracting libICE-1.0.10,1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [14/50] Installing freetype2-2.10.2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [14/50] Extracting freetype2-2.10.2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [15/50] Installing libfontenc-1.1.4...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [15/50] Extracting libfontenc-1.1.4: ......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [16/50] Installing libedit-3.1.20191231,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [16/50] Extracting libedit-3.1.20191231,1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [17/50] Installing libXi-1.7.10,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [17/50] Extracting libXi-1.7.10,1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [18/50] Installing libSM-1.2.3,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [18/50] Extracting libSM-1.2.3,1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [19/50] Installing fontconfig-2.13.92_2,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [19/50] Extracting fontconfig-2.13.92_2,1: .......... done
Running fc-cache to build fontconfig cache...
Font directories:
	/usr/local/share/fonts
	/usr/local/lib/X11/fonts
/usr/local/share/fonts: skipping, no such directory
/usr/local/lib/X11/fonts: skipping, no such directory
/var/db/fontconfig: cleaning cache directory
fc-cache: succeeded
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [20/50] Installing mkfontscale-1.2.1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [20/50] Extracting mkfontscale-1.2.1: ....... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [21/50] Installing libnghttp2-1.41.0...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [21/50] Extracting libnghttp2-1.41.0: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [22/50] Installing ca_root_nss-3.54...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [22/50] Extracting ca_root_nss-3.54: ........ done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [23/50] Installing lua52-5.2.4...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [23/50] Extracting lua52-5.2.4: ......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [24/50] Installing libXtst-1.2.3_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [24/50] Extracting libXtst-1.2.3_2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [25/50] Installing libXrender-0.9.10_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [25/50] Extracting libXrender-0.9.10_2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [26/50] Installing libXt-1.2.0,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [26/50] Extracting libXt-1.2.0,1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [27/50] Installing dejavu-2.37_1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [27/50] Extracting dejavu-2.37_1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [28/50] Installing javavmwrapper-2.7.5...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [28/50] Extracting javavmwrapper-2.7.5: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [29/50] Installing java-zoneinfo-2020.a...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [29/50] Extracting java-zoneinfo-2020.a: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [30/50] Installing giflib-5.2.1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [30/50] Extracting giflib-5.2.1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [31/50] Installing libinotify-20180201_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [31/50] Extracting libinotify-20180201_2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [32/50] Installing alsa-lib-1.1.2_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [32/50] Extracting alsa-lib-1.1.2_2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [33/50] Installing readline-8.0.4...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [33/50] Extracting readline-8.0.4: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [34/50] Installing socat-1.7.3.4...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [34/50] Extracting socat-1.7.3.4: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [35/50] Installing curl-7.71.1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [35/50] Extracting curl-7.71.1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [36/50] Installing pcre-8.44...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [36/50] Extracting pcre-8.44: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [37/50] Installing lua52-luaexpat-1.3.0_5...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [37/50] Extracting lua52-luaexpat-1.3.0_5: ..... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [38/50] Installing lua52-luasec-0.9_1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [38/50] Extracting lua52-luasec-0.9_1: ...... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [39/50] Installing lua52-luasocket-3.0.r1_5,1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [39/50] Extracting lua52-luasocket-3.0.r1_5,1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [40/50] Installing libidn-1.35...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [40/50] Extracting libidn-1.35: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [41/50] Installing lua52-luafilesystem-1.7.0_1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [41/50] Extracting lua52-luafilesystem-1.7.0_1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [42/50] Installing lua52-bitop-1.0.2_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [42/50] Extracting lua52-bitop-1.0.2_2: .... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [43/50] Installing openjdk8-8.262.10.1...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [43/50] Extracting openjdk8-8.262.10.1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [44/50] Installing bash-5.0.18_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [44/50] Extracting bash-5.0.18_2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [45/50] Installing acme.sh-2.8.6...
===> Creating groups.
Creating group 'acme' with gid '169'.
===> Creating users
Creating user 'acme' with uid '169'.
===> Creating homedir(s)
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [45/50] Extracting acme.sh-2.8.6: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [46/50] Installing nginx-1.18.0_20,2...
===> Creating groups.
Using existing group 'www'.
===> Creating users
Using existing user 'www'.
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [46/50] Extracting nginx-1.18.0_20,2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [47/50] Installing prosody-0.11.5_1...
===> Creating groups.
Creating group 'prosody' with gid '242'.
===> Creating users
Creating user 'prosody' with uid '242'.
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [47/50] Extracting prosody-0.11.5_1: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [48/50] Installing jicofo-1.0.555_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [48/50] Extracting jicofo-1.0.555_2: ....... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [49/50] Installing jitsi-meet-1.0.4048_2...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [49/50] Extracting jitsi-meet-1.0.4048_2: .......... done
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [50/50] Installing jitsi-videobridge-2.1.183_3...
[jitsi-meet-nomad-amd64-12_1.vsf00001.cpt.za.honeyguide.net] [50/50] Extracting jitsi-videobridge-2.1.183_3: ........ done
=====
Message from freetype2-2.10.2:

--
The 2.7.x series now uses the new subpixel hinting mode (V40 port's option) as
the default, emulating a modern version of ClearType. This change inevitably
leads to different rendering results, and you might change port's options to
adapt it to your taste (or use the new "FREETYPE_PROPERTIES" environment
variable).

The environment variable "FREETYPE_PROPERTIES" can be used to control the
driver properties. Example:

FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
	cff:no-stem-darkening=1 \
	autofitter:warping=1

This allows to select, say, the subpixel hinting mode at runtime for a given
application.

If LONG_PCF_NAMES port's option was enabled, the PCF family names may include
the foundry and information whether they contain wide characters. For example,
"Sony Fixed" or "Misc Fixed Wide", instead of "Fixed". This can be disabled at
run time with using pcf:no-long-family-names property, if needed. Example:

FREETYPE_PROPERTIES=pcf:no-long-family-names=1

How to recreate fontconfig cache with using such environment variable,
if needed:
# env FREETYPE_PROPERTIES=pcf:no-long-family-names=1 fc-cache -fsv

The controllable properties are listed in the section "Controlling FreeType
Modules" in the reference's table of contents
(/usr/local/share/doc/freetype2/reference/site/index.html, if documentation was installed).
=====
Message from ca_root_nss-3.54:

--
FreeBSD does not, and can not warrant that the certification authorities
whose certificates are included in this package have in any way been
audited for trustworthiness or RFC 3647 compliance.

Assessment and verification of trust is the complete responsibility of the
system administrator.


This package installs symlinks to support root certificates discovery by
default for software that uses OpenSSL.

This enables SSL Certificate Verification by client software without manual
intervention.

If you prefer to do this manually, replace the following symlinks with
either an empty file or your site-local certificate bundle.

  * /etc/ssl/cert.pem
  * /usr/local/etc/ssl/cert.pem
  * /usr/local/openssl/cert.pem
=====
Message from dejavu-2.37_1:

--
Make sure that the freetype module is loaded.  If it is not, add the following
line to the "Modules" section of your X Windows configuration file:

	Load "freetype"

Add the following line to the "Files" section of X Windows configuration file:

	FontPath "/usr/local/share/fonts/dejavu/"

Note: your X Windows configuration file is typically /etc/X11/XF86Config
if you are using XFree86, and /etc/X11/xorg.conf if you are using X.Org.
=====
Message from libinotify-20180201_2:

--
Libinotify functionality on FreeBSD is missing support for

  - detecting a file being moved into or out of a directory within the
    same filesystem
  - certain modifications to a symbolic link (rather than the
    file it points to.)

in addition to the known limitations on all platforms using kqueue(2)
where various open and close notifications are unimplemented.

This means the following regression tests will fail:

Directory notifications:
   IN_MOVED_FROM
   IN_MOVED_TO

Open/close notifications:
   IN_OPEN
   IN_CLOSE_NOWRITE
   IN_CLOSE_WRITE

Symbolic Link notifications:
   IN_DONT_FOLLOW
   IN_ATTRIB
   IN_MOVE_SELF
   IN_DELETE_SELF

Kernel patches to address the missing directory and symbolic link
notifications are available from:

https://github.com/libinotify-kqueue/libinotify-kqueue/tree/master/patches

You might want to consider increasing the kern.maxfiles tunable if you plan
to use this library for applications that need to monitor activity of a lot
of files.
=====
Message from alsa-lib-1.1.2_2:

--
===>   NOTICE:

The alsa-lib port currently does not have a maintainer. As a result, it is
more likely to have unresolved issues, not be up-to-date, or even be removed in
the future. To volunteer to maintain this port, please create an issue at:

https://bugs.freebsd.org/bugzilla

More information about port maintainership is available at:

https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html#maintain-port
=====
Message from openjdk8-8.262.10.1:

--
This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and
procfs(5) mounted on /proc.

If you have not done it yet, please do the following:

	mount -t fdescfs fdesc /dev/fd
	mount -t procfs proc /proc

To make it permanent, you need the following lines in /etc/fstab:

	fdesc	/dev/fd		fdescfs		rw	0	0
	proc	/proc		procfs		rw	0	0
=====
Message from acme.sh-2.8.6:

--
This script will create the following directories if they do not exist:

 ~acme/.acme.sh
 ~acme/certs

The script will also install ~acme/.acme.sh/account.conf.sample which has
sane defaults.  Copy this to ~acme/.acme.sh/account.conf and edit contents
to suit.

In the /usr/local/share/examples/acme.sh directory, you can find the dnsapi 
scripts which will be useful if you decide to use dns-01 challenges. Also 
included are the deploy scripts.

A newsyslog.conf sample file is provided at /usr/local/share/examples/acme.sh/acme.sh.conf
and you could create a symlink from that to /usr/local/etc/newsyslog.conf.d/

Your sample cronjob looks like this:

############################################################################
$ sudo crontab -l -u acme
# use /bin/sh to run commands, overriding the default set by cron
SHELL=/bin/sh
# mail any output to here, no matter whose crontab this is
MAILTO=dan@example.org

7 22 * * * /usr/local/sbin/acme.sh --cron --home /var/db/acme/.acme.sh > /dev/null
############################################################################

Change x & y to some minute and hour of the day.
=====
Message from nginx-1.18.0_20,2:

--
Recent version of the NGINX introduces dynamic modules support.  In
FreeBSD ports tree this feature was enabled by default with the DSO
knob.  Several vendor's and third-party modules have been converted
to dynamic modules.  Unset the DSO knob builds an NGINX without
dynamic modules support.

To load a module at runtime, include the new `load_module'
directive in the main context, specifying the path to the shared
object file for the module, enclosed in quotation marks.  When you
reload the configuration or restart NGINX, the module is loaded in.
It is possible to specify a path relative to the source directory,
or a full path, please see
https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/ and
http://nginx.org/en/docs/ngx_core_module.html#load_module for
details.

Default path for the NGINX dynamic modules is

/usr/local/libexec/nginx.
=====
Message from prosody-0.11.5_1:

--
If you're running Prosody in a jail and experience problems, please add
    the following to the global section of your prosody.cfg.lua:

    interfaces = { 'x.x.x.x' }

    where 'x.x.x.x' is the public IP you wish Prosody to bind to.
=====
Message from jicofo-1.0.555_2:

--
Jitsi Conference Focus was installed

1) The configuration file is used by the startup rcfile and located at:

   /usr/local/etc/jitsi/jicofo/jicofo.conf

2) Add jicofo_enable="YES" to /etc/rc.conf.

3) For use of jicofo with net-im/prosody, you need to import prosody's
   auth.jitsi.example.com TLS certificate into a Java truststore.
   The startup rcfile will pass this filename to jicofo:
   /usr/local/etc/jitsi/jicofo/truststore.jks - for example:

   # prosodyctl cert generate jitsi.example.com
   # prosodyctl cert generate auth.jitsi.example.com
   # keytool -noprompt -keystore /usr/local/etc/jitsi/jicofo/truststore.jks -importcert -alias prosody -file /path/to/prosody/auth.jitsi.example.com.crt

4) If you want use jicofo on FreeBSD 11.x, please apply the
   following patch file: https://reviews.freebsd.org/D14453

   jicofo rc script use ${name}_env_file functionality which is only
   available on FreeBSD >= 12.x

5) Enjoy it
=====
Message from jitsi-meet-1.0.4048_2:

--
Jitsi Meet was installed

1) Jitsi Meet needs the following apps as minimal to work

   www/nginx
   net-im/prosody
   net-im/jicofo
   net-im/jitsi-videobridge

2) You can look a basic configuration at the following url:

   https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual

3) Configuration and interface options files are installed like 

   /usr/local/www/jitsi-meet/config.js.sample
   /usr/local/www/jitsi-meet/interface_config.js.sample

   Copy these files to

   /usr/local/www/jitsi-meet/config.js
   /usr/local/www/jitsi-meet/interface_config.js

4) Enjoy it
=====
Message from jitsi-videobridge-2.1.183_3:

--
Jitsi Video Bridge was installed

1) The configuration file is used by the startup rcfile and located at:
   
   /usr/local/etc/jitsi/videobridge/jitsi-videobridge.conf

2) Add jitsi_videobridge_enable="YES" to /etc/rc.conf.

3) Additional jitsi-videobridge properties to control the TCP-related 
   functionality can be defined at:

   /usr/local/etc/jitsi/videobridge/sip-communicator.properties

   This file not exists by default

4) If jitsi-videobridge server is running behind NAT, you must add the 
   following lines to sip-comunnicator.properties file

   org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=Local_IP_Address
   org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=Public_IP_Address

   Also, you must redirect TCP/4443 and UDP/10000 ports to jitsi-videobridge 
   server

5) More about jitsi-videobridge properties at:

   https://github.com/jitsi/jitsi-videobridge/blob/master/doc/tcp.md

6) If you want use jitsi-videobridge on FreeBSD 11.x, please apply the
   following patch file:

   https://reviews.freebsd.org/D14453

   jitsi-videobridge rc script use ${name}_env_file funcitonality, which is only
   available on FreeBSD >= 12.x

7) Enjoy it
Nothing to do.
=====>  Stop the pot jitsi-meet-nomad-amd64-12_1
=====>  Remove epair0[a|b] network interfaces
=====>  unmount /var/pot/jails/jitsi-meet-nomad-amd64-12_1/m/tmp
=====>  unmount /var/pot/jails/jitsi-meet-nomad-amd64-12_1/m/dev
=====>  Flavour: jitsi-meet-nomad+1
=====>  Executing jitsi-meet-nomad+1 pot commands on jitsi-meet-nomad-amd64-12_1
=====>  No shell script available for the flavour jitsi-meet-nomad+1
=====>  Flavour: jitsi-meet-nomad+2
=====>  Executing jitsi-meet-nomad+2 pot commands on jitsi-meet-nomad-amd64-12_1
=====>  No shell script available for the flavour jitsi-meet-nomad+2
=====>  Flavour: jitsi-meet-nomad+3
=====>  Executing jitsi-meet-nomad+3 pot commands on jitsi-meet-nomad-amd64-12_1
=====>  No shell script available for the flavour jitsi-meet-nomad+3
=====>  Flavour: jitsi-meet-nomad+4
=====>  Executing jitsi-meet-nomad+4 pot commands on jitsi-meet-nomad-amd64-12_1
=====>  No shell script available for the flavour jitsi-meet-nomad+4

jitsi-meet-nomad-amd64-11_4_1.0:


jitsi-meet-nomad/jitsi-meet-nomad:
set-attribute -A persistent -V OFF
set-attribute -A no-rc-script -V ON
jitsi-meet-nomad/jitsi-meet-nomad.sh:
#!/bin/sh

[ -w /etc/pkg/FreeBSD.conf ] && sed -i '' 's/quarterly/latest/' /etc/pkg/FreeBSD.conf
ASSUME_ALWAYS_YES=yes pkg bootstrap
touch /etc/rc.conf
sysrc sendmail_enable="NO"
sysrc jitsi_videobridge_enable="YES"
sysrc jitsi_videobridge_flags="--apis=rest,xmpp"
sysrc prosody_enable="YES"
sysrc jicofo_enable="YES"

# Install packages
pkg install -y acme.sh nginx prosody jicofo jitsi-meet jitsi-videobridge 
pkg clean -y

#
# Now generate the run command script
# It configures the system on the first run and then starts nginx as process
# On subsequent runs, it only starts nginx
# 
echo "
#/bin/sh
if [ -e /usr/local/etc/pot-is-configured ]
then
    /usr/local/etc/rc.d/jitsi-videobridge start
    /usr/local/etc/rc.d/prosody start
    /usr/local/etc/rc.d/jicofo start
    nginx -g 'daemon off;'
    exit 0
fi

#
# Check config variables are set
# DOMAINNAME needs to contain the public domain name of the jail (e.g jitsi.honeyguide.net)
# PUBLICIP needs to contain the public IP address used to reach the service (for NAT traversal)
#

if [ -z \${DOMAINNAME+x} ]; 
then 
    echo 'DOMAINNAME is unset'
    exit 1
fi

if [ -z \${PUBLICIP+x} ]; 
then 
    echo 'PUBLICIP is unset'
    exit 1
fi

if [ -z \${PRIVATEIP+x} ];
then
    echo 'PRIVATEIP is unset'
    exit 1
fi

# Generate a password for stitching up the various parts of the configuration
KEYPASSWORD=\"\$(dd if=/dev/urandom count=1 2> /dev/null | uuencode -m - | sed -ne 2p | cut -c-12)\"

#
# Set up software
#

# Set up prosody
echo \"

pidfile = \\\"/var/run/prosody/prosody.pid\\\"
interfaces = { \\\"127.0.0.1\\\" }
admins = { \\\"focus@auth.\$DOMAINNAME\\\" }

modules_enabled = {

        -- Generally required
                \\\"roster\\\"; -- Allow users to have a roster. Recommended ;)
                \\\"saslauth\\\"; -- Authentication for clients and servers. Recommended if you want to log in.
                \\\"tls\\\"; -- Add support for secure TLS on c2s/s2s connections
                \\\"dialback\\\";
                \\\"carbons\\\"; -- Keep multiple clients in sync
                \\\"pep\\\"; -- Enables users to publish their avatar, mood, activity, playing music and more
                \\\"private\\\"; -- Private XML storage (for room bookmarks, etc.)
                \\\"blocklist\\\"; -- Allow users to block communications with other users
                \\\"vcard4\\\"; -- User profiles (stored in PEP)
                \\\"vcard_legacy\\\"; -- Conversion between legacy vCard and PEP Avatar, vcard

        -- Nice to have
                \\\"version\\\"; -- Replies to server version requests
                \\\"uptime\\\"; -- Report how long server has been running
                \\\"time\\\"; -- Let others know the time here on this server
                \\\"ping\\\"; -- Replies to XMPP pings with pongs
                \\\"register\\\"; -- Allow users to register on this server using a client and change passwords
                --\\\"mam\\\"; -- Store messages in an archive and allow users to access it
                --\\\"csi_simple\\\"; -- Simple Mobile optimizations

        -- Admin interfaces
                \\\"admin_adhoc\\\"; -- Allows administration via an XMPP client that supports ad-hoc commands
                --\\\"admin_telnet\\\"; -- Opens telnet console interface on localhost port 5582

        -- HTTP modules
                --\\\"bosh\\\"; -- Enable BOSH clients, aka Jabber over HTTP
                --\\\"websocket\\\"; -- XMPP over WebSockets
                --\\\"http_files\\\"; -- Serve static files from a directory over HTTP

        -- Other specific functionality
                --\\\"limits\\\"; -- Enable bandwidth limiting for XMPP connections
                --\\\"groups\\\"; -- Shared roster support
                --\\\"server_contact_info\\\"; -- Publish contact information for this service
                --\\\"announce\\\"; -- Send announcement to all online users
                --\\\"welcome\\\"; -- Welcome users who register accounts
                --\\\"watchregistrations\\\"; -- Alert admins of registrations
                --\\\"motd\\\"; -- Send a message to users when they log in
                --\\\"legacyauth\\\"; -- Legacy authentication. Only used by some old clients and bots.
                --\\\"proxy65\\\"; -- Enables a file transfer proxy service which clients behind NAT can use
}


c2s_require_encryption = true


s2s_require_encryption = true


s2s_secure_auth = false


--s2s_insecure_domains = { \\\"insecure.example\\\" }


authentication = \\\"internal_hashed\\\"


archive_expires_after = \\\"1w\\\" -- Remove archived messages after 1 week

log = {
        info = \\\"prosody.log\\\"; 
        error = \\\"prosody.err\\\";
        -- \\\"*syslog\\\"; -- Uncomment this for logging to syslog
        -- \\\"*console\\\"; -- Log to the console, useful for debugging with daemonize=false
}

certificates = \\\"certs\\\"


VirtualHost \\\"\$DOMAINNAME\\\"
    authentication = \\\"anonymous\\\"
    ssl = {
        key = \\\"/var/db/prosody/\$DOMAINNAME.key\\\";
        certificate = \\\"/var/db/prosody/\$DOMAINNAME.crt\\\";
    }
    modules_enabled = {
        \\\"bosh\\\";
        \\\"pubsub\\\";
    }
    c2s_require_encryption = false

VirtualHost \\\"auth.\$DOMAINNAME\\\"
    ssl = {
        key = \\\"/var/db/prosody/auth.\$DOMAINNAME.key\\\";
        certificate = \\\"/var/db/prosody/auth.\$DOMAINNAME.crt\\\";
    }
    authentication = \\\"internal_plain\\\"

admins = { \\\"focus@auth.\$DOMAINNAME\\\" }

Component \\\"conference.\$DOMAINNAME\\\" \\\"muc\\\"
Component \\\"jitsi-videobridge.\$DOMAINNAME\\\"
    component_secret = \\\"\$KEYPASSWORD\\\"
Component \\\"focus.\$DOMAINNAME\\\"
    component_secret = \\\"\$KEYPASSWORD\\\"
\" > /usr/local/etc/prosody/prosody.cfg.lua

echo -ne '\n\n\n\n\n\n\n\n\n\n\n' | prosodyctl cert generate \$DOMAINNAME 
echo -ne '\n\n\n\n\n\n\n\n\n\n\n' | prosodyctl cert generate auth.\$DOMAINNAME 
prosodyctl register focus auth.\$DOMAINNAME \$KEYPASSWORD 

# Set up nginx
echo \"
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen 80 default_server;

        server_name _;

        return 301 https://\\\$host\\\$request_uri;
    }

    server {
        listen 0.0.0.0:443 ssl http2;
        ssl_certificate      /usr/local/etc/ssl/\$DOMAINNAME.cer;
        ssl_certificate_key  /usr/local/etc/ssl/\$DOMAINNAME.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        server_name \$DOMAINNAME;
        # set the root
        root /usr/local/www/jitsi-meet;
        index index.html;
        location ~ ^/([a-zA-Z0-9=\?]+)$ {
            rewrite ^/(.*)$ / break;
        }
        location / {
            ssi on;
        }
        # BOSH, Bidirectional-streams Over Synchronous HTTP
        # https://en.wikipedia.org/wiki/BOSH_(protocol)
        location /http-bind {
            proxy_pass      http://localhost:5280/http-bind;
            proxy_set_header X-Forwarded-For \\\$remote_addr;
            proxy_set_header Host \\\$http_host;
        }
        # external_api.js must be accessible from the root of the
        # installation for the electron version of Jitsi Meet to work
        # https://github.com/jitsi/jitsi-meet-electron
        location /external_api.js {
            alias /srv/jitsi-meet/libs/external_api.min.js;
        }
    }
}\" > /usr/local/etc/nginx/nginx.conf

# Set up jitsi-videobridge
echo \"
JVB_XMPP_HOST=localhost
JVB_XMPP_DOMAIN=\$DOMAINNAME
JVB_XMPP_PORT=5347
JVB_XMPP_SECRET=\$KEYPASSWORD

VIDEOBRIDGE_MAX_MEMORY=3072m
\" > /usr/local/etc/jitsi/videobridge/jitsi-videobridge.conf

echo \"
org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false
# The videobridge uses 443 by default with 4443 as a fallback, but since we're already
# running nginx on 443 in this example doc, we specify 4443 manually to avoid a race condition
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443
org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=\$PRIVATEIP
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=\$PUBLICIP

#
# For Grafana dashboard
#

# the callstats credentials
io.callstats.sdk.CallStats.appId=\"jistats\"
io.callstats.sdk.CallStats.keyId=\"jistats_\$KEYPASSWORD\"

# enable statistics and callstats statistics and the report interval
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_INTERVAL.callstats.io=30000
org.jitsi.videobridge.STATISTICS_TRANSPORT=callstats.io
\" > /usr/local/etc/jitsi/videobridge/sip-communicator.properties

# Set up jicofo
keytool -noprompt -keystore /usr/local/etc/jitsi/jicofo/truststore.jks -storepass \"\$KEYPASSWORD\" -importcert -alias prosody -file /var/db/prosody/auth.\$DOMAINNAME.crt

echo \"
JVB_XMPP_HOST=localhost
JVB_XMPP_DOMAIN=\$DOMAINNAME
JVB_XMPP_PORT=5347
JVB_XMPP_SECRET=\$KEYPASSWORD
JVB_XMPP_USER_DOMAIN=auth.\$DOMAINNAME
JVB_XMPP_USER_NAME=focus
JVB_XMPP_USER_SECRET=\$KEYPASSWORD

MAX_MEMORY=3072m
\" > /usr/local/etc/jitsi/jicofo/jicofo.conf

# Set up jitsi-meet
echo \"
/* eslint-disable no-unused-vars, no-var */

var config = {
    // Connection
    //

    hosts: {
        // XMPP domain.
        domain: '\$DOMAINNAME',


        bridge: 'jitsi-videobridge.\$DOMAINNAME',

        // Focus component domain. Defaults to focus.<domain>.
        focus: 'focus.\$DOMAINNAME',

        // XMPP MUC domain. FIXME: use XEP-0030 to discover it.
        muc: 'conference.\$DOMAINNAME'
    },

    // BOSH URL. FIXME: use XEP-0156 to discover it.
    bosh: '//\$DOMAINNAME/http-bind',

    // Websocket URL
    // websocket: 'wss://jitsi-meet.example.com/xmpp-websocket',

    // The name of client node advertised in XEP-0115 'c' stanza
    clientNode: 'http://jitsi.org/jitsimeet',

    // The real JID of focus participant - can be overridden here
    // focusUserJid: 'focus@auth.jitsi-meet.example.com',


    // Testing / experimental features.
    //

    testing: {
        // P2P test mode disables automatic switching to P2P when there are 2
        // participants in the conference.
        p2pTestMode: false

        // Enables the test specific features consumed by jitsi-meet-torture
        // testMode: false

        // Disables the auto-play behavior of *all* newly created video element.
        // This is useful when the client runs on a host with limited resources.
        // noAutoPlayVideo: false
    },

    // Disables ICE/UDP by filtering out local and remote UDP candidates in
    // signal
    // Disable measuring of audio levels.
    // disableAudioLevels: false,
    // audioLevelsInterval: 200,

    // Enabling this will run the lib-jitsi-meet no audio detection module which
    // will notify the user if the current selected microphone has no audio
    // input and will suggest another valid device if one is present.
    enableNoAudioDetection: true,

    // Enabling this will run the lib-jitsi-meet noise detection module which will
    // notify the user if there is noise, other than voice, coming from the current
    // selected microphone. The purpose it to let the user know that the input could
    // be potentially unpleasant for other meeting participants.
    enableNoisyMicDetection: true,

    // Start the conference in audio only mode (no video is being received nor
    // sent).
    // startAudioOnly: false,

    // Every participant after the Nth will start audio muted.
    // startAudioMuted: 10,

    // Start calls with audio muted. Unlike the option above, this one is only
    // applied locally. FIXME: having these 2 options is confusing.
    // startWithAudioMuted: false,

    // Enabling it (with #params) will disable local audio output of remote
    // participants and to enable it back a reload is needed.
    // startSilent: false

    // Video

    // Sets the preferred resolution (height) for local video. Defaults to 720.
    // resolution: 720,

    // w3c spec-compliant video constraints to use for video capture. Currently
    // used by browsers that return true from lib-jitsi-meet's
    // util#browser#usesNewGumFlow. The constraints are independent from
    // this config's resolution value. Defaults to requesting an ideal
    // resolution of 720p.

    // startVideoMuted: 10,

    // Start calls with video muted. Unlike the option above, this one is only
    // applied locally. FIXME: having these 2 options is confusing.
    // startWithVideoMuted: false,

    // If set to true, prefer to use the H.264 video codec (if supported).
    // Note that it's not recommended to do this because simulcast is not
    // supported when  using H.264. For 1-to-1 calls this setting is enabled by
    // default and can be toggled in the p2p section.
    // preferH264: true,

    // If set to true, disable H.264 video codec by stripping it out of the
    // SDP.
    // disableH264: false,

    // Desktop sharing

    // The ID of the jidesha extension for Chrome.
    desktopSharingChromeExtId: null,

    // Whether desktop sharing should be disabled on Chrome.
    // desktopSharingChromeDisabled: false,

    // The media sources to use when using screen sharing with the Chrome
    // extension.
    desktopSharingChromeSources: [ 'screen', 'window', 'tab' ],

    // Required version of Chrome extension
    desktopSharingChromeMinExtVersion: '0.1',

    // Whether desktop sharing should be disabled on Firefox.
    // desktopSharingFirefoxDisabled: false,

    // Optional desktop sharing frame rate options. Default value: min:5, max:5.
    // desktopSharingFrameRate: {
    //     min: 5,
    //     max: 5
    // },


    //     // A URL to redirect the user to, after authenticating
    //     // by default uses:
    //     // 'https://jitsi-meet.example.com/static/oauth.html'
    //     redirectURI:
    //          'https://jitsi-meet.example.com/subfolder/static/oauth.html'
    // },
    // When integrations like dropbox are enabled only that will be shown,
    // by enabling fileRecordingsServiceEnabled, we show both the integrations
    // and the generic recording service (its configuration and storage type
    // depends on jibri configuration)
    // fileRecordingsServiceEnabled: false,
    // Whether to show the possibility to share file recording with other people
    // (e.g. meeting participants), based on the actual implementation
    // on the backend.
    // fileRecordingsServiceSharingEnabled: false,

    // Whether to enable live streaming or not.
    liveStreamingEnabled: true,

    // Transcription (in interface_config,
    // subtitles and buttons can be configured)
    // transcribingEnabled: false,

    // Enables automatic turning on captions when recording is started
    // autoCaptionOnRecord: false,

    // Misc

    // Default value for the channel \\\"last N\\\" attribute. -1 for unlimited.
    channelLastN: -1,

    // Disables or enables RTX (RFC 4588) (defaults to false).
    // disableRtx: false,

    // Disables or enables TCC (the default is in Jicofo and set to true)
    // (draft-holmer-rmcat-transport-wide-cc-extensions-01). This setting
    // affects congestion control, it practically enables send-side bandwidth
    // estimations.
    // enableTcc: true,

    //
    // useIPv6: true,

    // Enables / disables a data communication channel with the Videobridge.
    // Values can be 'datachannel', 'websocket', true (treat it as
    // 'datachannel'), undefined (treat it as 'datachannel') and false (don't
    // open any channel).
    // openBridgeChannel: true,


    // UI
    //

    // Use display name as XMPP nickname.
    // useNicks: false,

    // Require users to always specify a display name.
    // requireDisplayName: true,

    // Whether to use a welcome page or not. In case it's false a random room
    // will be joined when no room is specified.
    enableWelcomePage: true,

    // Enabling the close page will ignore the welcome page redirection when
    // a call is hangup.
    // enableClosePage: false,

    // Disable hiding of remote thumbnails when in a 1-on-1 conference call.
    // disable1On1Mode: false,

    // Default language for the user interface.
    // defaultLanguage: 'en',

    // If true all users without a token will be considered guests and all users
    // with token will be considered non-guests. Only guests will be allowed to
    // edit their profile.
    enableUserRolesBasedOnToken: false,

    // Whether or not some features are checked based on token.
    // enableFeaturesBasedOnToken: false,

   
    // and microsoftApiApplicationClientID
    // enableCalendarIntegration: false,

    // Stats
    //

    // Whether to enable stats collection or not in the TraceablePeerConnection.
    // This can be useful for debugging purposes (post-processing/analysis of
    // the webrtc stats) as it is done in the jitsi-meet-torture bandwidth
    // estimation tests.
    // gatherStats: false,

    // The interval at which PeerConnection.getStats() is called. Defaults to 10000
    // pcStatsInterval: 10000,

    // To enable sending statistics to callstats.io you must provide the
    // Application ID and Secret.
    callStatsID: 'jistats',
    callStatsSecret: 'jistats_\$KEYPASSWORD',

    // enables sending participants display name to callstats
    // enableDisplayNameInStats: false,

    // enables sending participants email if available to callstats and other analytics
    // enableEmailInStats: false,

    // Privacy
    //

    // If third party requests are disabled, no other server will be contacted.
    // This means avatars will be locally generated and callstats integration
    // will not function.
    // disableThirdPartyRequests: false,


    // Peer-To-Peer mode: used (if enabled) when there are just 2 participants.
    //

    p2p: {
        // Enables peer to peer mode. When enabled the system will try to
        // establish a direc
        // useStunTurn: true,

        // The STUN servers that will be used in the peer to peer connections
        stunServers: [

            // { urls: 'stun:jitsi-meet.example.com:4446' },
            { urls: 'stun:meet-jit-si-turnrelay.jitsi.net:443' }
        ],

        // Sets the ICE transport policy for the p2p connection. At the time
        // of this writing the list of possible values are 'all' and 'relay',
        // but that is subject to change in the future. The enum is defined in
        // the WebRTC standard:
        // https://www.w3.org/TR/webrtc/#rtcicetransportpolicy-enum.
        // If not set, the effective value is 'all'.
        // iceTransportPolicy: 'all',

        // If set to true, it will prefer to use H.264 for P2P calls (if H.264
        // is supported).
        preferH264: true

        // If set to true, disable H.264 video codec by stripping it out of the
        // SDP.
        // disableH264: false,

        // How long we're going to wait, before going back to P2P after the 3rd
        // participant has left the conference (to filter out page reload).
        // backToP2PDelay: 5
    },

    analytics: {
        // The Google Analytics Tracking ID:
        // googleAnalyticsTrackingId: 'your-tracking-id-UA-123456-1'

        // The Amplitude APP Key:
        // amplitudeAPPKey: '<APP_KEY>'


    //     // Extensions info which allows checking if they are installed or not
    //     chromeExtensionsInfo: [
    //         {
    //             id: 'kglhbbefdnlheedjiejgomgmfplipfeb',
    //             path: 'jitsi-logo-48x48.png'
    //         }
    //     ]
    },

    // Local Recording
    //

    // localRecording: {
    // Enables local recording.
    // Additionally, 'localrecording' (all lowercase) needs to be added to
    // TOOLBAR_BUTTONS in interface_config.js for the Local Recording
    // button to show up on the toolbar.
    //
    //     enabled: true,
    //

    // The recording format, can be one of 'ogg', 'flac' or 'wav'.
    //     format: 'flac'
    //

    // },

    // Options related to end-to-end (participant to participant) ping.
    // e2eping: {
    //   // The interval in milliseconds at which pings will be sent.
    //   // Defaults to 10000, set to <= 0 to disable.
    //   pingInterval: 10000,
    //
    //   // The interval in milliseconds at which analytics events
    //   // with the measured RTT will be sent. Defaults to 60000, set
    //   // to <= 0 to disable.
    //   analyticsInterval: 60000,
    //   },

    // If set, will attempt to use the provided vi
    // and instead the app will continue to display in the current browser.
    // disableDeepLinking: false,

    // A property to disable the right click context menu for localVideo
    // the menu has option to flip the locally seen video for local presentations
    // disableLocalVideoFlip: false,

    // Mainly privacy related settings

    // Disables all invite functions from the app (share, invite, dial out...etc)
    // disableInviteFunctions: true,

    // Disables storing the room name to the recents list
    // doNotStoreRoom: true,

    // Deployment specific URLs.
    // deploymentUrls: {
    //    // If specified a 'Help' button will be displayed in the overflow menu with a link to the specified URL for
    //    // user documentation.
    //    userDocumentationURL: 'https://docs.example.com/video-meetings.html',
    //    // If specified a 'Download our apps' button will be displayed in the overflow menu with a link
    //    // to the specified URL for an app download page.
    //    downloadAppsUrl: 'https://docs.example.com/our-apps.html'
    // },

    // Options related to the remote participant menu.
    // remoteVideoMenu: {
    //     // If set to true the 'Kick out' button will be disabled.
    //     disableKick: true
    // },

    // If set to true all muting operations of remote participants will be disabled.
    // disableRemoteMute: true,

    // List of undocumented settings used in jitsi-meet
    /**
     _immediateReloadThreshold
     autoRecord
     autoRecordToken
     debug
     debugAudioLev
     iAmSipGateway
     microsoftApiApplicationClientID
     peopleSearchQueryTypes
     peopleSearchUrl
     requireDisplayName
     tokenAuthUrl
     */

    // List of undocumented settings used in lib-jitsi-meet
    /**
     _peerConnStatusOutOfLastNTimeout
     _peerConnStatusRtcMuteTimeout
     abTesting
     avgRtpStatsN
     callStatsConfIDNamespace
     callStatsCustomScriptUrl
     desktopSharingSources
     disableAEC
     disableAGC
     disableAP
     disableHPF
     disableNS
     enableLipSync
     enableTalkWhileMuted
     forceJVB121Ratio
     hiddenDomain
     ignoreStartMuted
     nick
     startBitrate
     */


    // Allow all above example options to include a trailing comma and
    // prevent fear when commenting out the last value.
    makeJsonParserHappy: 'even if last key had a trailing comma'

    // no configuration value should follow this line.
};

/* eslint-enable no-unused-vars, no-var */
\" > /usr/local/www/jitsi-meet/config.js

# Fetch certificates
cd /tmp
acme.sh --force --issue -d \$DOMAINNAME --standalone
mv /root/.acme.sh/\$DOMAINNAME/* /usr/local/etc/ssl/

# Never run this script again on boot
touch /usr/local/etc/pot-is-configured

/usr/local/etc/rc.d/jitsi-videobridge start
/usr/local/etc/rc.d/prosody start
/usr/local/etc/rc.d/jicofo start

nginx -g 'daemon off;'

" > /usr/local/bin/cook
chmod u+x /usr/local/bin/cook

jitsi-meet-nomad/jitsi-meet-nomad+1:
jitsi-meet-nomad/jitsi-meet-nomad+1.sh:

jitsi-meet-nomad/jitsi-meet-nomad+2:
jitsi-meet-nomad/jitsi-meet-nomad+2.sh:

jitsi-meet-nomad/jitsi-meet-nomad+3:
jitsi-meet-nomad/jitsi-meet-nomad+3.sh:

jitsi-meet-nomad/jitsi-meet-nomad+4:
set-cmd -c "/usr/local/bin/cook"
jitsi-meet-nomad/jitsi-meet-nomad+4.sh:
Password:=====>  -i auto: assigned 10.192.0.4
===>  Creating a new pot
===>  pot name : jitsi-meet-nomad-amd64-11_4
===>  type : single
===>  base : 11.4
===>  pot_base :
===>  level : 0
===>  network-type: public-bridge
===>  ip : 10.192.0.4
===>  bridge :
===>  dns : inherit
===>  flavours : fbsd-update jitsi-meet-nomad jitsi-meet-nomad+1 jitsi-meet-nomad+2 jitsi-meet-nomad+3 jitsi-meet-nomad+4
===>  Fetching FreeBSD 11.4
===>  Extract the tarball
=====>  Flavour: fbsd-update
=====>  Starting jitsi-meet-nomad-amd64-11_4 pot for the initial bootstrap
=====>  mount /var/pot/jails/jitsi-meet-nomad-amd64-11_4/m/tmp
defaultrouter: NO -> 10.192.0.1
===>  Starting the pot jitsi-meet-nomad-amd64-11_4
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
32-bit compatibility ldconfig path: /usr/lib32
Starting Network: lo0 epair0b.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	inet 127.0.0.1 netmask 0xff000000
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
	groups: lo
epair0b: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8<VLAN_MTU>
	ether 02:5b:da:7c:dd:0b
	hwaddr 02:5b:da:7c:dd:0b
	inet 10.192.0.4 netmask 0xffc00000 broadcast 10.255.255.255
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
	media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
	status: active
	groups: epair
add host 127.0.0.1: gateway lo0 fib 0: route already in table
add net default: gateway 10.192.0.1
add host ::1: gateway lo0 fib 0: route already in table
add net fe80::: gateway ::1
add net ff02::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
Generating host.conf.
Creating and/or trimming log files.
Starting syslogd.
Clearing /tmp (X related).
Updating motd:.
Starting sendmail_submit.
Starting sendmail_msp_queue.
Starting cron.

Tue Jul 21 15:24:54 UTC 2020
/usr/local/etc/pot/flavours/fbsd-update.sh -> /var/pot/jails/jitsi-meet-nomad-amd64-11_4/m/tmp/fbsd-update.sh
=====>  Executing fbsd-update script on jitsi-meet-nomad-amd64-11_4
src component not installed, skipped
freebsd-update fetch should not be run non-interactively.
Run freebsd-update cron instead.
src component not installed, skipped
No updates are available to install.
Run '/usr/sbin/freebsd-update fetch' first.
=====>  Stop the pot jitsi-meet-nomad-amd64-11_4
=====>  Remove epair0[a|b] network interfaces
=====>  unmount /var/pot/jails/jitsi-meet-nomad-amd64-11_4/m/tmp
=====>  unmount /var/pot/jails/jitsi-meet-nomad-amd64-11_4/m/dev
=====>  Flavour: jitsi-meet-nomad
=====>  Executing jitsi-meet-nomad pot commands on jitsi-meet-nomad-amd64-11_4
=====>  Starting jitsi-meet-nomad-amd64-11_4 pot for the initial bootstrap
=====>  mount /var/pot/jails/jitsi-meet-nomad-amd64-11_4/m/tmp
===>  Starting the pot jitsi-meet-nomad-amd64-11_4
add net default: gateway 10.192.0.1
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
32-bit compatibility ldconfig path: /usr/lib32
Starting Network: lo0 epair0b.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	inet 127.0.0.1 netmask 0xff000000
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
	groups: lo
epair0b: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8<VLAN_MTU>
	ether 02:51:0a:c5:e1:0b
	hwaddr 02:51:0a:c5:e1:0b
	inet6 fe80::51:aff:fec5:e10b%epair0b prefixlen 64 tentative scopeid 0x2
	inet 10.192.0.4 netmask 0xffc00000 broadcast 10.255.255.255
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
	media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
	status: active
	groups: epair
add host 127.0.0.1: gateway lo0 fib 0: route already in table
add net default: gateway 10.192.0.1
add host ::1: gateway lo0 fib 0: route already in table
add net fe80::: gateway ::1
add net ff02::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
Creating and/or trimming log files.
Starting syslogd.
Clearing /tmp (X related).
Updating motd:.
Starting sendmail_submit.
Starting sendmail_msp_queue.
Starting cron.

Tue Jul 21 15:25:00 UTC 2020
/usr/local/etc/pot/flavours/jitsi-meet-nomad.sh -> /var/pot/jails/jitsi-meet-nomad-amd64-11_4/m/tmp/jitsi-meet-nomad.sh
=====>  Executing jitsi-meet-nomad script on jitsi-meet-nomad-amd64-11_4
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] Installing pkg-1.14.6...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] Extracting pkg-1.14.6: .......... done
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:11:amd64/latest, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
sendmail_enable: NO -> NO
jitsi_videobridge_enable:  -> YES
jitsi_videobridge_flags:  -> --apis=rest,xmpp
prosody_enable:  -> YES
jicofo_enable:  -> YES
Updating FreeBSD repository catalogue...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] Fetching meta.conf: . done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] Fetching packagesite.txz: .......... done
Processing entries: .......... done
FreeBSD repository update completed. 30777 packages processed.
All repositories are up to date.
Updating database digests format: . done
The following 50 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
	acme.sh: 2.8.6
	alsa-lib: 1.1.2_2
	bash: 5.0.18_1
	ca_root_nss: 3.54
	curl: 7.71.1
	dejavu: 2.37_1
	expat: 2.2.8
	fontconfig: 2.13.92_2,1
	freetype2: 2.10.2
	gettext-runtime: 0.20.2
	giflib: 5.2.1
	indexinfo: 0.3.1
	java-zoneinfo: 2020.a
	javavmwrapper: 2.7.5
	jicofo: 1.0.555_2
	jitsi-meet: 1.0.4048_2
	jitsi-videobridge: 2.1.183_3
	libICE: 1.0.10,1
	libSM: 1.2.3,1
	libX11: 1.6.9_2,1
	libXau: 1.0.9
	libXdmcp: 1.1.3
	libXext: 1.3.4,1
	libXfixes: 5.0.3_2
	libXi: 1.7.10,1
	libXrender: 0.9.10_2
	libXt: 1.2.0,1
	libXtst: 1.2.3_2
	libedit: 3.1.20191231,1
	libfontenc: 1.1.4
	libidn: 1.35
	libinotify: 20180201_2
	libnghttp2: 1.41.0
	libpthread-stubs: 0.4
	libxcb: 1.13.1
	libxml2: 2.9.10
	lua52: 5.2.4
	lua52-bitop: 1.0.2_2
	lua52-luaexpat: 1.3.0_5
	lua52-luafilesystem: 1.7.0_1
	lua52-luasec: 0.9_1
	lua52-luasocket: 3.0.r1_5,1
	mkfontscale: 1.2.1
	nginx: 1.18.0_18,2
	openjdk8: 8.252.09.1_2
	pcre: 8.44
	prosody: 0.11.5_1
	readline: 8.0.4
	socat: 1.7.3.4
	xorgproto: 2020.1

Number of packages to be installed: 50

The process will require 381 MiB more space.
180 MiB to be downloaded.
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [1/50] Fetching acme.sh-2.8.6.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [2/50] Fetching nginx-1.18.0_18,2.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [3/50] Fetching prosody-0.11.5_1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [4/50] Fetching jicofo-1.0.555_2.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [5/50] Fetching jitsi-meet-1.0.4048_2.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [6/50] Fetching jitsi-videobridge-2.1.183_3.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [7/50] Fetching socat-1.7.3.4.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [8/50] Fetching curl-7.71.1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [9/50] Fetching libnghttp2-1.41.0.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [10/50] Fetching ca_root_nss-3.54.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [11/50] Fetching pcre-8.44.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [12/50] Fetching lua52-luaexpat-1.3.0_5.txz: .. done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [13/50] Fetching expat-2.2.8.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [14/50] Fetching lua52-5.2.4.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [15/50] Fetching libedit-3.1.20191231,1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [16/50] Fetching lua52-luasec-0.9_1.txz: .... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [17/50] Fetching lua52-luasocket-3.0.r1_5,1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [18/50] Fetching libidn-1.35.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [19/50] Fetching indexinfo-0.3.1.txz: . done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [20/50] Fetching gettext-runtime-0.20.2.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [21/50] Fetching lua52-luafilesystem-1.7.0_1.txz: ... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [22/50] Fetching lua52-bitop-1.0.2_2.txz: . done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [23/50] Fetching openjdk8-8.252.09.1_2.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [24/50] Fetching libXtst-1.2.3_2.txz: ... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [25/50] Fetching libXi-1.7.10,1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [26/50] Fetching libXfixes-5.0.3_2.txz: .. done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [27/50] Fetching libX11-1.6.9_2,1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [28/50] Fetching libxcb-1.13.1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [29/50] Fetching libXdmcp-1.1.3.txz: .. done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [30/50] Fetching xorgproto-2020.1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [31/50] Fetching libXau-1.0.9.txz: .. done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [32/50] Fetching libxml2-2.9.10.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [33/50] Fetching libpthread-stubs-0.4.txz: . done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [34/50] Fetching libXext-1.3.4,1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [35/50] Fetching libXrender-0.9.10_2.txz: .... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [36/50] Fetching libXt-1.2.0,1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [37/50] Fetching libSM-1.2.3,1.txz: ... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [38/50] Fetching libICE-1.0.10,1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [39/50] Fetching fontconfig-2.13.92_2,1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [40/50] Fetching freetype2-2.10.2.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [41/50] Fetching dejavu-2.37_1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [42/50] Fetching mkfontscale-1.2.1.txz: ... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [43/50] Fetching libfontenc-1.1.4.txz: ... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [44/50] Fetching javavmwrapper-2.7.5.txz: ... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [45/50] Fetching java-zoneinfo-2020.a.txz: ......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [46/50] Fetching giflib-5.2.1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [47/50] Fetching libinotify-20180201_2.txz: .... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [48/50] Fetching alsa-lib-1.1.2_2.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [49/50] Fetching bash-5.0.18_1.txz: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [50/50] Fetching readline-8.0.4.txz: .......... done
Checking integrity... done (0 conflicting)
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [1/50] Installing xorgproto-2020.1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [1/50] Extracting xorgproto-2020.1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [2/50] Installing libXdmcp-1.1.3...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [2/50] Extracting libXdmcp-1.1.3: ......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [3/50] Installing libXau-1.0.9...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [3/50] Extracting libXau-1.0.9: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [4/50] Installing libxml2-2.9.10...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [4/50] Extracting libxml2-2.9.10: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [5/50] Installing libpthread-stubs-0.4...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [5/50] Extracting libpthread-stubs-0.4: .... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [6/50] Installing libxcb-1.13.1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [6/50] Extracting libxcb-1.13.1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [7/50] Installing indexinfo-0.3.1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [7/50] Extracting indexinfo-0.3.1: .... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [8/50] Installing libX11-1.6.9_2,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [8/50] Extracting libX11-1.6.9_2,1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [9/50] Installing expat-2.2.8...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [9/50] Extracting expat-2.2.8: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [10/50] Installing gettext-runtime-0.20.2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [10/50] Extracting gettext-runtime-0.20.2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [11/50] Installing libXfixes-5.0.3_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [11/50] Extracting libXfixes-5.0.3_2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [12/50] Installing libXext-1.3.4,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [12/50] Extracting libXext-1.3.4,1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [13/50] Installing libICE-1.0.10,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [13/50] Extracting libICE-1.0.10,1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [14/50] Installing freetype2-2.10.2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [14/50] Extracting freetype2-2.10.2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [15/50] Installing libfontenc-1.1.4...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [15/50] Extracting libfontenc-1.1.4: ......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [16/50] Installing libedit-3.1.20191231,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [16/50] Extracting libedit-3.1.20191231,1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [17/50] Installing libXi-1.7.10,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [17/50] Extracting libXi-1.7.10,1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [18/50] Installing libSM-1.2.3,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [18/50] Extracting libSM-1.2.3,1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [19/50] Installing fontconfig-2.13.92_2,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [19/50] Extracting fontconfig-2.13.92_2,1: .......... done
Running fc-cache to build fontconfig cache...
Font directories:
	/usr/local/share/fonts
	/usr/local/lib/X11/fonts
/usr/local/share/fonts: skipping, no such directory
/usr/local/lib/X11/fonts: skipping, no such directory
/var/db/fontconfig: cleaning cache directory
fc-cache: succeeded
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [20/50] Installing mkfontscale-1.2.1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [20/50] Extracting mkfontscale-1.2.1: ....... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [21/50] Installing libnghttp2-1.41.0...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [21/50] Extracting libnghttp2-1.41.0: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [22/50] Installing ca_root_nss-3.54...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [22/50] Extracting ca_root_nss-3.54: ........ done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [23/50] Installing lua52-5.2.4...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [23/50] Extracting lua52-5.2.4: ......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [24/50] Installing libXtst-1.2.3_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [24/50] Extracting libXtst-1.2.3_2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [25/50] Installing libXrender-0.9.10_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [25/50] Extracting libXrender-0.9.10_2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [26/50] Installing libXt-1.2.0,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [26/50] Extracting libXt-1.2.0,1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [27/50] Installing dejavu-2.37_1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [27/50] Extracting dejavu-2.37_1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [28/50] Installing javavmwrapper-2.7.5...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [28/50] Extracting javavmwrapper-2.7.5: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [29/50] Installing java-zoneinfo-2020.a...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [29/50] Extracting java-zoneinfo-2020.a: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [30/50] Installing giflib-5.2.1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [30/50] Extracting giflib-5.2.1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [31/50] Installing libinotify-20180201_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [31/50] Extracting libinotify-20180201_2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [32/50] Installing alsa-lib-1.1.2_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [32/50] Extracting alsa-lib-1.1.2_2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [33/50] Installing readline-8.0.4...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [33/50] Extracting readline-8.0.4: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [34/50] Installing socat-1.7.3.4...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [34/50] Extracting socat-1.7.3.4: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [35/50] Installing curl-7.71.1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [35/50] Extracting curl-7.71.1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [36/50] Installing pcre-8.44...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [36/50] Extracting pcre-8.44: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [37/50] Installing lua52-luaexpat-1.3.0_5...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [37/50] Extracting lua52-luaexpat-1.3.0_5: ..... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [38/50] Installing lua52-luasec-0.9_1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [38/50] Extracting lua52-luasec-0.9_1: ...... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [39/50] Installing lua52-luasocket-3.0.r1_5,1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [39/50] Extracting lua52-luasocket-3.0.r1_5,1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [40/50] Installing libidn-1.35...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [40/50] Extracting libidn-1.35: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [41/50] Installing lua52-luafilesystem-1.7.0_1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [41/50] Extracting lua52-luafilesystem-1.7.0_1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [42/50] Installing lua52-bitop-1.0.2_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [42/50] Extracting lua52-bitop-1.0.2_2: .... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [43/50] Installing openjdk8-8.252.09.1_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [43/50] Extracting openjdk8-8.252.09.1_2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [44/50] Installing bash-5.0.18_1...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [44/50] Extracting bash-5.0.18_1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [45/50] Installing acme.sh-2.8.6...
===> Creating groups.
Creating group 'acme' with gid '169'.
===> Creating users
Creating user 'acme' with uid '169'.
===> Creating homedir(s)
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [45/50] Extracting acme.sh-2.8.6: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [46/50] Installing nginx-1.18.0_18,2...
===> Creating groups.
Using existing group 'www'.
===> Creating users
Using existing user 'www'.
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [46/50] Extracting nginx-1.18.0_18,2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [47/50] Installing prosody-0.11.5_1...
===> Creating groups.
Creating group 'prosody' with gid '242'.
===> Creating users
Creating user 'prosody' with uid '242'.
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [47/50] Extracting prosody-0.11.5_1: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [48/50] Installing jicofo-1.0.555_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [48/50] Extracting jicofo-1.0.555_2: ....... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [49/50] Installing jitsi-meet-1.0.4048_2...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [49/50] Extracting jitsi-meet-1.0.4048_2: .......... done
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [50/50] Installing jitsi-videobridge-2.1.183_3...
[jitsi-meet-nomad-amd64-11_4.vsf00001.cpt.za.honeyguide.net] [50/50] Extracting jitsi-videobridge-2.1.183_3: ........ done
=====
Message from freetype2-2.10.2:

--
The 2.7.x series now uses the new subpixel hinting mode (V40 port's option) as
the default, emulating a modern version of ClearType. This change inevitably
leads to different rendering results, and you might change port's options to
adapt it to your taste (or use the new "FREETYPE_PROPERTIES" environment
variable).

The environment variable "FREETYPE_PROPERTIES" can be used to control the
driver properties. Example:

FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
	cff:no-stem-darkening=1 \
	autofitter:warping=1

This allows to select, say, the subpixel hinting mode at runtime for a given
application.

If LONG_PCF_NAMES port's option was enabled, the PCF family names may include
the foundry and information whether they contain wide characters. For example,
"Sony Fixed" or "Misc Fixed Wide", instead of "Fixed". This can be disabled at
run time with using pcf:no-long-family-names property, if needed. Example:

FREETYPE_PROPERTIES=pcf:no-long-family-names=1

How to recreate fontconfig cache with using such environment variable,
if needed:
# env FREETYPE_PROPERTIES=pcf:no-long-family-names=1 fc-cache -fsv

The controllable properties are listed in the section "Controlling FreeType
Modules" in the reference's table of contents
(/usr/local/share/doc/freetype2/reference/site/index.html, if documentation was installed).
=====
Message from ca_root_nss-3.54:

--
FreeBSD does not, and can not warrant that the certification authorities
whose certificates are included in this package have in any way been
audited for trustworthiness or RFC 3647 compliance.

Assessment and verification of trust is the complete responsibility of the
system administrator.


This package installs symlinks to support root certificates discovery by
default for software that uses OpenSSL.

This enables SSL Certificate Verification by client software without manual
intervention.

If you prefer to do this manually, replace the following symlinks with
either an empty file or your site-local certificate bundle.

  * /etc/ssl/cert.pem
  * /usr/local/etc/ssl/cert.pem
  * /usr/local/openssl/cert.pem
=====
Message from dejavu-2.37_1:

--
Make sure that the freetype module is loaded.  If it is not, add the following
line to the "Modules" section of your X Windows configuration file:

	Load "freetype"

Add the following line to the "Files" section of X Windows configuration file:

	FontPath "/usr/local/share/fonts/dejavu/"

Note: your X Windows configuration file is typically /etc/X11/XF86Config
if you are using XFree86, and /etc/X11/xorg.conf if you are using X.Org.
=====
Message from libinotify-20180201_2:

--
Libinotify functionality on FreeBSD is missing support for

  - detecting a file being moved into or out of a directory within the
    same filesystem
  - certain modifications to a symbolic link (rather than the
    file it points to.)

in addition to the known limitations on all platforms using kqueue(2)
where various open and close notifications are unimplemented.

This means the following regression tests will fail:

Directory notifications:
   IN_MOVED_FROM
   IN_MOVED_TO

Open/close notifications:
   IN_OPEN
   IN_CLOSE_NOWRITE
   IN_CLOSE_WRITE

Symbolic Link notifications:
   IN_DONT_FOLLOW
   IN_ATTRIB
   IN_MOVE_SELF
   IN_DELETE_SELF

Kernel patches to address the missing directory and symbolic link
notifications are available from:

https://github.com/libinotify-kqueue/libinotify-kqueue/tree/master/patches

You might want to consider increasing the kern.maxfiles tunable if you plan
to use this library for applications that need to monitor activity of a lot
of files.
=====
Message from alsa-lib-1.1.2_2:

--
===>   NOTICE:

The alsa-lib port currently does not have a maintainer. As a result, it is
more likely to have unresolved issues, not be up-to-date, or even be removed in
the future. To volunteer to maintain this port, please create an issue at:

https://bugs.freebsd.org/bugzilla

More information about port maintainership is available at:

https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html#maintain-port
=====
Message from openjdk8-8.252.09.1_2:

--
This OpenJDK implementation requires fdescfs(5) mounted on /dev/fd and
procfs(5) mounted on /proc.

If you have not done it yet, please do the following:

	mount -t fdescfs fdesc /dev/fd
	mount -t procfs proc /proc

To make it permanent, you need the following lines in /etc/fstab:

	fdesc	/dev/fd		fdescfs		rw	0	0
	proc	/proc		procfs		rw	0	0
=====
Message from acme.sh-2.8.6:

--
This script will create the following directories if they do not exist:

 ~acme/.acme.sh
 ~acme/certs

The script will also install ~acme/.acme.sh/account.conf.sample which has
sane defaults.  Copy this to ~acme/.acme.sh/account.conf and edit contents
to suit.

In the /usr/local/share/examples/acme.sh directory, you can find the dnsapi 
scripts which will be useful if you decide to use dns-01 challenges. Also 
included are the deploy scripts.

A newsyslog.conf sample file is provided at /usr/local/share/examples/acme.sh/acme.sh.conf
and you could create a symlink from that to /usr/local/etc/newsyslog.conf.d/

Your sample cronjob looks like this:

############################################################################
$ sudo crontab -l -u acme
# use /bin/sh to run commands, overriding the default set by cron
SHELL=/bin/sh
# mail any output to here, no matter whose crontab this is
MAILTO=dan@example.org

7 22 * * * /usr/local/sbin/acme.sh --cron --home /var/db/acme/.acme.sh > /dev/null
############################################################################

Change x & y to some minute and hour of the day.
=====
Message from nginx-1.18.0_18,2:

--
Recent version of the NGINX introduces dynamic modules support.  In
FreeBSD ports tree this feature was enabled by default with the DSO
knob.  Several vendor's and third-party modules have been converted
to dynamic modules.  Unset the DSO knob builds an NGINX without
dynamic modules support.

To load a module at runtime, include the new `load_module'
directive in the main context, specifying the path to the shared
object file for the module, enclosed in quotation marks.  When you
reload the configuration or restart NGINX, the module is loaded in.
It is possible to specify a path relative to the source directory,
or a full path, please see
https://www.nginx.com/blog/dynamic-modules-nginx-1-9-11/ and
http://nginx.org/en/docs/ngx_core_module.html#load_module for
details.

Default path for the NGINX dynamic modules is

/usr/local/libexec/nginx.
=====
Message from prosody-0.11.5_1:

--
If you're running Prosody in a jail and experience problems, please add
    the following to the global section of your prosody.cfg.lua:

    interfaces = { 'x.x.x.x' }

    where 'x.x.x.x' is the public IP you wish Prosody to bind to.
=====
Message from jicofo-1.0.555_2:

--
Jitsi Conference Focus was installed

1) The configuration file is used by the startup rcfile and located at:

   /usr/local/etc/jitsi/jicofo/jicofo.conf

2) Add jicofo_enable="YES" to /etc/rc.conf.

3) For use of jicofo with net-im/prosody, you need to import prosody's
   auth.jitsi.example.com TLS certificate into a Java truststore.
   The startup rcfile will pass this filename to jicofo:
   /usr/local/etc/jitsi/jicofo/truststore.jks - for example:

   # prosodyctl cert generate jitsi.example.com
   # prosodyctl cert generate auth.jitsi.example.com
   # keytool -noprompt -keystore /usr/local/etc/jitsi/jicofo/truststore.jks -importcert -alias prosody -file /path/to/prosody/auth.jitsi.example.com.crt

4) If you want use jicofo on FreeBSD 11.x, please apply the
   following patch file: https://reviews.freebsd.org/D14453

   jicofo rc script use ${name}_env_file functionality which is only
   available on FreeBSD >= 12.x

5) Enjoy it
=====
Message from jitsi-meet-1.0.4048_2:

--
Jitsi Meet was installed

1) Jitsi Meet needs the following apps as minimal to work

   www/nginx
   net-im/prosody
   net-im/jicofo
   net-im/jitsi-videobridge

2) You can look a basic configuration at the following url:

   https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual

3) Configuration and interface options files are installed like 

   /usr/local/www/jitsi-meet/config.js.sample
   /usr/local/www/jitsi-meet/interface_config.js.sample

   Copy these files to

   /usr/local/www/jitsi-meet/config.js
   /usr/local/www/jitsi-meet/interface_config.js

4) Enjoy it
=====
Message from jitsi-videobridge-2.1.183_3:

--
Jitsi Video Bridge was installed

1) The configuration file is used by the startup rcfile and located at:
   
   /usr/local/etc/jitsi/videobridge/jitsi-videobridge.conf

2) Add jitsi_videobridge_enable="YES" to /etc/rc.conf.

3) Additional jitsi-videobridge properties to control the TCP-related 
   functionality can be defined at:

   /usr/local/etc/jitsi/videobridge/sip-communicator.properties

   This file not exists by default

4) If jitsi-videobridge server is running behind NAT, you must add the 
   following lines to sip-comunnicator.properties file

   org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=Local_IP_Address
   org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=Public_IP_Address

   Also, you must redirect TCP/4443 and UDP/10000 ports to jitsi-videobridge 
   server

5) More about jitsi-videobridge properties at:

   https://github.com/jitsi/jitsi-videobridge/blob/master/doc/tcp.md

6) If you want use jitsi-videobridge on FreeBSD 11.x, please apply the
   following patch file:

   https://reviews.freebsd.org/D14453

   jitsi-videobridge rc script use ${name}_env_file funcitonality, which is only
   available on FreeBSD >= 12.x

7) Enjoy it
Nothing to do.
=====>  Stop the pot jitsi-meet-nomad-amd64-11_4
=====>  Remove epair0[a|b] network interfaces
=====>  unmount /var/pot/jails/jitsi-meet-nomad-amd64-11_4/m/tmp
=====>  unmount /var/pot/jails/jitsi-meet-nomad-amd64-11_4/m/dev
=====>  Flavour: jitsi-meet-nomad+1
=====>  Executing jitsi-meet-nomad+1 pot commands on jitsi-meet-nomad-amd64-11_4
=====>  No shell script available for the flavour jitsi-meet-nomad+1
=====>  Flavour: jitsi-meet-nomad+2
=====>  Executing jitsi-meet-nomad+2 pot commands on jitsi-meet-nomad-amd64-11_4
=====>  No shell script available for the flavour jitsi-meet-nomad+2
=====>  Flavour: jitsi-meet-nomad+3
=====>  Executing jitsi-meet-nomad+3 pot commands on jitsi-meet-nomad-amd64-11_4
=====>  No shell script available for the flavour jitsi-meet-nomad+3
=====>  Flavour: jitsi-meet-nomad+4
=====>  Executing jitsi-meet-nomad+4 pot commands on jitsi-meet-nomad-amd64-11_4
=====>  No shell script available for the flavour jitsi-meet-nomad+4

This site © Honeyguide Group (Pty) Ltd, all the hosted software their respective license owners 2020 - Disclaimer