Limits on standalone host

Hey there, i read a lot of info about users limit for 35 and 70 on low quality. But can’t find any info about standalone installs. Is it possible to get about 500-600 users (about 100 on video, and rest on sound only)?
Thanks!

Welcome to the community.

On a privately-hosted server, with adequate resources, yes, it is possible to host a meeting with up to 500 users with 100 of them on video. You will need a few bridges and Octo deployed.

Thanks!)
what about 500+ with video, I suggest it’s all depends only on our resources, right?

Server-side, 500 with video is doable. You’ll need enough resources, especially good quality bandwidth (not some cut-rate “unmetered” product), and it will certainly need to be spread across several bridges using Octo. Some attention may need to be paid to the signalling side if they will all join around the same time (source signalling delay, reducing round-trips with jiconop or similar, etc).

Client-side, recent Jitsi Meet versions will only receive & decode the streams that are on-screen, so being in a meeting with 500 video senders will work fine, assuming clients have sufficient bandwidth and good enough connectivity to the servers to receive all the streams that are on their screen at any one time.

It’s blown my mind.
I added second videobridge, then tried to publish behind net (without reverse proxy). Something went wrong.
For now i revert’d all .env settings as it was and get reconnecting loop.

Websocket error.
content.js:10 Uncaught TypeError: Cannot read properties of null (reading ‘type’)
at content.js:10
strophe.umd.js:5463 WebSocket connection to 'wss:///xmpp-websocket?room=test’ failed:
Logger.js:154 2022-03-23T12:06:08.645Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: Strophe: Websocket error [object Event] Script: null Line: null Column: null StackTrace: Error: Strophe: Websocket error [object Event]
at Object.ct.Strophe.log (https://
:8443/libs/lib-jitsi-meet.min.js?v=5913:2:367497)
at Object.error (https://**********:8443/libs/lib-jitsi-meet.min.js?v=5913:2:636220)
at O.Websocket._onError (https://********:8443/libs/lib-jitsi-meet.min.js?v=5913:2:675693)
2022-03-23T12:06:26.927Z [modules/xmpp/strophe.util.js] <Object.ct.Strophe.log>: Strophe: Websocket error [object Event]
Logger.js:154 2022-03-23T12:06:26.929Z [connection.js] <r.o>: CONNECTION FAILED: connection.otherError
2022-03-23T12:06:26.939Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: connection.otherError Script: null Line: null Column: null StackTrace: n/a
Test#config.startWit…thVideoMuted=true:1 Uncaught (in promise) connection.otherError

docker addr correct
url is correct
actually all settings was revert to working condition

btw https://**********:8443/xmpp-websocket says It works

ENABLE_STP=1
ENABLE_COLIBRI_WEBSOCKET=0
ENABLE_XMPP_WEBSOCKET=0
didn’t change anything , still websocket connection error
AAAAAAAAAAAAAAAAAAAAAAAAA

There is no such setting, maybe you want to set SCTP

i guess, found on google but anyways I reverted vm to working snapshot and can’t add second jvb.
Please, I’m stuck.
I found many info about addind jvb and have quwstions
1 - do I have to change all domains in .env
(ex. XMPP_DOMAIN=meet.jitsi to XMPP_DOMAIN=meet.mydomain.com or this settings just need for internal docker communication?
2 - some manuals say’s that I need to change sip-communicator.properties = can’t find this file ( I’m using docker compose and I’m used official installation manual )
3 - also I used clone of main server , changed ip and instance names, removed all images from .yml except jvb, changed jvb instance name to jvb2 to and add on env. file xmpp_server=mainserverdomainaddress.com, and added to main prosody file prosodyctl --config $PROSODY_CFG register JVB2 $XMPP_AUTH_DOMAIN $JVB_AUTH_PASSWORD.
I did all from that How can I add extra jvb in docker meet - #32 by Access_Lab

ok, for now I preferred to set reverse proxy and ldap set.
with ldap also had some troubles (jitsi server won’t even trying to go for dc , no traffic at all)
reverse proxy work ok, sound and video but not working screen sharing (it show’s like you’re sharing desktop but no one see that. I guess I need add block to nginx.conf for that, but not sure what the proxypass link and port need ( I suggest port 10000 but what the link?(

nginx conf
server_names_hash_bucket_size 64;
server {
listen 443;

listen 80;

            server_name jitsi.sip.air.com;
            ssl on;
            ssl_certificate /etc/nginx/ssl/cert.crt;
            ssl_certificate_key /etc/nginx/ssl/cert.key;
            client_max_body_size 200M;

        location / {
            ssi on;
            proxy_pass https://192.168.95.51:8443/;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $http_host;
        }
        # BOSH
        location /http-bind {
            proxy_pass http://192.168.95.51:5280/http-bind;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $http_host;
        }

        # xmpp websockets
        location /xmpp-websocket {
            proxy_pass              http://192.168.95.51:5280/xmpp-websocket;
            proxy_http_version      1.1;
            proxy_set_header        Upgrade $http_upgrade;
            proxy_set_header        Connection "upgrade";
            proxy_set_header        Host $host;
            tcp_nodelay             on;
        }

        # colibri (JVB) websockets for jvb1
        location ~ ^/colibri-ws/default-id/(.*) {
            proxy_pass http://192.168.95.51:9090/colibri-ws/default-id/$1$is_args$args;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            tcp_nodelay on;

}

server_tokens off;

            }

well
now screen sharing working extremly weird and
1 user shared the screen but we can’t see it
this user left
new users join the conservation and they’re see screen of 1 user.
2 user shared his screen, but it appears after 3-5 minutes and working fine

You may have a websocket issue. Is there any error in the browser console log?

look’s like
Logger.js:154 2022-03-24T08:49:04.917Z [modules/RTC/BridgeChannel.js] <Co._send>: Bridge Channel send: no opened channel.
r @ Logger.js:154
_send @ BridgeChannel.js:457
sendMessage @ BridgeChannel.js:200
sendChannelMessage @ RTC.js:936
jd.sendEndpointMessage @ JitsiConference.js:2827
jd.sendMessage @ JitsiConference.js:2877
(anonymous) @ JitsiConference.js:415
sendRequest @ e2eping.js:92
BridgeChannel.js:84 WebSocket connection to ‘wss://DOMIAN.com/colibri-ws/192.168.0.5/2bee12abdee19ca4/5f93cbdb?pwd=1f2dotkctr2eud621kk92q3r7o’ failed:
_initWebSocket @ BridgeChannel.js:84
t @ BridgeChannel.js:103
Logger.js:154 2022-03-24T08:49:05.091Z [modules/RTC/BridgeChannel.js] <WebSocket.e.onclose>: Channel closed: 1006

The following topic may be helpful but I have no idea how you can apply it to Docker setup

i tried to add second jvb, but nothing
so for now i’m trying to make all works with internal jvb (I mean make proxy, public behind nat, etc., just make jitsi for prod) and then after that i will try to configure second jvb again.
So now i have to remove colibri from nginx.conf ?

2022-03-24T09:34:25.424Z [features/base/tracks] Failed to create local tracks

  1. [‘video’]

  2. bt {gum: {…}, name: ‘gum.not_found’, message: ‘Requested device(s) was/were not found: video’, stack: ‘Error\n at new bt (https://domain.com/lib…ir.com/libs/lib-jitsi-meet.min.js?v=5913:2:392492’}

Logger.js:154 2022-03-24T09:34:25.425Z [conference.js] failed to switch back to local video

  1. bt {gum: {…}, name: ‘gum.not_found’, message: ‘Requested device(s) was/were not found: video’, stack: ‘Error\n at new bt (https://domain.com/lib…ir.com/libs/lib-jitsi-meet.min.js?v=5913:2:392492’}

Logger.js:154 2022-03-24T09:34:25.440Z [conference.js] _turnScreenSharingOff failed: gum.not_found: Requested device(s) was/were not found: video

Logger.js:154 2022-03-24T09:34:25.444Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: Requested device(s) was/were not found: video Script: null Line: null Column: null StackTrace: Error at new bt (https://domain.com/libs/lib-jitsi-meet.min.js?v=5913:2:167680) at https://domain.com/libs/lib-jitsi-meet.min.js?v=5913:2:392492

dasf:1 Uncaught (in promise)

  1. bt {gum: {…}, name: ‘gum.not_found’, message: ‘Requested device(s) was/were not found: video’, stack: ‘Error\n at new bt (https://domain.com/lib…ir.com/libs/lib-jitsi-meet.min.js?v=5913:2:392492’}

  2. gum: {error: DOMException: Requested device not found, constraints: {…}, devices: Array(1)}

  3. message: “Requested device(s) was/were not found: video”

  4. name: “gum.not_found”

  5. stack: “Error\n at new bt (https://domain.com/libs/lib-jitsi-meet.min.js?v=5913:2:167680)\n at https://domain.com/libs/lib-jitsi-meet.min.js?v=5913:2:392492

  6. [[Prototype]]: Error

You need a colibri block for internal JVB too

for 2 users video sharing works, when other users connected the video is share is falling

docker-compose yml

services:
# Proxy
webapp:
image: nginx
restart: unless-stopped
ports:
- 443:443

- 80:80

    volumes:
        - /jitsi/nginx.conf:/etc/nginx/conf.d/default.conf:ro
        - /crrt/2/cert.crt:/etc/nginx/ssl/cert.crt:Z
        - /crrt/2/cert.key:/etc/nginx/ssl/cert.key:Z

networks:

meet.jitsi:

# Frontend
web:
    image: jitsi/web:stable-7001
    restart: ${RESTART_POLICY}
    ports:
        - '${HTTP_PORT}:80'
        - '${HTTPS_PORT}:443'
    volumes:
        - ${CONFIG}/web:/config:Z
        - ${CONFIG}/web/crontabs:/var/spool/cron/crontabs:Z
        - ${CONFIG}/transcripts:/usr/share/jitsi-meet/transcripts:Z
        - /home/selivanov/crrt/2/cert.crt:/config/keys/cert.crt:Z
        - /home/selivanov/crrt/2/cert.key:/config/keys/cert.key:Z

- /home/selivanov/crrt/cert.key:/config/keys/cert.key:Z

    environment:
        - AMPLITUDE_ID
        - ANALYTICS_SCRIPT_URLS
        - ANALYTICS_WHITELISTED_EVENTS
        - CALLSTATS_CUSTOM_SCRIPT_URL
        - CALLSTATS_ID
        - CALLSTATS_SECRET
        - CHROME_EXTENSION_BANNER_JSON
        - CONFCODE_URL
        - CONFIG_EXTERNAL_CONNECT
        - DEFAULT_LANGUAGE
        - DEPLOYMENTINFO_ENVIRONMENT
        - DEPLOYMENTINFO_ENVIRONMENT_TYPE
        - DEPLOYMENTINFO_REGION
        - DEPLOYMENTINFO_SHARD
        - DEPLOYMENTINFO_USERREGION
        - DESKTOP_SHARING_FRAMERATE_MIN
        - DESKTOP_SHARING_FRAMERATE_MAX
        - DIALIN_NUMBERS_URL
        - DIALOUT_AUTH_URL
        - DIALOUT_CODES_URL
        - DISABLE_AUDIO_LEVELS
        - DISABLE_DEEP_LINKING
        - DISABLE_GRANT_MODERATOR
        - DISABLE_HTTPS
        - DISABLE_KICKOUT
        - DISABLE_POLLS
        - DISABLE_REACTIONS
        - DROPBOX_APPKEY
        - DROPBOX_REDIRECT_URI
        - DYNAMIC_BRANDING_URL
        - ENABLE_AUDIO_PROCESSING
        - ENABLE_AUTH
        - ENABLE_BREAKOUT_ROOMS
        - ENABLE_CALENDAR
        - ENABLE_COLIBRI_WEBSOCKET
        - ENABLE_FILE_RECORDING_SERVICE
        - ENABLE_FILE_RECORDING_SERVICE_SHARING
        - ENABLE_FLOC
        - ENABLE_GUESTS
        - ENABLE_HSTS
        - ENABLE_HTTP_REDIRECT
        - ENABLE_IPV6
        - ENABLE_LETSENCRYPT
        - ENABLE_LIPSYNC
        - ENABLE_NO_AUDIO_DETECTION
        - ENABLE_NOISY_MIC_DETECTION
        - ENABLE_PREJOIN_PAGE
        - ENABLE_P2P
        - ENABLE_WELCOME_PAGE
        - ENABLE_CLOSE_PAGE
        - ENABLE_RECORDING
        - ENABLE_REMB
        - ENABLE_REQUIRE_DISPLAY_NAME
        - ENABLE_SIMULCAST
        - ENABLE_STATS_ID
        - ENABLE_STEREO
        - ENABLE_SUBDOMAINS
        - ENABLE_TALK_WHILE_MUTED
        - ENABLE_TCC
        - ENABLE_TRANSCRIPTIONS
        - ENABLE_XMPP_WEBSOCKET
        - ETHERPAD_PUBLIC_URL
        - ETHERPAD_URL_BASE
        - GOOGLE_ANALYTICS_ID
        - GOOGLE_API_APP_CLIENT_ID
        - HIDE_PREMEETING_BUTTONS
        - INVITE_SERVICE_URL
        - JICOFO_AUTH_USER
        - LETSENCRYPT_DOMAIN
        - LETSENCRYPT_EMAIL
        - LETSENCRYPT_USE_STAGING
        - MATOMO_ENDPOINT
        - MATOMO_SITE_ID
        - MICROSOFT_API_APP_CLIENT_ID
        - NGINX_RESOLVER
        - NGINX_WORKER_PROCESSES
        - NGINX_WORKER_CONNECTIONS
        - PEOPLE_SEARCH_URL
        - PUBLIC_URL
        - P2P_PREFERRED_CODEC
        - RESOLUTION
        - RESOLUTION_MIN
        - RESOLUTION_WIDTH
        - RESOLUTION_WIDTH_MIN
        - START_AUDIO_MUTED
        - START_AUDIO_ONLY
        - START_BITRATE
        - START_SILENT
        - START_WITH_AUDIO_MUTED
        - START_VIDEO_MUTED
        - START_WITH_VIDEO_MUTED
        - TESTING_CAP_SCREENSHARE_BITRATE
        - TESTING_OCTO_PROBABILITY
        - TOKEN_AUTH_URL
        - TOOLBAR_BUTTONS
        - TZ
        - VIDEOQUALITY_BITRATE_H264_LOW
        - VIDEOQUALITY_BITRATE_H264_STANDARD
        - VIDEOQUALITY_BITRATE_H264_HIGH
        - VIDEOQUALITY_BITRATE_VP8_LOW
        - VIDEOQUALITY_BITRATE_VP8_STANDARD
        - VIDEOQUALITY_BITRATE_VP8_HIGH
        - VIDEOQUALITY_BITRATE_VP9_LOW
        - VIDEOQUALITY_BITRATE_VP9_STANDARD
        - VIDEOQUALITY_BITRATE_VP9_HIGH
        - VIDEOQUALITY_ENFORCE_PREFERRED_CODEC
        - VIDEOQUALITY_PREFERRED_CODEC
        - XMPP_AUTH_DOMAIN
        - XMPP_BOSH_URL_BASE
        - XMPP_DOMAIN
        - XMPP_GUEST_DOMAIN
        - XMPP_MUC_DOMAIN
        - XMPP_RECORDER_DOMAIN
    networks:
        meet.jitsi:

# XMPP server
prosody:
    image: jitsi/prosody:stable-7001
    restart: ${RESTART_POLICY}
    expose:
        - '5222'
        - '5347'
        - '5280'
    ports:
        - '5222:5222'
        - '5347:5347'
        - '5280:5280'
    volumes:
        - ${CONFIG}/prosody/config:/config:Z
        - ${CONFIG}/prosody/prosody-plugins-custom:/prosody-plugins-custom:Z
    environment:
        - AUTH_TYPE
        - DISABLE_POLLS
        - ENABLE_AUTH
        - ENABLE_AV_MODERATION
        - ENABLE_BREAKOUT_ROOMS
        - ENABLE_GUESTS
        - ENABLE_LOBBY
        - ENABLE_XMPP_WEBSOCKET
        - GLOBAL_CONFIG
        - GLOBAL_MODULES
        - JIBRI_RECORDER_USER
        - JIBRI_RECORDER_PASSWORD
        - JIBRI_XMPP_USER
        - JIBRI_XMPP_PASSWORD
        - JICOFO_AUTH_USER
        - JICOFO_AUTH_PASSWORD
        - JICOFO_COMPONENT_SECRET
        - JIGASI_XMPP_USER
        - JIGASI_XMPP_PASSWORD
        - JVB_AUTH_USER
        - JVB_AUTH_PASSWORD
        - JWT_APP_ID
        - JWT_APP_SECRET
        - JWT_ACCEPTED_ISSUERS
        - JWT_ACCEPTED_AUDIENCES
        - JWT_ASAP_KEYSERVER
        - JWT_ALLOW_EMPTY
        - JWT_AUTH_TYPE
        - JWT_TOKEN_AUTH_MODULE
        - MATRIX_UVS_URL
        - MATRIX_UVS_ISSUER
        - MATRIX_UVS_AUTH_TOKEN
        - MATRIX_UVS_SYNC_POWER_LEVELS
        - LOG_LEVEL
        - LDAP_AUTH_METHOD
        - LDAP_BASE
        - LDAP_BINDDN
        - LDAP_BINDPW
        - LDAP_FILTER
        - LDAP_VERSION
        - LDAP_TLS_CIPHERS
        - LDAP_TLS_CHECK_PEER
        - LDAP_TLS_CACERT_FILE
        - LDAP_TLS_CACERT_DIR
        - LDAP_START_TLS
        - LDAP_URL
        - LDAP_USE_TLS
        - PUBLIC_URL
        - TURN_CREDENTIALS
        - TURN_HOST
        - TURNS_HOST
        - TURN_PORT
        - TURNS_PORT
        - TZ
        - XMPP_DOMAIN
        - XMPP_AUTH_DOMAIN
        - XMPP_GUEST_DOMAIN
        - XMPP_MUC_DOMAIN
        - XMPP_INTERNAL_MUC_DOMAIN
        - XMPP_MODULES
        - XMPP_MUC_MODULES
        - XMPP_INTERNAL_MUC_MODULES
        - XMPP_RECORDER_DOMAIN
        - XMPP_CROSS_DOMAIN
    networks:
        meet.jitsi:
            aliases:
                - ${XMPP_SERVER}

# Focus component
jicofo:
    image: jitsi/jicofo:stable-7001
    restart: ${RESTART_POLICY}
    volumes:
        - ${CONFIG}/jicofo:/config:Z
    environment:
        - AUTH_TYPE
        - BRIDGE_AVG_PARTICIPANT_STRESS
        - BRIDGE_STRESS_THRESHOLD
        - ENABLE_AUTH
        - ENABLE_AUTO_OWNER
        - ENABLE_CODEC_VP8
        - ENABLE_CODEC_VP9
        - ENABLE_CODEC_H264
        - ENABLE_OCTO
        - ENABLE_RECORDING
        - ENABLE_SCTP
        - ENABLE_AUTO_LOGIN
        - JICOFO_AUTH_USER
        - JICOFO_AUTH_PASSWORD
        - JICOFO_ENABLE_BRIDGE_HEALTH_CHECKS
        - JICOFO_CONF_INITIAL_PARTICIPANT_WAIT_TIMEOUT
        - JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT
        - JICOFO_ENABLE_HEALTH_CHECKS
        - JICOFO_SHORT_ID
        - JICOFO_RESERVATION_ENABLED
        - JICOFO_RESERVATION_REST_BASE_URL
        - JIBRI_BREWERY_MUC
        - JIBRI_REQUEST_RETRIES
        - JIBRI_PENDING_TIMEOUT
        - JIGASI_BREWERY_MUC
        - JIGASI_SIP_URI
        - JVB_BREWERY_MUC
        - MAX_BRIDGE_PARTICIPANTS
        - OCTO_BRIDGE_SELECTION_STRATEGY
        - SENTRY_DSN="${JICOFO_SENTRY_DSN:-0}"
        - SENTRY_ENVIRONMENT
        - SENTRY_RELEASE
        - TZ
        - XMPP_DOMAIN
        - XMPP_AUTH_DOMAIN
        - XMPP_INTERNAL_MUC_DOMAIN
        - XMPP_MUC_DOMAIN
        - XMPP_RECORDER_DOMAIN
        - XMPP_SERVER
    depends_on:
        - prosody
    networks:
        meet.jitsi:

# Video bridge
jvb:
    image: jitsi/jvb:stable-7001
    restart: ${RESTART_POLICY}
    ports:
        - '${JVB_PORT}:${JVB_PORT}/udp'
        - 10000:10000
    volumes:

- /jvb/jvb.conf:/config:Z

        - ${CONFIG}/jvb:/config:Z
    environment:
        - DOCKER_HOST_ADDRESS
        - ENABLE_COLIBRI_WEBSOCKET
        - ENABLE_OCTO
        - JVB_AUTH_USER
        - JVB_AUTH_PASSWORD
        - JVB_BREWERY_MUC
        - JVB_PORT
        - JVB_MUC_NICKNAME
        - JVB_STUN_SERVERS
        - JVB_OCTO_BIND_ADDRESS
        - JVB_OCTO_PUBLIC_ADDRESS
        - JVB_OCTO_BIND_PORT
        - JVB_OCTO_REGION
        - JVB_WS_DOMAIN
        - JVB_WS_SERVER_ID
        - PUBLIC_URL
        - SENTRY_DSN="${JVB_SENTRY_DSN:-0}"
        - SENTRY_ENVIRONMENT
        - SENTRY_RELEASE
        - COLIBRI_REST_ENABLED
        - SHUTDOWN_REST_ENABLED
        - TZ
        - XMPP_AUTH_DOMAIN
        - XMPP_INTERNAL_MUC_DOMAIN
        - XMPP_SERVER
    depends_on:
        - prosody
    networks:
        meet.jitsi:

Custom network so all services can communicate using a FQDN

networks:
meet.jitsi:

nginx.conf

server_names_hash_bucket_size 64;
server {
listen 443;

listen 80;

            server_name jitsi.Domain.com;
            ssl on;
            ssl_certificate /etc/nginx/ssl/cert.crt;
            ssl_certificate_key /etc/nginx/ssl/cert.key;
            client_max_body_size 200M;

        location / {
            ssi on;
            proxy_pass https://192.168.95.51:8443/;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $http_host;

        }
        # BOSH
        location /http-bind {
            proxy_pass http://192.168.95.51:5280/http-bind;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $http_host;
            proxy_set_header        Connection "upgrade";
            proxy_set_header        Host $host;
            tcp_nodelay             on;

        }

        # xmpp websockets
        location /xmpp-websocket {
            proxy_pass              http://192.168.95.51:5280/xmpp-websocket;
            proxy_http_version      1.1;
            proxy_set_header        Upgrade $http_upgrade;
            proxy_set_header        Connection "upgrade";
            proxy_set_header        Host $host;
            tcp_nodelay             on;
        }

server_tokens off;

            }
.env

shellcheck disable=SC2034

Security

Set these to strong passwords to avoid intruders from impersonating a service account

The service(s) won’t start unless these are specified

Running ./gen-passwords.sh will update .env with strong passwords

You may skip the Jigasi and Jibri passwords if you are not using those

DO NOT reuse passwords

XMPP password for Jicofo client connections

JICOFO_AUTH_PASSWORD=e112a375de432b592b410836e3bebede

XMPP password for JVB client connections

JVB_AUTH_PASSWORD=970a3a8478233beaf6a69e0be228bd40

XMPP password for Jigasi MUC client connections

JIGASI_XMPP_PASSWORD=9e0d397830f0a1883335563d73188a60

XMPP recorder password for Jibri client connections

JIBRI_RECORDER_PASSWORD=a66c7f72f253708ebeed5e0611f1eaa9

XMPP password for Jibri client connections

JIBRI_XMPP_PASSWORD=37b93046ae3ca5c90f3408372c1059a9

Basic configuration options

Directory where all configuration will be stored

CONFIG=/jitsi/.jitsi-meet-cfg

Exposed HTTP port

HTTP_PORT=8000

Exposed HTTPS port

HTTPS_PORT=8443

System time zone

TZ=UTC

Public URL for the web service (required)

#PUBLIC_URL=https://meet.example.com

PUBLIC_URL=https://domain.com
#PUBLIC_URL=https://192.168.95.51

IP address of the Docker host

See the “Running behind NAT or on a LAN environment” section in the Handbook:

Self-Hosting Guide - Docker | Jitsi Meet

DOCKER_HOST_ADDRESS=192.168.95.51
#DOCKER_HOST_ADDRESS=********

Control whether the lobby feature should be enabled or not

#ENABLE_LOBBY=1

Control whether the A/V moderation should be enabled or not

#ENABLE_AV_MODERATION=1

Show a prejoin page before entering a conference

#ENABLE_PREJOIN_PAGE=0

Enable the welcome page

#ENABLE_WELCOME_PAGE=1

Enable the close page

#ENABLE_CLOSE_PAGE=0

Disable measuring of audio levels

#DISABLE_AUDIO_LEVELS=0

Enable noisy mic detection

#ENABLE_NOISY_MIC_DETECTION=1

Enable breakout rooms

#ENABLE_BREAKOUT_ROOMS=1

Let’s Encrypt configuration

Enable Let’s Encrypt certificate generation

#ENABLE_LETSENCRYPT=1

Domain for which to generate the certificate

#LETSENCRYPT_DOMAIN=meet.example.com

E-Mail for receiving important account notifications (mandatory)

#LETSENCRYPT_EMAIL=alice@atlanta.net

Use the staging server (for avoiding rate limits while testing)

#LETSENCRYPT_USE_STAGING=1

Etherpad integration (for document sharing)

Set etherpad-lite URL in docker local network (uncomment to enable)

#ETHERPAD_URL_BASE=http://etherpad.meet.jitsi:9001

Set etherpad-lite public URL, including /p/ pad path fragment (uncomment to enable)

#ETHERPAD_PUBLIC_URL=https://etherpad.my.domain/p/

Name your etherpad instance!

ETHERPAD_TITLE=Video Chat

The default text of a pad

ETHERPAD_DEFAULT_PAD_TEXT=“Welcome to Web Chat!\n\n”

Name of the skin for etherpad

ETHERPAD_SKIN_NAME=colibris

Skin variants for etherpad

ETHERPAD_SKIN_VARIANTS=“super-light-toolbar super-light-editor light-background full-width-editor”

Basic Jigasi configuration options (needed for SIP gateway support)

SIP URI for incoming / outgoing calls

#JIGASI_SIP_URI=test@sip2sip.info

Password for the specified SIP account as a clear text

#JIGASI_SIP_PASSWORD=passw0rd

SIP server (use the SIP account domain if in doubt)

#JIGASI_SIP_SERVER=sip2sip.info

SIP server port

#JIGASI_SIP_PORT=5060

SIP server transport

#JIGASI_SIP_TRANSPORT=UDP

Authentication configuration (see handbook for details)

Enable authentication

#ENABLE_AUTH=1

Enable guest access

#ENABLE_GUESTS=1

Select authentication type: internal, jwt, ldap or matrix

#AUTH_TYPE=internal

JWT authentication

Application identifier

#JWT_APP_ID=my_jitsi_app_id

Application secret known only to your token generator

#JWT_APP_SECRET=my_jitsi_app_secret

(Optional) Set asap_accepted_issuers as a comma separated list

#JWT_ACCEPTED_ISSUERS=my_web_client,my_app_client

(Optional) Set asap_accepted_audiences as a comma separated list

#JWT_ACCEPTED_AUDIENCES=my_server1,my_server2

LDAP authentication (for more information see the Cyrus SASL saslauthd.conf man page)

LDAP url for connection

#LDAP_URL=ldaps://ldap.domain.com/

LDAP base DN. Can be empty

#LDAP_BASE=DC=example,DC=domain,DC=com

LDAP user DN. Do not specify this parameter for the anonymous bind

#LDAP_BINDDN=CN=binduser,OU=users,DC=example,DC=domain,DC=com

LDAP user password. Do not specify this parameter for the anonymous bind

#LDAP_BINDPW=LdapUserPassw0rd

LDAP filter. Tokens example:

%1-9 - if the input key is user@mail.domain.com, then %1 is com, %2 is domain and %3 is mail

%s - %s is replaced by the complete service string

%r - %r is replaced by the complete realm string

#LDAP_FILTER=(sAMAccountName=%u)

LDAP authentication method

#LDAP_AUTH_METHOD=bind

LDAP version

#LDAP_VERSION=3

LDAP TLS using

#LDAP_USE_TLS=1

List of SSL/TLS ciphers to allow

#LDAP_TLS_CIPHERS=SECURE256:SECURE128:!AES-128-CBC:!ARCFOUR-128:!CAMELLIA-128-CBC:!3DES-CBC:!CAMELLIA-128-CBC

Require and verify server certificate

#LDAP_TLS_CHECK_PEER=1

Path to CA cert file. Used when server certificate verify is enabled

#LDAP_TLS_CACERT_FILE=/etc/ssl/certs/ca-certificates.crt

Path to CA certs directory. Used when server certificate verify is enabled

#LDAP_TLS_CACERT_DIR=/etc/ssl/certs

Wether to use starttls, implies LDAPv3 and requires ldap:// instead of ldaps://

LDAP_START_TLS=1

Matrix authentication (for more information see the documention of the “Prosody Auth Matrix User Verification” at GitHub - matrix-org/prosody-mod-auth-matrix-user-verification: Matrix user verification auth for Prosody)

Base URL to the matrix user verification service (without ending slash)

#MATRIX_UVS_URL=https://uvs.example.com:3000

(optional) The issuer of the auth token to be passed through. Must match what is being set as iss in the JWT. Defaut value is “issuer”.

#MATRIX_UVS_ISSUER=issuer

(optional) user verification service auth token, if authentication enabled

#MATRIX_UVS_AUTH_TOKEN=changeme

(optional) Make Matrix room moderators owners of the Prosody room.

#MATRIX_UVS_SYNC_POWER_LEVELS=1

Advanced configuration options (you generally don’t need to change these)

Internal XMPP domain

XMPP_DOMAIN=meet.jitsi

Internal XMPP server

XMPP_SERVER=xmpp.meet.jitsi

Internal XMPP server URL

XMPP_BOSH_URL_BASE=http://xmpp.meet.jitsi:5280

Internal XMPP domain for authenticated services

XMPP_AUTH_DOMAIN=auth.meet.jitsi

XMPP domain for the MUC

XMPP_MUC_DOMAIN=muc.meet.jitsi

XMPP domain for the internal MUC used for jibri, jigasi and jvb pools

XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi

XMPP domain for unauthenticated users

XMPP_GUEST_DOMAIN=guest.meet.jitsi

Comma separated list of domains for cross domain policy or “true” to allow all

The PUBLIC_URL is always allowed

#XMPP_CROSS_DOMAIN=true
#ENABLE_SCTP
#ENABLE_COLIBRI_WEBSOCKET=0
#ENABLE_XMPP_WEBSOCKET

#JVB_TCP_HARVESTER_DISABLED=true
#JVB_TCP_PORT=4443
#JVB_TCP_MAPPED_PORT=4443

Custom Prosody modules for XMPP_DOMAIN (comma separated)

XMPP_MODULES=

Custom Prosody modules for MUC component (comma separated)

XMPP_MUC_MODULES=

Custom Prosody modules for internal MUC component (comma separated)

XMPP_INTERNAL_MUC_MODULES=

MUC for the JVB pool

JVB_BREWERY_MUC=jvbbrewery

XMPP user for JVB client connections

JVB_AUTH_USER=jvb

STUN servers used to discover the server’s public IP

JVB_STUN_SERVERS=meet-jit-si-turnrelay.jitsi.net:443

Media port for the Jitsi Videobridge

JVB_PORT=10000

XMPP user for Jicofo client connections.

NOTE: this option doesn’t currently work due to a bug

JICOFO_AUTH_USER=focus

Base URL of Jicofo’s reservation REST API

#JICOFO_RESERVATION_REST_BASE_URL=http://reservation.example.com

Enable Jicofo’s health check REST API (http://<jicofo_base_url>:8888/about/health)

#JICOFO_ENABLE_HEALTH_CHECKS=true

XMPP user for Jigasi MUC client connections

JIGASI_XMPP_USER=jigasi

MUC name for the Jigasi pool

JIGASI_BREWERY_MUC=jigasibrewery

Minimum port for media used by Jigasi

JIGASI_PORT_MIN=20000

Maximum port for media used by Jigasi

JIGASI_PORT_MAX=20050

Enable SDES srtp

#JIGASI_ENABLE_SDES_SRTP=1

Keepalive method

#JIGASI_SIP_KEEP_ALIVE_METHOD=OPTIONS

Health-check extension

#JIGASI_HEALTH_CHECK_SIP_URI=keepalive

Health-check interval

#JIGASI_HEALTH_CHECK_INTERVAL=300000

Enable Jigasi transcription

#ENABLE_TRANSCRIPTIONS=1

Jigasi will record audio when transcriber is on [default: false]

#JIGASI_TRANSCRIBER_RECORD_AUDIO=true

Jigasi will send transcribed text to the chat when transcriber is on [default: false]

#JIGASI_TRANSCRIBER_SEND_TXT=true

Jigasi will post an url to the chat with transcription file [default: false]

#JIGASI_TRANSCRIBER_ADVERTISE_URL=true

Credentials for connect to Cloud Google API from Jigasi

Please read 빠른 시작: 명령줄을 사용하여 텍스트에서 오디오 만들기  |  Cloud Text-to-Speech 문서  |  Google Cloud

section “Before you begin” paragraph 1 to 5

Copy the values from the json to the related env vars

#GC_PROJECT_ID=
#GC_PRIVATE_KEY_ID=
#GC_PRIVATE_KEY=
#GC_CLIENT_EMAIL=
#GC_CLIENT_ID=
#GC_CLIENT_CERT_URL=

Enable recording

#ENABLE_RECORDING=1

XMPP domain for the jibri recorder

XMPP_RECORDER_DOMAIN=recorder.meet.jitsi

XMPP recorder user for Jibri client connections

JIBRI_RECORDER_USER=recorder

Directory for recordings inside Jibri container

JIBRI_RECORDING_DIR=/config/recordings

The finalizing script. Will run after recording is complete

#JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh

XMPP user for Jibri client connections

JIBRI_XMPP_USER=jibri

MUC name for the Jibri pool

JIBRI_BREWERY_MUC=jibribrewery

MUC connection timeout

JIBRI_PENDING_TIMEOUT=90

When jibri gets a request to start a service for a room, the room

jid will look like: roomName@optional.prefixes.subdomain.xmpp_domain

We’ll build the url for the call by transforming that into:

https://xmpp_domain/subdomain/roomName

So if there are any prefixes in the jid (like jitsi meet, which

has its participants join a muc at conference.xmpp_domain) then

list that prefix here so it can be stripped out to generate

the call url correctly

JIBRI_STRIP_DOMAIN_JID=muc

Directory for logs inside Jibri container

JIBRI_LOGS_DIR=/config/logs

Configure an external TURN server

TURN_CREDENTIALS=secret

TURN_HOST=turnserver.example.com

TURN_PORT=443

TURNS_HOST=turnserver.example.com

TURNS_PORT=443

Disable HTTPS: handle TLS connections outside of this setup

#DISABLE_HTTPS=1

Enable FLoC

Opt-In to Federated Learning of Cohorts tracking

#ENABLE_FLOC=0

Redirect HTTP traffic to HTTPS

Necessary for Let’s Encrypt, relies on standard HTTPS port (443)

#ENABLE_HTTP_REDIRECT=1

Send a strict-transport-security header to force browsers to use

a secure and trusted connection. Recommended for production use.

Defaults to 1 (send the header).

ENABLE_HSTS=1

Enable IPv6

Provides means to disable IPv6 in environments that don’t support it (get with the times, people!)

#ENABLE_IPV6=1

Container restart policy

Defaults to unless-stopped

RESTART_POLICY=unless-stopped

Authenticate using external service or just focus external auth window if there is one already.

TOKEN_AUTH_URL=https://auth.meet.example.com/{room}

Sentry Error Tracking

Sentry Data Source Name (Endpoint for Sentry project)

Example: https://public:private@host:port/1

#JVB_SENTRY_DSN=
#JICOFO_SENTRY_DSN=
#JIGASI_SENTRY_DSN=

Optional environment info to filter events

#SENTRY_ENVIRONMENT=production

Optional release info to filter events

#SENTRY_RELEASE=1.0.0

Optional properties for shutdown api

#COLIBRI_REST_ENABLED=true
#SHUTDOWN_REST_ENABLED=true

Configure toolbar buttons. Add the buttons name separated with comma(no spaces between comma)

#TOOLBAR_BUTTONS=

Hide the buttons at pre-join screen. Add the buttons name separated with comma

#HIDE_PREMEETING_BUTTONS=

If this is the whole file, it’s not complete

yuo mean .env file?

nginx conf