root@incus-openvidu:~# apt update
0% [Connecting to archive.ubuntu.com (2620:2d:4002:1::102)] [Connecting to security.ubuntu.com (2a06:bc80:0:1000::18)]^C
root@incus-openvidu:~# ip addr add 10.134.96.51/24 dev eth0
root@incus-openvidu:~# ip route add default via 10.134.96.1
root@incus-openvidu:~# echo -e "nameserver 8.8.8.8\nnameserver 1.1.1.1" > /etc/resolv.conf
root@incus-openvidu:~# apt update
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [128 kB]
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [128 kB]
Get:4 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [3564 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [518 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [1040 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [221 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [22.4 kB]
Get:9 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [26.6 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [6448 B]
Get:11 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [604 B]
Get:12 http://archive.ubuntu.com/ubuntu focal-backports InRelease [128 kB]
Get:13 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [8628 kB]
Get:14 http://archive.ubuntu.com/ubuntu focal/universe Translation-en [5124 kB]
Get:15 http://archive.ubuntu.com/ubuntu focal/universe amd64 c-n-f Metadata [265 kB]
Get:16 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [144 kB]
Get:17 http://archive.ubuntu.com/ubuntu focal/multiverse Translation-en [104 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 c-n-f Metadata [9136 B]
Get:19 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [3957 kB]
Get:20 http://archive.ubuntu.com/ubuntu focal-updates/main Translation-en [600 kB]
Get:21 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1262 kB]
Get:22 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [303 kB]
Get:23 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [29.3 kB]
Get:24 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [29.7 kB]
Get:25 http://archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [8316 B]
Get:26 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [688 B]
Get:27 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [45.7 kB]
Get:28 http://archive.ubuntu.com/ubuntu focal-backports/main Translation-en [16.3 kB]
Get:29 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B]
Get:30 http://archive.ubuntu.com/ubuntu focal-backports/restricted amd64 c-n-f Metadata [116 B]
Get:31 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [25.0 kB]
Get:32 http://archive.ubuntu.com/ubuntu focal-backports/universe Translation-en [16.3 kB]
Get:33 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [880 B]
Get:34 http://archive.ubuntu.com/ubuntu focal-backports/multiverse amd64 c-n-f Metadata [116 B]
Fetched 26.4 MB in 40s (657 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
21 packages can be upgraded. Run 'apt list --upgradable' to see them.
root@incus-openvidu:~# apt install curl wget htop mc nano lsof
Reading package lists... Done
Building dependency tree
Reading state information... Done
htop is already the newest version (2.2.0-2build1).
htop set to manually installed.
curl is already the newest version (7.68.0-1ubuntu2.25).
curl set to manually installed.
lsof is already the newest version (4.93.2+dfsg-1ubuntu0.20.04.1).
lsof set to manually installed.
nano is already the newest version (4.8-1ubuntu1.1).
nano set to manually installed.
wget is already the newest version (1.20.3-1ubuntu2.1).
wget set to manually installed.
The following additional packages will be installed:
libssh2-1 mc-data unzip
Suggested packages:
arj catdvi | texlive-binaries dbview djvulibre-bin epub-utils genisoimage gv imagemagick libaspell-dev links | w3m | lynx odt2txt poppler-utils python python-boto python-tz xpdf | pdf-viewer zip
The following NEW packages will be installed:
libssh2-1 mc mc-data unzip
0 upgraded, 4 newly installed, 0 to remove and 21 not upgraded.
Need to get 1986 kB of archives.
After this operation, 8587 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libssh2-1 amd64 1.8.0-2.1ubuntu0.1 [75.5 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal/universe amd64 mc-data all 3:4.8.24-2ubuntu1 [1265 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/universe amd64 mc amd64 3:4.8.24-2ubuntu1 [477 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 unzip amd64 6.0-25ubuntu1.2 [169 kB]
Fetched 1986 kB in 0s (4243 kB/s)
Selecting previously unselected package libssh2-1:amd64.
(Reading database ... 32350 files and directories currently installed.)
Preparing to unpack .../libssh2-1_1.8.0-2.1ubuntu0.1_amd64.deb ...
Unpacking libssh2-1:amd64 (1.8.0-2.1ubuntu0.1) ...
Selecting previously unselected package mc-data.
Preparing to unpack .../mc-data_3%3a4.8.24-2ubuntu1_all.deb ...
Unpacking mc-data (3:4.8.24-2ubuntu1) ...
Selecting previously unselected package mc.
Preparing to unpack .../mc_3%3a4.8.24-2ubuntu1_amd64.deb ...
Unpacking mc (3:4.8.24-2ubuntu1) ...
Selecting previously unselected package unzip.
Preparing to unpack .../unzip_6.0-25ubuntu1.2_amd64.deb ...
Unpacking unzip (6.0-25ubuntu1.2) ...
Setting up unzip (6.0-25ubuntu1.2) ...
Setting up mc-data (3:4.8.24-2ubuntu1) ...
Setting up libssh2-1:amd64 (1.8.0-2.1ubuntu0.1) ...
Setting up mc (3:4.8.24-2ubuntu1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.18) ...
root@incus-openvidu:~# nano /etc/systemd/system/static-ip.service
root@incus-openvidu:~# nano /usr/local/sbin/set-static-ip.sh
root@incus-openvidu:~# chmod +x /usr/local/sbin/set-static-ip.sh
root@incus-openvidu:~# systemctl enable static-ip.service
Created symlink /etc/systemd/system/multi-user.target.wants/static-ip.service → /etc/systemd/system/static-ip.service.
root@incus-openvidu:~# systemctl start static-ip.service
root@incus-openvidu:~# systemctl status static-ip.service
● static-ip.service - Set static IP for eth0
Loaded: loaded (/etc/systemd/system/static-ip.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2026-03-14 19:28:40 UTC; 7s ago
Process: 6116 ExecStart=/usr/local/sbin/set-static-ip.sh (code=exited, status=0/SUCCESS)
Main PID: 6116 (code=exited, status=0/SUCCESS)
CPU: 15ms
Mar 14 19:28:40 incus-openvidu systemd[1]: Starting Set static IP for eth0...
Mar 14 19:28:40 incus-openvidu systemd[1]: Finished Set static IP for eth0.
root@incus-openvidu:~# sudo apt-get update
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Temporary failure resolving 'security.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Temporary failure resolving 'archive.ubuntu.com'
Reading package lists... Done
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-backports/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/focal-security/InRelease Temporary failure resolving 'security.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
root@incus-openvidu:~# apt update
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:2 http://security.ubuntu.com/ubuntu focal-security InRelease
Temporary failure resolving 'security.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Temporary failure resolving 'archive.ubuntu.com'
Err:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Temporary failure resolving 'archive.ubuntu.com'
Reading package lists... Done
Building dependency tree
Reading state information... Done
21 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-backports/InRelease Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/focal-security/InRelease Temporary failure resolving 'security.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
root@incus-openvidu:~# exit
exit
user@unoadmin:~$ sudo incus restart incus-openvidu
[sudo] пароль для user:
user@unoadmin:~$ sudo incus exec incus-openvidu -- bash
root@incus-openvidu:~# apt update
Err:1 http://archive.ubuntu.com/ubuntu focal InRelease
Could not connect to archive.ubuntu.com:80 (2a06:bc80:0:1000::18), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4000:1::103), connection timed out Could not connect to archive.ubuntu.com:80 (2a06:bc80:0:1000::16), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4000:1::102), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4000:1::101), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4002:1::102), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4002:1::101), connection timed out Could not connect to archive.ubuntu.com:80 (2a06:bc80:0:1000::17), connection timed out
Err:2 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Unable to connect to archive.ubuntu.com:http:
Err:3 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Unable to connect to archive.ubuntu.com:http:
Err:4 http://security.ubuntu.com/ubuntu focal-security InRelease
Could not connect to security.ubuntu.com:80 (2620:2d:4002:1::102), connection timed out Could not connect to security.ubuntu.com:80 (2620:2d:4000:1::103), connection timed out Could not connect to security.ubuntu.com:80 (2a06:bc80:0:1000::17), connection timed out Could not connect to security.ubuntu.com:80 (2a06:bc80:0:1000::18), connection timed out Could not connect to security.ubuntu.com:80 (2a06:bc80:0:1000::16), connection timed out Could not connect to security.ubuntu.com:80 (2620:2d:4002:1::101), connection timed out Could not connect to security.ubuntu.com:80 (2620:2d:4000:1::102), connection timed out Could not connect to security.ubuntu.com:80 (2620:2d:4000:1::101), connection timed out
Reading package lists... Done
Building dependency tree
Reading state information... Done
21 packages can be upgraded. Run 'apt list --upgradable' to see them.
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal/InRelease Could not connect to archive.ubuntu.com:80 (2a06:bc80:0:1000::18), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4000:1::103), connection timed out Could not connect to archive.ubuntu.com:80 (2a06:bc80:0:1000::16), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4000:1::102), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4000:1::101), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4002:1::102), connection timed out Could not connect to archive.ubuntu.com:80 (2620:2d:4002:1::101), connection timed out Could not connect to archive.ubuntu.com:80 (2a06:bc80:0:1000::17), connection timed out
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease Unable to connect to archive.ubuntu.com:http:
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/focal-backports/InRelease Unable to connect to archive.ubuntu.com:http:
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/focal-security/InRelease Could not connect to security.ubuntu.com:80 (2620:2d:4002:1::102), connection timed out Could not connect to security.ubuntu.com:80 (2620:2d:4000:1::103), connection timed out Could not connect to security.ubuntu.com:80 (2a06:bc80:0:1000::17), connection timed out Could not connect to security.ubuntu.com:80 (2a06:bc80:0:1000::18), connection timed out Could not connect to security.ubuntu.com:80 (2a06:bc80:0:1000::16), connection timed out Could not connect to security.ubuntu.com:80 (2620:2d:4002:1::101), connection timed out Could not connect to security.ubuntu.com:80 (2620:2d:4000:1::102), connection timed out Could not connect to security.ubuntu.com:80 (2620:2d:4000:1::101), connection timed out
W: Some index files failed to download. They have been ignored, or old ones used instead.
root@incus-openvidu:~#
-
-
Проблема в твоём Incus-контейнере (Ubuntu 20.04) — после ручной установки статического IP (10.134.96.51/24) и дефолтного роута сломалось DNS-разрешение имён.
Это классическая ситуация: когда ты вручную переписываешь/etc/resolv.confи настраиваешь IP/route внутри контейнера, но не учитываешь, как Incus управляет сетью (особенно bridged или routed режимы).Из логов видно:
- Сначала после
ip addr add+ip route add+echo nameserver > /etc/resolv.conf—apt updateпрошёл успешно (DNS работал). - Потом после перезапуска контейнера (
incus restart) — DNS полностью отвалился: "Temporary failure resolving 'archive.ubuntu.com'", и даже IPv6-таймауты (много IPv6-адресов в ошибках).
Почему так происходит
- Incus-контейнеры по умолчанию используют managed bridge (incusbr0 или подобный), где хост предоставляет DHCP/DNS через dnsmasq.
- Когда ты вручную ставишь статический IP/route внутри контейнера — конфликт с Incus-управлением сетью (Incus может пытаться навязывать свой resolv.conf или route).
- После рестарта контейнера Incus может перезаписывать resolv.conf (или systemd-resolved вмешивается), и твои 8.8.8.8/1.1.1.1 пропадают.
- IPv6-ошибки (connection timed out на IPv6-адресах archive.ubuntu.com) — признак, что контейнер пытается использовать IPv6 (который часто не настроен/не работает в bridged Incus), и это замедляет/ломает соединения (apt предпочитает IPv6, если видит AAAA-запись).
Как быстро пофиксить (самый простой способ — отключить IPv6 + вернуть DNS)
-
Зайди в контейнер:
sudo incus exec incus-openvidu -- bash -
Отключи IPv6 полностью (это часто решает таймауты на archive.ubuntu.com

sysctl -w net.ipv6.conf.all.disable_ipv6=1 sysctl -w net.ipv6.conf.default.disable_ipv6=1 sysctl -w net.ipv6.conf.eth0.disable_ipv6=1Чтобы сохранилось после рестарта:
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.eth0.disable_ipv6 = 1" >> /etc/sysctl.conf sysctl -p -
Верни нормальный DNS (самый надёжный — использовать публичные DNS напрямую):
rm -f /etc/resolv.conf echo "nameserver 8.8.8.8" > /etc/resolv.conf echo "nameserver 1.1.1.1" >> /etc/resolv.conf echo "nameserver 8.8.4.4" >> /etc/resolv.conf # запасной chattr +i /etc/resolv.conf # чтобы systemd-resolved не перезаписывал (опционально, но полезно) -
Проверь связь:
ping -c 3 8.8.8.8 # должен работать (IP-уровень) ping -c 3 google.com # DNS должен работать curl -I https://archive.ubuntu.com # должен ответить HTTP/1.1 200 apt update # теперь должен пройти без ошибок -
Если всё ещё не работает — проверь маршрут и MTU:
ip route show # Должен быть default via 10.134.96.1 dev eth0 ping 10.134.96.1 # гейтвей должен пинговатьсяЕсли MTU проблема (редко, но бывает в Incus):
ip link set eth0 mtu 1400 # или 1280, если 1500 не проходит
Лучший долгосрочный способ (рекомендую вместо ручных ip addr)
Не настраивай статический IP вручную внутри контейнера — делай это через Incus профиль или сеть (чтобы не ломалось после рестарта):
- На хосте проверь текущую сеть контейнера:
sudo incus config show incus-openvidu sudo incus network list - Если сеть bridged (incusbr0 или routed), настрой статический IP через Incus:
Или создай routed-сеть для внешних IP (если нужно публичный IP).sudo incus config device add incus-openvidu eth0 nic nictype=bridged parent=твой_бридж ipv4.address=10.134.96.51/24 ipv4.gateway=10.134.96.1 sudo incus restart incus-openvidu
После фикса DNS и IPv6 — продолжи установку Docker по нашей предыдущей инструкции (для Ubuntu 20.04). Если после этих шагов
apt updateвсё равно виснет — пришли выводip a,ip route,cat /etc/resolv.confиping 8.8.8.8из контейнера. Разберём дальше. Удачи! - Сначала после
-
Напоминаю про сервер со старым openvidu. Дай-ка ещё раз полную инструкцию, как скопировать контейнеры и настройки и перенести на другой сервер. vsmuser@host271:~$ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.6 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.6 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic vsmuser@host271:~$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d2cc3c52ff58 openvidu/openvidu-server:2.19.0 "/usr/local/bin/entr…" 2 years ago Up 6 months openvidu_openvidu-server_1 a429573679bb openvidu/openvidu-proxy:7.0.0 "/docker-entrypoint.…" 2 years ago Up 6 months openvidu_nginx_1 a2c054c958b0 openvidu/openvidu-coturn:5.0.0 "docker-entrypoint.s…" 2 years ago Up 6 months openvidu_coturn_1 7c30af1f67fa kurento/kurento-media-server:6.16.0 "/entrypoint.sh" 2 years ago Up 6 months (healthy) openvidu_kms_1 3c2b4d790aaf openvidu/openvidu-redis:3.0.0 "docker-entrypoint.s…" 2 years ago Restarting (1) 35 seconds ago openvidu_redis_1 ef32dba82193 b9cede6abb23 "bash" 5 years ago Exited (127) 5 years ago xenodochial_leakey 1fbf87f8dd52 b9cede6abb23 "bash" 5 years ago Exited (127) 5 years ago wonderful_wilbur 9664fc1ac1b7 b9cede6abb23 "bash" 5 years ago Exited (0) 5 years ago dazzling_wescoff vsmuser@host271:~$ docker -v Docker version 20.10.7, build 20.10.7-0ubuntu5~18.04.3 vsmuser@host271:~$ vsmuser@host271:~$ ls -la /opt/openvidu # или /usr/local/openvidu, или где у тебя лежит total 1175800 drwxr-xr-x 10 root root 4096 Mar 14 19:20 . drwxr-xr-x 9 root root 4096 Oct 28 2021 .. drwxr-xr-x 2 root root 4096 Sep 7 2021 cdr drwxrwxrwx 9 root root 4096 Mar 14 14:00 certificates drwxr-xr-x 2 root root 4096 Sep 7 2021 custom-layout drwxr-xr-x 2 root root 4096 Sep 7 2021 custom-nginx-vhosts -rw-r--r-- 1 root root 4294 Sep 8 2021 docker-compose.yml -rw-r--r-- 1 root root 8828 Apr 26 2023 .env -rw-r--r-- 1 root root 8826 Apr 26 2023 .env2 -rw-r--r-- 1 root root 16384 Feb 7 2022 .env.swp drwxr-xr-x 2 root root 4096 Sep 7 2021 kms-crashes drwxr-xr-x 2 root root 53248 Mar 14 02:00 kurento-logs -rw-r--r-- 1 root root 8828 Aug 21 2023 open_env -rwxr-xr-x 1 root root 9042 Sep 7 2021 openvidu -rw-r--r-- 1 root root 1203681626 Mar 14 19:22 openvidu-report-14-03-2026-19-20.txt drwxr-xr-x 2 root root 4096 Sep 7 2021 owncert drwxrwxrwx 1498 root root 163840 Oct 24 16:24 recordings vsmuser@host271:~$ cat /opt/openvidu/.env | grep -vE '^#|^$' # самые важные настройки DOMAIN_OR_PUBLIC_IP=media2.nbics.net OPENVIDU_SECRET=frogsEatenUnicornes CERTIFICATE_TYPE=letsencrypt LETSENCRYPT_EMAIL=ser1410u@yandex.ru OPENVIDU_RECORDING=true OPENVIDU_RECORDING_DEBUG=false OPENVIDU_RECORDING_PATH=/opt/openvidu/recordings OPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/custom-layout OPENVIDU_RECORDING_PUBLIC_ACCESS=true OPENVIDU_RECORDING_NOTIFICATION=publisher_moderator OPENVIDU_RECORDING_AUTOSTOP_TIMEOUT=120 OPENVIDU_STREAMS_VIDEO_MAX_RECV_BANDWIDTH=2000 OPENVIDU_STREAMS_VIDEO_MIN_RECV_BANDWIDTH=75 OPENVIDU_STREAMS_VIDEO_MAX_SEND_BANDWIDTH=2000 OPENVIDU_STREAMS_VIDEO_MIN_SEND_BANDWIDTH=75 OPENVIDU_STREAMS_FORCED_VIDEO_CODEC=VP8 OPENVIDU_STREAMS_ALLOW_TRANSCODING=true OPENVIDU_WEBHOOK=false OPENVIDU_WEBHOOK_EVENTS=[sessionCreated,sessionDestroyed,participantJoined,participantLeft,webrtcConnectionCreated,webrtcConnectionDestroyed,recordingStatusChanged,filterEventDispatched,mediaNodeStatusChanged,nodeCrashed] OPENVIDU_SESSIONS_GARBAGE_INTERVAL=900 OPENVIDU_SESSIONS_GARBAGE_THRESHOLD=3600 OPENVIDU_CDR=false OPENVIDU_CDR_PATH=/opt/openvidu/cdr vsmuser@host271:~$ docker images | grep -E 'openvidu|kurento' Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json: dial unix /var/run/docker.sock: connect: permission denied vsmuser@host271:~$ sudo docker images | grep -E 'openvidu|kurento' openvidu/openvidu-server 2.19.0 fdaba96b7b5e 4 years ago 516MB openvidu/openvidu-coturn 5.0.0 72040febf801 4 years ago 32.2MB openvidu/openvidu-proxy 7.0.0 b5c9bcab046f 4 years ago 137MB openvidu/openvidu-recording 2.19.0 91eb86667498 4 years ago 1.09GB openvidu/openvidu-redis 3.0.0 fa510d55f34a 4 years ago 31.6MB kurento/kurento-media-server 6.16.0 63c5a7f5e0ba 5 years ago 675MB openvidu/openvidu-coturn 1.0.0 1f8dc80ef6f5 5 years ago 283MB openvidu/openvidu_coturn 1.0.0 51b569988a12 5 years ago 177MB openvidu/openvidu-call 2.15.0 442234dcff2c 5 years ago 99.2MB openvidu/openvidu-server 2.15.0 2742903db35c 5 years ago 481MB openvidu/openvidu-recording 2.15.0 48af9f7dad9d 5 years ago 908MB openvidu/openvidu-proxy 3.0.0 1bf7994b4926 5 years ago 93.9MB kurento/kurento-media-server 6.14.0 c195eb150fce 5 years ago 651MB openvidu/openvidu-redis 1.0.0 81db390c4d8f 5 years ago 31.6MB openvidu/openvidu-coturn <none> b9cede6abb23 5 years ago 177MB openvidu/openvidu-recording 2.9.0 5cd3d1a3e9c6 6 years ago 890MB vsmuser@host271:~$ cat /opt/openvidu/docker-compose.yml # или docker-compose.override.yml если есть # ------------------------------------------------------------------------------ # # DO NOT MODIFY THIS FILE !!! # # Configuration properties should be specified in .env file # # Application based on OpenVidu should be specified in # docker-compose.override.yml file # # This docker-compose file coordinates all services of OpenVidu CE Platform # # This file will be overridden when update OpenVidu Platform # # Openvidu Version: 2.19.0 # # Installation Mode: On Premises # # ------------------------------------------------------------------------------ version: '3.1' services: openvidu-server: image: openvidu/openvidu-server:2.19.0 restart: on-failure network_mode: host entrypoint: ['/usr/local/bin/entrypoint.sh'] volumes: - /var/run/docker.sock:/var/run/docker.sock - $ {OPENVIDU_RECORDING_PATH}: ${OPENVIDU_RECORDING_PATH} - $ {OPENVIDU_RECORDING_CUSTOM_LAYOUT}: ${OPENVIDU_RECORDING_CUSTOM_LAYOUT} - $ {OPENVIDU_CDR_PATH}: ${OPENVIDU_CDR_PATH} env_file: - .env environment: - SERVER_SSL_ENABLED=false - SERVER_PORT=5443 - KMS_URIS=["ws://localhost:8888/kurento"] - COTURN_REDIS_IP=127.0.0.1 - COTURN_REDIS_PASSWORD=${OPENVIDU_SECRET} - COTURN_IP=${COTURN_IP:-auto-ipv4} logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" kms: image: ${KMS_IMAGE:-kurento/kurento-media-server:6.16.0} restart: always network_mode: host ulimits: core: -1 volumes: - /opt/openvidu/kms-crashes:/opt/openvidu/kms-crashes - $ {OPENVIDU_RECORDING_PATH}: ${OPENVIDU_RECORDING_PATH} - /opt/openvidu/kurento-logs:/opt/openvidu/kurento-logs environment: - KMS_MIN_PORT=40000 - KMS_MAX_PORT=57000 - GST_DEBUG=${KMS_DOCKER_ENV_GST_DEBUG:-} - KURENTO_LOG_FILE_SIZE=${KMS_DOCKER_ENV_KURENTO_LOG_FILE_SIZE:-100} - KURENTO_LOGS_PATH=/opt/openvidu/kurento-logs logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" redis: image: openvidu/openvidu-redis:3.0.0 restart: always network_mode: host environment: - REDIS_PASSWORD=${OPENVIDU_SECRET} logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" coturn: image: openvidu/openvidu-coturn:5.0.0 restart: on-failure network_mode: host environment: - REDIS_IP=127.0.0.1 - DB_NAME=0 - DB_PASSWORD=${OPENVIDU_SECRET} command: - --log-file=stdout - --listening-port=3478 - --fingerprint - --lt-cred-mech - --min-port=57001 - --max-port=65535 - --realm=openvidu - --verbose - --user=abcdef:abcde logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" nginx: image: openvidu/openvidu-proxy:7.0.0 restart: on-failure network_mode: host volumes: - ./certificates:/etc/letsencrypt - ./owncert:/owncert - ./custom-nginx-vhosts:/etc/nginx/vhost.d/ - ${OPENVIDU_RECORDING_CUSTOM_LAYOUT}:/opt/openvidu/custom-layout environment: - DOMAIN_OR_PUBLIC_IP=${DOMAIN_OR_PUBLIC_IP} - CERTIFICATE_TYPE=${CERTIFICATE_TYPE} - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL} - PROXY_HTTP_PORT=${HTTP_PORT:-} - PROXY_HTTPS_PORT=${HTTPS_PORT:-} - ALLOWED_ACCESS_TO_DASHBOARD=${ALLOWED_ACCESS_TO_DASHBOARD:-} - ALLOWED_ACCESS_TO_RESTAPI=${ALLOWED_ACCESS_TO_RESTAPI:-} - PROXY_MODE=CE - WITH_APP=true - SUPPORT_DEPRECATED_API=${SUPPORT_DEPRECATED_API:-true} - REDIRECT_WWW=${REDIRECT_WWW:-false} - WORKER_CONNECTIONS=${WORKER_CONNECTIONS:-10240} - PUBLIC_IP=${PROXY_PUBLIC_IP:-auto-ipv4} logging: options: max-size: "${DOCKER_LOGS_MAX_SIZE:-100M}" vsmuser@host271:~$ docker volume ls | grep openvidu Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/volumes: dial unix /var/run/docker.sock: connect: permission denied vsmuser@host271:~$ sudo docker volume ls | grep openvidu vsmuser@host271:~$ sudo docker inspect openvidu_openvidu-server_1 | grep -i mount # или любой другой контейнер "MountLabel": "", "Mounts": [ vsmuser@host271:~$ -
Вот полная, актуальная и пошаговая инструкция по переносу твоего OpenVidu 2.19.0 (на базе Kurento) с сервера Ubuntu 18.04 на другой сервер (в твоём случае — Ubuntu 20.04 в Incus-контейнере).
Предварительные условия
- Старый сервер: Ubuntu 18.04, OpenVidu 2.19.0 в
/opt/openvidu, Docker 20.10.7 - Новый сервер: Ubuntu 20.04 (уже настроен статический IP, но были проблемы с DNS — предполагаем, что ты их уже исправил)
- Доступ по ssh к обоим серверам (root или sudo)
- Достаточно места на диске (~3–5 ГБ для образов + размер recordings, если они большие)
Шаг 1. На старом сервере — подготовка и экспорт
-
Перейди в директорию OpenVidu
cd /opt/openvidu -
Останови все контейнеры (чтобы данные были консистентными)
sudo docker compose down -
Сохрани все нужные Docker-образы в один tar-файл
(это самый надёжный способ — не зависеть от Docker Hub, где старые теги могут исчезнуть)sudo docker save \ openvidu/openvidu-server:2.19.0 \ openvidu/openvidu-proxy:7.0.0 \ openvidu/openvidu-coturn:5.0.0 \ openvidu/openvidu-recording:2.19.0 \ openvidu/openvidu-redis:3.0.0 \ kurento/kurento-media-server:6.16.0 \ -o /tmp/openvidu-2.19-images.tarРазмер файла ≈ 2.5–3 ГБ.
-
Архивируй всю папку установки
sudo tar -czf /tmp/openvidu-install.tar.gz /opt/openvidu -
Перенеси два файла на новый сервер
Самый удобный способ — scp (с нового сервера тяни файлы):# На новом сервере: scp vsmuser@старый_IP:/tmp/openvidu-2.19-images.tar /tmp/ scp vsmuser@старый_IP:/tmp/openvidu-install.tar.gz /tmp/Или rsync, если много файлов/большие recordings:
rsync -avz --progress vsmuser@старый_IP:/opt/openvidu/ /opt/openvidu/
Шаг 2. На новом сервере (Ubuntu 20.04) — подготовка
-
Убедись, что Docker + docker compose установлены
Если ещё не сделано — выполни:sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo usermod -aG docker $USER newgrp docker -
Распакуй конфигурацию
sudo mkdir -p /opt/openvidu sudo tar -xzf /tmp/openvidu-install.tar.gz -C / -
Загрузи сохранённые образы
sudo docker load -i /tmp/openvidu-2.19-images.tarПроверь, что образы появились:
docker images | grep -E 'openvidu|kurento'
Шаг 3. Настройка перед запуском
-
Перейди в директорию
cd /opt/openvidu -
Обязательно проверь и поправь .env
sudo nano .envСамые важные строки:
DOMAIN_OR_PUBLIC_IP=media2.nbics.net # или новый IP/домен, если изменился OPENVIDU_SECRET=frogsEatenUnicornes # должен остаться тот же CERTIFICATE_TYPE=letsencrypt # если домен тот же — оставь, иначе временно selfsigned LETSENCRYPT_EMAIL=ser1410u@yandex.ruЕсли домен/IP изменился → Let's Encrypt не сработает → временно поставь:
CERTIFICATE_TYPE=selfsigned -
Проверь порты (80, 443, 4443, 3478/udp, диапазон 40000–57000/udp)
sudo ss -tuln | grep -E ':80|:443|:4443|:3478'Если заняты — останови конфликтующие сервисы.
-
Firewall (если ufw включён)
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow 4443/tcp sudo ufw allow 3478/udp sudo ufw allow 40000:57000/udp # для RTP sudo ufw reload
Шаг 4. Запуск
sudo docker compose up -dСмотри статус:
sudo docker compose ps sudo docker compose logs -f openvidu-server kms coturn nginx redisЧто должно быть:
- openvidu-server — Up, в логах "OpenVidu Server started"
- kms — healthy
- coturn — Up
- nginx — Up
- redis — Up (если restarting — нормально, он stateless)
Проверь доступ:
curl -k https://media2.nbics.net:4443 # или IP:4443 → должен быть "OK" или статусШаг 5. После запуска — типичные фиксы
-
Let's Encrypt не обновился
→ ВременноCERTIFICATE_TYPE=selfsigned, потом верни letsencrypt и перезапусти nginx. -
KMS не стартует или high CPU
Добавь в секцию kms в docker-compose.yml:ulimits: nofile: 65535:65535 nproc: 65535:65535Затем:
sudo docker compose up -d --force-recreate kms -
WebRTC не работает (нет видео/аудио)
Проверь:DOMAIN_OR_PUBLIC_IP— публичный адрес, видимый клиентам- Порты 3478/udp и RTP-диапазон открыты
- Логи coturn и kms
Если что-то не стартует — пришли:
docker compose psdocker compose logs kms(последние 20 строк)docker compose logs openvidu-server
Удачи с переносом! Это один из самых надёжных способов сохранить совместимость со старым клиентским кодом.
- Старый сервер: Ubuntu 18.04, OpenVidu 2.19.0 в
-
scp -r -P 22 vsmuser@media2.nbics.net:/home/vsmuser/a/ /home/user/a/ The authenticity of host 'media2.nbics.net (91.221.71.190)' can't be established. ED25519 key fingerprint is SHA256:i065Fvf0DCbkwv/1nKXfX23QKzr46dhDrVM2x3JGQ3M. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'media2.nbics.net' (ED25519) to the list of known hosts. vsmuser@media2.nbics.net's password: scp: mkdir /home/user/a/a: Permission denied -
Ошибка "scp: mkdir /home/user/a/a: Permission denied" означает, что scp пытается создать директорию
/home/user/a/aна целевом сервере, но у пользователяuserнет прав на создание поддиректорий внутри/home/user/a/.Почему так происходит
Ты копируешь содержимое директории
/home/vsmuser/a/на старом сервере в/home/user/a/на новом сервере.Команда
scp -rпри копировании директории с завершающим слешем (/home/vsmuser/a/) копирует содержимое директории, а не саму директорию.
Поэтому scp пытается создать внутри/home/user/a/все файлы и поддиректории, которые находятся в/home/vsmuser/a/.Но если в
/home/vsmuser/a/есть поддиректория с именемa, то scp пытается создать/home/user/a/a— и именно здесь возникает ошибка "Permission denied", потому что у пользователяuserнет прав создавать что-либо внутри/home/user/a/.Самые вероятные причины
- Директория
/home/user/a/уже существует и принадлежит другому пользователю (например root) или имеет права 700/755 без права записи дляuser. /home/user/a/не существует, но родительская директория/home/user/не позволяет пользователюuserсоздавать в ней новые директории.
Решение — по шагам
-
Проверь права и владельца на целевом сервере
Зайди на новый сервер и выполни:ls -ld /home/user /home/user/aЕсли
/home/user/aсуществует и владелец — неuser, или права не позволяют запись (нетwдля owner/group/other), то это причина. -
Исправь права (самый быстрый и частый фикс)
sudo chown -R user:user /home/user/a sudo chmod -R u+rwX /home/user/aИли если директории
/home/user/aещё нет — создай её заранее от своего пользователя:mkdir -p /home/user/a chmod 700 /home/user/a # или 755, как тебе удобно -
Повтори команду scp (безопасный вариант)
scp -r -P 22 vsmuser@media2.nbics.net:/home/vsmuser/a/. /home/user/a/Точка после
a/(a/.) — это специальный синтаксис, который говорит scp: «скопировать содержимое директории a, но не создавать лишнюю вложенную папку».Альтернативно (ещё более надёжно):
rsync -avz --progress -e "ssh -p 22" vsmuser@media2.nbics.net:/home/vsmuser/a/ /home/user/a/rsync обычно лучше справляется с правами, существующими файлами и прерываниями.
-
Если хочешь скопировать саму папку
a(а не её содержимое)
Убери завершающий слеш на источнике:scp -r -P 22 vsmuser@media2.nbics.net:/home/vsmuser/a /home/user/Тогда получится
/home/user/a(вместо содержимого в/home/user/a/).
Рекомендуемый порядок действий прямо сейчас
# На новом сервере: mkdir -p /home/user/a sudo chown user:user /home/user/a chmod 700 /home/user/a # Затем копирование scp -r -P 22 vsmuser@media2.nbics.net:/home/vsmuser/a/. /home/user/a/ # или rsync -avz -e "ssh -p 22" vsmuser@media2.nbics.net:/home/vsmuser/a/ /home/user/a/После успешного копирования проверь:
ls -la /home/user/aЕсли всё скопировалось — можно продолжать перенос OpenVidu (разархивировать, загружать образы и т.д.).
Если ошибка сохраняется — покажи вывод
ls -ld /home/user /home/user/aи точную команду, которую ты выполняешь. - Директория
-
scp -r -P 22 vsmuser@media2.nbics.net:/home/vsmuser/a/. /home/user/a/ vsmuser@media2.nbics.net's password: scp: remote open "/home/vsmuser/a/openvidu-2.19-images.tar": Permission denied scp: Download of file /home/vsmuser/a/openvidu-2.19-images.tar to /home/user/a/./openvidu-2.19-images.tar failed scp: open local "/home/user/a/./openvidu-install.tar.gz": Permission denied scp: Download of file /home/vsmuser/a/openvidu-install.tar.gz to /home/user/a/./openvidu-install.tar.gz failed -
Ошибка теперь другая:
scp: remote open "/home/vsmuser/a/openvidu-2.19-images.tar": Permission denied
scp: open local "/home/user/a/./openvidu-install.tar.gz": Permission deniedЭто значит, что scp не может прочитать файлы на удалённом сервере (remote open) и не может создать/записать файлы на локальном сервере (local open).
Основные причины и решения
-
На удалённом сервере (media2.nbics.net) — нет прав на чтение файлов
Пользовательvsmuserне может прочитать файлы/home/vsmuser/a/openvidu-2.19-images.tarи/home/vsmuser/a/openvidu-install.tar.gz.Проверь и исправь на старом сервере (media2.nbics.net

ls -l /home/vsmuser/a/openvidu-*.tar* # Если файлы принадлежат root или другой группе — увидишь это # Исправь права (чтобы vsmuser мог читать) sudo chown vsmuser:vsmuser /home/vsmuser/a/openvidu-2.19-images.tar sudo chown vsmuser:vsmuser /home/vsmuser/a/openvidu-install.tar.gz sudo chmod 644 /home/vsmuser/a/openvidu-*.tar* # чтение для всех, запись только владельцуИли проще — дай временно 644 всем:
sudo chmod 644 /home/vsmuser/a/* -
На локальном сервере (куда копируешь) — нет прав на запись в /home/user/a/
Пользовательuserне может создавать файлы в этой директории.Исправь на новом сервере:
ls -ld /home/user /home/user/a # Если владелец не user или нет прав на запись (w) — проблема здесь sudo chown user:user /home/user/a sudo chmod 700 /home/user/a # или 755, если нужно группе/всемЕсли директория принадлежит root — часто бывает после sudo-команд:
sudo chown -R user:user /home/user/a -
Повтори копирование после исправлений
Самый надёжный вариант (с точкой в конце источника):scp -P 22 vsmuser@media2.nbics.net:/home/vsmuser/a/openvidu-2.19-images.tar /home/user/a/ scp -P 22 vsmuser@media2.nbics.net:/home/vsmuser/a/openvidu-install.tar.gz /home/user/a/Или всё сразу одной командой (если права уже поправили):
scp -P 22 vsmuser@media2.nbics.net:/home/vsmuser/a/openvidu-* /home/user/a/Лучшая альтернатива — rsync (он лучше обрабатывает права и прерывания):
rsync -avz --progress -e "ssh -p 22" vsmuser@media2.nbics.net:/home/vsmuser/a/openvidu-*.tar* /home/user/a/
Полезные проверки перед повтором
- На старом сервере:
sudo -u vsmuser cat /home/vsmuser/a/openvidu-2.19-images.tar > /dev/null # должен пройти без ошибок - На новом:
touch /home/user/a/test.txt && rm /home/user/a/test.txt # проверка на запись
После успешного копирования:
- Распакуй архив:
sudo tar -xzf /home/user/a/openvidu-install.tar.gz -C / - Загрузи образы:
sudo docker load -i /home/user/a/openvidu-2.19-images.tar - Продолжай настройку как в предыдущей инструкции (.env, docker compose up -d и т.д.)
Если после правки всё равно Permission denied — пришли вывод
ls -l /home/vsmuser/a/(со старого) иls -ld /home/user/a(с нового). -
-
root@incus-openvidu:/# sudo docker load -i /tmp/openvidu-2.19-images.tar 878dab86cf0f: Loading layer [==================================================>] 65.51MB/65.51MB dd784dd6a282: Loading layer [==================================================>] 410.5MB/410.5MB a351d0d4ddd1: Loading layer [==================================================>] 45.68MB/45.68MB ff38628dc5e4: Loading layer [==================================================>] 4.096kB/4.096kB 4247a18d953d: Loading layer [==================================================>] 6.656kB/6.656kB 750d8dc64db0: Loading layer [==================================================>] 8.192kB/8.192kB Loaded image: openvidu/openvidu-server:2.19.0 b2d5eeeaba3a: Loading layer [==================================================>] 5.88MB/5.88MB 561d94cdc4d7: Loading layer [==================================================>] 18.2MB/18.2MB 75642f4b5133: Loading layer [==================================================>] 3.072kB/3.072kB de4aa1659df8: Loading layer [==================================================>] 4.096kB/4.096kB dcb9f737fe15: Loading layer [==================================================>] 3.584kB/3.584kB 7a54243e5443: Loading layer [==================================================>] 7.168kB/7.168kB 85612a643a11: Loading layer [==================================================>] 119.6MB/119.6MB ecce0816a462: Loading layer [==================================================>] 3.584kB/3.584kB 17861029e402: Loading layer [==================================================>] 29.18kB/29.18kB 81c0287a4fd1: Loading layer [==================================================>] 6.656kB/6.656kB 552557379942: Loading layer [==================================================>] 3.584kB/3.584kB edf108420a1e: Loading layer [==================================================>] 21.5kB/21.5kB 1110fdc918f2: Loading layer [==================================================>] 29.18kB/29.18kB Loaded image: openvidu/openvidu-proxy:7.0.0 72e830a4dff5: Loading layer [==================================================>] 5.865MB/5.865MB 6e9cf5753cf3: Loading layer [==================================================>] 20.84MB/20.84MB c74a9124c1db: Loading layer [==================================================>] 4.161MB/4.161MB 3173a21e9f0a: Loading layer [==================================================>] 1.351MB/1.351MB 6b88f9fa19c7: Loading layer [==================================================>] 639kB/639kB 73b44f6053ec: Loading layer [==================================================>] 6.656kB/6.656kB 698b5d2c73f2: Loading layer [==================================================>] 3.584kB/3.584kB 92632c1136e8: Loading layer [==================================================>] 6.144kB/6.144kB 204515b0de3d: Loading layer [==================================================>] 11.78kB/11.78kB Loaded image: openvidu/openvidu-coturn:5.0.0 feef05f055c9: Loading layer [==================================================>] 75.13MB/75.13MB 2870db014303: Loading layer [==================================================>] 582.1MB/582.1MB b9d0c212b657: Loading layer [==================================================>] 29.31MB/29.31MB 81bf40e8cfb6: Loading layer [==================================================>] 427.5MB/427.5MB 4f5ba5058adc: Loading layer [==================================================>] 8.192kB/8.192kB e343da5f50b9: Loading layer [==================================================>] 9.216kB/9.216kB 6960ddc3b2b8: Loading layer [==================================================>] 17.92kB/17.92kB 46f39bf0e436: Loading layer [==================================================>] 4.096kB/4.096kB 49c15b15749a: Loading layer [==================================================>] 21.5kB/21.5kB Loaded image: openvidu/openvidu-recording:2.19.0 3e207b409db3: Loading layer [==================================================>] 5.879MB/5.879MB dafc08a3ced4: Loading layer [==================================================>] 11.78kB/11.78kB 970c18d5ee5e: Loading layer [==================================================>] 2.21MB/2.21MB 81c8f234f819: Loading layer [==================================================>] 24.69MB/24.69MB 9a43d2d58f80: Loading layer [==================================================>] 1.536kB/1.536kB 12eec953545f: Loading layer [==================================================>] 3.584kB/3.584kB 7f37f512df6a: Loading layer [==================================================>] 4.096kB/4.096kB 17f86ae99ddc: Loading layer [==================================================>] 4.096kB/4.096kB Loaded image: openvidu/openvidu-redis:3.0.0 935c56d8b3f9: Loading layer [==================================================>] 135.8MB/135.8MB 697949baa658: Loading layer [==================================================>] 15.87kB/15.87kB e6feec0db89a: Loading layer [==================================================>] 11.78kB/11.78kB 5276d2b930fc: Loading layer [==================================================>] 3.072kB/3.072kB aebc01182f89: Loading layer [==================================================>] 4.096kB/4.096kB a3624d0646a1: Loading layer [==================================================>] 3.584kB/3.584kB 88e621ef349a: Loading layer [==================================================>] 53.62MB/53.62MB f897c9b189e8: Loading layer [==================================================>] 37.38kB/37.38kB 536ec674fb65: Loading layer [==================================================>] 379.3MB/379.3MB e1bb62b63fe2: Loading layer [==================================================>] 9.391MB/9.391MB 6be33a8e9795: Loading layer [==================================================>] 115MB/115MB f0729868a7a2: Loading layer [==================================================>] 6.144kB/6.144kB 03da7803dd00: Loading layer [==================================================>] 5.12kB/5.12kB 879391b03474: Loading layer [==================================================>] 2.048kB/2.048kB Loaded image: kurento/kurento-media-server:6.16.0 root@incus-openvidu:/# docker images | grep -E 'openvidu|kurento' openvidu/openvidu-server 2.19.0 fdaba96b7b5e 4 years ago 516MB openvidu/openvidu-coturn 5.0.0 72040febf801 4 years ago 32.2MB openvidu/openvidu-proxy 7.0.0 b5c9bcab046f 4 years ago 137MB openvidu/openvidu-recording 2.19.0 91eb86667498 4 years ago 1.09GB openvidu/openvidu-redis 3.0.0 fa510d55f34a 4 years ago 31.6MB kurento/kurento-media-server 6.16.0 63c5a7f5e0ba 5 years ago 675MB root@incus-openvidu:/# cd /opt/openvidu root@incus-openvidu:/opt/openvidu# sudo nano .env root@incus-openvidu:/opt/openvidu# sudo nano .env root@incus-openvidu:/opt/openvidu# sudo nano .env root@incus-openvidu:/opt/openvidu# sudo nano .env root@incus-openvidu:/opt/openvidu# sudo ss -tuln | grep -E ':80|:443|:4443|:3478' root@incus-openvidu:/opt/openvidu# sudo docker compose up -d WARN[0000] /opt/openvidu/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion [+] Running 5/5 ✔ Container openvidu-redis-1 Started 15.9s ✔ Container openvidu-nginx-1 Started 15.5s ✔ Container openvidu-openvidu-server-1 Started 14.9s ✔ Container openvidu-coturn-1 Started 14.5s ✔ Container openvidu-kms-1 Started 14.5s root@incus-openvidu:/opt/openvidu# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0c91d19737d0 kurento/kurento-media-server:6.16.0 "/entrypoint.sh" 37 seconds ago Up 25 seconds (healthy) openvidu-kms-1 50191d31001b openvidu/openvidu-proxy:7.0.0 "/docker-entrypoint.…" 37 seconds ago Up 26 seconds openvidu-nginx-1 26ae5989df6a openvidu/openvidu-coturn:5.0.0 "docker-entrypoint.s…" 37 seconds ago Up 25 seconds openvidu-coturn-1 e390dd0d7656 openvidu/openvidu-redis:3.0.0 "docker-entrypoint.s…" 37 seconds ago Up 26 seconds openvidu-redis-1 47c7ee368053 openvidu/openvidu-server:2.19.0 "/usr/local/bin/entr…" 37 seconds ago Up 25 seconds openvidu-openvidu-server-1 ca08b8462466 hello-world "/hello" 11 hours ago Exited (0) 11 hours ago frosty_aryabhata root@incus-openvidu:/opt/openvidu# exit exit user@Piter3:~$ incus list +----------------+---------+------------------------------+-----------------------------------------------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +----------------+---------+------------------------------+-----------------------------------------------+-----------+-----------+ | incus-jitsi | RUNNING | 172.18.0.1 (br-6e574b74fdbb) | fd42:5a20:88f:df57:1266:6aff:fe3d:a4b7 (eth0) | CONTAINER | 0 | | | | 172.17.0.1 (docker0) | | | | | | | 10.155.64.194 (eth0) | | | | +----------------+---------+------------------------------+-----------------------------------------------+-----------+-----------+ | incus-openvidu | RUNNING | 172.17.0.1 (docker0) | fd42:5a20:88f:df57:1266:6aff:fec2:6446 (eth0) | CONTAINER | 0 | | | | 10.155.64.99 (eth0) | | | | +----------------+---------+------------------------------+-----------------------------------------------+-----------+-----------+ | incus-yuno | RUNNING | 10.155.64.28 (eth0) | fd42:5a20:88f:df57:1266:6aff:fee5:f736 (eth0) | CONTAINER | 0 | +----------------+---------+------------------------------+-----------------------------------------------+-----------+-----------+ user@Piter3:~$ incus exec incus-openvidu -- bash root@incus-openvidu:~# curl -k https://10.155.64.99:4443 curl: (7) Failed to connect to 10.155.64.99 port 4443: Connection refused root@incus-openvidu:~# curl -k https://172.17.0.1:4443 curl: (7) Failed to connect to 172.17.0.1 port 4443: Connection refused root@incus-openvidu:~# curl -k https://node13.nbics.net:4443 curl: (7) Failed to connect to node13.nbics.net port 4443: Connection refused root@incus-openvidu:~# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether aa:60:49:9f:9b:7c brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever inet6 fe80::a860:49ff:fe9f:9b7c/64 scope link valid_lft forever preferred_lft forever 45: eth0@if46: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 10:66:6a:c2:64:46 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.155.64.99/24 metric 100 brd 10.155.64.255 scope global dynamic eth0 valid_lft 3580sec preferred_lft 3580sec inet6 fd42:5a20:88f:df57:1266:6aff:fec2:6446/64 scope global mngtmpaddr noprefixroute valid_lft forever preferred_lft forever inet6 fe80::1266:6aff:fec2:6446/64 scope link valid_lft forever preferred_lft forever root@incus-openvidu:~# curl -k https://127.0.0.1:4443 curl: (7) Failed to connect to 127.0.0.1 port 4443: Connection refused root@incus-openvidu:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0c91d19737d0 kurento/kurento-media-server:6.16.0 "/entrypoint.sh" 6 minutes ago Up 6 minutes (healthy) openvidu-kms-1 50191d31001b openvidu/openvidu-proxy:7.0.0 "/docker-entrypoint.…" 6 minutes ago Up 6 minutes openvidu-nginx-1 26ae5989df6a openvidu/openvidu-coturn:5.0.0 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes openvidu-coturn-1 e390dd0d7656 openvidu/openvidu-redis:3.0.0 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes openvidu-redis-1 47c7ee368053 openvidu/openvidu-server:2.19.0 "/usr/local/bin/entr…" 6 minutes ago Up 6 minutes openvidu-openvidu-server-1 ca08b8462466 hello-world "/hello" 11 hours ago Exited (0) 11 hours ago frosty_aryabhata root@incus-openvidu:~# -
Поздравляю, контейнеры успешно загружены и запущены!
Все 5 основных сервисов OpenVidu (openvidu-server, kms, coturn, redis, nginx-proxy) в статусе Up, и kms даже healthy. Это уже большой прогресс.Но порт 4443 недоступен (Connection refused на всех адресах: 127.0.0.1, 10.155.64.99, node13.nbics.net и т.д.). Это значит, что nginx-proxy (который отвечает за внешний доступ и реверс-прокси на 4443) либо не смог привязаться к порту, либо не стартовал полностью, либо есть проблема с сетью Incus / firewall / host.
Что проверить и как исправить (по приоритету)
-
Посмотри логи всех контейнеров — особенно nginx и openvidu-server
cd /opt/openvidu docker compose logs -f nginx openvidu-server- Ищи ошибки вида:
- "bind() to 0.0.0.0:443 failed (98: Address already in use)" → порт 443 занят
- "bind() to 0.0.0.0:80 failed" → порт 80 занят
- "certificate" / "letsencrypt" ошибки → сертификаты невалидны
- "nginx: [emerg]" или что-то про конфиг
Также отдельно:
docker logs openvidu-nginx-1 | tail -n 50 docker logs openvidu-openvidu-server-1 | tail -n 50Это самый важный шаг сейчас — пришли эти логи (последние 30–50 строк), если там ошибки.
- Ищи ошибки вида:
-
Проверь, слушает ли кто-то порты 80/443/4443 на хосте контейнера
ss -tuln | grep -E ':80|:443|:4443'- Если ничего нет → nginx не смог привязаться (скорее всего конфликт портов или ошибка в логах).
- Если заняты другими процессами → нужно освободить.
-
Проверь, какой внешний адрес используется в .env
Открой .env:cat /opt/openvidu/.env | grep DOMAIN_OR_PUBLIC_IPДолжно быть:
DOMAIN_OR_PUBLIC_IP=media2.nbics.net # или node13.nbics.net, или 10.155.64.99 для тестаЕсли там старый адрес или не тот домен — nginx не сможет правильно обработать запросы.
Если домен не резолвится снаружи или сертификат не подходит — временно поставь:
DOMAIN_OR_PUBLIC_IP=10.155.64.99 CERTIFICATE_TYPE=selfsignedСохрани, перезапусти:
docker compose down docker compose up -d -
Проверь доступ внутри контейнера на 4443
curl -k http://127.0.0.1:4443 curl -k https://127.0.0.1:4443Если внутри тоже refused — проблема в nginx-контейнере.
-
Проверь firewall внутри контейнера
ufw status iptables -L -n -vЕсли ufw active — разреши порты:
ufw allow 80/tcp ufw allow 443/tcp ufw allow 4443/tcp ufw reload -
Проверь на хосте Incus (Piter3), а не внутри контейнера
Зайди на хост-машину и проверь:sudo ss -tuln | grep -E ':80|:443|:4443|:3478' sudo iptables -L -n -v | grep 4443Incus по умолчанию может не пробрасывать порты автоматически, если сеть routed или bridged без port-forward.
Если порты не видны на хосте — добавь port-forward в Incus:
incus config device add incus-openvidu proxy4443 proxy listen=tcp:0.0.0.0:4443 connect=tcp:127.0.0.1:4443 incus config device add incus-openvidu proxy443 proxy listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443 incus config device add incus-openvidu proxy80 proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80 incus restart incus-openviduПосле этого попробуй с хоста:
curl -k https://10.155.64.99:4443 -
Быстрый тест — временно запусти nginx отдельно
docker compose stop nginx docker compose up -d nginx docker logs openvidu-nginx-1
Самый вероятный виновник сейчас
- Nginx не смог привязаться к 80/443 из-за занятых портов (возможно, другой сервис в Incus или на хосте).
- Или ошибка с сертификатами Let's Encrypt (невалидный домен/IP).
Пришли, пожалуйста:
- Вывод
docker compose logs nginx | tail -n 40 - Вывод
ss -tuln | grep -E ':80|:443|:4443' - Значение
DOMAIN_OR_PUBLIC_IPиз .env
После этого сразу поймём, где именно засада.
-
-
root@incus-openvidu:~# docker logs openvidu-nginx-1 | tail -n 50 Generating a RSA private key .........................+++++ .......+++++ writing new private key to '/etc/letsencrypt/live/node13.nbics.net/privkey.pem' ----- 2026/03/15 07:12:35 [warn] 87#87: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" nginx: [warn] "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" 2026/03/15 07:12:35 [notice] 87#87: signal process started 2026/03/15 07:12:35 [warn] 20#20: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" ======================================= = INPUT VARIABLES = ======================================= Config NGINX: - Http Port: 80 - Https Port: 443 - Worker Connections: 10240 - Allowed Access in Openvidu Dashboard: all - Allowed Access in Openvidu API: all - Support deprecated API: true - Redirect www to non-www: false Config Openvidu Application: - Domain name: node13.nbics.net - Certificated: selfsigned - Letsencrypt Email: ser1410u@yandex.ru - Openvidu Application: true - Openvidu Application Type: CE ======================================= = CONFIGURATION NGINX = ======================================= Configure node13.nbics.net domain... - New configuration: selfsigned node13.nbics.net - Old configuration: letsencrypt media2.nbics.net - Restarting configuration... Removing old certificated... - Generating selfsigned certificate... ======================================= = ALLOWED ACCESS = ======================================= Adding rules... - Public IPv4 for rules: 95.31.38.30 Finish Rules: Openvidu Dashboard: - allow all; Openvidu API: - allow all; ======================================= = START OPENVIDU PROXY = ======================================= root@incus-openvidu:~# docker logs openvidu-openvidu-server-1 | tail -n 50 [WARN] 2026-03-15 07:12:37,387 [main] io.openvidu.server.rest.ApiRestPathRewriteFilter - Support for deprecated REST API paths enabled. Update your REST API clients to use the new paths [WARN] 2026-03-15 07:12:37,387 [main] io.openvidu.server.rest.ApiRestPathRewriteFilter - Deprecated path support will be removed in a future release. You can disable old path support to test compatibility with property SUPPORT_DEPRECATED_API=false [INFO] 2026-03-15 07:12:37,429 [main] io.openvidu.server.OpenViduServer - OpenVidu CDR service is disabled (may be enable with 'OPENVIDU_CDR=true') [INFO] 2026-03-15 07:12:37,429 [main] io.openvidu.server.OpenViduServer - OpenVidu Webhook service is disabled (may be enabled with 'OPENVIDU_WEBHOOK=true') [INFO] 2026-03-15 07:12:37,464 [main] io.openvidu.server.OpenViduServer - OpenVidu Server using one KMS: ws://localhost:8888/kurento [INFO] 2026-03-15 07:12:37,501 [main] org.kurento.jsonrpc.client.JsonRpcClientNettyWebSocket - Connecting native client [INFO] 2026-03-15 07:12:37,502 [main] org.kurento.jsonrpc.client.JsonRpcClientNettyWebSocket - Creating new NioEventLoopGroup [INFO] 2026-03-15 07:12:37,641 [nioEventLoopGroup-2-1] org.kurento.jsonrpc.client.JsonRpcClientNettyWebSocket - Initiating new Netty channel. Will create new handler too! [INFO] 2026-03-15 07:12:37,739 [AbstractJsonRpcClientWebSocket-reqResEventExec-e2-t0] io.openvidu.server.kurento.kms.KmsManager - Kurento Client "connected" event for KMS ws://localhost:8888/kurento [org.kurento.client.KurentoClient@68fe3333] [INFO] 2026-03-15 07:12:37,740 [main] io.openvidu.server.recording.service.RecordingManager - OpenVidu recording service is enabled [WARN] 2026-03-15 07:12:37,752 [main] com.github.dockerjava.core.DockerClientBuilder - 'dockerHttpClient' should be set.Falling back to Jersey, will be an error in future releases. [WARN] 2026-03-15 07:12:37,902 [main] com.github.dockerjava.core.DockerClientBuilder - 'dockerHttpClient' should be set.Falling back to Jersey, will be an error in future releases. [INFO] 2026-03-15 07:12:38,530 [main] io.openvidu.server.utils.DockerManager - Docker is installed and enabled [INFO] 2026-03-15 07:12:38,533 [main] io.openvidu.server.recording.service.RecordingManager - Initializing recording paths [INFO] 2026-03-15 07:12:38,533 [main] io.openvidu.server.recording.service.RecordingManager - OpenVidu Server has write permissions on recording path: /opt/openvidu/recordings/ [INFO] 2026-03-15 07:12:39,084 [main] io.openvidu.server.recording.service.RecordingManager - Kurento Media Server has write permissions on recording path: /opt/openvidu/recordings/ [INFO] 2026-03-15 07:12:39,090 [main] io.openvidu.server.recording.service.RecordingManager - OpenVidu Server has write permissions over files created by Kurento Media Server [INFO] 2026-03-15 07:12:39,090 [main] io.openvidu.server.recording.service.RecordingManager - OpenVidu Server has read permissions on custom layout path: /opt/openvidu/custom-layout/ [INFO] 2026-03-15 07:12:39,090 [main] io.openvidu.server.recording.service.RecordingManager - Custom layouts path successfully initialized at /opt/openvidu/custom-layout/ [INFO] 2026-03-15 07:12:39,090 [main] io.openvidu.server.recording.service.RecordingManager - Recording path successfully initialized at /opt/openvidu/recordings/ [WARN] 2026-03-15 07:12:39,091 [main] com.github.dockerjava.core.DockerClientBuilder - 'dockerHttpClient' should be set.Falling back to Jersey, will be an error in future releases. [INFO] 2026-03-15 07:12:39,094 [main] io.openvidu.server.recording.service.RecordingManager - Recording module required: Downloading openvidu/openvidu-recording:2.19.0 Docker image (350MB aprox) [INFO] 2026-03-15 07:12:39,127 [main] io.openvidu.server.recording.service.RecordingManager - Docker image already exists locally [INFO] 2026-03-15 07:12:39,190 [main] io.openvidu.server.coturn.CoturnCredentialsService - COTURN IP: 95.31.38.30 [INFO] 2026-03-15 07:12:39,191 [main] io.openvidu.server.coturn.CoturnCredentialsService - COTURN Redis DB accessible with string "ip=127.0.0.1 dbname=0 password=frogsEatenUnicornes connect_timeout=30" [INFO] 2026-03-15 07:12:39,191 [main] io.openvidu.server.coturn.CoturnCredentialsService - Cleaning COTURN DB... [INFO] 2026-03-15 07:12:39,191 [main] io.openvidu.server.coturn.CoturnCredentialsService - Path of COTURN log files: /var/log/ [INFO] 2026-03-15 07:12:39,197 [main] io.openvidu.server.coturn.CoturnCredentialsService - COTURN DB is now empty [INFO] 2026-03-15 07:12:39,198 [main] io.openvidu.server.coturn.CoturnCredentialsService - Using COTURN credentials service for BASH environment [INFO] 2026-03-15 07:12:39,220 [main] io.openvidu.server.core.SessionManager - Garbage collector for non active sessions initialized. Running every 900 seconds and cleaning up non active Sessions more than 3600 seconds old [INFO] 2026-03-15 07:12:39,255 [main] org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler - Initializing ExecutorService 'jsonrpcTaskScheduler' [INFO] 2026-03-15 07:12:39,381 [main] org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor' [INFO] 2026-03-15 07:12:39,467 [main] org.springframework.boot.autoconfigure.web.servlet.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html] [INFO] 2026-03-15 07:12:39,669 [main] org.springframework.security.web.DefaultSecurityFilterChain - Creating filter chain: any request, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@2d23faef, org.springframework.security.web.context.SecurityContextPersistenceFilter@3874b815, org.springframework.security.web.header.HeaderWriterFilter@a33b4e3, org.springframework.web.filter.CorsFilter@66ce957f, org.springframework.security.web.authentication.logout.LogoutFilter@43a51d00, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@36fcf6c0, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@736048ed, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@6940f685, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@7cb8437d, org.springframework.security.web.session.SessionManagementFilter@36b310aa, org.springframework.security.web.access.ExceptionTranslationFilter@41fed14f, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@58ec7116] [INFO] 2026-03-15 07:12:39,694 [main] org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-0.0.0.0-5443"] [INFO] 2026-03-15 07:12:39,707 [main] org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 5443 (http) with context path '' [INFO] 2026-03-15 07:12:39,713 [main] io.openvidu.server.OpenViduServer - Started OpenViduServer in 3.889 seconds (JVM running for 5.489) [INFO] 2026-03-15 07:12:39,715 [main] io.openvidu.server.OpenViduServer - ---------------------------------------------------- OpenVidu is ready! --------------------------- * OpenVidu Server URL: https://node13.nbics.net/ * OpenVidu Dashboard: https://node13.nbics.net/dashboard ---------------------------------------------------- root@incus-openvidu:~# ss -tuln | grep -E ':80|:443|:4443' tcp LISTEN 0 511 0.0.0.0:443 0.0.0.0:* tcp LISTEN 0 511 0.0.0.0:80 0.0.0.0:* tcp LISTEN 0 511 [::]:443 [::]:* tcp LISTEN 0 511 [::]:80 [::]:* root@incus-openvidu:~# cat /opt/openvidu/.env | grep DOMAIN_OR_PUBLIC_IP DOMAIN_OR_PUBLIC_IP=node13.nbics.net # Allows any request to http://DOMAIN_OR_PUBLIC_IP:HTTP_PORT/ to be automatically # redirected to https://DOMAIN_OR_PUBLIC_IP:HTTPS_PORT/. root@incus-openvidu:~# curl -k http://127.0.0.1:4443 curl: (7) Failed to connect to 127.0.0.1 port 4443: Connection refused root@incus-openvidu:~# curl -k https://127.0.0.1:4443 curl: (7) Failed to connect to 127.0.0.1 port 4443: Connection refused root@incus-openvidu:~# ufw status Status: inactive root@incus-openvidu:~# iptables -L -n -v Chain INPUT (policy ACCEPT 4868 packets, 455K bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 DOCKER-USER all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DOCKER-FORWARD all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 4882 packets, 399K bytes) pkts bytes target prot opt in out source destination Chain DOCKER (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- !docker0 docker0 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-BRIDGE (1 references) pkts bytes target prot opt in out source destination 0 0 DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-CT (1 references) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED Chain DOCKER-FORWARD (1 references) pkts bytes target prot opt in out source destination 0 0 DOCKER-CT all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DOCKER-ISOLATION-STAGE-1 all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 DOCKER-BRIDGE all -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- docker0 * 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-ISOLATION-STAGE-1 (1 references) pkts bytes target prot opt in out source destination 0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-ISOLATION-STAGE-2 (1 references) pkts bytes target prot opt in out source destination 0 0 DROP all -- * docker0 0.0.0.0/0 0.0.0.0/0 Chain DOCKER-USER (1 references) pkts bytes target prot opt in out source destination 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 root@incus-openvidu:~# -
Отлично, теперь ясно, в чём проблема!
Твой OpenVidu стартовал успешно (все контейнеры Up, kms healthy, openvidu-server готов и слушает на внутреннем порту 5443), но внешний доступ на 4443 не работает, потому что:- Nginx-proxy (openvidu-nginx-1) не привязывается к порту 4443 вообще — в логах нет упоминания о listen на 4443.
- В логах nginx видно: он генерирует selfsigned-сертификат для
node13.nbics.net, переключается с letsencrypt, но не упоминает bind/listen на 4443. - ss показывает, что nginx слушает только 80 и 443 (tcp LISTEN на 0.0.0.0:80/443 и [::]:80/443), но не 4443.
- В OpenVidu 2.x nginx-proxy — это фронтенд, который:
- Слушает 80/443 (для HTTP → HTTPS редиректа + Let's Encrypt).
- Проксирует запросы на внутренний порт openvidu-server (5443).
- Сам не слушает 4443 — клиенты должны подключаться к https://domain:443 (или 80 с редиректом), а не к 4443!
Ты тестируешь неправильный порт.
В OpenVidu CE (включая 2.19) внешний доступ идёт через nginx на 443 (или 80 → редирект на 443), а не на 4443.
Порт 4443 — это внутренний порт openvidu-server (SERVER_PORT=5443 в compose, но с редиректом/прокси через nginx).Что делать прямо сейчас
-
Проверь правильный внешний порт — 443
curl -k https://127.0.0.1 curl -k https://10.155.64.99 curl -k https://node13.nbics.net # если DNS резолвится внутриОжидаемый ответ:
- OpenVidu dashboard (HTML страница) или редирект.
- Или хотя бы "OpenVidu is ready!" / статус-страница.
Если 443 открыт — увидишь что-то вроде:
OpenVidu is ready! --------------------------- * OpenVidu Server URL: https://node13.nbics.net/ * OpenVidu Dashboard: https://node13.nbics.net/dashboard -
Если на 443 Connection refused — nginx не смог привязаться к 80/443
-
Проверь логи nginx ещё раз на ошибки bind:
docker logs openvidu-nginx-1 | grep -i "bind\|emerg\|error\|failed" -
Если "bind() to 0.0.0.0:80 failed (98: Address already in use)" — порт занят другим процессом внутри контейнера или на хосте.
Найди, кто занимает:ss -tuln p | grep ':80\|:443'(с флагом p покажет PID/процесс).
-
Если занят — останови конфликтующий сервис (возможно, apache/nginx на хосте или другой контейнер).
-
-
Проверь с хоста Incus (Piter3), а не внутри контейнера
На хосте (user@Piter3):curl -k https://10.155.64.99 curl -k https://node13.nbics.net:443Если внутри контейнера работает, а с хоста — нет → проблема в Incus networking (bridged/routed не пробрасывает порты автоматически для host-exposed сервисов).
Фикс для Incus — добавь proxy-устройства (проброс портов на хост):
incus config device add incus-openvidu openvidu-http proxy listen=tcp:0.0.0.0:80 connect=tcp:127.0.0.1:80 incus config device add incus-openvidu openvidu-https proxy listen=tcp:0.0.0.0:443 connect=tcp:127.0.0.1:443 # Если нужно явно 4443 (хотя не требуется): incus config device add incus-openvidu openvidu-4443 proxy listen=tcp:0.0.0.0:4443 connect=tcp:127.0.0.1:4443 incus restart incus-openviduПосле этого порты 80/443 станут доступны на IP контейнера (10.155.64.99) с хоста и снаружи.
-
Проверь сертификат и домен
- В логах: "New configuration: selfsigned node13.nbics.net" — сейчас selfsigned.
- Если хочешь Let's Encrypt — верни в .env:
Перезапусти nginx:CERTIFICATE_TYPE=letsencrypt DOMAIN_OR_PUBLIC_IP=node13.nbics.net # должен резолвиться на публичный IP хостаdocker compose restart nginx
-
Финальный тест
- С любого браузера/машины: https://node13.nbics.net (или https://10.155.64.99 если selfsigned)
- Должен открыться OpenVidu dashboard или welcome-страница.
- Если selfsigned — браузер покажет предупреждение, но соединение пройдёт.
Если после этих шагов 443 всё равно refused — пришли:
docker logs openvidu-nginx-1 | tail -n 50(ещё раз, после перезапуска)ss -tuln p | grep ':80\|:443'(с p — покажет, кто слушает)- Вывод
incus config show incus-openvidu(с хоста)
Ты уже на финишной прямой — проблема не в OpenVidu, а в том, какой порт тестировать и в Incus-пробросе.
-
root@incus-openvidu:~# curl -k https://127.0.0.1 <html> <head><title>502 Bad Gateway</title></head> <body> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html> root@incus-openvidu:~# curl -k https://10.155.64.99 <html> <head><title>502 Bad Gateway</title></head> <body> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html> root@incus-openvidu:~# curl -k https://node13.nbics.net # если DNS резолвится внутри <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.22.1</center> </body> </html> root@incus-openvidu:~# docker logs openvidu-nginx-1 | grep -i "bind\|emerg\|error\|failed" Generating a RSA private key .........................+++++ .......+++++ writing new private key to '/etc/letsencrypt/live/node13.nbics.net/privkey.pem' ----- 2026/03/15 07:12:35 [warn] 87#87: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" nginx: [warn] "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" 2026/03/15 07:12:35 [notice] 87#87: signal process started 2026/03/15 07:12:35 [warn] 20#20: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" 2026/03/15 07:27:21 [error] 89#89: *2 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: node13.nbics.net, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5442/", host: "127.0.0.1" 2026/03/15 07:27:31 [error] 89#89: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 10.155.64.99, server: node13.nbics.net, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5442/", host: "10.155.64.99" root@incus-openvidu:~# ss -tuln p | grep ':80\|:443' Error: an inet prefix is expected rather than "p". Cannot parse dst/src address. root@incus-openvidu:~# -
Проблема ясна: 502 Bad Gateway от nginx — это значит, что nginx (openvidu-proxy) успешно стартовал и слушает на 80/443, но не может подключиться к upstream (внутреннему openvidu-server).
Из логов nginx:
[error] 89#89: *2 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: node13.nbics.net, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5442/"- Nginx пытается проксировать запросы на http://127.0.0.1:5442 (это upstream для приложения / OpenVidu API).
- Но соединение refused — т.е. никто не слушает на порту 5442 внутри контейнера (или на host-network).
Почему так происходит
В твоей версии OpenVidu 2.19:
- openvidu-server слушает на SERVER_PORT=5443 (как указано в docker-compose.yml: SERVER_PORT=5443).
- Но nginx-proxy настроен на проксирование на 5442 (это стандарт для некоторых конфигов, особенно если есть отдельное приложение типа OpenVidu Call или custom app на 5442).
- В твоём случае нет отдельного приложения на 5442 — поэтому upstream refused.
В стандартной OpenVidu CE 2.19 без custom app:
- Nginx должен проксировать /openvidu и /api на http://127.0.0.1:5443 (порт openvidu-server).
- А dashboard/root — на 5443 или внутренний путь.
Твой nginx-контейнер (openvidu/openvidu-proxy:7.0.0) по умолчанию ожидает upstream на 5442 (это legacy/стандарт для OpenVidu Call интеграции), но в твоей конфигурации openvidu-server на 5443 → mismatch.
Решение — поправить конфигурацию nginx
-
Останови всё
cd /opt/openvidu docker compose down -
Создай override-файл для nginx (чтобы не менять оригинальный docker-compose.yml)
nano docker-compose.override.ymlВставь это:
services: nginx: volumes: - ./nginx-custom.conf:/etc/nginx/conf.d/default.conf:ro # монтируем кастомный конфиг -
Создай кастомный конфиг nginx
mkdir nginx-custom nano nginx-custom/default.confВставь упрощённый рабочий конфиг (адаптированный под твою версию, прокси на 5443):
server { listen 80; listen [::]:80; server_name node13.nbics.net; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name node13.nbics.net; ssl_certificate /etc/letsencrypt/live/node13.nbics.net/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/node13.nbics.net/privkey.pem; # Прокси на openvidu-server (порт 5443) location / { proxy_pass http://127.0.0.1:5443/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # Для /openvidu и API (если нужно отдельно) location /openvidu/ { proxy_pass http://127.0.0.1:5443/openvidu/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /dashboard/ { proxy_pass http://127.0.0.1:5443/dashboard/; # аналогичные headers } }Это базовый конфиг: всё на 443 проксирует на 5443. Добавь больше location'ов по логам, если нужно.
-
Перезапусти
docker compose up -d -
Проверь
docker logs openvidu-nginx-1 | tail -n 30 curl -k https://127.0.0.1 curl -k https://10.155.64.99Должен появиться OpenVidu welcome или dashboard (HTML).
Альтернатива — временно отключить nginx и тестировать напрямую
В docker-compose.yml измени для openvidu-server:
openvidu-server: # ... ports: - "4443:5443" # проброси внутренний 5443 на внешний 4443Затем:
docker compose up -d curl -k https://127.0.0.1:4443Это позволит проверить, работает ли сам сервер (да, по логам работает). Потом верни nginx.
Дополнительно
- Если домен node13.nbics.net резолвится на публичный IP хоста — Let's Encrypt должен сработать после правки (если порт 80 открыт снаружи).
- Если 502 остаётся — пришли полный
docker logs openvidu-nginx-1или grep на "upstream".
Это должно решить — mismatch портов upstream был основной причиной 502.
-
Хорошо, давай упростим до предела.
Раз на старом сервере всё работало именно с этой конфигурацией (docker-compose.yml + .env + те же образы), значит проблема в чём-то конкретном на новом сервере, а не в том, что нужно переписывать nginx.conf.Текущая ситуация:
- openvidu-server стартовал и слушает 5443 внутри контейнера (это видно по логам)
- nginx стартовал и слушает 80/443
- запросы на 443 попадают в nginx → он пытается проксировать на 5442 → получает Connection refused → выдаёт 502
Самый простой и честный способ — заставить nginx проксировать на правильный порт 5443, а не на 5442.
Минимальное вмешательство (без переписывания всего конфига)
-
Останови сервисы
cd /opt/openvidu docker compose down -
Создай маленький override-файл только для изменения порта upstream
nano docker-compose.override.ymlВставь ровно это (только одну переменную):
services: nginx: environment: - OPENVIDU_SERVER_PORT=5443 # ← это заставит nginx проксировать на 5443 вместо дефолтных 5442Сохрани и выйди.
-
Запусти заново
docker compose up -d -
Подожди 20–30 секунд и проверь
docker compose ps docker compose logs nginx | tail -n 30 curl -k https://127.0.0.1 curl -k https://10.155.64.99 curl -k https://node13.nbics.netЕсли всё правильно — nginx теперь будет проксировать на 5443 → ты увидишь страницу OpenVidu (dashboard или welcome).
Если после этого всё ещё 502
Тогда смотрим, что именно пишет nginx в логах после перезапуска:
docker logs openvidu-nginx-1 | grep -i "544\|upstream\|connect\|refused\|error"И пришли эти строки — там будет видно, на какой именно порт он пытается подключаться сейчас.
Почему это должно сработать
На старом сервере, судя по всему, либо:
- переменная OPENVIDU_SERVER_PORT была выставлена в .env или где-то ещё,
- либо в той версии прокси-образа upstream по умолчанию был 5443,
- либо у тебя был дополнительный override-файл, который ты не заметил.
В любом случае — добавление одной строки в override — самое чистое и минимальное изменение.
Попробуй этот шаг и сразу напиши результат curl + последние 20–30 строк логов nginx после перезапуска.
Должно заработать без лишних танцев. -
root@incus-openvidu:/opt/openvidu# docker compose ps WARN[0000] /opt/openvidu/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS openvidu-coturn-1 openvidu/openvidu-coturn:5.0.0 "docker-entrypoint.s…" coturn 30 seconds ago Up 23 seconds openvidu-kms-1 kurento/kurento-media-server:6.16.0 "/entrypoint.sh" kms 30 seconds ago Up 23 seconds (healthy) openvidu-nginx-1 openvidu/openvidu-proxy:7.0.0 "/docker-entrypoint.…" nginx 30 seconds ago Up 23 seconds openvidu-openvidu-server-1 openvidu/openvidu-server:2.19.0 "/usr/local/bin/entr…" openvidu-server 30 seconds ago Up 23 seconds openvidu-redis-1 openvidu/openvidu-redis:3.0.0 "docker-entrypoint.s…" redis 30 seconds ago Up 24 seconds root@incus-openvidu:/opt/openvidu# docker compose logs nginx | tail -n 30 WARN[0000] /opt/openvidu/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion nginx-1 | = CONFIGURATION NGINX = nginx-1 | ======================================= nginx-1 | nginx-1 | Configure node13.nbics.net domain... nginx-1 | - New configuration: selfsigned node13.nbics.net nginx-1 | - Old configuration: selfsigned node13.nbics.net nginx-1 | nginx-1 | - Selfsigned certificate already exists, using them... nginx-1 | nginx-1 | ======================================= nginx-1 | = ALLOWED ACCESS = nginx-1 | ======================================= nginx-1 | nginx-1 | Adding rules... nginx-1 | - Public IPv4 for rules: 95.31.38.30 nginx-1 | nginx-1 | Finish Rules: nginx-1 | Openvidu Dashboard: nginx-1 | - allow all; nginx-1 | Openvidu API: nginx-1 | - allow all; nginx-1 | nginx-1 | ======================================= nginx-1 | = START OPENVIDU PROXY = nginx-1 | ======================================= nginx-1 | nginx-1 | 2026/03/15 07:33:26 [warn] 80#80: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" nginx-1 | nginx: [warn] "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" nginx-1 | 2026/03/15 07:33:26 [notice] 80#80: signal process started nginx-1 | 2026/03/15 07:33:26 [warn] 17#17: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" root@incus-openvidu:/opt/openvidu# curl -k https://127.0.0.1 <html> <head><title>502 Bad Gateway</title></head> <body> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html> root@incus-openvidu:/opt/openvidu# curl -k https://10.155.64.99 <html> <head><title>502 Bad Gateway</title></head> <body> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html> root@incus-openvidu:/opt/openvidu# curl -k https://node13.nbics.net <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.22.1</center> </body> </html> root@incus-openvidu:/opt/openvidu# docker logs openvidu-nginx-1 | grep -i "544\|upstream\|connect\|refused\|error" - Worker Connections: 10240 2026/03/15 07:33:26 [warn] 80#80: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" nginx: [warn] "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" 2026/03/15 07:33:26 [notice] 80#80: signal process started 2026/03/15 07:33:26 [warn] 17#17: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" 2026/03/15 07:34:12 [error] 82#82: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: node13.nbics.net, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5442/", host: "127.0.0.1" 2026/03/15 07:34:22 [error] 82#82: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 10.155.64.99, server: node13.nbics.net, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5442/", host: "10.155.64.99" root@incus-openvidu:/opt/openvidu# -
Хорошо, давай без лишних экспериментов.
Из логов видно, что nginx по-прежнему пытается проксировать на 5442 (upstream: "http://127.0.0.1:5442/"), а openvidu-server у тебя слушает 5443 (как и на старом сервере). Именно поэтому 502 Bad Gateway.На старом сервере это работало, потому что либо там upstream был настроен на 5443, либо использовался другой вариант прокси-конфига (возможно, переменная окружения или старый override). На новом — дефолт 5442.
Самый простой и надёжный фикс (без переписывания конфигов)
-
Останови всё
cd /opt/openvidu docker compose down -
В файле
.envдобавь (или измени) одну строку в конец:sudo nano .envДобавь:
OPENVIDU_SERVER_PORT=5443(или если уже есть — измени на 5443)
Сохрани.
-
Запусти заново
docker compose up -dПодожди 20–30 секунд.
-
Проверь
curl -k https://127.0.0.1 curl -k https://10.155.64.99 curl -k https://node13.nbics.net # если DNS работает внутриТеперь nginx должен подключаться к правильному порту → увидишь страницу OpenVidu (или хотя бы не 502).
-
Посмотри логи nginx после запуска
docker logs openvidu-nginx-1 | tail -n 30 docker logs openvidu-nginx-1 | grep -i "544\|upstream\|connect\|refused\|error"Если увидишь upstream на 5443 вместо 5442 — всё ок.
Почему это сработает
- В образе openvidu-proxy:7.0.0 переменная
OPENVIDU_SERVER_PORT(или аналогичная) управляет upstream-портом для проксирования на openvidu-server. - По дефолту она 5442 (legacy для OpenVidu Call / app), но у тебя чистый CE без app → нужно явно указать 5443.
Если после этого всё равно 502
Тогда посмотри, на какой порт теперь пытается nginx:
docker logs openvidu-nginx-1 | grep upstreamЕсли всё ещё 5442 — значит, переменная не подхватилась. Тогда сделаем override:
nano docker-compose.override.ymlВставь:
services: nginx: environment: OPENVIDU_SERVER_PORT: "5443"Затем
docker compose up -dи проверь снова.Это 100% соответствует твоей старой конфигурации (без изменений в compose.yml или кастомных conf-файлах).
Попробуй и сразу напиши:
- результат curl на https://127.0.0.1
- последние 20 строк логов nginx после перезапуска
Должно заработать.
-
-
root@incus-openvidu:/opt/openvidu# curl -k https://127.0.0.1 <html> <head><title>502 Bad Gateway</title></head> <body> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html> root@incus-openvidu:/opt/openvidu# curl -k https://10.155.64.99 <html> <head><title>502 Bad Gateway</title></head> <body> <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx</center> </body> </html> root@incus-openvidu:/opt/openvidu# curl -k https://node13.nbics.net # если DNS работает внутри <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.22.1</center> </body> </html> root@incus-openvidu:/opt/openvidu# docker logs openvidu-nginx-1 | grep upstream 2026/03/15 07:37:56 [warn] 80#80: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" nginx: [warn] "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" 2026/03/15 07:37:56 [notice] 80#80: signal process started 2026/03/15 07:37:56 [warn] 17#17: "ssl_stapling" ignored, no OCSP responder URL in the certificate "/etc/letsencrypt/live/node13.nbics.net/fullchain.pem" 2026/03/15 07:39:59 [error] 82#82: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: node13.nbics.net, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5442/", host: "127.0.0.1" 2026/03/15 07:40:16 [error] 82#82: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 10.155.64.99, server: node13.nbics.net, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:5442/", host: "10.155.64.99" root@incus-openvidu:/opt/openvidu# -
Да, именно так — на старом сервере это работало, потому что там nginx-proxy был настроен (или по умолчанию) на upstream 5443.
В твоей текущей конфигурации на новом сервере nginx упорно использует 5442 (как видно из логов: upstream "http://127.0.0.1:5442/"), а openvidu-server слушает 5443 (SERVER_PORT=5443 в compose.yml).Это классическая несовместимость: в OpenVidu CE 2.19 без отдельного приложения (типа OpenVidu Call) upstream должен быть 5443, но дефолт в proxy-образе 7.0.0 — 5442 (для legacy-приложений на 5442).
Быстрый фикс без ухищрений (одна строка в .env)
-
Останови сервисы (если не остановлены):
cd /opt/openvidu docker compose down -
Открой .env и добавь/измени строку:
sudo nano .envДобавь в конец:
OPENVIDU_SERVER_PORT=5443(или если уже есть что-то похожее — поставь 5443)
Сохрани.
-
Запусти:
docker compose up -dПодожди 20–30 секунд.
-
Проверь:
curl -k https://127.0.0.1 curl -k https://10.155.64.99Теперь nginx должен подключаться к 5443 → получишь OpenVidu-страницу (welcome или dashboard), а не 502.
Проверка после запуска
docker logs openvidu-nginx-1 | grep -i "upstream\|544\|connect\|refused\|error"Если увидишь upstream на 5443 и нет refused — успех.
Почему это именно то, что работало на старом
В старой установке (или в твоём случае) переменная OPENVIDU_SERVER_PORT (или аналогичная) подхватывалась из .env или дефолт был другим. На новом — дефолт 5442, поэтому 502. Добавление переменной — самое чистое решение без редактирования compose или создания override.
Если после добавления всё ещё 502 — пришли:
grep OPENVIDU_SERVER_PORT .env(чтобы убедиться, что строка добавлена)docker logs openvidu-nginx-1 | grep upstream(новый grep после перезапуска)
Это должно решить проблему за 1 минуту. Удачи!
-