feat: default locale Russian, geo determines language for other countries

- localization-svc: defaultLocale ru, resolveLocale only by geo
- web-svc: DEFAULT_LOCALE ru, layout lang=ru, embeddedTranslations fallback ru
- countryToLocale: default ru when no country or unknown country

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
home
2026-02-23 15:10:38 +03:00
parent 8fc82a3b90
commit cd6b7857ba
606 changed files with 26148 additions and 14297 deletions

95
docs/RUNBOOK.md Normal file
View File

@@ -0,0 +1,95 @@
# Runbook оператора GooSeek
**docs/architecture: 05-gaps-and-best-practices.md §9**
---
## 1. Проверка здоровья (K8s)
```bash
# Поды
kubectl get pods -n gooseek
# Health через port-forward (пример для chat-svc)
kubectl port-forward svc/chat-svc 3005:3005 -n gooseek &
curl -s http://localhost:3005/health
```
Или через Ingress: `curl -s https://gooseek.ru/api/health` (если web-svc проксирует).
Readiness: заменить `/health` на `/ready`.
---
## 2. Redis
```bash
redis-cli ping # PONG
redis-cli KEYS "discover:*" # ключи discover
redis-cli KEYS "finance:*" # ключи finance
```
---
## 3. Cache-worker (pre-compute)
В K3s: CronJob выполняются по расписанию. Логи Jobs:
```bash
kubectl get cronjobs -n gooseek
kubectl get jobs -n gooseek
kubectl logs job/<job-name> -n gooseek
```
---
## 4. Типичные сбои
| Симптом | Причина | Действие |
|---------|---------|----------|
| Discover пусто | Redis нет discover:*, Ghost/GHOST_CONTENT_API_KEY | Проверить cache-worker CronJob, .env в ConfigMap |
| Finance stub | FMP_API_KEY отсутствует или 429 | Добавить ключ, проверить лимиты FMP |
| Search 429 | Лимит SearXNG | Настроить свой инстанс, SEARXNG_URL |
| Chat зависает | LLM недоступен (Ollama/OpenAI) | Проверить OLLAMA_BASE_URL / OPENAI_API_KEY |
---
## 5. Масштабирование (K3s)
```bash
kubectl scale deployment chat-svc -n gooseek --replicas=4
```
HPA настроен в `deploy/k3s/hpa.yaml`. Требуется metrics-server.
---
## 6. Метрики Prometheus
Сервисы отдают `/metrics`. Аннотации на Pod: `prometheus.io/scrape`, `prometheus.io/port`, `prometheus.io/path`.
---
## 7. SSL (HTTPS для gooseek.ru)
См. **deploy/k3s/ssl/README.md** — получение сертификата, бэкап в `deploy/k3s/ssl/backup/`, создание Secret, применение ingress-production.yaml.
---
## 8. Порты
| Сервис | Порт |
|--------|------|
| web-svc | 3000 |
| search-svc | 3001 |
| discover-svc | 3002 |
| finance-svc | 3003 |
| travel-svc | 3004 |
| chat-svc | 3005 |
| projects-svc | 3006 |
| billing-svc | 3008 |
| library-svc | 3009 |
| memory-svc | 3010 |
| create-svc | 3011 |
| notifications-svc | 3013 |
| auth-svc | 3014 |