Skip to content

Чек-лист интегратора по установке VideoGrace Server

Сценарий: установка VideoGrace Server для организации примерно на 100 пользователей.
Цель: подготовить сервер, домен, сертификаты, сетевые правила, выполнить первичную настройку и передать систему заказчику в рабочем состоянии.

1. Исходные данные от заказчика

До начала работ получите и зафиксируйте:

  • [ ] Домен или поддомен для сервера, например vcs.example.ru.
  • [ ] Тип размещения: локальный сервер, виртуальная машина, VPS, Docker.
  • [ ] Внешний IP-адрес или внутренний адрес, по которому клиенты будут подключаться к серверу.
  • [ ] Нужно ли подключение из интернета или только из внутренней сети.
  • [ ] Тип сертификата: Let's Encrypt, корпоративный УЦ, покупной TLS-сертификат, автогенерируемый сертификат VideoGrace.
  • [ ] Адрес электронной почты администратора для сертификата и уведомлений.
  • [ ] Данные первого администратора VideoGrace.
  • [ ] Требования к SSO/LDAP/AD, если авторизация должна быть внешней.
  • [ ] Нужна ли запись конференций и где хранить записи.
  • [ ] Нужны ли push-уведомления и VAPID-ключи.
  • [ ] Нужна ли работа web-клиента из браузеров за пределами локальной сети.

2. Рекомендуемая конфигурация сервера на 100 пользователей

Минимальная practical-конфигурация зависит от того, сколько пользователей одновременно участвует в конференциях и сколько камер включено.

Для типовой организации до 100 пользователей:

  • [ ] CPU: от 8 vCPU.
  • [ ] RAM: от 8 ГБ, лучше 16 ГБ при активной эксплуатации.
  • [ ] Диск: SSD, от 50 ГБ для сервера и БД; отдельно рассчитать место под записи.
  • [ ] Сеть: 1 Гбит/с uplink для production, особенно если планируются большие встречи.
  • [ ] ОС: актуальный Linux-дистрибутив, например Ubuntu 22.04/24.04, Astra Linux, RedOS либо другой поддерживаемый дистрибутив.
  • [ ] Время сервера синхронизируется через NTP.

Важное ограничение: режим “все видят всех” на 100 человек с включенными камерами не является типовым расчетным режимом для одного 1G-сервера. Для больших встреч используйте ограничение активных камер, асимметричные конференции, канал/вебинар или консолидатор.

3. DNS и домен

Если сервер доступен по доменному имени:

  • [ ] Создать A-запись домена на IPv4-адрес сервера.
  • [ ] Создать AAAA-запись только если IPv6 реально настроен и доступен.
  • [ ] Проверить DNS:
dig +short vcs.example.ru
  • [ ] Убедиться, что домен в DNS совпадает с будущим Network.Address в конфигурации VideoGrace.
  • [ ] Убедиться, что домен совпадает с Common Name / Subject Alternative Name в TLS-сертификате.

4. Сетевые порты и firewall

Откройте порты в firewall ОС и, если используется облако, в security group облачного провайдера.

Назначение Протокол Порт по умолчанию Обязательно
HTTP-01 challenge Let's Encrypt TCP 80 Только для выпуска/продления Let's Encrypt
Web-клиент, админка, API, WSS TCP 443 Да
Media core / AV-трансляторы UDP 5060 или диапазон из vgserver.conf Да
WebRTC ICE/DTLS/SRTP UDP 43000-43999 Да для браузерных клиентов

На Ubuntu/Debian с ufw:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 5060/udp
sudo ufw allow 43000:43999/udp
sudo ufw status

Проверьте:

  • [ ] 443/tcp доступен клиентам.
  • [ ] 5060/udp или настроенный диапазон UDP доступен клиентам.
  • [ ] 43000-43999/udp доступен клиентам.
  • [ ] Если сервер за NAT, проброс портов сделан на внутренний адрес сервера.
  • [ ] UDP-порты проброшены без изменения номеров, если это возможно.
  • [ ] Нет другого процесса, занимающего 443/tcp.

5. Установка VideoGrace Server

Для Linux-установки:

wget https://videograce.ru/download/VideoGraceServer-3.0.xxxxxx-x64.tar.bz2
tar vxf VideoGraceServer-3.0.xxxxxx-x64.tar.bz2
cd VideoGraceServer-3.0.xxxxxx-x64
sudo ./install.sh

После установки:

  • [ ] Сервис установлен в /opt/VideoGrace/Server/.
  • [ ] Systemd-служба называется vgserver.
  • [ ] Сервис запущен:
sudo systemctl status vgserver --no-pager
  • [ ] Логи открываются:
sudo journalctl -u vgserver -n 100 --no-pager

6. Настройка TLS-сертификата

Вариант A: публичный домен и Let's Encrypt

Установите certbot:

sudo apt update
sudo apt install -y certbot

Выпустите сертификат:

sudo certbot certonly --standalone -d vcs.example.ru --agree-tos -m admin@example.ru --no-eff-email

Проверьте наличие файлов:

/etc/letsencrypt/live/vcs.example.ru/fullchain.pem
/etc/letsencrypt/live/vcs.example.ru/privkey.pem

Настройте автопродление и перезапуск VideoGrace после продления:

systemctl list-timers | grep certbot
sudo certbot renew --dry-run
sudo mkdir -p /etc/letsencrypt/renewal-hooks/deploy
sudo tee /etc/letsencrypt/renewal-hooks/deploy/restart-vgserver.sh >/dev/null <<'EOF'
#!/bin/sh
systemctl restart vgserver
EOF
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/restart-vgserver.sh

Вариант B: корпоративный УЦ или покупной сертификат

Подготовьте:

  • [ ] Полную цепочку сертификатов в PEM-файле.
  • [ ] Приватный ключ в PEM-файле.
  • [ ] Сертификат выпущен на тот же домен, который будет указан в Network.Address.
  • [ ] Клиентские устройства доверяют корневому/промежуточному сертификату УЦ.

Вариант C: закрытый контур без доверенного УЦ

Можно использовать автогенерируемый сертификат VideoGrace или внутренний корпоративный CA.

  • [ ] Пользователям и администраторам нужно установить доверие к корневому сертификату.
  • [ ] Для браузерного доступа предпочтительнее корпоративный CA, которому доверяют рабочие станции.
  • [ ] Для внешнего доступа через интернет предпочтительнее публичный TLS-сертификат.

7. Настройка vgserver.conf

Откройте конфигурацию:

sudo nano /opt/VideoGrace/Server/vgserver.conf

Минимальный production-набор:

[Network]
Address = vcs.example.ru
BindAddress = 0.0.0.0
Port = 443
UseIPv6 = 0

[Security]
Cert = /etc/letsencrypt/live/vcs.example.ru/fullchain.pem
PrivKey = /etc/letsencrypt/live/vcs.example.ru/privkey.pem

[Translator]
StartPort = 5060
Count = 8
MaxOutputBitrate = 0

[WebRTC]
BindAddress = 0.0.0.0
AdvertiseAddress = 203.0.113.10
PortRangeBegin = 43000
PortRangeEnd = 43999

Проверьте:

  • [ ] Address совпадает с доменом пользователей и сертификатом.
  • [ ] BindAddress = 0.0.0.0, если сервер должен слушать все интерфейсы.
  • [ ] Translator.Count соответствует выделенным CPU-ядрам или расчетной нагрузке.
  • [ ] WebRTC.PortRangeBegin/End совпадают с открытым UDP-диапазоном firewall.
  • [ ] AdvertiseAddress указан именно как IP-адрес, доступный клиентам, а не как доменное имя.
  • [ ] Если сервер за NAT, в AdvertiseAddress указан внешний публичный IP, на который проброшен WebRTC UDP range.

После изменения:

sudo systemctl restart vgserver
sudo journalctl -u vgserver -n 100 --no-pager

8. Проверка HTTPS и сертификата

Проверить из внешней сети:

curl -I https://vcs.example.ru
openssl s_client -connect vcs.example.ru:443 -servername vcs.example.ru </dev/null | openssl x509 -noout -subject -issuer -dates

Проверить в браузере:

  • [ ] https://vcs.example.ru открывается без предупреждений TLS.
  • [ ] Админка доступна.
  • [ ] Web-клиент загружается.
  • [ ] Страница установки клиента доступна, если используется.

Если браузер показывает ошибку сертификата:

  • [ ] Проверить, что сертификат выпущен на правильный домен.
  • [ ] Проверить, что в конфигурации указан fullchain.pem, а не только leaf-сертификат.
  • [ ] Проверить, что VideoGrace перечитал конфигурацию после restart.
  • [ ] Проверить, что нет reverse proxy или другого сервиса перед VideoGrace.

9. Первичная административная настройка

В административном интерфейсе:

  • [ ] Указать название организации.
  • [ ] Указать публичный адрес сервера.
  • [ ] Проверить порт командного соединения.
  • [ ] Проверить диапазон UDP-портов трансляторов.
  • [ ] Проверить WebRTC UDP range.
  • [ ] Указать email администратора.
  • [ ] Скопировать Installation ID.
  • [ ] Получить и установить лицензионный ключ, если требуется.
  • [ ] Проверить количество доступных каналов и срок действия лицензии.
  • [ ] Создать или проверить учетную запись администратора.
  • [ ] Настроить регистрацию пользователей или импорт/интеграцию с внешним каталогом, если требуется.

10. Пользователи, группы и конференции

Для организации около 100 пользователей:

  • [ ] Создать базовые группы пользователей.
  • [ ] Завести тестовую группу для пилотной эксплуатации.
  • [ ] Создать минимум одну постоянную тестовую конференцию.
  • [ ] Создать одну конференцию для приемки качества связи.
  • [ ] Проверить права владельца, модератора и обычного участника.
  • [ ] Проверить запрет/разрешение самостоятельного включения микрофона и камеры, если используется режим выступлений.
  • [ ] Проверить работу чата конференции и постоянных чатов.

11. Проверка клиентов

