jitsi / docker-jitsi-meet

Jitsi Meet on Docker
https://hub.docker.com/u/jitsi/
Apache License 2.0
3k stars 1.34k forks source link

Jitsi in docker behind NAT and Apache2 #1811

Open radimkohout opened 1 month ago

radimkohout commented 1 month ago

Hello, I have my server behind NAT. On ports 80 and 443 I have Apache web server with Let's encrypt wildcard certificates. I have port forwarded ports 80,443,10000,20000-20050. I would like to run the Jitsi Meet in Docker container on meet.example.com.

I am getting the following error: image (And I get 'You got disconnected error')

I have the following Apache configuration:

<VirtualHost *:80>
    ServerName meet.example.com
    Redirect permanent / https://meet.example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName meet.example.com

    # enable HTTP/2, if available
    Protocols h2 http/1.1

    SSLEngine on
    SSLProxyEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

    Header always set Strict-Transport-Security "max-age=63072000"
    <IfModule mod_proxy.c>
    <IfModule mod_proxy_wstunnel.c>
        ProxyTimeout 900
        <Location "/xmpp-websocket">
            ProxyPass "wss://localhost:7443/xmpp-websocket"
        </Location>
        <Location "/colibri-ws/">
            ProxyPass "wss://localhost:7443/colibri-ws/"
        </Location>
        <Location "/http-bind">
            ProxyPass "http://localhost:7080/http-bind"
        </Location>
    </IfModule>
</IfModule>
    ProxyPass "/" "http://localhost:7080/"
    ProxyPassReverse "/" "http://localhost:7080/"
    ProxyPass "/http-bind" "http://localhost:7080/http-bind/"
    ProxyPassReverse "/http-bind" "http://localhost:7080/http-bind"
    #RewriteEngine on
    #RewriteRule ^/([a-zA-Z0-9]+)$ /index.html
</VirtualHost>

# Mozilla Guideline v5.4, Apache 2.4.41, OpenSSL 1.1.1d, intermediate configuration, no OCSP
SSLProtocol         all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite      ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets   off

I have changed following in .env file:

# Exposed HTTP port
HTTP_PORT=7080

# Exposed HTTPS port
HTTPS_PORT=7443

# System time zone
TZ=UTC

# Public URL for the web service (required)
PUBLIC_URL=https://meet.example.com

I have also changed the port for jicofo to 8898, because 8888 is already occupied:

jicofo:
        image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable-9457-2}
        restart: ${RESTART_POLICY:-unless-stopped}
        ports:
            - '127.0.0.1:${JICOFO_REST_PORT:-8898}:8898'
        volumes:
            - ${CONFIG}/jicofo:/config:Z
saghul commented 1 month ago

Try proxying to the HTTP port, in order to avoid using HTTPS twice, the second without a valid certificate.

radimkohout commented 1 month ago

You mean proxying the wss to HTTP port?

saghul commented 1 month ago

Yes, that's correct.

radimkohout commented 1 month ago

