Чек-лист интегратора по установке 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 на тестовом стенде.
- [ ] Настроить мониторинг свободного места.
- [ ] Настроить мониторинг
vgserversystemd service. - [ ] Настроить сбор логов или процедуру выгрузки логов для поддержки.
15. Финальная приемка
Перед передачей заказчику:
- [ ] Домен открывается по HTTPS без ошибок сертификата.
- [ ] Администратор заказчика может войти в админку.
- [ ] Созданы тестовые пользователи.
- [ ] Тестовая конференция работает из web-клиента.
- [ ] Звук и видео работают минимум между двумя разными сетями.
- [ ] UDP-порты проверены.
- [ ] Лицензия установлена или зафиксирован тестовый режим.
- [ ] Installation ID передан заказчику или правообладателю для выпуска ключа.
- [ ] Настроено продление TLS-сертификата.
- [ ] Настроен backup.
- [ ] Заказчику переданы адрес сервера, учетные данные администратора, инструкция по пользователям и список открытых портов.
16. Данные для акта/отчета интегратора
Зафиксируйте в отчете:
- [ ] Дата установки.
- [ ] Версия VideoGrace Server.
- [ ] ОС и параметры сервера.
- [ ] Домен и IP-адрес.
- [ ] Тип TLS-сертификата и дата окончания.
- [ ] Открытые TCP/UDP-порты.
- [ ] Значение
Network.Address. - [ ] Диапазон WebRTC UDP ports.
- [ ] Количество AV-трансляторов.
- [ ] Installation ID.
- [ ] Статус лицензии.
- [ ] Результаты тестовой конференции.
- [ ] Ответственный администратор заказчика.