Creating a docker image for custom lib-jitsi-meet

we have some basic knowledge about docker and we are building from lib-jitsi-meet, customizing it by giving a another upper layer how we want to use it.
For now we are running a normal jitsi meet server in a docker. From our customized lib-jitsi-meet(customized UI+some rules) ,we create customized room through api in that server.
how can I automate this? meaning like running our customized lib-jitsi in a docker and we just download->up the image to run and that is our customized server,not just a normal server where customized room through api can be created.
where should I change or work? in “web” service part of jitsi docker ? or fully other custom service which just provide upper layer of UI+rule that will just run in front of normal server to interact with user ??
Thanx in advance :heart:
@saghul @damencho

You need to change the web container. Make sure it serves your copy of lib-jitsi-meet and that should be it. You could even replace web with your own thing, which serves just lib-jitsi-meet instead of the entire UI.

can u plz be more specific? I am finding it hard to get it by soul where to change in web part…actually I am little bit confused where it connects to other containers. actually where the conference object is passing and add UI where I can change that to my customized conference object and serve a customized UI for that conference object, other remains same so that is my docker lib jitsi meet :slight_smile:
plz help… thanx in advance :heart:
@saghul @damencho

Did you build a whole new UI on top of lib-jitsi-meet or did you modify lib-jitsi-meet ?

we just gave a extra layer of rules+control in front of lib-jitsi to implement teacher-student (1 to many) video conferencing and we also bundled it in 1 js file …
so if I just load this master js file in html and initiate conference object properly with parameters(where I can specify the parent div, roomname, role) I can then just normally attach video or handle events (as the bundled master js is already loaded) in 2 html pages(teacher+student,in angular).
so I have js file (bundled js file ) and html (may be I will do it in angular,where I can attach the video using that js)… how should I integrate? :sleepy: :slight_smile:
thanx in advance :heart:

I think the best would be to replace what the “web” container currently does with whatever you need. Right now it installs deb packages for jitsi-meet, but you could instead copy files over from wherever you have them.

in base image?
and its complicated to understand the package and replace the needed files… as there is UI module too… just tell me how can I just load the bundled js file and use it…
I little bit understand(but its really complicated to replace debian files) what u said but isnt there a easy way just for a html and js file?

Yes, by changing the base web container.

Ignore the debian packages. Just edit the Dockerfile and use ADD to put your files in /var/ww, then edit the nginx config and your simplified container should be good to go! You’ll be using the rest of the contasiners just fine, but not the web UI, there you use yours.

1 Like

so lets say I have index.html and bundle.js
here is the base dockerfile for the web:

FROM debian:stretch-slim

ARG JITSI_RELEASE=stable

ADD https://github.com/just-containers/s6-overlay/releases/download/v1.21.4.0/s6-overlay-amd64.tar.gz /tmp/s6-overlay.tar.gz
ADD https://download.jitsi.org/jitsi-key.gpg.key /tmp/jitsi.key
ADD https://github.com/subchen/frep/releases/download/v1.3.5/frep-1.3.5-linux-amd64 /usr/bin/frep

COPY rootfs /

RUN \
	tar xfz /tmp/s6-overlay.tar.gz -C / && \
	rm -f /tmp/*.tar.gz && \
	apt-dpkg-wrap apt-get update && \
	apt-dpkg-wrap apt-get install -y apt-transport-https apt-utils ca-certificates gnupg && \
	apt-key add /tmp/jitsi.key && \
	rm -f /tmp/jitsi.key && \
	echo "deb https://download.jitsi.org $JITSI_RELEASE/" > /etc/apt/sources.list.d/jitsi.list && \
	echo "deb http://ftp.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/backports.list && \
	apt-dpkg-wrap apt-get update && \
	apt-dpkg-wrap apt-get dist-upgrade -y && \
	apt-cleanup && \
	chmod +x /usr/bin/frep

RUN \
	[ "$JITSI_RELEASE" = "unstable" ] && \
	apt-dpkg-wrap apt-get update && \
	apt-dpkg-wrap apt-get install -y jq procps curl vim iputils-ping net-tools && \
	apt-cleanup || \
	true

ENTRYPOINT [ "/init" ]

so I will delete the 3 ADD parts and put my js/html file in var/www of web container? the configure nginx?
Thanx :heart:

Yes and no. What you pasted is the base container. Look at the Dockerfile in the “web” subdirectory instead. That’s the one for the web container.

yeah I understand… here is the web dockerfile :

ARG JITSI_REPO=jitsi
FROM ${JITSI_REPO}/base

RUN \
	apt-dpkg-wrap apt-get update && \
	apt-dpkg-wrap apt-get install -y cron nginx-extras jitsi-meet-web && \
	apt-dpkg-wrap apt-get install -y -t stretch-backports certbot && \
	apt-cleanup && \
	rm -f /etc/nginx/conf.d/default.conf && \
	rm -f /usr/share/jitsi-meet/interface_config.js

COPY rootfs/ /

EXPOSE 80 443

VOLUME ["/config", "/etc/letsencrypt"]

but I thought the base image was the one which was responsible for the part I need to change… so here in web dockerfile, I see not much things are being done so I am confused about the workflow… it inherits all from base image and it does some installation in jitsi-meet-web, nginx-extras, stretch-backports, certbot but I am not feeling comfortable with the names :cry: as I have not clear idea what should I change/add now in this file to establish what I want… :sob:
help me cracking here and thanx in advance :heart:

This is indeed the right one. jitsi-meet-web is the web frontend which includes lib-jitsi-meet. Look at the nginx config. Now, instead of installing that package, you’ll want to ADD the files you want to /var/www/yourstuff and edit the nginx config accordingly.

1 Like

I will try :heart: