New install on Ubuntu 18.04 not working

Hi,
I have installed Jitsi from the official repository on my Ubuntu 18.04 VPS to build a personal videoconferencing system.
I followed up the quickinstall procedure, running Jitsi with Apache2 on a sub-domain like “meet.example.org

When I try to connect from my Chrome browser to my Jitsi instance, I can see a grey screen with nothing on it and the javascript console says:

Nothing strange in the logs (Apache, Prosody, jicofo or jvb)

Any ideas ?

Is yours config.js file available? try to reach it with https://meet.yourdomain.com/config.js
You can also see the config into HTML code of the page in https://meet.yourdomain.com/

If this file is available, the most likely error is that, by changing the parameters inside it, you have invalidated the JSON syntax.

Hi M4tteo,
The config file is not available with the adress you mentionned. Is it the same as the .js file located in /etc/jitsi/meet ?
However, I already had the issue even just after the installation, with an unmodified config.js file
I don’t know where to look at…

1 Like

OK, made a fresh install this morning after purging the old install. Still have my grey screen and the following javascript error:

(TIME) index.html loaded:	 362.7449999912642
(index):145 Uncaught SyntaxError: Unexpected identifier
Logger.js:154 2020-04-02T08:54:34.431Z [modules/browser/BrowserCapabilities.js] <new t>:  This 
appears to be chrome, ver: 80.0.3987.149
AuthHandler.js:18 Uncaught ReferenceError: config is not defined
at Object.<anonymous> (AuthHandler.js:18)
at Object.<anonymous> (app.bundle.min.js?v=3928:54)
at n (bootstrap:19)
at Object.<anonymous> (connection.js:1)
at Object.<anonymous> (app.bundle.min.js?v=3928:54)
at n (bootstrap:19)
at Object.<anonymous> (conference.js:1)
at Object.<anonymous> (app.bundle.min.js?v=3928:126)
at n (bootstrap:19)
at Module.<anonymous> (app.bundle.min.js?v=3928:222)
at n (bootstrap:19)
at bootstrap:83
at app.bundle.min.js?v=3928:1
configLanguageDetector.js:22 Uncaught ReferenceError: config is not defined
at Object.lookup (configLanguageDetector.js:22)
at index.js:111
at Array.forEach (<anonymous>)
at e.value (index.js:109)
at t.value (i18next.js:2016)
at u (i18next.js:1868)

See logs and apache files below. I do not understand all the messages but believe there is a XMPP server problem.
“sub.domain.xx” is the public adresse of my instance (and also the hostname declared during the installation of Jitsi-meet)

HELP !!

Here is my apache config:
port 80:

<VirtualHost *:80>
ServerAdmin xxx@xxx.xxx
ServerName sub.domain.xx
Redirect permanent / https://sub.domain.xx
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteEngine on
RewriteCond %{SERVER_NAME} =sub.domain.xx
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

port 443:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin xxx@xxx.xxx
    ServerName sub.domain.xx
SSLProtocol TLSv1 TLSv1.1 TLSv1.2
SSLEngine on
SSLProxyEngine on
#SSLCertificateFile /etc/jitsi/meet/jitsi-meet.example.com.crt
#SSLCertificateKeyFile /etc/jitsi/meet/jitsi-meet.example.com.key
SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"
SSLHonorCipherOrder on
Header set Strict-Transport-Security "max-age=31536000"

DocumentRoot "/usr/share/jitsi-meet"
<Directory "/usr/share/jitsi-meet">
Options Indexes MultiViews Includes FollowSymLinks
AddOutputFilter Includes html
AllowOverride All
Order allow,deny
Allow from all
</Directory>

ErrorDocument 404 /static/404.html

Alias "/config.js" "/etc/jitsi/meet/jitsi-meet.example.com-config.js"
<Location /config.js>
Require all granted
</Location>

Alias "/external_api.js" "/usr/share/jitsi-meet/libs/external_api.min.js"
<Location /external_api.js>
Require all granted
</Location>

ProxyPreserveHost on
#ProxyPass / http://localhost:5280/http-bind/
#ProxyPassReverse / http://localhost:5280/http-bind/ 
ProxyPass /http-bind http://localhost:5280/http-bind/
ProxyPassReverse /http-bind http://localhost:5280/http-bind/

RewriteEngine on
RewriteRule ^/([a-zA-Z0-9]+)$ /index.html

SSLCertificateFile /etc/letsencrypt/live/xxx.xxx.xx-0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxx.xxx.xx-0001/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

Apache log:

[Thu Apr 02 11:19:35.328869 2020] [include:error] [pid 8088] [client xx.xx.xx.xx:53735] unable to include "/config.js" in parsed file /usr/share/jitsi-meet/index.html, subrequest returned 404

