How do I use the lobby feature?

this is my /etc/prsodoy/conf.d/mydomain.cfg.lua file

lugin_paths = { "/usr/share/jitsi-meet/prosody-plugins/" }

-- domain mapper options, must at least have domain base set to use the mapper
muc_mapper_domain_base = "mydomain.com";

external_service_secret = "rB28PqE0YfqEo7xA";
external_services = {
     { type = "stun", host = "mydomain.com", port = 3478 },
     { type = "turn", host = "mydomain.com", port = 3478, transport = "udp", secret = true, ttl = 86400, algorithm = "turn" },
     { type = "turns", host = "mydomain.com", port = 5349, transport = "tcp", secret = true, ttl = 86400, algorithm = "turn" }
};

asap_accepted_issuers = { "*" }
asap_accepted_audiences = { "*" }
cross_domain_bosh = false;
consider_bosh_secure = true;
-- https_ports = { }; -- Remove this line to prevent listening on port 5284

-- by default prosody 0.12 sends cors headers, if you want to disable it uncomment the following (the config is available on 0.12.1)
--http_cors_override = {
--    bosh = {
--        enabled = false;
--    };
--    websocket = {
--        enabled = false;
--    };
--}

-- https://ssl-config.mozilla.org/#server=haproxy&version=2.1&config=intermediate&openssl=1.1.0g&guideline=5.4
ssl = {
    protocol = "tlsv1_2+";
    ciphers = "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"
}

unlimited_jids = {
    "focus@auth.mydomain.com",
    "jvb@auth.mydomain.com"
}

VirtualHost "mydomain.com"
    authentication = "token" -- do not delete me
    -- Properties below are modified by jitsi-meet-tokens package config
    -- and authentication above is switched to "token"
    app_id="my_jitsi_app_id"
    app_secret="my_jitsi_app_secret"
    allow_empty_token = false
    token_auth_url="https://mydomain.com/{room}"
    -- Assign this host a certificate for TLS, otherwise it would use the one
    -- set in the global section (if any).
    -- Note that old-style SSL on port 5223 only supports one certificate, and will always
    -- use the global one.
    ssl = {
        key = "/etc/prosody/certs/mydomain.com.key";
        certificate = "/etc/prosody/certs/mydomain.com.crt";
    }
    av_moderation_component = "avmoderation.mydomain.com"
    speakerstats_component = "speakerstats.mydomain.com"
    conference_duration_component = "conferenceduration.mydomain.com"
    end_conference_component = "endconference.mydomain.com"
    -- we need bosh
    modules_enabled = {
        "bosh";
        "pubsub";
        "ping"; -- Enable mod_ping
        "speakerstats";
        "external_services";
        "conference_duration";
        "end_conference";
        "muc_lobby_rooms";
        "muc_breakout_rooms";
        "av_moderation";
        "room_metadata";
    }
    c2s_require_encryption = false
    lobby_muc = "lobby.mydomain.com"
    breakout_rooms_muc = "breakout.mydomain.com"
    room_metadata_component = "metadata.mydomain.com"
    main_muc = "conference.mydomain.com"
    -- muc_lobby_whitelist = { "recorder.mydomain.com" } -- Here we can whitelist jibri to enter lobby enabled rooms

Component "conference.mydomain.com" "muc"
    restrict_room_creation = true
    storage = "memory"
    modules_enabled = {
        "muc_meeting_id";
        "muc_domain_mapper";
        "polls";
        "token_verification";
        "token_affiliation ";
        "muc_rate_limit";
    }
    admins = { "focus@auth.mydomain.com" }
    muc_room_locking = false
    muc_room_default_public_jids = true

Component "breakout.mydomain.com" "muc"
    restrict_room_creation = true
    storage = "memory"
    modules_enabled = {
        "muc_meeting_id";
        "muc_domain_mapper";
        "muc_rate_limit";
        "polls";
    }
    admins = { "focus@auth.mydomain.com" }
    muc_room_locking = false
    muc_room_default_public_jids = true

-- internal muc component
Component "internal.auth.mydomain.com" "muc"
    storage = "memory"
    modules_enabled = {
        "ping";
    }
    admins = { "focus@auth.mydomain.com", "jvb@auth.mydomain.com" }
    muc_room_locking = false
    muc_room_default_public_jids = true

