Сначала практическое — токен и синк, потом по 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, влить остатки). Куда смотрим?