Custom Dockerfile to overwrite config.js in web container

I am trying to overwrite the config.js file with a custom Dockerfile. Does anyone know why :
COPY test.txt /usr/testSucesfull.txt works,
COPY test.txt /config/testSucesfull.txt does not?
Is there a way to unlock this functionality of overwriting the config directory?

You don’t need a custom dockerfile to overwrite config.js file. Since you’re self hosting, you can overwrite config.js by creating a custom-config.js file in your .jitsi-meet-cfg directory and overriding the config there (you can check the docs).
The file should look something like this:

config.enableWelcomePage = false;
config.enableClosePage = false;

But to answer your question. That doesn’t work because /config folder is actually mounted from the outside and it does not exist during the build process.

1 Like

My primary goal is to enable correctly working websockets.
Is there a way to uncomment the web socket line with custom-config.js, to enable websockets? I can’t seem to find it.

Websockets should be enabled via environment variables using .env file. You don’t need to use custom config to enable websockets.

1 Like

Sorry for this noob of a question xD, but if get the following error message:

I probably do have websockets enabled, but not configured correctly, right?

Yeah, it does seem so. Are you using a self-signed certificate or a custom certificate by any chance?

A self-signed certificate. My current goal is to get the whole thing running using websockets and then going from there to everything else.
By any chance do you know if in the .env file, in the XMPP domain configuration, does the XMPP_DOMAIN need to be changed to the same value as PUBLIC_URL?

No, since you’re using docker, the XMPP_DOMAIN should be left as is (meet.jitsi).
I think your problem is that you’re using a self-signed certificate. If it’s possible for you, I suggest you setup an actual domain and use a let’s encrypt certificate.

1 Like


Based on your comment, if we create the custom-config.js, where exactly do we need to call that? I mean do we need to link the path to .env or any other place? or will jitsi honor the custom-config.js file instead?, where it is being called?


Jitsi automatically picks up the custom-config.js if it exists. The exact code is here:

I have done this, but even you have the custom-config-interface.js, whenever you docker-compose down and up, any changes you’ve done in custom-config.js resets to the original.

So how can I really use the custom-config-interface.js ? (
For instance, Disable_Welcome_Footer = true,
But when you docker-compose up and down it reset back to false.