Deploy Openvidu Server 2.13.0 on premises in LAN network without internet connection

Hi all,
I deployed Openvidu 2.13.0 on my PC based on https://docs.openvidu.io/en/2.13.0/deployment/deploying-on-premises/
Then i connected classroom-demo app to this server. Everything works fine as its on localhost and my PC has internet connection. What i must do to deploy Openvidu Server on my company LAN (without any internet connection) computer? i must load docker images, but what happend to coturn? does it need internet connectio to work?

OpenVidu installation script is implemented assuming you can download software from Internet. If you can not use Internet, download docker images and install them in target computer.

Also, you have to set manually the machine IP in COTURN_IP in openvidu-server in docker-compose instead of relaying on /usr/local/bin/discover_my_public_ip.sh script.

Something like:

    openvidu-server:
        image: openvidu/openvidu-server:2.13.0
        restart: on-failure
        network_mode: host
        entrypoint: ['/bin/bash', '-c', 'export COTURN_IP=XX.XX.XX.XX; /usr/local/bin/entrypoint.sh']

Also, if you plan to use recording, you should donwload also recording container.

Hi,
Thanks Micael for replying, I’m new to docker, would you please explain more about this (how i must do this):

Replace openvidu-server service in docker-compose.yml with the following content:

openvidu-server:
        image: openvidu/openvidu-server:2.13.0
        restart: on-failure
        network_mode: host
        entrypoint: ['/bin/bash', '-c', 'export COTURN_IP=XX.XX.XX.XX; /usr/local/bin/entrypoint.sh']

And the value XX.XX.XX.XX must be the public IP of the installation machine.

Hey folks, i have problem regarding similar configuration. I have openvidu-server-kms 2.13 ruining on linux machine that is in my network on a docker. Do i need to install coturn so i can process the video because at the moment im receiving the following :

p.s. On local machine everything is working fine

why is disconnecting? What could be the problem?

IceConnectionState of RTCPeerConnection ac22d7fe-1c47-4a01-a46f-f5c8a5a89b80 (str_IPC_L1GU_ipc_IPCAM_rtsp_DJZL_170_93_143_139_rtplive_470011e600ef003a004ee33696235daa) change to “checking”
‘Subscriber’ (str_IPC_L1GU_ipc_IPCAM_rtsp_DJZL_170_93_143_139_rtplive_470011e600ef003a004ee33696235daa) successfully subscribed
Peer remote stream MediaStream {id: “823ca678-9d27-4778-93b5-26564e64e3ac”, active: true, onaddtrack: null, onremovetrack: null, onactive: null, …}
Video srcObject [[object MediaStream]] updated in stream [str_IPC_L1GU_ipc_IPCAM_rtsp_DJZL_170_93_143_139_rtplive_470011e600ef003a004ee33696235daa]
WebRtc stats not enabled
Subscribed correctly to ipc_IPCAM_rtsp_DJZL_170_93_143_139_rtplive_470011e600ef003a004ee33696235daa
IceConnectionState of RTCPeerConnection 016ea05c-01ca-4e34-9b4d-b7ce4e363534 (str_IPC_FCwm_ipc_IPCAM_rtsp_W4LB_170_93_143_139_rtplive_470011e600ef003a004ee33696235daa) change to “disconnected”. Possible network disconnection
pc.oniceconnectionstatechange
IceConnectionState of RTCPeerConnection ac22d7fe-1c47-4a01-a46f-f5c8a5a89b80 (str_IPC_L1GU_ipc_IPCAM_rtsp_DJZL_170_93_143_139_rtplive_470011e600ef003a004ee33696235daa) change to “disconnected”. Possible network disconnection
pc.oniceconnectionstatechange
New video element associated to e {videos: Array(1), lazyLaunchVideoElementCreatedEvent: false, ee: l, stream: t, remote: true, …}

Please open new thread as your issue seems very different.

Is there any way to use hostname instead of coturn_ip?

