Сначала практическое — токен и синк, потом по Azure.

Токен (полный): a98d7a61653b031ee27425018ec8e3289a86d1d3a530b092cf8ace209ca8ae17 (лежит в ~/dicechess-analytics/.env на dexus — оттуда всегда можно достать grep INGEST_TOKEN.)

Extension синхронизирован (#14 влит). Вбивай URL http://192.168.10.4:8020 + этот токен в popup → Save → подтверди разрешение на 192.168.10.4.


Про Azure

Два независимых вопроса: чем гонять бота и как он достучится до backend.

1. Чем гонять бота в облаке

Браузерное расширение — для интерактивного/локального запуска: ему нужен живой Chrome с вкладкой dicechess.com и JWT со страницы. В Azure 24/7 это headless-Chrome + автологин + удержание вкладки — болезненно.

Для облака естественнее Node-бот (dicechess-bots, из которого расширение и портировали): тот же движок и STOMP-протокол, но без браузера — чистый процесс, идеален для VM/контейнера. Нюанс: recorder→ingest логику мы написали в расширении; для Node-бота её надо туда перенести/расшарить (общий модуль). По сути та же сборка GameIngest + POST, только из Node, а не из background SW.

2. Как Azure достучится до backend

Backend сейчас в домашнем LAN (192.168.10.x) — из Azure он недоступен. Варианты:

  • Tailscale/WireGuard (рекомендую). Положить Azure-VM и aurora/dexus в один tailnet → Azure ходит на backend по приватному tailscale-IP. Ни публичного выставления, ни проброса портов, ни домена. Для homelab — самый безопасный и простой путь.
  • Публичный endpoint через NPM. У тебя уже есть Nginx Proxy Manager на aurora — дать backend публичный хостнейм + TLS (Let’s Encrypt в NPM), DDNS + проброс 80/443. Минус: backend в интернете. Защита: bearer INGEST_TOKEN (constant-time) + HTTPS + rate-limit; read-API лучше тоже закрыть.
  • Backend в Azure. Перенести сам analytics в облако — большое изменение, у тебя инфра homelab-центричная; не стал бы пока.

Моя рекомендация

Для облачного бота: Node-бот (dicechess-bots) + Tailscale до backend. Расширение оставить для локальных/ручных прогонов. Это даёт «бот молотит в Azure 24/7, шлёт в staging/prod по приватной сети, без выставления наружу».

Это пока «что если» или ты планируешь Azure в ближайшее время? Если планируешь — могу прикинуть конкретный план: вынести ingest-логику в общий модуль, подключить её в dicechess-bots, и накидать Tailscale-схему. Но сначала логично закончить текущее (обкатать живой ingest с расширения на staging, влить остатки). Куда смотрим?