mirror of
https://github.com/Vateron-Media/XC_VM.git
synced 2026-09-25 12:01:55 +02:00
New streamtest-gen / -gen-stop / -backup / streamtest commands: configure the panel once by hand, snapshot the DB, then restore + run repeatably. The container runner rebuilds caches, launches the test-stream-generator, fetches the panel's output m3u for the test line, and runs the checker (aggregate JSON + per-stream logs copied out). STREAMTEST.md documents the flow; docker-compose mounts tools/ and exposes port 8088; ignore out/, fixtures/, graphs/.
Test Install Container
Тестовый Docker-контейнер Ubuntu 24.04 для проверки установки XC_VM из dist/XC_VM.zip.
Требования
- Docker + Docker Compose
- Собранный
dist/XC_VM.zip(черезmake main)
Структура
tools/test-install/
├── Dockerfile # образ Ubuntu 24.04 + systemd + встроенный install-скрипт
├── docker-compose.yml # runtime-конфиг (volumes, ports, privileged, cgroup)
├── test_release.sh # управляющий скрипт (install / clean / logs / sync / streamtest*)
├── streamtest_in_container.sh # прогон стрим-теста внутри контейнера
├── STREAMTEST.md # инструкция по e2e стрим-тесту (ручная настройка → бэкап → прогон)
└── README.md
Использование
# Собрать образ, запустить контейнер и выполнить установку (всё сразу)
./tools/test-install/test_release.sh
# Запустить на нестандартном host-порту (пример: HTTP 18080, HTTPS 18443)
XCVM_HTTP_PORT=18080 XCVM_HTTPS_PORT=18443 ./tools/test-install/test_release.sh
# Задать нестандартные внутренние порты панели (те, что пишет install в nginx)
XCVM_INSTALL_HTTP_PORT=8081 XCVM_INSTALL_HTTPS_PORT=4443 ./tools/test-install/test_release.sh
# Комбинированно: внешние и внутренние порты одновременно
XCVM_HTTP_PORT=18080 XCVM_HTTPS_PORT=18443 XCVM_INSTALL_HTTP_PORT=8081 XCVM_INSTALL_HTTPS_PORT=4443 ./tools/test-install/test_release.sh
# Удалить контейнер и образ
./tools/test-install/test_release.sh clean
# Посмотреть лог установки
./tools/test-install/test_release.sh logs
# Синхронизировать src/ в работающий контейнер
./tools/test-install/test_release.sh sync
# Войти в контейнер вручную
docker exec -it xcvm-test-install bash
Стрим-тест (e2e)
Сквозная проверка стриминга панели: генератор → рестрим панели → stream_queue_check.py
(JSON-лог по каждому каналу). Панель настраивается один раз вручную, конфигурация
снимается в дамп БД и восстанавливается для повторяемых прогонов — без прямых
SQL-запросов. Полная инструкция: STREAMTEST.md.
./tools/test-install/test_release.sh streamtest-gen # генератор для ручной настройки
./tools/test-install/test_release.sh streamtest-backup # снять дамп настроенной БД
./tools/test-install/test_release.sh streamtest # восстановить дамп и прогнать checker
Что проверяется
Встроенный в Dockerfile install-скрипт:
- Распаковывает
XC_VM.zip - Запускает
python3 installс автоматическими ответами на интерактивные вопросы - Проверяет наличие ключевых файлов после установки:
/home/xc_vm/console.php,vendor/autoload.php,bootstrap.php/home/xc_vm/config/config.ini/home/xc_vm/bin/nginx/sbin/nginx/home/xc_vm/bin/php/bin/php/home/xc_vm/bin/redis/redis-server
Порты
XCVM_HTTP_PORT(по умолчанию8880) → containerXCVM_INSTALL_HTTP_PORT(или80)XCVM_HTTPS_PORT(по умолчанию8443) → containerXCVM_INSTALL_HTTPS_PORT(или443)
Внутренние порты, которые настраивает install в контейнере:
XCVM_INSTALL_HTTP_PORT(по умолчанию пусто →80)XCVM_INSTALL_HTTPS_PORT(по умолчанию пусто →443)
Важно: маппинг target-порта теперь синхронизирован автоматически с XCVM_INSTALL_HTTP_PORT/XCVM_INSTALL_HTTPS_PORT.
Примечания
- Контейнер запускается с
--privilegedи systemd (PID 1) — необходимо дляsystemctl - MariaDB устанавливается и настраивается внутри контейнера