Jicofo log:

Jicofo 2020-04-02 10:40:12.005 INFOS: [10] org.eclipse.jetty.server.Server.doStart() jetty- 
9.4.15.v20190215; built: 2019-02-15T16:53:49.381Z; git: 
eb70b240169fcf1abbd86af36482d1c49826fa0b; jvm 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08
Jicofo 2020-04-02 10:40:15.342 GRAVE: [16] 
org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().315 Failed to connect/login: The 
following addresses failed: 'localhost:5222' failed because: localhost/127.0.0.1 exception: 
java.net.ConnectException: Connexion refusée (Connection refused)
org.jivesoftware.smack.SmackException$ConnectionException: The following addresses failed: 
'localhost:5222' failed because: localhost/127.0.0.1 exception: java.net.ConnectException: 
Connexion refusée (Connection refused)
    at org.jivesoftware.smack.SmackException$ConnectionException.from(SmackException.java:278)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectUsingConfiguration(XMPPTCPConnection.java:619)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:902)
    at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:383)
    at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect(XmppProtocolProvider.java:270)
    at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Jicofo 2020-04-02 10:40:36.406 GRAVE: [17] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().315 Failed to connect/login: No response received within reply timeout. Timeout was 15000ms (~15s). While waiting for establishing TLS
org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 15000ms (~15s). While waiting for establishing TLS
    at org.jivesoftware.smack.SmackException$NoResponseException.newWith(SmackException.java:93)
    at org.jivesoftware.smack.SynchronizationPoint.checkForResponse(SynchronizationPoint.java:272)
    at org.jivesoftware.smack.SynchronizationPoint.checkIfSuccessOrWait(SynchronizationPoint.java:157)
    at org.jivesoftware.smack.SynchronizationPoint.checkIfSuccessOrWaitOrThrow(SynchronizationPoint.java:128)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:908)
    at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:383)
    at org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect(XmppProtocolProvider.java:270)
    at org.jitsi.retry.RetryStrategy$TaskRunner.run(RetryStrategy.java:193)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Jicofo 2020-04-02 10:40:44.903 INFOS: [10] org.eclipse.jetty.server.handler.ContextHandler.doStart() Started o.e.j.s.ServletContextHandler@45ded7fd{/,null,AVAILABLE}
Jicofo 2020-04-02 10:40:45.417 INFOS: [10] org.eclipse.jetty.server.AbstractConnector.doStart() Started MuxServerConnector@195bfe{HTTP/1.1,[http/1.1]}{0.0.0.0:8888}
Jicofo 2020-04-02 10:40:45.439 INFOS: [10] org.eclipse.jetty.server.Server.doStart() Started @56908ms
Jicofo 2020-04-02 10:40:45.698 INFOS: [1] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.jicofo.BRIDGE_MUC=JvbBrewery@internal.auth.sub.domain.xx
Jicofo 2020-04-02 10:40:45.815 INFOS: [1] java.util.prefs.run() Created user preferences directory.
Jicofo 2020-04-02 10:40:45.825 INFOS: [1] org.jitsi.xmpp.component.ComponentBase.log() Component org.jitsi.jicofo. config: 
Jicofo 2020-04-02 10:40:45.826 INFOS: [1] org.jitsi.xmpp.component.ComponentBase.log()   ping interval: 10000 ms
Jicofo 2020-04-02 10:40:45.826 INFOS: [1] org.jitsi.xmpp.component.ComponentBase.log()   ping timeout: 5000 ms
Jicofo 2020-04-02 10:40:45.826 INFOS: [1] org.jitsi.xmpp.component.ComponentBase.log()   ping threshold: 3
Jicofo 2020-04-02 10:40:46.400 INFOS: [16] org.jitsi.jicofo.ProtocolProviderHandler.registrationStateChanged().144 XmppProtocolProvider(focus@auth.sub.domain.xx/focus2015251307312 (Jabber)): RegistrationStateChangeEvent[ oldState=Unregistered; newState=RegistrationState=Registered; reasonCode=-1; reason=null]
Jicofo 2020-04-02 10:40:47.718 INFOS: [16] org.jitsi.jicofo.xmpp.BaseBrewery.start().186 Joined brewery room: JvbBrewery@internal.auth.sub.domain.xx
Jicofo 2020-04-02 10:40:47.917 INFOS: [16] org.jitsi.jicofo.ComponentsDiscovery.log() New component discovered: conference.sub.domain.xx, null
Jicofo 2020-04-02 10:40:47.919 INFOS: [16] org.jitsi.jicofo.JitsiMeetServices.log() MUC component discovered: conference.sub.domain.xx
Jicofo 2020-04-02 10:40:49.398 INFOS: [16] org.jitsi.jicofo.ComponentsDiscovery.log() New component discovered: focus.sub.domain.xx, null
Jicofo 2020-04-02 10:40:49.727 INFOS: [16] org.jitsi.jicofo.ComponentsDiscovery.log() New component discovered: auth.sub.domain.xx, Prosody(0.10.0,Linux)
Jicofo 2020-04-02 10:40:49.729 INFOS: [16] org.jitsi.jicofo.JitsiMeetServices.log() Detected XMPP server version: Prosody(0.10.0,Linux)
Jicofo 2020-04-02 10:40:49.800 INFOS: [16] org.jitsi.jicofo.ComponentsDiscovery.log() Services re-discovery interval: 30000
Jicofo 2020-04-02 10:40:50.211 INFOS: [16] org.jitsi.jicofo.FocusManager.log() XMPP provider reg state: RegistrationState=Registered
Jicofo 2020-04-02 10:40:50.416 INFOS: [16] org.jitsi.impl.protocol.xmpp.XmppProtocolProvider.doConnect().305 XMPP provider Jabber:focus@auth.sub.domain.xx/focus2015251307312@localhost connected (JID: focus@auth.sub.domain.xx/focus2015251307312)
Jicofo 2020-04-02 10:58:56.618 AVERTISSEMENT: [76] org.jitsi.xmpp.component.ComponentBase.log() PROCESSING TIME LIMIT EXCEEDED - it took 211ms to process: <iq id="YbLd0-697" type="result" to="focus.sub.domain.xx" from="sub.domain.xx"/>

