docker-jitsi-meet icon indicating copy to clipboard operation
docker-jitsi-meet copied to clipboard

Documentation -- guidance on how to set DOCKER_HOST_ADDRESS appears to be inaccurate

Open coridonhenshaw opened this issue 4 years ago • 6 comments

The Self-Hosting Guide states that:

Running behind NAT or on a LAN environment

If running in a LAN environment (as well as on the public Internet, via NAT) is a requirement, the DOCKER_HOST_ADDRESS should be set. This way, the Videobridge will advertise the IP address of the host running Docker instead of the internal IP address that Docker assigned it, thus making ICE succeed. If your users are coming in over the Internet (and not over LAN), this will likely be your public IP address. If this is not set up correctly, calls will crash when more than two users join a meeting.

The public IP address is discovered via STUN. STUN servers can be specified with the JVB_STUN_SERVERS option.

The instruction to set DOCKER_HOST_ADDRESS to the public IP address when using Docker in a NAT environment did not work for me. Using the public IP address causes Jitsi Meet to panic and destroy the meeting room as soon as the second user connects, not after more than two users connect.

My experience has been that, in a LAN-NAT environment, DOCKER_HOST_ADDRESS must be set to the LAN address of the Docker host with Jitsi left to determine it's own external address via STUN.

The correct setting for DOCKER_HOST_ADDRESS may vary depending on how NAT is configured, however.

coridonhenshaw avatar Jun 24 '20 16:06 coridonhenshaw

The documentation is correct. Docker Host implies the LAN IP of the Docker host (and it does say this specifically in the documentation). It doesn't say to use your ISP IP or WAN IP at any point. This is clear to me and it's also a common environment variable for a Docker container to have. This value should always be set to the IP of your Docker on your LAN.

oramirite avatar Jun 27 '20 21:06 oramirite

Please reread the portion of the documentation that I quoted above: "If your users are coming in over the Internet (and not over LAN), this will likely be your public IP address."

In a NAT environment, the "public address" is not the LAN address of the Docker host.

coridonhenshaw avatar Jun 27 '20 22:06 coridonhenshaw

Sorry, you're right, this is confusing. I don't know why it would say that. Any reference to the WAN address should just be scrapped - anyone with a network setup that would require this would probably already know to set that as the WAN IP.

oramirite avatar Jun 29 '20 17:06 oramirite

I have been wondering what about dual-stack IPv6 environment? We are almost completely dual-stacked except Docker which will move to dual-stack soon as well. How this parameter would work in dual-stack?

To be clear - if the Docker host has a public IP address that is not NATed, this variable should be left empty?

bluikko avatar Jul 02 '20 05:07 bluikko

I have just taken a look at the Traefik examples and after reading this thread I am even more confused.

From the Traefik example README.md:

Uncomment and set DOCKER_HOST_ADDRESS in .env. I'm pretty sure, that this is mandatory for the docker-setup and should be clearer in the original README. Could be the proxying, didn't investigate further.

The DOCKER_HOST_ADDRESS should only be set if there is another device doing NAT to the Docker host's IP address? If docker-jitsi-meet is behind Traefik it needs to be left unset? Or the example README.md is correct and in this case the variable must be set?

Can someone confirm this definitely? @oramirite?

bluikko avatar Jul 29 '20 06:07 bluikko

In https://github.com/jitsi/docker-jitsi-meet/issues/293#issuecomment-604000911 it was announced that the variable will be renamed to a clearer term.

almereyda avatar Jan 18 '22 02:01 almereyda

To cite @saghul from

  • https://github.com/jitsi/docker-jitsi-meet/issues/1199#issuecomment-1258478204

Multiple advertised support was just added: https://github.com/jitsi/docker-jitsi-meet/commit/c53de728cedf54edcbb94e104b3a45fd029f8b9d

I suggest to update the title of this issue with the changed variable name JVB_ADVERTISE_IPS.

almereyda avatar Sep 27 '22 20:09 almereyda

I also updated the docs so I'm going to close this one too.

saghul avatar Sep 28 '22 05:09 saghul