Files
lang/doc/ARCHITECTURE.md

42 lines
2.1 KiB
Markdown

# Архитектура Lyngvo (germany, 2026-05-22)
## Общая схема
```
Браузер (Россия) Германская ВМ (Vultr, 95.179.252.111) Groq API
┌──────────────────┐ HTTPS ┌──────────────────────────────────┐ HTTPS ┌──────────┐
│ lang.kube5s.ru │ ────────────→│ nginx:443 │ ──────→│ api.groq │
│ (SPA, index.html)│ │ │ │ .com │
└──────────────────┘ │ / → /var/www/lyngvo/ │ └──────────┘
│ /openai/* → gunicorn:8765 │
│ └─ Flask proxy.py │
│ /api/* → :8080 (будущий) │
└──────────────────────────────────┘
```
## Компоненты
| Порт | Сервис | Назначение |
|------|--------|------------|
| 443 | nginx 1.31 | Терминирует TLS, раздаёт статику, проксирует /openai/ и /api/ |
| 8765 | gunicorn (Flask proxy.py) | Пробрасывает запросы в api.groq.com |
## Деплой
```bash
cd ~/lang && bash deploy_lang.sh
# → build.sh склеивает CSS/JS → dist/index.html
# → scp на 95.179.252.111:/var/www/lyngvo/index.html
```
## Стек
- Фронтенд: HTML/CSS/JS (без фреймворков), MediaRecorder API, Web Audio API
- API: Groq Whisper (транскрипция) + Groq Llama (перевод)
- Транспорт: HTTPS POST multipart/form-data (DPI обойдён)
## DPI
РКН режет WebSocket. HTTPS POST multipart/form-data до 150KB проходит.
Подробнее: doc/ws-dpi-solution.md