Проверьте минимум:

  • [ ] Web-клиент в Chrome/Chromium.
  • [ ] Web-клиент в Safari, если есть пользователи macOS/iOS.
  • [ ] Web-клиент в Firefox, если он заявлен как поддерживаемый в проекте.
  • [ ] Нативный клиент Windows, если используется.
  • [ ] Нативный клиент Linux, если используется.
  • [ ] Подключение из внутренней сети.
  • [ ] Подключение из внешней сети или VPN, если требуется.
  • [ ] Подключение с мобильной сети, если мобильные пользователи входят в сценарий.

Для каждого клиента:

  • [ ] Вход в систему.
  • [ ] Получение списка контактов/конференций.
  • [ ] Вход в конференцию.
  • [ ] Включение/выключение микрофона.
  • [ ] Включение/выключение камеры.
  • [ ] Прием удаленного звука.
  • [ ] Прием удаленного видео.
  • [ ] Отправка сообщения в чат.
  • [ ] Выход из конференции.
  • [ ] Logout из клиента, online-статус гаснет без долгой задержки.

12. Проверка медиа и сети

Проведите тестовую конференцию:

  • [ ] 2 участника: звук и видео в обе стороны.
  • [ ] 5-10 участников: несколько камер, чат, выключение/включение микрофона.
  • [ ] 20+ участников или нагрузочный сценарий, если это входит в приемку.
  • [ ] Проверить, что web-клиент использует RTC/WebRTC, а не постоянно уходит в fallback.
  • [ ] Проверить стабильность при кратковременной смене сети у одного участника, если это критично.
  • [ ] Проверить качество звука на мобильных устройствах.
  • [ ] Проверить, что UDP не блокируется корпоративным firewall.

Контрольные признаки проблем:

  • Если видео не стартует, но WSS/страница открываются, часто закрыт UDP range WebRTC.
  • Если внешние клиенты не видят медиа, проверить NAT/proxy и AdvertiseAddress.
  • Если TLS доверенный только внутри домена, внешние устройства без корпоративного CA будут видеть ошибку сертификата.
  • Если при 100 участниках включено много камер, исходящий канал сервера может стать узким местом.

13. Запись, транскрибация и дополнительные сервисы

Если используются сервисы записи, транскрибации или CAN-интеграции:

  • [ ] Настроить JWT и сервисные учетные записи в разделе JWT и сервисные учетные записи; без JWT recorder/transcriber/CAN worker не сможет авторизоваться и работать.
  • [ ] Проверить, что у сервисной учетной записи есть права на подключение к нужным конференциям и выполнение сервисной задачи.
  • [ ] Включить запись в настройках, если она поставляется в составе проекта.
  • [ ] Проверить путь хранения записей.
  • [ ] Проверить права записи на каталог.
  • [ ] Настроить ротацию/архивацию записей.
  • [ ] Проверить CAN service token.
  • [ ] Запустить recorder/transcriber worker.
  • [ ] Запустить тестовую запись.
  • [ ] Проверить завершение задачи после окончания конференции.

14. Резервное копирование и обслуживание

Минимальный backup-набор:

  • [ ] Каталог баз данных: /opt/VideoGrace/Server/db.
  • [ ] Конфигурация: /opt/VideoGrace/Server/vgserver.conf.
  • [ ] TLS-сертификаты или данные для их повторного выпуска.
  • [ ] Каталог записей, если записи критичны.
  • [ ] Каталог storage, если используется файловое хранилище вложений.

Рекомендации:

  • [ ] Настроить ежедневный backup БД.
  • [ ] Проверить восстановление backup на тестовом стенде.
  • [ ] Настроить мониторинг свободного места.
  • [ ] Настроить мониторинг vgserver systemd service.
  • [ ] Настроить сбор логов или процедуру выгрузки логов для поддержки.

15. Финальная приемка

Перед передачей заказчику:

  • [ ] Домен открывается по HTTPS без ошибок сертификата.
  • [ ] Администратор заказчика может войти в админку.
  • [ ] Созданы тестовые пользователи.
  • [ ] Тестовая конференция работает из web-клиента.
  • [ ] Звук и видео работают минимум между двумя разными сетями.
  • [ ] UDP-порты проверены.
  • [ ] Лицензия установлена или зафиксирован тестовый режим.
  • [ ] Installation ID передан заказчику или правообладателю для выпуска ключа.
  • [ ] Настроено продление TLS-сертификата.
  • [ ] Настроен backup.
  • [ ] Заказчику переданы адрес сервера, учетные данные администратора, инструкция по пользователям и список открытых портов.

16. Данные для акта/отчета интегратора

Зафиксируйте в отчете:

  • [ ] Дата установки.
  • [ ] Версия VideoGrace Server.
  • [ ] ОС и параметры сервера.
  • [ ] Домен и IP-адрес.
  • [ ] Тип TLS-сертификата и дата окончания.
  • [ ] Открытые TCP/UDP-порты.
  • [ ] Значение Network.Address.
  • [ ] Диапазон WebRTC UDP ports.
  • [ ] Количество AV-трансляторов.
  • [ ] Installation ID.
  • [ ] Статус лицензии.
  • [ ] Результаты тестовой конференции.
  • [ ] Ответственный администратор заказчика.