rpi: запустить и проверить туннель вебхука Маруси

This commit is contained in:
2026-10-11 18:26:59 +03:00
parent 258367d22d
commit aece60da74
3 changed files with 23 additions and 1 deletions
+3 -1
View File
@@ -1,7 +1,7 @@
# Разговор с Астрой через Марусю
Код: `ruzzy/astra-bot`, `marusia/server.py`, тесты `test_marusia.py`.
Сервис на rpi слушает только `127.0.0.1:8788`; доступ через fr1 подготовлен; SSH-туннель на rpi ещё нужно запустить.
Сервис на rpi слушает только `127.0.0.1:8788`; доступ через fr1 подготовлен; SSH-туннель `astra-marusia-tunnel.service` на rpi включён и проверен 2026-10-11.
Webhook: `POST /webhook/<секрет из /etc/astra-marusia.env>`.
Проверка: `GET /health`.
@@ -59,3 +59,5 @@ skill_id не является криптографическим доказат
и приватный доступ навыка обеспечивают первичное ограничение доступа.
С 2026-10-11 обязателен `MARUSIA_ALLOWED_USER_IDS`: список точных идентификаторов пользователя Маруси из проверенного запроса отладчика VK. Пустой список закрывает доступ всем; автоматически первого пришедшего пользователя не добавлять. Это не Telegram ID. Schema: version 1.0, SimpleUtterance, ограниченные session_id/message_id, вопрос до 1000 символов, Content-Type application/json, без chunked transfer. TTS экранирует разметку. Только разговор, любые действия подключаются отдельно по решению владельца. systemd: MemoryMax 512M, CPUQuota 100%, TasksMax 64. На fr1 агент уже установил nginx 1 r/s с burst 5; дополнительное ужесточение до 30 r/m и тела 16 KiB рекомендовано, но ещё не установлено на fr1. Локальный сервис уже применяет 30 POST/мин и 16 KiB.
Проверка 2026-10-11 с rpi через публичный HTTPS: неверный секрет → 404; правильный секрет + посторонние skill/user → 403. SSH-ключ fr1 сверён с указанным отпечатком; туннель active с ExitOnForwardFailure. Тем же клиентским ключом попытки shell, другого reverse-порта (18789) и direct forwarding (`ssh -W`) отклонены сервером. До регистрации навыка и разрешённых пользователей разговор через колонку недоступен. Проверка не даёт административного доступа к fr1 для чтения его firewall/ss/logs; live loopback bind на fr1 проверяет его агент.