Jvb log:

2020-04-02 11:36:51.931 INFOS: [24] [hostname=localhost id=shard] MucClient.lambda$getConnectAndLoginCallable$7#648: Logging in.
2020-04-02 11:36:51.963 GRAVE: [24] RetryStrategy$TaskRunner.run#198: org.jivesoftware.smack.sasl.SASLErrorException: SASLError using SCRAM-SHA-1: not-authorized
org.jivesoftware.smack.sasl.SASLErrorException: SASLError using SCRAM-SHA-1: not-authorized
    at org.jivesoftware.smack.SASLAuthentication.authenticationFailed(SASLAuthentication.java:292)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1100)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:1000)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1016)
    at java.lang.Thread.run(Thread.java:748)
2020-04-02 11:36:53.029 INFOS: [19] Videobridge.createConference#326: create_conf, id=dd776063862c21e3 gid=null logging=false
2020-04-02 11:36:53.175 INFOS: [19] Health.doRun#294: Performed a successful health check in 150ms. Sticky failure: false
2020-04-02 11:36:56.979 INFOS: [24] [hostname=localhost id=shard] MucClient.lambda$getConnectAndLoginCallable$7#648: Logging in.
2020-04-02 11:36:56.983 GRAVE: [24] RetryStrategy$TaskRunner.run#198: org.jivesoftware.smack.sasl.SASLErrorException: SASLError using SCRAM-SHA-1: not-authorized
org.jivesoftware.smack.sasl.SASLErrorException: SASLError using SCRAM-SHA-1: not-authorized
    at org.jivesoftware.smack.SASLAuthentication.authenticationFailed(SASLAuthentication.java:292)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1100)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:1000)
    at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1016)
    at java.lang.Thread.run(Thread.java:748)

prosody log:

