А Debian 12?
-
Да, на Debian 12 (Bookworm) вполне можно запустить твой старый OpenVidu 2.19.0 с Kurento 6.16.0 в Docker — это реально и в большинстве случаев проходит успешно.
Debian 12 — это "современная" Linux-дистрибуция (как и Ubuntu 22.04), и официальная документация OpenVidu прямо говорит, что CE-версия работает на любом современном Linux, включая Debian, если Docker + Compose стоят правильно.Почему совместимость хорошая
- Всё в Docker → хост-ОС (Debian 12) влияет минимально: ядро Linux 6.1, glibc 2.36 — старые образы (Kurento на базе Ubuntu 18.04 внутри) запускаются без проблем.
network_mode: hostв твоём docker-compose.yml — это самый "прямой" режим, меньше сюрпризов с сетью/портами по сравнению с bridge.- Нет известных фатальных багов именно для Kurento 6.16.0 + Docker на Debian 12 (из форумов, GitHub, Discourse OpenVidu — жалоб мало, и они обычно решаются ulimits/iptables).
- Docker на Debian 12 ставится свежий (26–28.x), но старые образы 4–5-летней давности продолжают работать (linux/amd64).
Сравнение с Ubuntu 20.04 / 22.04
ОС Рекомендация для твоего legacy-стека Почему Риск мелких проблем Ubuntu 20.04 Самый надёжный (топ-1) Ближе по времени к 2021 году (твоя версия), glibc 2.31, меньше изменений в ядре/iptables Минимальный Debian 12 Можно, хорошо (топ-2) Стабильный, LTS до 2028, Docker отлично поддерживается, много людей используют для медиа-серверов Низкий-средний Ubuntu 22.04 Можно, но чуть рискованнее glibc 2.35 + изменения в netfilter → иногда iptables-legacy нужно переключать Средний Debian 12 ≈ Ubuntu 22.04 по уровню "современности", но Debian часто стабильнее в enterprise-сценариях (меньше неожиданных обновлений).
Что нужно сделать на Debian 12
-
Установка Docker + Compose (официально, не из репозитория Debian — там старая версия):
sudo apt update sudo apt install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin→ Теперь
docker compose(v2) работает. -
Перенос — точно так же, как раньше:
- Скопируй всю
/opt/openvidu(с.env, compose.yml, certificates/, recordings/ и т.д.) docker saveобразов на старом →docker loadна новом- В
.envпроверь/поправьDOMAIN_OR_PUBLIC_IP(если IP/домен изменился) cd /opt/openvidu && sudo docker compose up -d
- Скопируй всю
-
Возможные фиксы на Debian 12 (редко, но бывает):
- Нет интернета в контейнерах или странная сеть →
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy(или nftables → legacy) - KMS не стартует / high CPU / краши → Добавь в kms-сервис в docker-compose:
Перезапусти.ulimits: nofile: soft: 65535 hard: 65535 - Порты 3478/UDP, 40000-57000 — убедись, что firewall (ufw/iptables) пропускает их.
- Let's Encrypt — если сертификаты не валидируются → временно
CERTIFICATE_TYPE=selfsignedдля теста.
- Нет интернета в контейнерах или странная сеть →
Итог
- Debian 12 — хороший выбор, если сервер уже на нём или ты предпочитаешь Debian (стабильность, меньший размер обновлений). Шансы успеха ~90–95%, почти как на Ubuntu 20.04.
- Если хочешь максимальную надёжность без тестов → всё же Ubuntu 20.04.
- Если выберешь Debian 12 — после запуска сразу смотри
sudo docker compose logs -f kms openvidu-server coturnи проверь https://твой-домен:4443 (должен быть status OK).
Если решишь пробовать и будут логи с ошибками — присылай, разберём по шагам. Удачи с миграцией!
-
Да, на Debian 13 (Trixie) можно запустить твой старый OpenVidu 2.19.0 с Kurento 6.16.0 в Docker — это вполне реально и должно работать стабильно.
Debian 13 вышел в августе 2025 года (13.0), а сейчас (март 2026) уже на версии 13.4 с кучей фиксов безопасности и багов. Это свежая стабильная ветка, поддержка до 2028 + LTS до 2030.Почему совместимость должна быть хорошей (почти как на Debian 12)
- Всё в Docker — хост-ОС влияет минимально: ядро Linux 6.1+ (в 13-й версии), glibc 2.36–2.38. Старые образы (Kurento/OpenVidu 2019–2021 годов, основаны на Ubuntu 18.04 внутри) продолжают запускаться без проблем в контейнерах.
- Твой compose использует
network_mode: host+ bind-mount'ы → сеть, порты и файлы работают одинаково независимо от дистрибутива. - Docker на Debian 13 ставится самый свежий (версии 26–28.x+), но backward-совместимость с legacy-образами сохраняется (linux/amd64, без критических breaking changes для такого стека).
- Нет известных фатальных проблем с Kurento 6.x в Docker именно на Debian 13 (сообщество использует похожие медиа-сервера на новых Debian без жалоб на этот стек).
Сравнение с предыдущими вариантами (Debian 12 / Ubuntu 20.04 / 22.04)
ОС Рекомендация для твоего legacy OpenVidu 2.19 Почему Риск мелких проблем Ubuntu 20.04 Самый надёжный (топ-1) Ближе по времени к твоей версии (2020), меньше изменений в ядре/сетевом стеке Минимальный Debian 12 Отличный (топ-2) Стабильный, проверенный, LTS до 2028 Низкий Debian 13 Можно, хорошо (топ-3) Свежий stable, улучшения в безопасности/производительности, поддержка до 2030 Низкий-средний Ubuntu 22.04 Можно, но чуть рискованнее glibc 2.35 + netfilter изменения → иногда iptables-legacy нужен Средний Debian 13 ≈ Debian 12 по стабильности, но с более новым ядром, glibc и пакетами → чуть больше шансов на "мелкие сюрпризы" с очень старыми образами, но на практике их почти нет для Docker-based медиа-серверов.
Что нужно сделать на Debian 13 (почти идентично Debian 12)
-
Установка Docker + Compose (официальный способ, чтобы была свежая версия):
sudo apt update sudo apt install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # ↑ для Debian 13 используй "trixie" вместо "bookworm", если репозиторий уже обновлён; проверь на https://docs.docker.com/engine/install/debian/ sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -
Перенос — стандартно:
- Скопируй всю
/opt/openvidu(.env, docker-compose.yml, certificates/, recordings/ и т.д.) docker saveнужных образов на старом сервере →docker loadна новом- Поправь
.env(DOMAIN_OR_PUBLIC_IP, если домен/IP изменился) cd /opt/openvidu && sudo docker compose up -d
- Скопируй всю
-
Возможные фиксы (редко, но на новых Debian бывает чаще):
- iptables/nftables конфликт →
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy - KMS не стартует/high CPU → Добавь в kms-сервис:
ulimits: nofile: 65535:65535 nproc: 65535:65535 - Порты заблокированы →
sudo ufw allow 4443,3478/udp,80,443+ диапазон 40000-65535/udp если нужно. - Let's Encrypt → если не валидируется, переключи временно на
selfsigned.
- iptables/nftables конфликт →
Итог
- Debian 13 — нормальный и даже хороший выбор в 2026 году: свежий, стабильный, с долгой поддержкой. Шансы успеха ~90–95% (почти как на Debian 12).
- Если хочешь максимум предсказуемости без лишних тестов → Ubuntu 20.04 или Debian 12 всё ещё чуть безопаснее.
- Но если сервер планируется на Debian 13 — пробуй смело, после запуска просто проверь логи kms/openvidu-server и доступ к :4443.
Если после миграции будут конкретные ошибки в логах — присылай, разберём. Удачи!
-
Это сервер, куда я хочу поставить старый OpenVidu. Пойдёт? user@debian:~$ 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 2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 10:7b:44:4a:76:58 brd ff:ff:ff:ff:ff:ff altname enx107b444a7658 inet 91.221.70.18/23 brd 91.221.71.255 scope global enp0s31f6 valid_lft forever preferred_lft forever 3: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 10:66:6a:00:00:00 brd ff:ff:ff:ff:ff:ff inet 10.0.3.1/24 brd 10.0.3.255 scope global lxcbr0 valid_lft forever preferred_lft forever 5: incusbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 10:66:6a:24:4c:3a brd ff:ff:ff:ff:ff:ff inet 10.214.97.1/24 scope global incusbr0 valid_lft forever preferred_lft forever 8: vethVUwRoA@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lxcbr0 state UP group default qlen 1000 link/ether fe:b6:d0:22:f8:2c brd ff:ff:ff:ff:ff:ff link-netnsid 3 12: vethajhobZ@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lxcbr0 state UP group default qlen 1000 link/ether fe:8c:99:e5:35:85 brd ff:ff:ff:ff:ff:ff link-netnsid 6 14: vethbVecex@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lxcbr0 state UP group default qlen 1000 link/ether fe:13:fe:c9:6c:7a brd ff:ff:ff:ff:ff:ff link-netnsid 8 15: br-mailcow: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether ca:75:43:04:83:b5 brd ff:ff:ff:ff:ff:ff inet 10.0.0.1/24 brd 10.0.0.255 scope global br-mailcow valid_lft forever preferred_lft forever 17: br-c633aa5852cd: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 8a:84:f5:87:50:52 brd ff:ff:ff:ff:ff:ff inet 172.22.0.1/16 brd 172.22.255.255 scope global br-c633aa5852cd valid_lft forever preferred_lft forever 18: br-e934d8635c04: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether ca:65:bd:6d:01:3c brd ff:ff:ff:ff:ff:ff inet 172.21.0.1/16 brd 172.21.255.255 scope global br-e934d8635c04 valid_lft forever preferred_lft forever 19: br-ec99f735c413: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 46:24:f9:78:76:1e brd ff:ff:ff:ff:ff:ff inet 172.20.0.1/16 brd 172.20.255.255 scope global br-ec99f735c413 valid_lft forever preferred_lft forever 20: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 16:b9:c3:4d:00:d2 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 21: br-4477e29f02b8: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default link/ether 4a:d6:91:ed:e8:09 brd ff:ff:ff:ff:ff:ff inet 172.19.0.1/16 brd 172.19.255.255 scope global br-4477e29f02b8 valid_lft forever preferred_lft forever 24: veth89ee70e@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 1a:40:2d:ae:b3:47 brd ff:ff:ff:ff:ff:ff link-netnsid 11 26: vethbd4be89@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 5e:0d:13:3d:9e:46 brd ff:ff:ff:ff:ff:ff link-netnsid 13 27: vethc7c5b8d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default link/ether ca:16:96:59:83:07 brd ff:ff:ff:ff:ff:ff link-netnsid 14 28: vethebc996c@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 86:33:89:90:76:0a brd ff:ff:ff:ff:ff:ff link-netnsid 15 31: veth57217b8@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 76:33:ff:93:91:78 brd ff:ff:ff:ff:ff:ff link-netnsid 18 32: vethb99ec88@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 5a:83:b1:af:64:0c brd ff:ff:ff:ff:ff:ff link-netnsid 19 34: veth7aeb529@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 1e:b6:b1:de:c5:77 brd ff:ff:ff:ff:ff:ff link-netnsid 21 36: veth87b746c@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether a6:32:81:21:15:7e brd ff:ff:ff:ff:ff:ff link-netnsid 23 38: veth3b8a4aa@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether de:d8:83:4a:24:fa brd ff:ff:ff:ff:ff:ff link-netnsid 25 39: vethc29d31d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 5a:e5:4b:aa:18:d3 brd ff:ff:ff:ff:ff:ff link-netnsid 26 41: veth1050fb7@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 26:e6:45:24:5b:0b brd ff:ff:ff:ff:ff:ff link-netnsid 28 42: vethc6b8f7a@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 46:cb:1e:f8:ff:ee brd ff:ff:ff:ff:ff:ff link-netnsid 29 44: veth00edd6d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether f2:7e:4f:d7:ce:26 brd ff:ff:ff:ff:ff:ff link-netnsid 31 67: vethae06ec59@if66: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master incusbr0 state UP group default qlen 1000 link/ether ee:4e:34:28:63:44 brd ff:ff:ff:ff:ff:ff link-netnsid 5 82: veth9da0b22@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether e2:95:29:eb:23:0a brd ff:ff:ff:ff:ff:ff link-netnsid 30 84: vethc41dbd7@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 6e:87:3e:51:59:f9 brd ff:ff:ff:ff:ff:ff link-netnsid 20 98: br-2634df5227f8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 7a:04:96:1b:61:7a brd ff:ff:ff:ff:ff:ff inet 172.18.0.1/16 brd 172.18.255.255 scope global br-2634df5227f8 valid_lft forever preferred_lft forever 99: veth6108f2f@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether 96:3c:67:bb:7b:06 brd ff:ff:ff:ff:ff:ff link-netnsid 9 100: veth8f3bc1e@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether e6:80:fe:b2:39:a5 brd ff:ff:ff:ff:ff:ff link-netnsid 10 101: veth80455b9@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether 1e:f1:c6:81:b7:0c brd ff:ff:ff:ff:ff:ff link-netnsid 12 102: vethd282c13@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether 4a:33:75:86:75:fe brd ff:ff:ff:ff:ff:ff link-netnsid 16 103: veth2270c1b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether 92:4f:1a:f4:7d:a7 brd ff:ff:ff:ff:ff:ff link-netnsid 17 104: vethe96ff62@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether 16:65:bd:0e:78:70 brd ff:ff:ff:ff:ff:ff link-netnsid 37 105: vethce3b02b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether 5e:c5:c0:50:49:a0 brd ff:ff:ff:ff:ff:ff link-netnsid 38 106: vethb77af69@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether d2:5f:a2:13:bf:a3 brd ff:ff:ff:ff:ff:ff link-netnsid 39 107: veth8aaa27b@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-2634df5227f8 state UP group default link/ether c6:f0:04:8b:a1:f1 brd ff:ff:ff:ff:ff:ff link-netnsid 40 136: veth6A2EnF@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lxcbr0 state UP group default qlen 1000 link/ether fe:df:b2:cf:34:db brd ff:ff:ff:ff:ff:ff link-netnsid 2 158: vethf4a74cc2@if157: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master incusbr0 state UP group default qlen 1000 link/ether 12:4c:02:5c:32:15 brd ff:ff:ff:ff:ff:ff link-netnsid 1 212: veth5809eb30@if211: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master incusbr0 state UP group default qlen 1000 link/ether 42:7c:14:d4:52:f1 brd ff:ff:ff:ff:ff:ff link-netnsid 7 226: vethfb5f3af@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether 1e:f9:2c:5f:f4:a4 brd ff:ff:ff:ff:ff:ff link-netnsid 4 248: veth163c0711@if247: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master incusbr0 state UP group default qlen 1000 link/ether 56:5f:e0:05:bb:7f brd ff:ff:ff:ff:ff:ff link-netnsid 24 250: vethc181a6d@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether aa:c3:8b:a7:24:ae brd ff:ff:ff:ff:ff:ff link-netnsid 22 252: veth83ded6c@if2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-mailcow state UP group default link/ether ce:a8:89:37:fc:74 brd ff:ff:ff:ff:ff:ff link-netnsid 0 user@debian:~$ sudo docker ps -a [sudo] password for user: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ef8857d8750b jitsi/jibri:stable "/init" 4 weeks ago Up 4 weeks docker-jitsi-meet-stable-9955-jibri-4 00a505e73990 jitsi/jibri:stable "/init" 4 weeks ago Up 4 weeks docker-jitsi-meet-stable-9955-jibri-1 f73424f5ad75 jitsi/jibri:stable "/init" 4 weeks ago Up 4 weeks docker-jitsi-meet-stable-9955-jibri-5 7b1114228acd jitsi/jibri:stable "/init" 4 weeks ago Up 4 weeks docker-jitsi-meet-stable-9955-jibri-3 97d06a315584 jitsi/jibri:stable "/init" 4 weeks ago Up 4 weeks docker-jitsi-meet-stable-9955-jibri-2 9ec60c2714da jitsi/web:stable "/init" 4 weeks ago Up 4 weeks 0.0.0.0:8000->80/tcp, [::]:8000->80/tcp, 0.0.0.0:32769->443/tcp, [::]:32769->443/tcp docker-jitsi-meet-stable-9955-web-1 3b268c83eebb jitsi/jvb:stable "/init" 4 weeks ago Up 4 weeks 127.0.0.1:8080->8080/tcp, 0.0.0.0:10000->10000/udp, [::]:10000->10000/udp docker-jitsi-meet-stable-9955-jvb-1 0407789c9d2b jitsi/jicofo:stable "/init" 4 weeks ago Up 4 weeks 127.0.0.1:8888->8888/tcp docker-jitsi-meet-stable-9955-jicofo-1 8aafa6dd09a6 jitsi/prosody:stable "/init" 4 weeks ago Up 4 weeks 5222/tcp, 5269/tcp, 5280/tcp, 5347/tcp docker-jitsi-meet-stable-9955-prosody-1 b9958b9112f0 ghcr.io/mailcow/watchdog:2.09 "/watchdog.sh" 3 months ago Up 4 weeks mailcowdockerized-watchdog-mailcow-1 3c9e72180bac ghcr.io/mailcow/acme:1.94 "/sbin/tini -g -- /s…" 3 months ago Up 2 months mailcowdockerized-acme-mailcow-1 6ef4395a733c ghcr.io/mailcow/nginx:1.05 "/docker-entrypoint.…" 3 months ago Up 2 months 0.0.0.0:8087->8087/tcp, [::]:8087->8087/tcp, 80/tcp, 0.0.0.0:8443->8443/tcp, [::]:8443->8443/tcp mailcowdockerized-nginx-mailcow-1 cb21341aa47e ghcr.io/mailcow/rspamd:2.4 "/docker-entrypoint.…" 3 months ago Up 24 hours mailcowdockerized-rspamd-mailcow-1 252c44735dc2 mcuadros/ofelia:latest "/usr/bin/ofelia dae…" 3 months ago Up 2 months mailcowdockerized-ofelia-mailcow-1 9ee227f29cb7 ghcr.io/mailcow/phpfpm:1.94 "/docker-entrypoint.…" 3 months ago Up 2 months 9000/tcp mailcowdockerized-php-fpm-mailcow-1 c34bde9b2876 ghcr.io/mailcow/dovecot:2.35 "/docker-entrypoint.…" 3 months ago Up 2 months 0.0.0.0:110->110/tcp, [::]:110->110/tcp, 0.0.0.0:143->143/tcp, [::]:143->143/tcp, 0.0.0.0:993->993/tcp, [::]:993->993/tcp, 0.0.0.0:995->995/tcp, [::]:995->995/tcp, 0.0.0.0:4190->4190/tcp, [::]:4190->4190/tcp, 127.0.0.1:19991->12345/tcp mailcowdockerized-dovecot-mailcow-1 5e3f8af58ec6 ghcr.io/mailcow/postfix:1.81 "/docker-entrypoint.…" 3 months ago Up 4 weeks 0.0.0.0:25->25/tcp, [::]:25->25/tcp, 0.0.0.0:465->465/tcp, [::]:465->465/tcp, 0.0.0.0:587->587/tcp, [::]:587->587/tcp, 588/tcp mailcowdockerized-postfix-mailcow-1 82b545993e14 mariadb:10.11 "docker-entrypoint.s…" 3 months ago Up 2 months 127.0.0.1:13306->3306/tcp mailcowdockerized-mysql-mailcow-1 3658a74a3001 ghcr.io/mailcow/postfix-tlspol:1.0 "/docker-entrypoint.…" 3 months ago Up 2 months mailcowdockerized-postfix-tlspol-mailcow-1 f3d4b8974c23 ghcr.io/mailcow/clamd:1.71 "/sbin/tini -g -- /c…" 3 months ago Up 2 months (healthy) mailcowdockerized-clamd-mailcow-1 f34574101473 redis:7.4.6-alpine "/bin/sh /redis-conf…" 3 months ago Up 2 months 127.0.0.1:7654->6379/tcp mailcowdockerized-redis-mailcow-1 12beef85595a memcached:alpine "docker-entrypoint.s…" 3 months ago Up 2 months 11211/tcp mailcowdockerized-memcached-mailcow-1 1410268219ba ghcr.io/mailcow/dockerapi:2.11 "/bin/sh /app/docker…" 3 months ago Up 2 months mailcowdockerized-dockerapi-mailcow-1 a15b629f3645 ghcr.io/mailcow/olefy:1.15 "python3 -u /app/ole…" 3 months ago Up 2 months mailcowdockerized-olefy-mailcow-1 9725ac715566 ghcr.io/mailcow/sogo:1.136 "/docker-entrypoint.…" 3 months ago Up 3 days mailcowdockerized-sogo-mailcow-1 032128623ab7 ghcr.io/mailcow/netfilter:1.63 "/bin/sh -c /app/doc…" 3 months ago Up 2 months mailcowdockerized-netfilter-mailcow-1 ebbc3891e944 ghcr.io/mailcow/unbound:1.24 "/docker-entrypoint.…" 3 months ago Up 10 days (healthy) 53/tcp, 53/udp mailcowdockerized-unbound-mailcow-1 c59e388e9638 ghcr.io/requarks/wiki:2 "docker-entrypoint.s…" 4 months ago Exited (0) 2 months ago wikijs-wiki-1 6a298ad1597b postgres:17-alpine "docker-entrypoint.s…" 4 months ago Exited (0) 2 months ago wikijs-db-1 7fb4f9c3a817 portainer/portainer-ce "/portainer" 4 months ago Up 2 months 8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, [::]:9000->9000/tcp portainer ac975655c125 hello-world "/hello" 5 months ago Exited (0) 3 months ago jolly_thompson user@debian:~$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 13 (trixie)" NAME="Debian GNU/Linux" VERSION_ID="13" VERSION="13 (trixie)" VERSION_CODENAME=trixie DEBIAN_VERSION_FULL=13.2 ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" user@debian:~$ sudo docker -h Flag shorthand -h has been deprecated, use --help Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Common Commands: run Create and run a new container from an image exec Execute a command in a running container ps List containers build Build an image from a Dockerfile bake Build from a file pull Download an image from a registry push Upload an image to a registry images List images login Authenticate to a registry logout Log out from a registry search Search Docker Hub for images version Show the Docker version information info Display system-wide information Management Commands: builder Manage builds buildx* Docker Buildx compose* Docker Compose container Manage containers context Manage contexts image Manage images manifest Manage Docker image manifests and manifest lists network Manage networks plugin Manage plugins system Manage Docker volume Manage volumes Swarm Commands: swarm Manage Swarm Commands: attach Attach local standard input, output, and error streams to a running container commit Create a new image from a container's changes cp Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes to files or directories on a container's filesystem events Get real time events from the server export Export a container's filesystem as a tar archive history Show the history of an image import Import the contents from a tarball to create a filesystem image inspect Return low-level information on Docker objects kill Kill one or more running containers load Load an image from a tar archive or STDIN logs Fetch the logs of a container pause Pause all processes within one or more containers port List port mappings or a specific mapping for the container rename Rename a container restart Restart one or more containers rm Remove one or more containers rmi Remove one or more images save Save one or more images to a tar archive (streamed to STDOUT by default) start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop one or more running containers tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE top Display the running processes of a container unpause Unpause all processes within one or more containers update Update configuration of one or more containers wait Block until one or more containers stop, then print their exit codes Global Options: --config string Location of client config files (default "/root/.docker") -c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with "docker context use") -D, --debug Enable debug mode -H, --host string Daemon socket to connect to -l, --log-level string Set the logging level ("debug", "info", "warn", "error", "fatal") (default "info") --tls Use TLS; implied by --tlsverify --tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem") --tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem") --tlskey string Path to TLS key file (default "/root/.docker/key.pem") --tlsverify Use TLS and verify the remote -v, --version Print version information and quit Run 'docker COMMAND --help' for more information on a command. For more help on how to use Docker, head to https://docs.docker.com/go/guides/ user@debian:~$ sudo docker -v Docker version 29.1.3, build f52814d user@debian:~$ -
Да, твой сервер на Debian 13 (Trixie) вполне подойдёт для переноса и запуска старого OpenVidu 2.19.0 с Kurento 6.16.0 в Docker.
Это не идеальный вариант (как Ubuntu 20.04), но шансы на успех высокие — 90%+, особенно учитывая, что всё в контейнерах и используетnetwork_mode: host.Почему должно работать
- Docker установлен свежий (29.1.3) — официально поддерживает Debian 13 (Trixie), репозиторий Docker его видит как stable.
- Старые образы совместимы — Kurento 6.16.0 и OpenVidu 2.19.0 (2019–2021) основаны на старых Ubuntu внутри (16.04/18.04), glibc/kernel хоста (Debian 13: glibc 2.41+, kernel 6.12 LTS) не ломают их. Нет известных критических проблем с этим стеком на новых Debian (поиски по GitHub/issues/форумам за 2025–2026 не выявили фатальных багов для Kurento/OpenVidu на Trixie).
- network_mode: host — твоя конфигурация обходит большинство сетевых сюрпризов Docker (iptables/nftables изменения в новых ядрах).
- Публичный IP есть — 91.221.70.18 на enp0s31f6 — это хорошо для WebRTC/ICE/STUN/TURN (Kurento и coturn будут использовать его напрямую).
Что уже хорошо на сервере
- Docker работает (ps -a показывает кучу контейнеров: Jitsi, Mailcow, Portainer и т.д.).
- Порты частично заняты (Jitsi: 10000/udp, 8000/tcp → 32769/tcp; Mailcow: 25,465,587,993 и т.д.).
- Много bridge-сетей (docker0, br-mailcow, br-2634df... и т.д.) — но поскольку OpenVidu использует host-сеть, конфликтов с ними не будет.
Потенциальные проблемы и как их обойти (на Debian 13 чаще, чем на 12)
-
iptables/nftables конфликт (новое ядро 6.12 использует nftables по умолчанию):
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacyПерезагрузи Docker после:
sudo systemctl restart docker -
Ulimits для KMS (Kurento любит много файлов/процессов):
В docker-compose.yml в секции kms добавь/увеличь:ulimits: nofile: soft: 65535 hard: 65535 nproc: soft: 65535 hard: 65535Затем
docker compose up -d --force-recreate kms -
Порты конфликтуют:
- OpenVidu: 4443 (сервер), 3478/udp (coturn), 80/443 (nginx-proxy), RTP-диапазон ~40000–57000/udp.
- Jitsi уже занимает 10000/udp и HTTPS на 32769.
- Mailcow — SMTP/IMAP/POP3/HTTPS.
→ Убедись, что 4443, 3478/udp, 80/443 свободны (netstat/ss -tuln | grep ':80|:443|:4443|:3478').
Если заняты — останови конфликтующие сервисы временно или перенеси OpenVidu на другие порты (но это сломает клиентский код → лучше освободить).
-
Let's Encrypt сертификаты:
- Перенеси папку
certificates/→ но если IP/домен изменился, certbot в nginx-контейнере может не обновить.
→ В.envвременно поставьCERTIFICATE_TYPE=selfsignedдля теста, потом верниletsencryptи перезапусти.
- Перенеси папку
-
Firewall (ufw или nftables):
sudo ufw allow 4443/tcp sudo ufw allow 3478/udp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow from any to any port 40000:57000 proto udp # для RTP, если нужно
План действий (коротко)
- Скопируй всю
/opt/openviduс старого сервера (rsync -a или tar). - Перенеси образы (
docker save ... -o openvidu.tar→docker load -i openvidu.tar). - Поправь
.env:DOMAIN_OR_PUBLIC_IP=91.221.70.18(или media2.nbics.net, если DNS на него смотрит). - Выполни фиксы выше (iptables-legacy, ulimits).
cd /opt/openvidu && sudo docker compose up -d- Смотри логи:
sudo docker compose logs -f kms openvidu-server coturn nginx- KMS должен быть healthy.
- OpenVidu-server: "OpenVidu Server started" + listening on 5443 (внутри).
- Проверь:
curl -k https://91.221.70.18:4443(или твой домен) → должен ответить OK или status.
Если после запуска KMS крашит (high CPU, segfault) или WebRTC не работает — пришли логи kms/openvidu-server, разберём. Но в целом — сервер годный, просто новый дистрибутив требует чуть больше внимания к сетевым/лимитам вещам. Удачи!
-
Да, на Debian 11 (Bullseye) тоже можно запустить твой старый OpenVidu 2.19.0 с Kurento 6.16.0 в Docker — и это даже один из самых "безопасных" вариантов по совместимости среди всех, о которых мы говорили.
Debian 11 вышел в августе 2021 года (как раз примерно в то время, когда твоя версия OpenVidu 2.19.0 была актуальной), так что стек ближе по времени к оригинальной разработке. Многие люди успешно запускали похожие медиа-сервера на Bullseye без проблем.
Текущий статус Debian 11 (на март 2026)
- Полная поддержка закончилась в августе 2024.
- Сейчас идёт LTS (Long Term Support) от Debian LTS-команды — до 31 августа 2026 (ещё ~5 месяцев).
- В LTS получают только критические security-фиксы и важные баги — обычные обновления пакетов не приходят.
- Docker официально поддерживается на Debian 11 (oldoldstable) — свежие версии (до 29.x+) ставятся из репозитория Docker без проблем.
Сравнение с другими вариантами (для твоего legacy-стека)
ОС Совместимость с OpenVidu 2.19 / Kurento 6.16 Актуальность поддержки (март 2026) Риск проблем Рекомендация Debian 11 (Bullseye) Отличная (самая близкая по времени) LTS до августа 2026 (критические фиксы) Минимальный Топ-1 для точного переноса без сюрпризов Ubuntu 20.04 Отличная Полная поддержка до апреля 2025 Минимальный Тоже топ-уровень Debian 12 (Bookworm) Хорошая Полная до июня 2026 + LTS до 2028 Низкий Хороший баланс Debian 13 (Trixie) Хорошая, но чуть больше шансов на мелкие баги Полная до 2028 + LTS до 2030 Низкий-средний Нормально, но новее Ubuntu 22.04 Хорошая Полная до апреля 2027 Средний Можно, но не идеал Debian 11 — один из лучших выборов именно для твоего случая, потому что:
- glibc/kernel ближе к тому, что было при разработке Kurento 6.16.0 (меньше шансов на несовместимость libs внутри контейнера).
- Docker ставится свежий (29.x), но образы 2.19.0 работают стабильно.
network_mode: hostобходит большинство изменений в новых ядрах (nftables и т.д.).
Что нужно на Debian 11
-
Установка Docker (если ещё не стоит) — официальный способ:
sudo apt update sudo apt install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/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/debian bullseye stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -
Перенос — стандартный:
- Скопируй
/opt/openviduцеликом. docker save→docker loadобразов.- В
.env:DOMAIN_OR_PUBLIC_IP=91.221.70.18(или домен). docker compose up -d
- Скопируй
-
Фиксы (могут не понадобиться, но проверь):
- iptables-legacy (если сеть глючит):
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy - ulimits для kms (добавь в docker-compose.yml, как раньше).
- Порты: проверь
ss -tuln | grep '80\|443\|4443\|3478'— освободи, если заняты Jitsi/Mailcow. - Firewall:
ufw allowнужные порты + RTP-диапазон.
- iptables-legacy (если сеть глючит):
Итог
- Debian 11 — пойдёт отлично, и это один из самых предсказуемых вариантов для твоего старого OpenVidu (лучше, чем 13-й в плане "без сюрпризов").
- Минус только в том, что через 5 месяцев (август 2026) LTS закончится → потом только коммерческий ELTS (платный) или апгрейд до 12/13.
- Если сервер уже на 11-й — используй её смело. После запуска просто проверь логи kms и openvidu-server + доступ к :4443.
Если решишь ставить и будут логи/ошибки — кидай, помогу. Удачи с миграцией!
-
Для Ubuntu 20.04 такая инструкция пойдёт? # Обновите список пакетов и установите необходимые зависимости: sudo apt-get update sudo apt-get install ca-certificates curl gnupg # Создайте директорию для ключей apt и добавьте официальный GPG-ключ Docker: sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Добавьте Docker репозиторий в источники apt: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Обновите список пакетов и установите Docker: sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Проверьте, что Docker установлен корректно, запустив тестовый контейнер: sudo docker run hello-world -
Нет, твоя инструкция не подойдёт напрямую для Ubuntu 20.04, потому что она скопирована/адаптирована под Debian (там
https://download.docker.com/linux/debianи ключ сохраняется как.ascбез dearmor).Для Ubuntu (включая 20.04 Focal) официальная инструкция Docker отличается:
- Репозиторий:
https://download.docker.com/linux/ubuntu - Ключ обычно сохраняют в dearmored-формате (
.gpg), а не.asc. - Формат sources.list теперь часто использует новый
.sourcesфайл (deb822-style), но на 20.04 старый/etc/apt/sources.list.d/docker.listтоже работает. - Ubuntu 20.04 всё ещё поддерживается Docker Engine (хоть и не в списке "новейших" LTS в 2026 году — Docker продолжает предоставлять пакеты для focal через репозиторий).
Правильная инструкция для Ubuntu 20.04 (2025–2026 годы, по актуальным официальным докам Docker)
# 1. Удалить старые/конфликтующие пакеты (если были) sudo apt-get remove docker docker-engine docker.io containerd runc podman-docker docker-compose docker-doc docker-compose-v2 # 2. Обновить и установить зависимости sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release # 3. Создать директорию для ключей sudo install -m 0755 -d /etc/apt/keyrings # 4. Добавить официальный GPG-ключ Docker (dearmor → .gpg) sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # 5. Добавить репозиторий Docker (старый стиль list-файла — надёжнее на 20.04) 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 # Альтернатива: новый deb822-формат (если хочешь как в свежих доках) # sudo tee /etc/apt/sources.list.d/docker.sources <<EOF # Types: deb # URIs: https://download.docker.com/linux/ubuntu # Suites: $(lsb_release -cs) # Components: stable # Signed-By: /etc/apt/keyrings/docker.gpg # EOF # 6. Обновить индекс пакетов и установить Docker sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 7. Добавить текущего пользователя в группу docker (чтобы без sudo) sudo usermod -aG docker $USER newgrp docker # или перелогинься # 8. Проверить sudo docker run hello-world docker --version docker compose version # должен показать v2.xПочему твоя инструкция не сработает
linux/debianвместоlinux/ubuntu→ пакеты не найдутся или будут несовместимы.- Ключ как
.ascбез--dearmor→ в Ubuntu предпочитают бинарный.gpg(dearmored). VERSION_CODENAMEиз/etc/os-release— ок, но лучшеlsb_release -csдля надёжности на старых Ubuntu.
Дополнительные советы для твоего случая (OpenVidu 2.19 на Ubuntu 20.04)
- После установки Docker — просто копируй папку
/opt/openvidu, загружай образы (docker load), поправляй.envиdocker compose up -d. - Если возникнут ошибки с GPG или репозиторием — проверь, что
lsb_release -csвозвращаетfocal. - Ubuntu 20.04 уже в конце поддержки (апрель 2025), но Docker пакеты для неё продолжают выходить (проверено по репозиторию на 2026 год).
Если выполнишь эти шаги и будут ошибки — пришли вывод
apt updateили логов установки, помогу поправить. Удачи! - Репозиторий:
-
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
После этого сразу поймём, где именно засада.
-