Serving Jitsi Meet throughout NGINX

jitsi meet | standalone | virtual host | image preparation | image usage

tested on slackware current (sep 2021)

INTRO

so you wanna keep the docker instance while dealing with the HTTP virtual host by yourself? Here’s how.

REQUIREMENTS

install the latest nodejs from source

wget https://nodejs.org/dist/v14.17.6/node-v14.17.6.tar.gz
tar xzf node-v14.17.6.tar.gz
cd node-v14.17.6/
echo $MAKEFLAGS
./configure && make && make install && echo DEPLOYED

and check

node -v
npm -v
cd ../

BUILD

cd /data/www/

git clone https://github.com/jitsi/lib-jitsi-meet.git
cd lib-jitsi-meet/
npm update
npm audit fix
cd ../

git clone https://github.com/jitsi/jitsi-meet.git
cd jitsi-meet/
npm update
npm audit fix
npm install && echo DEPLOYED
cp -pi package.json package.json.dist
vi package.json

"lib-jitsi-meet": "file:../lib-jitsi-meet"

ls -alF node_modules/lib-jitsi-meet/
rm -rf node_modules/lib-jitsi-meet/
mv node_modules/lib-jitsi-meet/ node_modules/lib-jitsi-meet.trash/
npm install lib-jitsi-meet --force
#npm audit fix
make && echo DEPLOYED IN WWW
cd ../

SETUP

grab the virtual host config from your instance and tune those pathes

cd /etc/nginx/conf.d/
vi meet.conf

    location ^~ /.well-known/acme-challenge/ {
    default_type "text/plain";
    root         /data/www/jitsi-meet;
    }

    ssl_certificate     /etc/dehydrated/certs/nethence_com/fullchain.pem;
    ssl_certificate_key /etc/dehydrated/certs/nethence_com/privkey.pem;
    ssl_certificate     /etc/dehydrated/certs/ECC/nethence_com/fullchain.pem;
    ssl_certificate_key /etc/dehydrated/certs/ECC/nethence_com/privkey.pem;

    root /data/www/jitsi-meet;

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

    location = /external_api.js {
    alias /data/www/jitsi-meet/libs/do_external_connect.min.js;
    }

nginx -t

TWEAK THE IMAGE

remove nginx from all the scripts we’re using

vi RESTART START STATUS STOP rc.local

:w
:n
...

USAGE

ports 5280/tcp and 9090/tcp will be reachable internally, we only need to share the front-facing udp channel

fqdn=meet.example.net
instance=${fqdn%%\.*}
facingip=x.x.x.x

docker run -d --name $instance --hostname $fqdn -e facingip=$facingip --workdir /root \
        -p 10000:10000/udp \
        pbraun9/meet
docker logs $instance
docker exec -ti $instance /bin/bash

dpkg-reconfigure jitsi-videobridge2
dpkg-reconfigure jitsi-meet-web-config
dpkg-reconfigure jitsi-meet-prosody
/root/RESTART
/root/STATUS

Resources

Self-Hosting Guide - Debian/Ubuntu server https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart

Self-Hosting Guide - Manual installation https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual

Self-Hosting Guide - Docker https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker

[How to] How to build Jitsi Meet from source: A developer’s guide https://community.jitsi.org/t/how-to-how-to-build-jitsi-meet-from-source-a-developers-guide/75422

build

Slackware build script for nodejs http://sterlingdesktops.com/pub/slack-stuff/nodejs-sbo/nodejs.SlackBuild


HOME | GUIDES | LECTURES | LAB | SMTP HEALTH | HTML5 | CONTACT
Copyright © 2024 Pierre-Philipp Braun