Apr 02 10:40:17 general info    Hello and welcome to Prosody version 0.10.0
Apr 02 10:40:17 general info    Prosody is using the select backend for connection handling
Apr 02 10:40:17 portmanager     info    Activated service 'c2s' on [::]:5222, [*]:5222
Apr 02 10:40:17 portmanager     info    Activated service 'legacy_ssl' on no ports
Apr 02 10:40:17 portmanager     info    Activated service 's2s' on [::]:5269, [*]:5269
Apr 02 10:40:17 mod_posix       info    Prosody is about to detach from the console, disabling further console output
Apr 02 10:40:17 mod_posix       info    Successfully daemonized to PID 5144
Apr 02 10:40:17 portmanager     info    Activated service 'http' on [::]:5280, [*]:5280
Apr 02 10:40:17 portmanager     error   Error binding encrypted port for https: No key present in SSL/TLS configuration for https port 5281
Apr 02 10:40:17 portmanager     error   Error binding encrypted port for https: No key present in 
SSL/TLS configuration for https port 5281
Apr 02 10:40:17 portmanager     info    Activated service 'https' on no ports
Apr 02 10:40:17 portmanager     info    Activated service 'component' on [127.0.0.1]:5347, [::1]:5347
Apr 02 10:40:18 speakerstats.sub.domain.xx:speakerstats_component   warn    speaker stats will not work with Prosody version 0.10 or less.
Apr 02 10:40:18 conferenceduration.sub.domain.xx:conference_duration_component      warn    conference duration will not work with Prosody version 0.10 or less.
Apr 02 10:40:18 conference.sub.domain.xx:muc_domain_mapper  info    Loading mod_muc_domain_mapper for host sub.domain.xx!
Apr 02 10:40:18 conference.sub.domain.xx:muc_domain_mapper  info    Loading mod_muc_domain_mapper for host speakerstats.sub.domain.xx!
Apr 02 10:40:18 conference.sub.domain.xx:muc_domain_mapper  info    Loading mod_muc_domain_mapper for host conference.sub.domain.xx!
Apr 02 10:40:18 conference.sub.domain.xx:muc_domain_mapper  info    Loading mod_muc_domain_mapper for host localhost!
Apr 02 10:40:18 conference.sub.domain.xxmuc_domain_mapper  info    Loading mod_muc_domain_mapper for host focus.sub.domain.xx!
Apr 02 10:40:18 conference.sub.domain.xx:muc_domain_mapper  info    Loading mod_muc_domain_mapper for host conferenceduration.sub.domain.xx!
Apr 02 10:40:18 conference.sub.domain.xx:muc_domain_mapper  info    Loading mod_muc_domain_mapper for host auth.sub.domain.xx!
Apr 02 10:40:18 conference.sub.domain.xx:muc_domain_mapper  info    Loading mod_muc_domain_mapper for host internal.auth.sub.domain.xx!
Apr 02 10:40:19 conference.sub.domain.xx:muc_domain_mapper  warn    Session filters applied
Apr 02 10:40:19 c2s563f929fd210 info    Client connected
Apr 02 10:40:20 conference.sub.domain.xx:muc_domain_mapper  warn    Session filters applied
Apr 02 10:40:20 c2s563f92a02eb0 info    Client connected
Apr 02 10:40:30 c2s563f929fd210 info    Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
Apr 02 10:40:30 conference.sub.domain.xx:muc_domain_mapper  warn    Session filters applied
Apr 02 10:40:30 c2s563f92a0e530 info    Client connected
Apr 02 10:40:36 c2s563f92a0e530 info    Client disconnected: connection closed
Apr 02 10:40:40 c2s563f92a02eb0 info    Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
Apr 02 10:40:41 conference.sub.domain.xx:muc_domain_mapper  warn    Session filters applied
Apr 02 10:40:41 c2s563f92a2e8f0 info    Client connected
Apr 02 10:40:41 conference.sub.domain.xx:muc_domain_mapper  warn    Session filters applied
Apr 02 10:40:41 c2s563f92a26a10 info    Client connected
Apr 02 10:40:42 c2s563f92a26a10 info    Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
Apr 02 10:40:43 c2s563f92a2e8f0 info    Stream encrypted (TLSv1.2 with ECDHE-RSA-AES256-GCM-SHA384)
Apr 02 10:40:45 c2s563f92a2e8f0 info    Authenticated as focus@auth.sub.domain.xx
Apr 02 10:40:46 jcp563f92a91640 info    Incoming Jabber component connection
Apr 02 10:40:46 focus.sub.domain.xx:component       info    External component successfully authenticated

OK, I got it…
I forgot to update the following line with my actual hostname instead of “jitsi-meet.example.com” in my Apache port 443 config !

Alias "/config.js" "/etc/jitsi/meet/jitsi-meet.example.com-config.js"

What a moron !

Now I’m facing an issue that other users seem to have also, when I open a room and let someone connect to this new room, Jitsi simply crashes and try to reconnect endlessly.
In my jvb.log I have this message:

SASLError using SCRAM-SHA-1: not-authorized

Hi everyone,

I finally succeeded to make my Jitsi installation working !
The key action was to update prosody server to the latest version (0.11.5)

All strange things and error disapeared !
Thanks to all @devs for developping a such useful application !!!

RomJean

Can someone modify this topic title into [Solved] please ? I can’t or I don’t see how to do.
I have followed this instructions to update prosody: https://prosody.im/download/ and https://prosody.im/download/package_repository for the repository

Hello, is it as Easy as this?

1 - sudo apt-get purge prosody

2 - sudo apt-get install prosody

3 - change storage to “memory”

No need to reinstall Jitsi or reconfigure anything?

I need to do this as I still have prosody 10 with some bugs like ghost users.