5.1 KiB
Конфигурация и ForcAD
Где хранится
Обычный запуск: ./target/release/mirror-tool --config mirror.toml.
Шаблон — mirror.example.toml; файл выбирается флагом --config.
Локальное демо этого проекта использует data/demo/mirror.toml, а изменения
из панели — data/demo/state.json. Оба файла исключены из Git. Это тестовая
конфигурация loopback с публичным тестовым паролем, не конфигурация для игры.
В [web] задаётся state_file. Относительный путь считается от каталога TOML.
После первого сохранения из UI список команд/сервисов загружается из state-файла,
а сеть, мониторинг, web и scoreboard — по-прежнему из TOML. Изменение [[teams]]
или [[services]] в TOML не заменяет существующее сохранённое состояние.
Чтобы заново импортировать стартовую топологию, остановите процесс, переместите
state-файл в резервную копию и запустите процесс снова. Не удаляйте рабочее
состояние во время работы.
ForcAD
-
В начало TOML, перед секциями, добавьте адрес своей команды:
main_team_ip = "192.0.2.10" -
Добавьте секцию с адресом scoreboard вашей авторизованной игры:
[scoreboard] kind = "forcad" url = "http://scoreboard.example:8080" poll_interval_ms = 3000 stale_after_ms = 15000Это примеры адресов, их нужно заменить. Используется Engine.IO 4 / Socket.IO namespace
/game_events; URL задаётся корневой, без/socket.io, query и токенов. ForcAD-соединение постоянное;poll_interval_msне означает новый handshake каждые 3 секунды. После изменения TOML нужен перезапуск процесса. -
Через «Команды» добавьте IP каждой команды и точное имя из scoreboard. Название сервиса тоже должно совпадать с именем задания в scoreboard. IP существующей команды менять нельзя: добавьте новую и выберите её в маршруте. Для прямого IP у custom-прокси отдельная команда не нужна.
-
В настройках сервиса (клик по названию) задайте адрес/порт слушателя и реальный upstream-порт. Например, прокси
0.0.0.0:18080, сервис команд8080. Кружок выбирает primary; строка — реплику. Затем включите прокси. -
Робот включает автоматический выбор из назначенных реплик. Статус TCP, свежесть scoreboard и cooldown влияют на решение. Открытые TCP-сессии сохраняют прежний upstream, новые используют выбранный. Системные маршруты не меняются.
Кнопка ⓘ показывает состояние scoreboard и краткую инструкцию. Верхняя полоска
сервиса относится к своей команде (main_team_ip), а не к выбранному upstream.
Серый статус означает отсутствие свежих данных, а не успех checker.
Пароль обычного процесса задаётся в MIRROR_PASSWORD (минимум 12 символов),
не в TOML. Тестовый fixture для настоящей игры не используйте; запускайте бинарник
напрямую с собственным конфигом и паролем. Реальная игра этой проверкой не затрагивалась.
Повторяемое локальное демо
python3 scripts/ui_fixture.py target/release/mirror-tool --data-dir data/demo
Утилита сохраняет существующий TOML/state и не перезаписывает их. Без --data-dir
всё состояние временное. Для отдельной проверки используйте --port-offset 100:
панель 16800, proxy 18181, echo upstream 18182. Не запускайте второй fixture на
тех же портах или с той же папкой состояния. Смещение применяется к новому шаблону;
у существующего TOML порты остаются как записано в файле.