diff --git a/doc/session-2026-05-27.md b/doc/session-2026-05-27.md new file mode 100644 index 0000000..8ecb8d7 --- /dev/null +++ b/doc/session-2026-05-27.md @@ -0,0 +1,54 @@ +# Сессия 2026-05-27 — домен obdai.ru и стратегия деплоя + +## Домен + +- `obdai.ru` — куплен, DNS-зона в ngcloud (PowerDNS) +- NS: `ns5.rcloud.ru` / `ns4.rcloud.ru` (у регистратора сменили с reg.ru) +- A-записи: `@`, `www`, `ai`, `test` → `5.172.178.213` +- Ждём propagation (TTL старой зоны 86400) + +## Решение: obdai.ru пока НЕ деплоим + +### Причина + +Главная задача сейчас — **стабильный обмен ELM327↔Android**. Пока это звено не отлажено на 100%, деплой на ВМ и домен не дают никакой ценности: + +- В машине телефон на одном WiFi с ноутбуком — локальный IP быстрее и надёжнее +- Клиент уже принимает URL сервера как параметр — сменить на `obdai.ru` = одна строка +- DNS ещё не пророс + +### Порядок приоритетов + +1. **Стабильный обмен ELM↔Android** — критический путь, уже выявлено 4+ багов +2. **Fat-client протокол** (скрипт + батч) — обкатать на реальном ELM +3. **Gunicorn + nginx на ВМ** — только после пунктов 1-2 +4. **Переключение клиента на `obdai.ru`** — последний шаг, одна строка + +### Состояние звена ELM↔Android + +| Баг | Статус | +|-----|--------| +| Сервер шлёт команды без пауз → ELM не успевает | ⚠️ не решён | +| `\r` vs `\r\n` → мусор в буфере | ✅ исправлено | +| Deadlock при старте (ELM не шлёт приветствие) | ✅ исправлено (fwd READY) | +| Android блокирует HTTP (cleartext) | ✅ исправлено (usesCleartextTraffic) | + +### Архитектура деплоя (в будущем) + +``` +obdai.ru (95.172.178.213) +├── nginx (reverse proxy + SSL) +│ ├── / → лендинг (статический HTML) +│ ├── /static/app.apk → APK для скачивания +│ └── /api/v1/* → gunicorn (Flask) +│ ├── /script → выдача скрипта диагностики +│ └── /session/upload → приём батча + LLM +└── gunicorn (web/app.py) + ├── script_endpoint (fat-client) + └── возможно raw_endpoint (опционально) +``` + +### Что НЕ переносится на ВМ + +- Десктоп-диагностика (`POST /api/diagnose`, `ELM327.elm.py`) — требует Bluetooth на ноутбуке в машине +- Локальный Flask для тестов — остаётся на ноутбуке разработчика