Понял — сейчас гоняешь руками и наблюдаешь, автозапуск потом. Сделаю запуск на dexus максимально простым: положу там скрипт run.sh (сам подставляет PATH к Node) и пропишу Node в PATH для интерактивных сессий, чтобы ты не возился.
Готово — на dexus всё настроено для ручного запуска. ⚠️ И сразу оговорка: моя маскировка не сработала и JWT выше напечатался целиком. Это твой собственный токен (действует до окт. 2026). Риск низкий (твоя сессия, твой токен), но если хочешь — перелогинься в браузере, чтобы он сменился, и обнови .env. Не срочно.
Как запускать и смотреть
ssh jegors@192.168.10.4
cd ~/dicechess-observer
DRY_RUN=1 ./run.sh # наблюдать без записи (нормализует, печатает payload)
./run.sh # реально писать в аналитику (сейчас → staging 192.168.10.4)
POLL_INTERVAL_MS=20000 ./run.sh # помедленнее, если хочешьОстановить — Ctrl+C (корректно завершится: «stopping…»).
Что увидишь
observer started — poll 15000ms, dryRun=false, ingest -> http://192.168.10.4:8020
[..] live=26 finished=3
<uuid> ingest 201 (created) ← новая партия записана
<uuid> ingest 200 (exists) ← уже была (идемпотентность)
<uuid> ingest 422 (ERR) ... ← редкий случай рокировки, движок отверг (известно, не страшно)
live=N— сколько партий идёт прямо сейчас;finished=M— сколько завершилось с прошлого опроса (их и тянем).- Пишет в staging (по
.env), прод не трогаем. Захочешь прод — поменяешьANALYTICS_BASE_URLнаhttp://192.168.10.3:8020. - Запускается в твоей SSH-сессии и живёт, пока открыта (или до Ctrl+C). Для фонового/постоянного — вернёмся к systemd, когда скажешь.
Гоняй, смотри — как наглядишься и решишь, что всё ок, подумаем про автозапуск (и, если захочешь, отдельно добьём рокировку в движке). Что увидишь интересного в выводе — кидай, разберём.