How to change UI and some variables with docker install

Hi,

Could you help me with following questions for the jitsi docker installation?

What would be the easiest way to change the jitsi meet web UI (css) on a docker install?
What is the best way to change some parameters that have no environment value like
net.java.sip.communicator.impl.protocol.sip.acc1.KEEP_ALIVE_INTERVAL=25

Thanks,
Xaled

@mehtapaxshal you are currently doing that, can you help? How does the custom jigasi config work?

To add custom configs that aren’t part of env variables, there’s a way to over-ride or add new config parameter. Always look into jitsi meet docker repo and check 10-config file for the desired service.

For e.g) This is 10-config file for Jigasi → docker-jitsi-meet/10-config at stable-7648-4 · jitsi/docker-jitsi-meet · GitHub

If you notice the file, there’s a mention of custom-sip-communicator.properties file that is checked during setup and if that file exists, this 10-config script would append the content from custom-sip-communicator.properties to original sip-communicator.properties file.

In short, just create a new file in your docker setup with the custom file name and add new parameter in that file (whatever you want), setup proper mount path on docker (in this case, path is /config/custom-sip-communicator.properties) and that’s it - it should automatically over-ride or add that new parameter in the configuration.

I did it as below:

  • Cloned jitsi-meet repo (stable-7648-4).
  • Make changes on the repo.
  • Then, use below Dockerfile
Dockerfile

FROM jitsi/web:stable-7648-4
RUN mkdir -p custom-jitsi-meet
WORKDIR /custom-jitsi-meet
COPY . .
RUN apt-get update && apt-get upgrade -y && apt-get install make
ENV NODE_VERSION=16.13.0
RUN apt install -y curl
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
ENV NVM_DIR=/root/.nvm
RUN . “$NVM_DIR/nvm.sh” && nvm install ${NODE_VERSION}
RUN . “$NVM_DIR/nvm.sh” && nvm use v${NODE_VERSION}
RUN . “$NVM_DIR/nvm.sh” && nvm alias default v${NODE_VERSION}
ENV PATH=“/root/.nvm/versions/node/v${NODE_VERSION}/bin/:${PATH}”
RUN npm install
RUN make
RUN cp ./css/all.css /usr/share/jitsi-meet/css/all.css
RUN cp -r ./libs/* /usr/share/jitsi-meet/libs/

The above docker file will install original jitsi meet web, then run make/npm install and then, I copy css and libs folder to original installed directory. It will have the new layout.

Not sure, if this is the best way but works for me - always looking for better approach (let me know if you find one)

I’d suggest you do the build outside of Docker and then just ADD it in the Dockerfile.

1 Like

Thanks!
Adding custom-sip-communicator.properties solved the custom SIP parameters for me.

Apologies for being ignorant, but what do you exactly mean by “build outside of Docker and then just ADD it in the Dockerfile”

You could prepare the JS bundle outside Docker and then COPY or ADD it to the image.