2.4 KiB
OpenVidu Local Deployment
Docker compose to run OpenVidu locally for development purposes
Requirements
On Windows and MacOS:
- Docker Desktop
On Linux:
- Docker
- Docker Compose
How to run
git clone https://github.com/OpenVidu/openvidu-local-deployment
cd openvidu-local-deployment
docker compose up
When the deployment is ready you will see the following message in the logs:
readycheck | ------------------------
readycheck | OpenVidu is ready!
readycheck | Open http://localhost:4443/ in your browser
readycheck | ------------------------
Additional Notes
LAN Access (Optional)
If you want to access the deployment in your LAN for Android or iOS devices, you need to do the following:
-
Get the private IP of your computer in your LAN.
-
Configure your Firewall to allow devices in your LAN to access your computer.
-
Change
LOCAL_DOMAINin the.envfile to have the IP of your computer in your LAN.If your IP for example is
192.168.1.10,LOCAL_DOMAINshould be192-168-1-10.openvidu-local.dev.
About openvidu-local.dev
When you develop WebRTC applications, you require a secure context (HTTPS) to access the camera and microphone. This is a requirement of the WebRTC standard.
With the aim of making it easier to develop with OpenVidu, we provide a magic domain name openvidu-local.dev which can resolve to any IP specified as a subdomain and it offers a valid wildcard certificate for HTTPS. It is similar to nip.io or traefik.me or localtls.
But take into account that this is just as secure as a HTTP connection, so it is not suitable for production environments.
Edge cases:
-
Linux: All works just fine
-
Windows (Docker desktop): It looks like there is a little edge case which we are fighting with WSL + Docker. Looks related with this: https://stackoverflow.com/questions/61629450/webrtc-does-not-work-in-the-modern-browsers-when-a-peer-is-not-behind-a-nat-beca
The behaviour is the following
- Chrome based browsers: Looks like everything works fine. ICE protocol finds a path to communicate the browser and openvidu.
- Firefox browser:
The only working candidate in Firefox is filtered, I was able to workaround this limitation with
media.peerconnection.ice.obfuscate_host_addresses=false.