# Архитектура 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