42 lines
2.1 KiB
Markdown
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
|