I have changed it the following way (ws:// was used instead of wss://, because it is to HTTP port):

<Location "/xmpp-websocket">
            ProxyPass "ws://localhost:7080/xmpp-websocket"
        </Location>
        <Location "/colibri-ws/">
            ProxyPass "ws://localhost:7080/colibri-ws/"
        </Location>

But I still get the same error.

saghul commented 1 month ago

if you access https://your-domain/xmpp-websocket in your browser, what do you get?

radimkohout commented 1 month ago

I get this: image

saghul commented 1 month ago

Great! That suggests the xmpp-websocket proxy is correct. Can you please share the whole output in the JS console?

radimkohout commented 1 month ago

Here:

 (TIME) index.html loaded:   107.09999996423721
 2024-05-27T10:46:35.248Z [features/base/redux] <Object.persistState>:  redux state persisted. f4e9bd827e5b19a52e1d455ce0e75097 -> bde94aa0ae7182dfa5fda89d26f4e215
 2024-05-27T10:46:35.251Z [features/base/sounds] PLAY_SOUND: no sound found for id: RECORDING_OFF_SOUND
a @ app.bundle.min.js:2
 2024-05-27T10:46:35.268Z [JitsiMeetJS.ts] <Object.init>:  This appears to be chrome, ver: 125.0.0.0
 2024-05-27T10:46:35.268Z [modules/statistics/LocalStatsCollector.js] <_i.connectAudioContext>:  Connecting audio context
 2024-05-27T10:46:35.281Z [modules/RTC/RTCUtils.js] <xr.init>:  Disable AP: false
 2024-05-27T10:46:35.281Z [modules/RTC/RTCUtils.js] <xr.init>:  Stereo: false
 2024-05-27T10:46:35.282Z [features/base/lib-jitsi-meet] lib-jitsi-meet version:09993fc8
 2024-05-27T10:46:35.283Z [features/base/media] Start muted: 
 2024-05-27T10:46:35.284Z [features/base/media] Start audio only set to false
Logger.js:155 2024-05-27T10:46:35.284Z [features/analytics] Initialized 0 analytics handlers
Logger.js:155 2024-05-27T10:46:35.330Z [index.web] <HTMLDocument.<anonymous>>:  (TIME) document ready:   317.5999999642372
QualifiedIntegritiesAttendSharply:55 Service worker registered. ServiceWorkerRegistration
Logger.js:155 2024-05-27T10:46:35.336Z [modules/RTC/RTCUtils.js] <xr._onMediaDevicesListChanged>:  list of media devices has changed: Array(9)
Logger.js:155 2024-05-27T10:46:35.413Z [modules/RTC/RTCUtils.js] Audio output device set to default
tflite-simd.js:9 [WASM] Loading model of size: 249792
tflite-simd.js:9 INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
printChar @ tflite-simd.js:9
Logger.js:155 2024-05-27T10:46:35.980Z [modules/RTC/RTCUtils.js] <xr.<anonymous>>:  Got media constraints:  {"video":{"height":{"ideal":720},"width":{"ideal":1280},"facingMode":"user"},"audio":{"autoGainControl":true,"echoCancellation":true,"noiseSuppression":true}}
Logger.js:155 2024-05-27T10:46:36.255Z [features/base/app] <window.PressureObserver.sampleRate>:  Compute pressure state changed: [{"source":"cpu","state":"nominal","time":1716806796254.757}]
Logger.js:155 2024-05-27T10:46:37.248Z [features/base/redux] <Object.persistState>:  redux state persisted. bde94aa0ae7182dfa5fda89d26f4e215 -> b235b4ef5dce926826d2e609f2eba008
Logger.js:155 2024-05-27T10:46:37.734Z [modules/RTC/RTCUtils.js] onUserMediaSuccess
Logger.js:155 2024-05-27T10:46:37.745Z [features/base/settings] switched local audio input device to: default
Logger.js:155 2024-05-27T10:46:37.751Z [features/base/settings] switched local video device to: abde4dd83e4a3a04c9f2cfa0430c496c4dc281cfe3f130f4bf39c82dc9d72328
JitsiStreamBackgroundEffect.ts:120 Canvas2D: Multiple readback operations using getImageData are faster with the willReadFrequently attribute set to true. See: https://html.spec.whatwg.org/multipage/canvas.html#concept-canvas-will-read-frequently
resizeSource @ JitsiStreamBackgroundEffect.ts:120
Logger.js:155 2024-05-27T10:46:38.525Z [modules/RTC/JitsiLocalTrack.js] Mute LocalTrack[2,video]: true
Logger.js:155 2024-05-27T10:46:39.268Z [features/base/redux] <Object.persistState>:  redux state persisted. b235b4ef5dce926826d2e609f2eba008 -> 3f476c8276c5646a8b694c9d3c3c62ab
Logger.js:155 2024-05-27T10:46:39.449Z [modules/RTC/JitsiLocalTrack.js] Mute LocalTrack[1,audio]: true
Logger.js:155 2024-05-27T10:46:41.319Z [features/base/redux] <Object.persistState>:  redux state persisted. 3f476c8276c5646a8b694c9d3c3c62ab -> 60b4aed07bca88806a8943d05039192b
actions.any.ts:103 2024-05-27T10:46:43.023Z [features/base/connection] Using service URL wss://meet.example.com/xmpp-websocket
moderator.js:75 2024-05-27T10:46:43.026Z [modules/xmpp/moderator.js] <new Ko>:  Using xmpp for conference requests.
xmpp.js:879 2024-05-27T10:46:43.026Z [modules/xmpp/xmpp.js] <Pa._initStrophePlugins>:  P2P STUN servers:  [{…}]
xmpp.js:292 2024-05-27T10:46:43.033Z [modules/xmpp/xmpp.js] <Pa.connectionHandler>:  (TIME) Strophe connecting:  8019.799999952316
strophe.stream-management.js:224 WebSocket connection to 'wss://meet.example.com/xmpp-websocket?room=qualifiedintegritiesattendsharply' failed: 
_connect @ strophe.umd.js:5779
connect @ strophe.umd.js:3040
_interceptConnectArgs @ strophe.stream-management.js:224
connect @ XmppConnection.js:273
_connect @ xmpp.js:581
connect @ xmpp.js:685
Bh.connect @ JitsiConnection.js:72
(anonymous) @ actions.any.ts:266
(anonymous) @ actions.any.ts:176
(anonymous) @ index.js:16
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.ts:106
(anonymous) @ middleware.ts:19
(anonymous) @ middleware.ts:14
(anonymous) @ middleware.web.ts:23
(anonymous) @ middleware.any.ts:33
(anonymous) @ middleware.ts:37
(anonymous) @ middleware.ts:56
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.ts:43
(anonymous) @ middleware.ts:48
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.ts:155
(anonymous) @ middleware.ts:44
(anonymous) @ middleware.ts:22
(anonymous) @ middleware.ts:58
(anonymous) @ middleware.ts:50
(anonymous) @ middleware.web.ts:35
(anonymous) @ middleware.web.ts:19
(anonymous) @ middleware.any.ts:52
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.web.ts:273
(anonymous) @ middleware.ts:39
(anonymous) @ middleware.ts:21
(anonymous) @ middleware.ts:11
(anonymous) @ middleware.ts:16
(anonymous) @ middleware.ts:18
(anonymous) @ middleware.web.ts:28
(anonymous) @ middleware.any.ts:36
(anonymous) @ middleware.ts:12
(anonymous) @ middleware.ts:83
(anonymous) @ middleware.ts:26
(anonymous) @ middleware.web.ts:114
(anonymous) @ middleware.any.ts:82
(anonymous) @ middleware.ts:27
(anonymous) @ middleware.web.ts:17
(anonymous) @ middleware.any.ts:24
(anonymous) @ middleware.web.ts:20
(anonymous) @ middleware.any.ts:18
(anonymous) @ middleware.ts:32
(anonymous) @ middleware.web.ts:15
(anonymous) @ middleware.ts:241
(anonymous) @ middleware.ts:15
(anonymous) @ middleware.ts:36
(anonymous) @ middleware.ts:30
(anonymous) @ middleware.ts:65
(anonymous) @ middleware.ts:8
(anonymous) @ middleware.ts:29
(anonymous) @ middleware.ts:33
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.web.ts:105
(anonymous) @ middleware.any.ts:74
(anonymous) @ middleware.ts:152
(anonymous) @ middleware.ts:162
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.web.ts:101
(anonymous) @ middleware.any.ts:35
(anonymous) @ middleware.any.ts:38
(anonymous) @ middleware.ts:33
(anonymous) @ middleware.web.ts:61
(anonymous) @ middleware.ts:18
(anonymous) @ middleware.web.ts:10
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.web.ts:28
(anonymous) @ middleware.any.ts:108
(anonymous) @ middleware.ts:13
(anonymous) @ middleware.ts:73
(anonymous) @ middleware.web.ts:61
(anonymous) @ middleware.ts:9
(anonymous) @ middleware.tsx:13
(anonymous) @ middleware.ts:12
(anonymous) @ middleware.ts:135
(anonymous) @ middleware.tsx:17
(anonymous) @ middleware.ts:31
(anonymous) @ middleware.ts:55
(anonymous) @ middleware.ts:99
(anonymous) @ middleware.web.ts:20
(anonymous) @ middleware.any.ts:22
(anonymous) @ middleware.web.ts:35
(anonymous) @ middleware.any.ts:99
(anonymous) @ middleware.web.ts:152
(anonymous) @ middleware.web.ts:22
(anonymous) @ middleware.web.ts:45
(anonymous) @ middleware.ts:172
dispatch @ redux.js:636
(anonymous) @ actions.web.ts:43
(anonymous) @ index.js:16
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.ts:106
(anonymous) @ middleware.ts:19
(anonymous) @ middleware.ts:14
(anonymous) @ middleware.web.ts:23
(anonymous) @ middleware.any.ts:33
(anonymous) @ middleware.ts:37
(anonymous) @ middleware.ts:56
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.ts:43
(anonymous) @ middleware.ts:48
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.ts:155
(anonymous) @ middleware.ts:44
(anonymous) @ middleware.ts:22
(anonymous) @ middleware.ts:58
(anonymous) @ middleware.ts:50
(anonymous) @ middleware.web.ts:35
(anonymous) @ middleware.web.ts:19
(anonymous) @ middleware.any.ts:52
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.web.ts:273
(anonymous) @ middleware.ts:39
(anonymous) @ middleware.ts:21
(anonymous) @ middleware.ts:11
(anonymous) @ middleware.ts:16
(anonymous) @ middleware.ts:18
(anonymous) @ middleware.web.ts:28
(anonymous) @ middleware.any.ts:36
(anonymous) @ middleware.ts:12
(anonymous) @ middleware.ts:83
(anonymous) @ middleware.ts:26
(anonymous) @ middleware.web.ts:114
(anonymous) @ middleware.any.ts:82
(anonymous) @ middleware.ts:27
(anonymous) @ middleware.web.ts:17
(anonymous) @ middleware.any.ts:24
(anonymous) @ middleware.web.ts:20
(anonymous) @ middleware.any.ts:18
(anonymous) @ middleware.ts:32
(anonymous) @ middleware.web.ts:15
(anonymous) @ middleware.ts:241
(anonymous) @ middleware.ts:15
(anonymous) @ middleware.ts:36
(anonymous) @ middleware.ts:30
(anonymous) @ middleware.ts:65
(anonymous) @ middleware.ts:8
(anonymous) @ middleware.ts:29
(anonymous) @ middleware.ts:33
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.web.ts:105
(anonymous) @ middleware.any.ts:74
(anonymous) @ middleware.ts:152
(anonymous) @ middleware.ts:162
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.web.ts:101
(anonymous) @ middleware.any.ts:35
(anonymous) @ middleware.any.ts:38
(anonymous) @ middleware.ts:33
(anonymous) @ middleware.web.ts:61
(anonymous) @ middleware.ts:18
(anonymous) @ middleware.web.ts:10
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.web.ts:28
(anonymous) @ middleware.any.ts:108
(anonymous) @ middleware.ts:13
(anonymous) @ middleware.ts:73
(anonymous) @ middleware.web.ts:61
(anonymous) @ middleware.ts:9
(anonymous) @ middleware.tsx:13
(anonymous) @ middleware.ts:12
(anonymous) @ middleware.ts:135
(anonymous) @ middleware.tsx:17
(anonymous) @ middleware.ts:31
(anonymous) @ middleware.ts:55
(anonymous) @ middleware.ts:99
(anonymous) @ middleware.web.ts:20
(anonymous) @ middleware.any.ts:22
(anonymous) @ middleware.web.ts:35
(anonymous) @ middleware.any.ts:99
(anonymous) @ middleware.web.ts:152
(anonymous) @ middleware.web.ts:22
(anonymous) @ middleware.web.ts:45
(anonymous) @ middleware.ts:172
dispatch @ redux.js:636
(anonymous) @ actions.web.ts:177
(anonymous) @ index.js:16
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.ts:106
(anonymous) @ middleware.ts:19
(anonymous) @ middleware.ts:14
(anonymous) @ middleware.web.ts:23
(anonymous) @ middleware.any.ts:33
(anonymous) @ middleware.ts:37
(anonymous) @ middleware.ts:56
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.ts:43
(anonymous) @ middleware.ts:48
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.ts:155
Show 7 more frames
Show less
strophe.util.js:84 2024-05-27T10:46:43.122Z [modules/xmpp/strophe.util.js] <Pa.St.Strophe.log>:  Strophe: Websocket error {"isTrusted":true} Websocket error {"isTrusted":true}
r @ Logger.js:155
Pa.St.Strophe.log @ strophe.util.js:84
error @ strophe.umd.js:2020
_onError @ strophe.umd.js:6079
socket.onerror @ strophe.umd.js:5783
error (async)
_connect @ strophe.umd.js:5783
connect @ strophe.umd.js:3040
_interceptConnectArgs @ strophe.stream-management.js:224
connect @ XmppConnection.js:273
_connect @ xmpp.js:581
connect @ xmpp.js:685
Bh.connect @ JitsiConnection.js:72
(anonymous) @ actions.any.ts:266
(anonymous) @ actions.any.ts:176
(anonymous) @ index.js:16
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.ts:106
(anonymous) @ middleware.ts:19
(anonymous) @ middleware.ts:14
(anonymous) @ middleware.web.ts:23
(anonymous) @ middleware.any.ts:33
(anonymous) @ middleware.ts:37
(anonymous) @ middleware.ts:56
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.ts:43
(anonymous) @ middleware.ts:48
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.ts:155
(anonymous) @ middleware.ts:44
(anonymous) @ middleware.ts:22
(anonymous) @ middleware.ts:58
(anonymous) @ middleware.ts:50
(anonymous) @ middleware.web.ts:35
(anonymous) @ middleware.web.ts:19
(anonymous) @ middleware.any.ts:52
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.web.ts:273
(anonymous) @ middleware.ts:39
(anonymous) @ middleware.ts:21
(anonymous) @ middleware.ts:11
(anonymous) @ middleware.ts:16
(anonymous) @ middleware.ts:18
(anonymous) @ middleware.web.ts:28
(anonymous) @ middleware.any.ts:36
(anonymous) @ middleware.ts:12
(anonymous) @ middleware.ts:83
(anonymous) @ middleware.ts:26
(anonymous) @ middleware.web.ts:114
(anonymous) @ middleware.any.ts:82
(anonymous) @ middleware.ts:27
(anonymous) @ middleware.web.ts:17
(anonymous) @ middleware.any.ts:24
(anonymous) @ middleware.web.ts:20
(anonymous) @ middleware.any.ts:18
(anonymous) @ middleware.ts:32
(anonymous) @ middleware.web.ts:15
(anonymous) @ middleware.ts:241
(anonymous) @ middleware.ts:15
(anonymous) @ middleware.ts:36
(anonymous) @ middleware.ts:30
(anonymous) @ middleware.ts:65
(anonymous) @ middleware.ts:8
(anonymous) @ middleware.ts:29
(anonymous) @ middleware.ts:33
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.web.ts:105
(anonymous) @ middleware.any.ts:74
(anonymous) @ middleware.ts:152
(anonymous) @ middleware.ts:162
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.web.ts:101
(anonymous) @ middleware.any.ts:35
(anonymous) @ middleware.any.ts:38
(anonymous) @ middleware.ts:33
(anonymous) @ middleware.web.ts:61
(anonymous) @ middleware.ts:18
(anonymous) @ middleware.web.ts:10
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.web.ts:28
(anonymous) @ middleware.any.ts:108
(anonymous) @ middleware.ts:13
(anonymous) @ middleware.ts:73
(anonymous) @ middleware.web.ts:61
(anonymous) @ middleware.ts:9
(anonymous) @ middleware.tsx:13
(anonymous) @ middleware.ts:12
(anonymous) @ middleware.ts:135
(anonymous) @ middleware.tsx:17
(anonymous) @ middleware.ts:31
(anonymous) @ middleware.ts:55
(anonymous) @ middleware.ts:99
(anonymous) @ middleware.web.ts:20
(anonymous) @ middleware.any.ts:22
(anonymous) @ middleware.web.ts:35
(anonymous) @ middleware.any.ts:99
(anonymous) @ middleware.web.ts:152
(anonymous) @ middleware.web.ts:22
(anonymous) @ middleware.web.ts:45
(anonymous) @ middleware.ts:172
dispatch @ redux.js:636
(anonymous) @ actions.web.ts:43
(anonymous) @ index.js:16
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.ts:106
(anonymous) @ middleware.ts:19
(anonymous) @ middleware.ts:14
(anonymous) @ middleware.web.ts:23
(anonymous) @ middleware.any.ts:33
(anonymous) @ middleware.ts:37
(anonymous) @ middleware.ts:56
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.ts:43
(anonymous) @ middleware.ts:48
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.ts:155
(anonymous) @ middleware.ts:44
(anonymous) @ middleware.ts:22
(anonymous) @ middleware.ts:58
(anonymous) @ middleware.ts:50
(anonymous) @ middleware.web.ts:35
(anonymous) @ middleware.web.ts:19
(anonymous) @ middleware.any.ts:52
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.web.ts:273
(anonymous) @ middleware.ts:39
(anonymous) @ middleware.ts:21
(anonymous) @ middleware.ts:11
(anonymous) @ middleware.ts:16
(anonymous) @ middleware.ts:18
(anonymous) @ middleware.web.ts:28
(anonymous) @ middleware.any.ts:36
(anonymous) @ middleware.ts:12
(anonymous) @ middleware.ts:83
(anonymous) @ middleware.ts:26
(anonymous) @ middleware.web.ts:114
(anonymous) @ middleware.any.ts:82
(anonymous) @ middleware.ts:27
(anonymous) @ middleware.web.ts:17
(anonymous) @ middleware.any.ts:24
(anonymous) @ middleware.web.ts:20
(anonymous) @ middleware.any.ts:18
(anonymous) @ middleware.ts:32
(anonymous) @ middleware.web.ts:15
(anonymous) @ middleware.ts:241
(anonymous) @ middleware.ts:15
(anonymous) @ middleware.ts:36
(anonymous) @ middleware.ts:30
(anonymous) @ middleware.ts:65
(anonymous) @ middleware.ts:8
(anonymous) @ middleware.ts:29
(anonymous) @ middleware.ts:33
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.web.ts:105
(anonymous) @ middleware.any.ts:74
(anonymous) @ middleware.ts:152
(anonymous) @ middleware.ts:162
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.web.ts:101
(anonymous) @ middleware.any.ts:35
(anonymous) @ middleware.any.ts:38
(anonymous) @ middleware.ts:33
(anonymous) @ middleware.web.ts:61
(anonymous) @ middleware.ts:18
(anonymous) @ middleware.web.ts:10
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.web.ts:28
(anonymous) @ middleware.any.ts:108
(anonymous) @ middleware.ts:13
(anonymous) @ middleware.ts:73
(anonymous) @ middleware.web.ts:61
(anonymous) @ middleware.ts:9
(anonymous) @ middleware.tsx:13
(anonymous) @ middleware.ts:12
(anonymous) @ middleware.ts:135
(anonymous) @ middleware.tsx:17
(anonymous) @ middleware.ts:31
(anonymous) @ middleware.ts:55
(anonymous) @ middleware.ts:99
(anonymous) @ middleware.web.ts:20
(anonymous) @ middleware.any.ts:22
(anonymous) @ middleware.web.ts:35
(anonymous) @ middleware.any.ts:99
(anonymous) @ middleware.web.ts:152
(anonymous) @ middleware.web.ts:22
(anonymous) @ middleware.web.ts:45
(anonymous) @ middleware.ts:172
dispatch @ redux.js:636
(anonymous) @ actions.web.ts:177
(anonymous) @ index.js:16
(anonymous) @ middleware.ts:20
(anonymous) @ middleware.ts:106
(anonymous) @ middleware.ts:19
(anonymous) @ middleware.ts:14
(anonymous) @ middleware.web.ts:23
(anonymous) @ middleware.any.ts:33
(anonymous) @ middleware.ts:37
(anonymous) @ middleware.ts:56
(anonymous) @ middleware.ts:60
(anonymous) @ middleware.ts:112
(anonymous) @ middleware.ts:43
(anonymous) @ middleware.ts:48
(anonymous) @ middleware.ts:28
(anonymous) @ middleware.ts:155
Show 11 more frames
Show less
xmpp.js:292 2024-05-27T10:46:43.123Z [modules/xmpp/xmpp.js] <Pa.connectionHandler>:  (TIME) Strophe connfail[The WebSocket connection could not be established or was disconnected.]:    8110.199999988079
strophe.util.js:84 2024-05-27T10:46:43.123Z [modules/xmpp/strophe.util.js] <Pa.St.Strophe.log>:  Strophe: Websocket closed unexcectedly Websocket closed unexcectedly
r @ Logger.js:155
Pa.St.Strophe.log @ strophe.util.js:84
error @ strophe.umd.js:2020
_onClose @ strophe.umd.js:6027
socket.onclose @ strophe.umd.js:5785
Show 4 more frames
Show less
xmpp.js:292 2024-05-27T10:46:43.123Z [modules/xmpp/xmpp.js] <Pa.connectionHandler>:  (TIME) Strophe connfail[The WebSocket connection could not be established or was disconnected.]:    8110.599999964237
xmpp.js:292 2024-05-27T10:46:43.123Z [modules/xmpp/xmpp.js] <Pa.connectionHandler>:  (TIME) Strophe disconnected:    8110.899999976158
statistics.js:389 2024-05-27T10:46:43.124Z [modules/statistics/statistics.js] <Mi.sendAnalyticsAndLog>:  {"type":"operational","action":"connection.failed","attributes":{"error_type":"connection.otherError","error_message":"The WebSocket connection could not be established or was disconnected.","suspend_time":0,"time_since_last_success":null}}
AbstractPageReloadOverlay.tsx:79 2024-05-27T10:46:43.127Z [features/overlay] <S1.componentDidMount>:  The conference will be reloaded after 15 seconds.
xmpp.js:292 2024-05-27T10:46:43.129Z [modules/xmpp/xmpp.js] <Pa.connectionHandler>:  (TIME) Strophe disconnected:    8116.199999988079
statistics.js:389 2024-05-27T10:46:43.129Z [modules/statistics/statistics.js] <Mi.sendAnalyticsAndLog>:  {"type":"operational","action":"connection.failed","attributes":{"error_type":"connection.otherError","error_message":"The WebSocket connection could not be established or was disconnected.","suspend_time":0,"time_since_last_success":null}}
saghul commented 1 month ago

🙃 I'm kinda out of ideas. Do you see anything in the Prosody logs?

radimkohout commented 1 month ago

From docker logs prosodyContainerID:

2024-05-27 13:47:05 c2saaab0efae940                                              info   Client connected
2024-05-27 13:47:05 c2saaab0efae940                                              info   Client disconnected: connection closed
2024-05-27 13:47:44 c2saaab0f141710                                              info   Client connected
2024-05-27 13:47:44 c2saaab0f141710                                              info   Client disconnected: connection closed
2024-05-27 13:48:04 c2saaab0f04b830                                              info   Client connected
2024-05-27 13:48:04 c2saaab0f04b830                                              info   Client disconnected: connection closed