{ "captainVersion": "2", "documentation": "https://github.com/jitsi/docker-jitsi-meet", "displayName": "Jitsi", "description": "Free open-source video conferencing for web & mobile", "dockerCompose": { "version": "3", "services": { "$$cap_appname-web": { "image": "jitsi/web:$$cap_tag_version", "restart": "unless-stopped", "ports": ["$$cap_https_port:443", "$$cap_http_port:80"], "volumes": [ "$$cap_appname-web:/config", "$$cap_appname-web-transcripts:/usr/share/jitsi-meet/transcripts" ], "environment": { "JICOFO_COMPONENT_SECRET": "$$cap_password", "JICOFO_AUTH_PASSWORD": "$$cap_password", "JVB_AUTH_PASSWORD": "$$cap_password", "JIGASI_XMPP_PASSWORD": "$$cap_password", "JIBRI_RECORDER_PASSWORD": "$$cap_password", "JIBRI_XMPP_PASSWORD": "$$cap_password", "HTTP_PORT": "$$cap_http_port", "HTTPS_PORT": "$$cap_https_port", "TZ": "$$cap_timezone", "XMPP_DOMAIN": "meet.jitsi", "XMPP_SERVER": "srv-captain--$$cap_appname-prosody", "XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280", "XMPP_AUTH_DOMAIN": "auth.meet.jitsi", "XMPP_MUC_DOMAIN": "muc.meet.jitsi", "XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi", "XMPP_GUEST_DOMAIN": "guest.meet.jitsi", "XMPP_MODULES": "", "XMPP_MUC_MODULES": "", "XMPP_INTERNAL_MUC_MODULES": "", "JVB_BREWERY_MUC": "jvbbrewery", "JVB_AUTH_USER": "jvb", "JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443", "JVB_PORT": "$$cap_jvb_udp", "JVB_TCP_HARVESTER_DISABLED": "true", "JVB_TCP_PORT": "$$cap_jvb_tcp", "JICOFO_AUTH_USER": "focus", "JIGASI_XMPP_USER": "jigasi", "JIGASI_BREWERY_MUC": "jigasibrewery", "JIGASI_PORT_MIN": "20000", "JIGASI_PORT_MAX": "20050", "XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi", "JIBRI_RECORDER_USER": "recorder", "JIBRI_RECORDING_DIR": "/config/recordings", "JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh", "JIBRI_XMPP_USER": "jibri", "JIBRI_BREWERY_MUC": "jibribrewery", "JIBRI_PENDING_TIMEOUT": "90", "JIBRI_STRIP_DOMAIN_JID": "muc", "JIBRI_LOGS_DIR": "/config/logs" } }, "$$cap_appname-prosody": { "image": "jitsi/prosody:$$cap_tag_version", "notExposeAsWebApp": "true", "restart": "unless-stopped", "expose": ["5222", "5347","5280"], "volumes": ["$$cap_appname-prosody:/config"], "environment": { "JICOFO_COMPONENT_SECRET": "$$cap_password", "JICOFO_AUTH_PASSWORD": "$$cap_password", "JVB_AUTH_PASSWORD": "$$cap_password", "JIGASI_XMPP_PASSWORD": "$$cap_password", "JIBRI_RECORDER_PASSWORD": "$$cap_password", "JIBRI_XMPP_PASSWORD": "$$cap_password", "HTTP_PORT": "$$cap_http_port", "HTTPS_PORT": "$$cap_https_port", "TZ": "$$cap_timezone", "XMPP_DOMAIN": "meet.jitsi", "XMPP_SERVER": "srv-captain--$$cap_appname-prosody", "XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280", "XMPP_AUTH_DOMAIN": "auth.meet.jitsi", "XMPP_MUC_DOMAIN": "muc.meet.jitsi", "XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi", "XMPP_GUEST_DOMAIN": "guest.meet.jitsi", "XMPP_MODULES": "", "XMPP_MUC_MODULES": "", "XMPP_INTERNAL_MUC_MODULES": "", "JVB_BREWERY_MUC": "jvbbrewery", "JVB_AUTH_USER": "jvb", "JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443", "JVB_PORT": "$$cap_jvb_udp", "JVB_TCP_HARVESTER_DISABLED": "true", "JVB_TCP_PORT": "$$cap_jvb_tcp", "JICOFO_AUTH_USER": "focus", "JIGASI_XMPP_USER": "jigasi", "JIGASI_BREWERY_MUC": "jigasibrewery", "JIGASI_PORT_MIN": "20000", "JIGASI_PORT_MAX": "20050", "XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi", "JIBRI_RECORDER_USER": "recorder", "JIBRI_RECORDING_DIR": "/config/recordings", "JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh", "JIBRI_XMPP_USER": "jibri", "JIBRI_BREWERY_MUC": "jibribrewery", "JIBRI_PENDING_TIMEOUT": "90", "JIBRI_STRIP_DOMAIN_JID": "muc", "JIBRI_LOGS_DIR": "/config/logs" } }, "$$cap_appname-jicofo": { "image": "jitsi/jicofo:$$cap_tag_version", "notExposeAsWebApp": "true", "restart": "unless-stopped", "volumes": ["$$cap_appname-jicofo:/config"], "environment": { "JICOFO_COMPONENT_SECRET": "$$cap_password", "JICOFO_AUTH_PASSWORD": "$$cap_password", "JVB_AUTH_PASSWORD": "$$cap_password", "JIGASI_XMPP_PASSWORD": "$$cap_password", "JIBRI_RECORDER_PASSWORD": "$$cap_password", "JIBRI_XMPP_PASSWORD": "$$cap_password", "HTTP_PORT": "$$cap_http_port", "HTTPS_PORT": "$$cap_https_port", "TZ": "$$cap_timezone", "XMPP_DOMAIN": "meet.jitsi", "XMPP_SERVER": "srv-captain--$$cap_appname-prosody", "XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280", "XMPP_AUTH_DOMAIN": "auth.meet.jitsi", "XMPP_MUC_DOMAIN": "muc.meet.jitsi", "XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi", "XMPP_GUEST_DOMAIN": "guest.meet.jitsi", "XMPP_MODULES": "", "XMPP_MUC_MODULES": "", "XMPP_INTERNAL_MUC_MODULES": "", "JVB_BREWERY_MUC": "jvbbrewery", "JVB_AUTH_USER": "jvb", "JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443", "JVB_PORT": "$$cap_jvb_udp", "JVB_TCP_HARVESTER_DISABLED": "true", "JVB_TCP_PORT": "$$cap_jvb_tcp", "JICOFO_AUTH_USER": "focus", "JIGASI_XMPP_USER": "jigasi", "JIGASI_BREWERY_MUC": "jigasibrewery", "JIGASI_PORT_MIN": "20000", "JIGASI_PORT_MAX": "20050", "XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi", "JIBRI_RECORDER_USER": "recorder", "JIBRI_RECORDING_DIR": "/config/recordings", "JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh", "JIBRI_XMPP_USER": "jibri", "JIBRI_BREWERY_MUC": "jibribrewery", "JIBRI_PENDING_TIMEOUT": "90", "JIBRI_STRIP_DOMAIN_JID": "muc", "JIBRI_LOGS_DIR": "/config/logs" }, "depends_on": ["$$cap_appname-prosody"] }, "$$cap_appname-jvb": { "image": "jitsi/jvb:$$cap_tag_version", "notExposeAsWebApp": "true", "restart": "unless-stopped", "ports": ["$$cap_jvb_udp:$$cap_jvb_udp", "$$cap_jvb_tcp:$$cap_jvb_tcp"], "volumes": ["$$cap_appname-jvb:/config"], "environment": { "JICOFO_COMPONENT_SECRET": "$$cap_password", "JICOFO_AUTH_PASSWORD": "$$cap_password", "JVB_AUTH_PASSWORD": "$$cap_password", "JIGASI_XMPP_PASSWORD": "$$cap_password", "JIBRI_RECORDER_PASSWORD": "$$cap_password", "JIBRI_XMPP_PASSWORD": "$$cap_password", "HTTP_PORT": "$$cap_http_port", "HTTPS_PORT": "$$cap_https_port", "TZ": "$$cap_timezone", "XMPP_DOMAIN": "meet.jitsi", "XMPP_SERVER": "srv-captain--$$cap_appname-prosody", "XMPP_BOSH_URL_BASE": "http://srv-captain--$$cap_appname-prosody:5280", "XMPP_AUTH_DOMAIN": "auth.meet.jitsi", "XMPP_MUC_DOMAIN": "muc.meet.jitsi", "XMPP_INTERNAL_MUC_DOMAIN": "internal-muc.meet.jitsi", "XMPP_GUEST_DOMAIN": "guest.meet.jitsi", "XMPP_MODULES": "", "XMPP_MUC_MODULES": "", "XMPP_INTERNAL_MUC_MODULES": "", "JVB_BREWERY_MUC": "jvbbrewery", "JVB_AUTH_USER": "jvb", "JVB_STUN_SERVERS": "meet-jit-si-turnrelay.jitsi.net:443", "JVB_PORT": "$$cap_jvb_udp", "JVB_TCP_HARVESTER_DISABLED": "true", "JVB_TCP_PORT": "$$cap_jvb_tcp", "JICOFO_AUTH_USER": "focus", "JIGASI_XMPP_USER": "jigasi", "JIGASI_BREWERY_MUC": "jigasibrewery", "JIGASI_PORT_MIN": "20000", "JIGASI_PORT_MAX": "20050", "XMPP_RECORDER_DOMAIN": "recorder.meet.jitsi", "JIBRI_RECORDER_USER": "recorder", "JIBRI_RECORDING_DIR": "/config/recordings", "JIBRI_FINALIZE_RECORDING_SCRIPT_PATH": "/config/finalize.sh", "JIBRI_XMPP_USER": "jibri", "JIBRI_BREWERY_MUC": "jibribrewery", "JIBRI_PENDING_TIMEOUT": "90", "JIBRI_STRIP_DOMAIN_JID": "muc", "JIBRI_LOGS_DIR": "/config/logs" }, "depends_on": ["$$cap_appname-prosody"] } } }, "instructions": { "end": "Containers were created successfully. You should wait for a few minutes before enter to Jitsi Web.", "start": "This one click app is based on Jitsi docker image." }, "variables": [ { "label": "Docker tag version", "description": "You can check the version in Docker Hub: https://hub.docker.com/r/jitsi/web/tags", "defaultValue": "4416", "id": "$$cap_tag_version" }, { "label": "HTTP Port", "description": "This is the HTTP port to access Jitsi", "defaultValue": "8000", "id": "$$cap_http_port" }, { "label": "HTTPS Port", "description": "This is the HTTPS port to access Jitsi", "defaultValue": "8443", "id": "$$cap_https_port" }, { "label": "Timezone", "description": "This is the timezone for Jitsi", "defaultValue": "Europe/Amsterdam", "id": "$$cap_timezone" }, { "label": "JVB TCP Port", "description": "TCP Port for JVB service", "defaultValue": "4443", "id": "$$cap_jvb_tcp" }, { "label": "JVB UDP Port", "description": "UDP Port for JVB service", "defaultValue": "10000", "id": "$$cap_jvb_udp" }, { "label": "Password", "description": "This is the password for Jitsi's services", "defaultValue": "pass", "id": "$$cap_password" } ] }