I’d like to use Global Accelerator in AWS Service for turn server.

I have to use FQDN for this.( https://aws.amazon.com/ko/global-accelerator/ )

No, it is not possible as it is a limitation of the underlying ICE library libnice.

We already used Global Accelator for turn service with openvidu-pro 2.12.0

V2.12.0 Configure

/opt/openvidu/application.properties

coturn.ip=openvidu-ga.domain.com <- domain

token value

wss://openvidu-ga.domain.com:4443?sessionId=ses_GngQpFvCAl&token=tok_FS3nstWMlG61gyhQ&role=PUBLISHER&version=2.12.0&coturnIp=openvidu-ga.domain.com&turnUsername=VHNDFO&turnCredential=uvh9dn&webrtcStatsInterval=30"

turnIp returned domain name.

V2.14.0 Configure

/opt/openvidu/docker-compose.yml

entrypoint: [’/bin/bash’, ‘-c’, ‘export COTURN_IP=openvidu-v2-pre.domain.com; /usr/local/bin/entrypoint.sh’]

token value

wss://openvidu-v2-pre.domain.com?sessionId=ses_SDMElga6xw&token=tok_A6E65pQO3qSeV2D8&role=PUBLISHER&version=2.14.0&coturnIp=13.124.XX.XX&turnUsername=IPYRBC&turnCredential=pnn16n&webrtcStatsInterval=30

coturnIp returned Ip value.

docker-compse logs openvidu-server

openvidu-server_1 | [INFO] 2020-05-19 01:28:36,872 [main] io.openvidu.server.coturn.CoturnCredentialsService - COTURN IP: 13.124.XX.XX
openvidu-server_1 | [INFO] 2020-05-19 01:28:36,872 [main] io.openvidu.server.coturn.CoturnCredentialsService - COTURN Redis DB accessible with string “ip=127.0.0.1 dbname=0 password=turn connect_timeout=30”
openvidu-server_1 | [INFO] 2020-05-19 01:28:36,872 [main] io.openvidu.server.coturn.CoturnCredentialsService - Cleaning COTURN DB…
openvidu-server_1 | [INFO] 2020-05-19 01:28:36,872 [main] io.openvidu.server.coturn.CoturnCredentialsService - Path of COTURN log files: /var/log/
openvidu-server_1 | [ERROR] 2020-05-19 01:28:36,874 [main] io.openvidu.server.coturn.CoturnCredentialsService - COTURN DB is not empty
openvidu-server_1 | [INFO] 2020-05-19 01:28:36,874 [main] io.openvidu.server.coturn.CoturnCredentialsService - Using COTURN credentials service for BASH environment
openvidu-server_1 | [INFO] 2020-05-19 01:28:36,880 [main] io.openvidu.server.pro.utils.GeoLocationByIpPro - Trying to load user location database…
openvidu-server_1 | [INFO] 2020-05-19 01:28:37,329 [main] io.openvidu.server.pro.utils.GeoLocationByIpPro - Database was loaded successfully

You are right.

Kurento Media Server doesn’t allow a TURN server specified with FQDN.

Any browser does allow a TURN server server specified with FQDN.

We got a ip value for coturn IP even though we set a domain.

entrypoint: [’/bin/bash’, ‘-c’, ‘export COTURN_IP=openvidu-v2-pre.domain.com; /usr/local/bin/entrypoint.sh’] <- set a domain value

io.openvidu.server.coturn.CoturnCredentialsService - COTURN IP: 13.124.XX.XX <- IP value

Domain is translated IP value.
What is the best way to get a domain value?

We found out something changed in your git repository.

It seems to convert the domain to ip.

Yes… He have added it because now TURN is configured also in KMS.

If you want to configure TURN only in browser, then is better to configure it directly in openvidu-browser:

https://docs.openvidu.io/en/2.14.0/api/openvidu-browser/classes/openvidu.html#setadvancedconfiguration

I hope it helps in your use case.