VirtualHost "auth.mydomain.com"
    ssl = {
        key = "/etc/prosody/certs/auth.mydomain.com.key";
        certificate = "/etc/prosody/certs/auth.mydomain.com.crt";
    }
    modules_enabled = {
        "limits_exception";
    }
    authentication = "internal_hashed"

-- Proxy to jicofo's user JID, so that it doesn't have to register as a component.
Component "focus.mydomain.com" "client_proxy"
    target_address = "focus@auth.mydomain.com"

Component "speakerstats.mydomain.com" "speakerstats_component"
    muc_component = "conference.mydomain.com"

Component "conferenceduration.mydomain.com" "conference_duration_component"
    muc_component = "conference.mydomain.com"

Component "endconference.mydomain.com" "end_conference"
    muc_component = "conference.mydomain.com"

Component "avmoderation.mydomain.com" "av_moderation_component"
    muc_component = "conference.mydomain.com"

Component "lobby.mydomain.com" "muc"
    storage = "memory"
    restrict_room_creation = true
    muc_room_locking = false
    muc_room_default_public_jids = true
    modules_enabled = {
        "muc_rate_limit";
        "polls";
    }

Component "metadata.mydomain.com" "room_metadata_component"
    muc_component = "conference.mydomain.com"
    breakout_rooms_component = "breakout.mydomain.com"

and this my version :

dpkg -l | grep jitsi
ii  jitsi-meet                        2.0.8319-1                        all          WebRTC JavaScript video conferences
ii  jitsi-meet-prosody                1.0.6991-1                        all          Prosody configuration for Jitsi Meet
ii  jitsi-meet-tokens                 1.0.6991-1                        all          Prosody token authentication plugin for Jitsi Meet
ii  jitsi-meet-turnserver             1.0.6991-1                        all          Configures coturn to be used with Jitsi Meet
ii  jitsi-meet-web                    1.0.6991-1                        all          WebRTC JavaScript video conferences
ii  jitsi-meet-web-config             1.0.6991-1                        all          Configuration for web serving of Jitsi Meet
ii  jitsi-videobridge2                2.2-79-gf6426ea0-1                all          WebRTC compatible Selective Forwarding Unit (SFU)
ii  lua-basexx                        0.4.1-jitsi1                      all          baseXX encoding/decoding library for Lua
ii  lua-cjson:amd64                   2.1.0.10-jitsi1                   amd64        JSON parser/encoder for Lua

and in jitsi connection option:

lobby: {
        autoKnock: true,
        enableChat: false
    },
securityUi: {
       hideLobbyButton: true,
       disableLobbyPassword: false
}

I am creating my own custom web app using lib-jitsi-meet. I want to use the lobby feature, but when I attend a meeting, I enter the meeting directly, not the lobby.

how can ı do ?

Is lobby working for you when using the installed jitsi-meet?

1 Like

I can see the main screen in jitsi-meet installed, but I can’t create rooms and join so I can’t test it I guess I may have a mistake in nginx settings. I can’t use the installed jitsi-meet so I can’t test it there.I want to use the lobby feature using low-level-api. Am I at wrong way ?

You better have it running with jitsi-meet first. Try it out and see it works there, then start using ljm on that deployment.
That way you will cerify that the deployment is working correctly for you and if you need you can debug and see how ljm is used and how it is working.

1 Like

/etc/nginx/sites-enabled/mydomain.com.conf

I changed the nginx settings, so I can’t test it on the jitsi-meet side. how do i get the settings back. I can see the home page but getting 404 error redirecting to room

/etc/nginx/sites-enabled/mydomain.com.conf :

