Документация для установки и экспертной проверки программного обеспечения
Документ описывает состав экземпляра АПК «Верста», требования к тестовой среде, развертывание серверной части и порядок предоставления удаленного доступа эксперту.
root, пароль или SSH-ключ, а также реквизиты веб-портала передаются эксперту в закрытом приложении к заявлению. Секретные реквизиты не публикуются на сайте.1. Назначение тестового экземпляра
Тестовый экземпляр предназначен для проверки состава, развертывания и функционирования АПК «Верста». Он размещается в изолированной среде, не содержит действующих персональных данных и не взаимодействует с промышленными камерами, уведомлениями и учетными записями.
Эксперт получает доступ к операционной системе тестового сервера с максимальными привилегиями и может проверить расположение файлов, состав служб, структуру базы данных, журналы, запуск и остановку компонентов.
2. Состав программного обеспечения
| Компонент | Назначение | Расположение в тестовой среде |
|---|---|---|
| Веб-приложение PHP | Пользовательский интерфейс, API, разграничение доступа, отчеты и управление объектами | /var/www/versta |
| База данных MariaDB или MySQL | Хранение пользователей, камер, событий, снимков, моделей и телеметрии | База yotabit_ai |
| Python-агент | Получение конфигурации, отправка состояния, снимков и телеметрии | /opt/yotabit-agent |
| MediaMTX | Проксирование тестовых RTSP- и HLS-потоков | /opt/yotabit-agent/mediamtx |
| Службы systemd | Автоматический запуск и контроль агента и MediaMTX | /etc/systemd/system |
| SQL-сценарии | Создание схемы и применение изменений базы данных | /var/www/versta/database |
3. Требования к тестовой среде
| Параметр | Минимальное значение | Рекомендуемое значение |
|---|---|---|
| Операционная система | Debian GNU/Linux 12, 64-разрядная редакция | |
| Процессор | 2 виртуальных ядра | 4 виртуальных ядра |
| Оперативная память | 4 ГБ | 8 ГБ |
| Дисковое пространство | 20 ГБ без архива медиаданных | 40 ГБ и более |
| Сеть | HTTPS к веб-порталу, VPN и SSH для экспертного доступа | |
| Браузер | Актуальная версия Chromium, Microsoft Edge, Mozilla Firefox или эквивалентного браузера | |
Для воспроизведения видео и формирования снимков необходим ffmpeg. Объем диска для медиаматериалов определяется количеством камер, периодичностью снимков и сроком хранения.
4. Состав установочного комплекта
Эксперту предоставляется архив установочных файлов либо уже развернутый изолированный экземпляр. Комплект содержит:
- каталоги
assets,config,database,docs,distr,srcиviews; - точку входа
index.php; - SQL-файлы схемы и тестовой базы;
- Python-агент
distr/agent.py; - бинарный файл и конфигурацию MediaMTX;
- unit-файлы systemd;
- перечень сторонних компонентов, версий и лицензий;
- контрольную сумму архива, указанную в закрытом приложении к заявлению.
Все необходимые файлы и используемые образы включаются в комплект. Во время экспертной проверки программное обеспечение не должно зависеть от загрузки закрытых компонентов из внешних репозиториев.
5. Установка системных компонентов
Команды выполняются пользователем с правами root на подготовленной системе Debian GNU/Linux 12.
apt update apt install -y nginx mariadb-server \ php-fpm php-cli php-mysql php-curl php-mbstring \ python3 python3-requests ffmpeg unzip curl
Проверка установленных компонентов:
php -v python3 --version mysql --version ffmpeg -version nginx -v
6. Размещение веб-приложения
- Создать каталог приложения:
install -d -o www-data -g www-data /var/www/versta
- Распаковать установочный архив в
/var/www/versta. - Назначить владельца файлов:
chown -R www-data:www-data /var/www/versta
find /var/www/versta -type d -exec chmod 755 {} \;
find /var/www/versta -type f -exec chmod 644 {} \;
- Создать рабочую копию конфигурации
config/config.phpи указать локальные реквизиты тестовой базы. - Не размещать пароли, токены и ключи в общедоступной документации и журналах.
7. Подготовка базы данных
Создать базу и отдельного пользователя:
mysql -u root -p
CREATE DATABASE yotabit_ai CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'yotabit_ai'@'localhost' IDENTIFIED BY 'ЗАДАТЬ_СЛОЖНЫЙ_ПАРОЛЬ'; GRANT ALL PRIVILEGES ON yotabit_ai.* TO 'yotabit_ai'@'localhost'; FLUSH PRIVILEGES;
Загрузить подготовленный дамп тестовой базы и применить относящиеся к версии миграции:
mysql -u root -p yotabit_ai < /var/www/versta/database/yotabit_ai.sql mysql -u root -p yotabit_ai < /var/www/versta/database/schema.sql
Если конкретная версия комплекта содержит дополнительные миграции, они применяются в порядке, приведенном в файле поставки database/README.txt.
8. Настройка веб-сервера
Пример виртуального сервера Nginx:
server {
listen 80;
server_name _;
root /var/www/versta;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
Фактическое имя сокета PHP-FPM определяется установленной версией PHP. После создания конфигурации:
nginx -t systemctl enable --now nginx mariadb systemctl reload nginx
Для опубликованного тестового контура настраивается HTTPS с действительным сертификатом.
9. Установка периферийного агента
install -d /opt/yotabit-agent cp /var/www/versta/distr/agent.py /opt/yotabit-agent/agent.py cp /var/www/versta/distr/mediamtx /opt/yotabit-agent/mediamtx cp /var/www/versta/distr/mediamtx.yml /opt/yotabit-agent/mediamtx.yml chmod 755 /opt/yotabit-agent/agent.py /opt/yotabit-agent/mediamtx cp /var/www/versta/distr/ai.yotabit-agent.service /etc/systemd/system/ cp /var/www/versta/distr/mediamtx.service /etc/systemd/system/
В unit-файле агента задаются ключ тестового сервера, адрес тестового портала и каталог снимков. Значения передаются в закрытом комплекте экспертного доступа.
systemctl daemon-reload systemctl enable --now mediamtx.service systemctl enable --now ai.yotabit-agent.service
10. Запуск и проверка
Проверить состояние служб:
systemctl status nginx mariadb systemctl status mediamtx.service systemctl status ai.yotabit-agent.service journalctl -u ai.yotabit-agent.service -n 100 --no-pager
Проверить ответ веб-приложения:
curl -I http://127.0.0.1/ curl -I https://demo.ai.yotabit.ru/
Ожидаемый результат — ответ HTTP 200 или штатное перенаправление на страницу входа. После этого эксперт открывает https://demo.ai.yotabit.ru/ и использует реквизиты, указанные в закрытом приложении.
11. Удаленный доступ эксперта
- Импортировать предоставленный профиль OpenVPN.
- Установить VPN-соединение и проверить доступность тестового сервера.
- Подключиться по SSH с реквизитами из закрытого приложения.
- Получить права
rootлибо войти под учетной записьюroot. - Проверить каталоги приложения, службы, процессы, журналы и подключение к базе данных.
- Открыть веб-портал и выполнить функциональные сценарии.
Для доступа допускаются OpenVPN, встроенный VPN-клиент операционной системы, командная строка SSH или PuTTY. Cisco AnyConnect и AnyDesk для экспертной проверки не используются.
12. Остановка и повторный запуск
systemctl stop ai.yotabit-agent.service mediamtx.service nginx mariadb systemctl start mariadb nginx mediamtx.service ai.yotabit-agent.service
После запуска необходимо повторно проверить состояние всех служб и доступность страницы входа.
13. Техническая поддержка
Контакт ответственного технического специалиста, телефон, электронная почта и часы доступности передаются эксперту в закрытом приложении. В обращении следует указать время, адрес контура, выполненную команду, ожидаемый и фактический результат, не передавая пароли и закрытые ключи.
Документ актуализирован 20 октября 2026 года.
