jitsi meet | standalone | virtual host | image preparation | image usage
we’re going for Devuan/dumb-init Docker image (not SVR4) and we’re going to start daemons in sequence within rc.local
directly. No need to share ports nor volumes just yet.
docker pull pbraun9/devuan docker run -d --name meet-tmp --hostname meet-tmp --workdir /root pbraun9/devuan docker logs meet-tmp docker exec -ti meet-tmp /bin/bash
Note STUN_MAPPING_HARVESTER_ADDRESSES
had to be disabled for NAT/Docker to work
proceed with the jitsi-meet as Docker container guide but simply keep the default generated certs in there. no need to start nginx nor to run the LE script.
backup copy for maintenance
cp -pi /etc/jitsi/videobridge/sip-communicator.properties /etc/jitsi/videobridge/sip-communicator.properties.dist mv -i /etc/prosody/conf.avail/meet-tmp.cfg.lua /etc/prosody/conf.avail/meet-tmp.cfg.lua.dist mv -i /etc/nginx/sites-available/meet-tmp.conf /etc/nginx/sites-available/meet-tmp.conf.dist
handy symlinks
ln -s /etc/jitsi/videobridge/sip-communicator.properties ln -s /etc/rc.local
custom wrapper script for hosting any FQDN according to the instance hostname
vi UPDATE-HOSTNAME #!/bin/bash [[ -z $HOSTNAME ]] && echo define HOSTNAME && exit 1 echo HOSTNAME is $HOSTNAME for conf in \ /etc/jitsi/jicofo/jicofo.conf \ /etc/jitsi/jicofo/config \ /etc/jitsi/meet/meet-tmp-config.js \ /etc/jitsi/videobridge/config \ /etc/jitsi/videobridge/jvb.conf \ /etc/jitsi/videobridge/sip-communicator.properties \ /etc/turnserver.conf \ ; do echo -n updating $conf ... mv $conf $conf.tmp sed -r "s/meet-tmp/$HOSTNAME/" $conf.tmp > $conf && echo done || echo FAIL rm -f $conf.tmp done; unset conf for leftover in \ /etc/prosody/conf.avail/meet-tmp.cfg.lua \ /etc/nginx/sites-available/meet-tmp.conf \ ; do echo -n removing $leftover ... rm -f $leftover && echo done || echo FAIL done; unset leftover chmod +x UPDATE-HOSTNAME
for JVB to work behind Docker-or-NAT
vi BEHIND-NAT #!/bin/bash [[ -z $facingip ]] && echo ERROR did not grab \$facingip from environment && exit 1 localip=`ifconfig eth0 | grep 'inet ' | awk '{print $2}'` echo -n adding $localip / $facingip to jvb properties... mv /etc/jitsi/videobridge/sip-communicator.properties /etc/jitsi/videobridge/sip-communicator.properties.tmp # GETTING RID OF STUN_MAPPING_HARVESTER_ADDRESSES grep -vE '^org.ice4j.ice.harvest.NAT_HARVESTER_|^org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=' \ /etc/jitsi/videobridge/sip-communicator.properties.tmp > /etc/jitsi/videobridge/sip-communicator.properties # BEWARE OF INDENTATION HERE, THERE IS AN EOF cat >> /etc/jitsi/videobridge/sip-communicator.properties <<EOF && echo done || echo FAIL org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=$localip org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=$facingip EOF unset localip chmod +x BEHIND-NAT
vi /etc/rc.local
enable the previously mentioned scripts
/root/UPDATE-HOSTNAME /root/BEHIND-NAT
for jicofo and jvb init scripts not to complain about relying pid files
rm -f /var/run/jicofo.pid rm -f /var/run/jitsi-videobridge.pid
enable the services at startup — this is dumb-init, not SVR4
service nginx start service prosody start service jicofo start service jitsi-videobridge2 start #service uuidd start
eventually disable uuid daemon now that all required packages are installed
service uuidd stop update-rc.d uuidd defaults-disabled update-rc.d uuidd disable
clean-up the instance before commit
ls -lF /var/run/jicofo.pid # nope ls -lF /var/run/jitsi-videobridge.pid # nope history -c rm -f /root/.bash_history ^D
now convert the tweaked instance to an image
docker stop meet-tmp docker commit meet-tmp pbraun9/meet docker rm meet-tmp
docker login -u pbraun9 docker push pbraun9/meet
Jitsi Meet as a single instance, thanks to Devuan and dumb-init https://hub.docker.com/r/pbraun9/meet
Sep 2021
[SOLVED] Text file busy ? https://www.linuxquestions.org/questions/slackware-14/text-file-busy-4175671871/