types {
    # nginx's default mime.types doesn't include a mapping for wasm or wav.
        application/wasm     wasm;
        audio/wav            wav;
    }
    upstream prosody {
        zone upstreams 64K;
        server 127.0.0.1:5280;
        keepalive 2;
    }
    upstream jvb1 {
        zone upstreams 64K;
        server 127.0.0.1:9090;
        keepalive 2;
    }
    map $arg_vnode $prosody_node {
        default prosody;
        v1 v1;
        v2 v2;
        v3 v3;
        v4 v4;
        v5 v5;
        v6 v6;
        v7 v7;
        v8 v8;
    }
    server {
        listen 80;
        listen [::]:80;
        server_name mydomain.com;
    
        location ^~ /.well-known/acme-challenge/ {
            default_type "text/plain";
            root         /usr/share/jitsi-meet;
        }
        location = /.well-known/acme-challenge/ {
            return 404;
        }
        location / {
            return 301 https://$host$request_uri;
        }
    }
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name mydomain.com;
    
        # Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, intermediate configuration
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers 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;
        ssl_prefer_server_ciphers off;
    
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:10m;  # about 40000 sessions
        ssl_session_tickets off;
    
        add_header Strict-Transport-Security "max-age=63072000" always;
        set $prefix "";
    
        ssl_certificate /etc/ssl/certs/bul.pem;
        ssl_certificate_key /etc/ssl/certs/bul.key;
    
        root /usr/share/jitsi-meet;
    
        # ssi on with javascript for multidomain variables in config.js
        ssi on;
        ssi_types application/x-javascript application/javascript;
    
        index index.html index.htm;
        error_page 404 /static/404.html;
    
        gzip on;
        gzip_types text/plain text/css application/javascript application/json image/x-icon application/octet-stream application/wasm;
        gzip_vary on;
        gzip_proxied no-cache no-store private expired auth;
        gzip_min_length 512;
    
        location = /apitest {
            proxy_pass http://127.0.0.1:9001;
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $http_host;
        }
    
        location = /config.js {
            alias /etc/jitsi/meet/mydomain.com-config.js;
        }
    
        location = /external_api.js {
            alias /usr/share/jitsi-meet/libs/external_api.min.js;
        }
    
        location = /_api/room-info {
            proxy_pass http://prosody/room-info?prefix=$prefix&$args;
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $http_host;
        }
    
        # ensure all static content can always be found first
        location ~ ^/(libs|css|static|images|fonts|lang|sounds|connection_optimization|.well-known)/(.*)$
        {
            add_header 'Access-Control-Allow-Origin' '*';
            alias /usr/share/jitsi-meet/$1/$2;
    
            # cache all versioned files
            if ($arg_v) {
                expires 1y;
            }
        }
    
        # BOSH
        location = /http-bind {
            proxy_pass http://$prosody_node/http-bind?prefix=$prefix&$args;
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $http_host;
            proxy_set_header Connection "";
        }
    
        # xmpp websockets
        location = /xmpp-websocket {
            proxy_pass http://$prosody_node/xmpp-websocket?prefix=$prefix&$args;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Host $http_host;
            tcp_nodelay on;
        }
    
        # colibri (JVB) websockets for jvb1
        location ~ ^/colibri-ws/default-id/(.*) {
            proxy_pass http://jvb1/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;
        }
    
        # load test minimal client, uncomment when used
        #location ~ ^/_load-test/([^/?&:'"]+)$ {
        #    rewrite ^/_load-test/(.*)$ /load-test/index.html break;
        #}
        #location ~ ^/_load-test/libs/(.*)$ {
        #    add_header 'Access-Control-Allow-Origin' '*';
        #    alias /usr/share/jitsi-meet/load-test/libs/$1;
        #}
    
        location ~ ^/([^/?&:'"]+)/config.js$
        {
            set $subdomain "$1.";
            set $subdir "$1/";
    
            alias /etc/jitsi/meet/mydomain.com-config.js;
        }
    
        # BOSH for subdomains
        location ~ ^/([^/?&:'"]+)/http-bind {
            set $subdomain "$1.";
            set $subdir "$1/";
            set $prefix "$1";
    
            rewrite ^/(.*)$ /http-bind;
        }
    
        # websockets for subdomains
        location ~ ^/([^/?&:'"]+)/xmpp-websocket {
            set $subdomain "$1.";
            set $subdir "$1/";
            set $prefix "$1";
    
            rewrite ^/(.*)$ /xmpp-websocket;
        }
    
        location ~ ^/([^/?&:'"]+)/_api/room-info {
            set $subdomain "$1.";
            set $subdir "$1/";
            set $prefix "$1";
    
            rewrite ^/(.*)$ /_api/room-info;
        }
    }

Should I change it to default settings or make changes elsewhere?

Yeah change to the default one and start from a working deployment.

1 Like

how can i switch to default is there a source ?

The settings in this path are the default settings I think are correct, can you confirm?

/usr/share/jitsi-meet-web-config/jitsi-meet.example

This is the nginx config template

1 Like

I have set the configurations to default but I keep getting the same error:
main page successfull


room page error

There should be something wrong in your nginx config.

1 Like

error changed

This is my nginx config (/etc/nginx/sites-available/mydomain.com.conf)


server_names_hash_bucket_size 64;

types {
# nginx's default mime.types doesn't include a mapping for wasm or wav.
    application/wasm     wasm;
    audio/wav            wav;
}
upstream prosody {
    zone upstreams 64K;
    server 127.0.0.1:5280;
    keepalive 2;
}
upstream jvb1 {
    zone upstreams 64K;
    server 127.0.0.1:9090;
    keepalive 2;
}
map $arg_vnode $prosody_node {
    default prosody;
    v1 v1;
    v2 v2;
    v3 v3;
    v4 v4;
    v5 v5;
    v6 v6;
    v7 v7;
    v8 v8;
}
server {
    listen 80;
    listen [::]:80;
    server_name mydomain.com;

    location ^~ /.well-known/acme-challenge/ {
        default_type "text/plain";
        root         /usr/share/jitsi-meet;
    }
    location = /.well-known/acme-challenge/ {
        return 404;
    }
    location / {
        return 301 https://$host$request_uri;
    }
}
server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name mydomain.com;

    # Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, intermediate configuration
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 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;
    ssl_prefer_server_ciphers off;

    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;  # about 40000 sessions
    ssl_session_tickets off;

    add_header Strict-Transport-Security "max-age=63072000" always;
    set $prefix "";

    ssl_certificate /etc/ssl/certs/bul.pem;
    ssl_certificate_key /etc/ssl/certs/bul.key;

    root /usr/share/jitsi-meet;

    # ssi on with javascript for multidomain variables in config.js
    ssi on;
    ssi_types application/x-javascript application/javascript;

    index index.html index.htm;
    error_page 404 /static/404.html;

    gzip on;
    gzip_types text/plain text/css application/javascript application/json image/x-icon application/octet-stream application/wasm;
    gzip_vary on;
    gzip_proxied no-cache no-store private expired auth;
    gzip_min_length 512;

    location = /config.js {
        alias /etc/jitsi/meet/mydomain.com-config.js;
    }

    location = /external_api.js {
        alias /usr/share/jitsi-meet/libs/external_api.min.js;
    }

    location = /_api/room-info {
        proxy_pass http://prosody/room-info?prefix=$prefix&$args;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
    }

    # ensure all static content can always be found first
    location ~ ^/(libs|css|static|images|fonts|lang|sounds|.well-known)/(.*)$
    {
        add_header 'Access-Control-Allow-Origin' '*';
        alias /usr/share/jitsi-meet/$1/$2;

        # cache all versioned files
        if ($arg_v) {
            expires 1y;
        }
    }

    # BOSH
    location = /http-bind {
        proxy_pass http://$prosody_node/http-bind?prefix=$prefix&$args;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $http_host;
        proxy_set_header Connection "";
    }

    # xmpp websockets
    location = /xmpp-websocket {
        proxy_pass http://$prosody_node/xmpp-websocket?prefix=$prefix&$args;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        tcp_nodelay on;
    }

    # colibri (JVB) websockets for jvb1
    location ~ ^/colibri-ws/default-id/(.*) {
        proxy_pass http://jvb1/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;
    }

    # load test minimal client, uncomment when used
    #location ~ ^/_load-test/([^/?&:'"]+)$ {
    #    rewrite ^/_load-test/(.*)$ /load-test/index.html break;
    #}
    #location ~ ^/_load-test/libs/(.*)$ {
    #    add_header 'Access-Control-Allow-Origin' '*';
    #    alias /usr/share/jitsi-meet/load-test/libs/$1;
    #}

    location ~ ^/([^/?&:'"]+)$ {
        try_files $uri @root_path;
    }

    location @root_path {
        rewrite ^/(.*)$ / break;
    }

    location ~ ^/([^/?&:'"]+)/config.js$
    {
        set $subdomain "$1.";
        set $subdir "$1/";

        alias /etc/jitsi/meet/mydomain.com-config.js;
    }

    # Matches /(TENANT)/pwa-worker.js or /(TENANT)/manifest.json to rewrite to / and look for file
    location ~ ^/([^/?&:'"]+)/(pwa-worker.js|manifest.json)$ {
        set $subdomain "$1.";
        set $subdir "$1/";
        rewrite ^/([^/?&:'"]+)/(pwa-worker.js|manifest.json)$ /$2;
    }

    # BOSH for subdomains
    location ~ ^/([^/?&:'"]+)/http-bind {
        set $subdomain "$1.";
        set $subdir "$1/";
        set $prefix "$1";

        rewrite ^/(.*)$ /http-bind;
    }

    # websockets for subdomains
    location ~ ^/([^/?&:'"]+)/xmpp-websocket {
        set $subdomain "$1.";
        set $subdir "$1/";
        set $prefix "$1";

        rewrite ^/(.*)$ /xmpp-websocket;
    }

    location ~ ^/([^/?&:'"]+)/_api/room-info {
        set $subdomain "$1.";
        set $subdir "$1/";
        set $prefix "$1";

        rewrite ^/(.*)$ /_api/room-info;
    }

    # Anything that didn't match above, and isn't a real file, assume it's a room name and redirect to /
    location ~ ^/([^/?&:'"]+)/(.*)$ {
        set $subdomain "$1.";
        set $subdir "$1/";
        rewrite ^/([^/?&:'"]+)/(.*)$ /$2;
    }
}

Is there anything you notice that I need to make changes to?

Are you sure this is the active config?
Is there any reverse proxy in front of Nginx?

1 Like

I don’t know how to understand what you are asking, can you help me?

This is my ‘sudo tail -f /var/log/nginx/access.log’ command output :

10.10.20.11 - - [19/Apr/2023:10:58:37 +0000] "GET /lang/languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:37 +0000] "GET /lang/translation-languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:37 +0000] "GET /lang/languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:37 +0000] "GET /lang/translation-languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:37 +0000] "GET /lang/languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:37 +0000] "GET /lang/translation-languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:38 +0000] "GET /lang/languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:38 +0000] "GET /lang/translation-languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:38 +0000] "GET /lang/languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:58:38 +0000] "GET /lang/translation-languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:59:01 +0000] "GET /lang/languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
10.10.20.11 - - [19/Apr/2023:10:59:01 +0000] "GET /lang/translation-languages-tr.json HTTP/1.1" 404 445 "https://mydomain.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"

and this is my ‘sudo tail -f /var/log/nginx/error.log’ command output :

2023/04/19 10:58:37 [error] 258677#258677: *19 open() "/usr/share/jitsi-meet/lang/languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:58:37 [error] 258677#258677: *17 open() "/usr/share/jitsi-meet/lang/translation-languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/translation-languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:58:37 [error] 258677#258677: *19 open() "/usr/share/jitsi-meet/lang/languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:58:37 [error] 258677#258677: *17 open() "/usr/share/jitsi-meet/lang/translation-languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/translation-languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:58:38 [error] 258677#258677: *17 open() "/usr/share/jitsi-meet/lang/languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:58:38 [error] 258677#258677: *19 open() "/usr/share/jitsi-meet/lang/translation-languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/translation-languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:58:38 [error] 258677#258677: *19 open() "/usr/share/jitsi-meet/lang/languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:58:38 [error] 258677#258677: *17 open() "/usr/share/jitsi-meet/lang/translation-languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/translation-languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:59:01 [error] 258677#258677: *19 open() "/usr/share/jitsi-meet/lang/languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"
2023/04/19 10:59:01 [error] 258677#258677: *17 open() "/usr/share/jitsi-meet/lang/translation-languages-tr.json" failed (2: No such file or directory), client: 10.10.20.11, server: mydomain.com, request: "GET /lang/translation-languages-tr.json HTTP/1.1", host: "mydomain.com", referrer: "https://mydomain.com/"

and ‘sudo nginx -T’ command shows the nginx file I specified above as output

and there seems to be no upstream defined is this how I can tell if there is a reverse proxy
‘/etc/nginx/nginx.conf’:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/sites-enabled/*;
        include /etc/nginx/conf.d/*;
}


#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}

The ip address nginx is running on is the same as the ip address in the output of the ‘nslookup mydomain.com’ command.

The nginx config for jitsi-meet is wrong and missing matching of meetings to index.html.
That’s why I showed you the default template to compare it with your config.

1 Like

If you don’t anything customized you can also use uninstall and start all over. To get the defaults.
There are uninstall instructions in the quick install guide (purge everything)

1 Like

Thanks a lot for your quick reply

I applied the default template exactly, I only changed the parts of my domain

(/usr/share/jitsi-meet/lang/languages-tr.json, /usr/share/jitsi-meet/lang/translation-languages-tr.json )
can’t find the two files specified I think I checked the specified directory the files are not available can I have a mistake about it can I get the files from somewhere and add them to the specified directory

i think uninstall i have to follow the instructions here and start all over

Yes