captainVersion: 4
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
        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
        caproverExtra:
            notExposeAsWebApp: 'true'
    $$cap_appname-jicofo:
        image: jitsi/jicofo:$$cap_tag_version
        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
        caproverExtra:
            notExposeAsWebApp: 'true'
    $$cap_appname-jvb:
        image: jitsi/jvb:$$cap_tag_version
        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
        caproverExtra:
            notExposeAsWebApp: 'true'
caproverOneClickApp:
    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
    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.
    displayName: Jitsi
    isOfficial: true
    description: Free open-source video conferencing for web & mobile
    documentation: https://github.com/jitsi/docker-jitsi-meet
