Files
gooseek/docs/architecture/MIGRATION.md
home 328d968f3f Deploy: migrate k3s → Docker; search logic → master-agents-svc
- deploy/k3s удалён, deploy/docker добавлен (Caddyfile, docker-compose, searxng)
- chat-svc: agents/models/prompts удалены, использует llm-svc (LLMClient, EmbeddingClient)
- master-agents-svc: SearchOrchestrator, classifier, researcher, actions, widgets
- web-svc: ChatModelSelector, Optimization, Sources удалены; InputBarPlus; UnregisterSW
- geo-device-svc, localization-svc: Dockerfiles
- docs: 02-k3s-services-spec.md, RUNBOOK/TELEMETRY/WORKING удалены

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 22:14:00 +03:00

130 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Миграция GooSeek на сервисную архитектуру (СОА)
**Ссылки:** [01-perplexity-analogue-design.md](./01-perplexity-analogue-design.md), [02-k3s-services-spec.md](./02-k3s-services-spec.md)
---
## Текущий статус
### Реализовано (Фаза 02)
| Компонент | Описание | Статус |
|-----------|----------|--------|
| **services/discover-svc** | Агрегация новостей, Redis кэш | ✅ |
| **services/search-svc** | SearXNG proxy, кэш по query_hash | ✅ |
| **services/finance-svc** | Market summary, heatmap, news (базово) | ✅ |
| **services/travel-svc** | Trending, Inspiration (базово) | ✅ |
| **services/cache-worker** | Pre-compute: discover, finance, travel | ✅ |
| **Redis, PostgreSQL** | Локально или в K8s (см. deploy/k3s) | ✅ |
| **api/v1/discover** | Прокси к discover-svc | ✅ |
| **services/library-svc** | История тредов (PostgreSQL) | ✅ |
| **services/projects-svc** | Collections, Spaces (заглушка) | ✅ |
| **api/v1/library** | Прокси к library-svc | ✅ |
| **api/v1/collections** | Прокси к projects-svc | ✅ |
| **deploy/k3s/** | library-svc, projects-svc, chat-svc, ingress | ✅ |
| **services/chat-svc** | LLM, Mastra, Writer, Classifier, Researcher | ✅ |
| **api/chat** | При CHAT_SVC_URL проксирует на chat-svc | ✅ |
| **services/auth-svc** | SSO, JWT, Bearer, GET /api/auth/me (миграция из apps/auth-mcs) | ✅ |
| **services/memory-svc** | Персональная память AI, Enterprise Memory | ✅ |
| **api/v1/memory** | Прокси к memory-svc | ✅ |
| **services/create-svc** | Create (stub), Export PDF/MD | ✅ |
| **api/v1/create, api/v1/export** | Прокси к create-svc | ✅ |
| **finance-svc** | + analyst-ratings, sec-filings, etf-holdings (FMP) | ✅ |
| **search-svc** | + GET /api/v1/patents (SearXNG) | ✅ |
| **api/v1/patents** | Прокси к search-svc | ✅ |
| **services/notifications-svc** | Web Push, preferences, reminders | ✅ |
| **api/v1/notifications** | Прокси к notifications-svc | ✅ |
| **services/billing-svc** | Тарифы Free/Pro/Max, ЮKassa, подписки | ✅ |
| **api/v1/billing** | Прокси к billing-svc | ✅ |
| **services/audit-svc** | Enterprise audit logs (stub) | ✅ |
| **api/v1/admin/audit-logs** | Прокси к audit-svc | ✅ |
| **страница /profile** | Account, Preferences, Personalize, Billing, Connectors | ✅ |
| **services/auth-svc** | SSO, JWT, Bearer, GET /api/auth/me | ✅ |
| **services/web-svc** | UI + прокси (миграция из apps/frontend) | ✅ |
| **services/geo-device-svc** | Геопозиция, устройство | ✅ |
| **services/localization-svc** | Локализация | ✅ |
### В разработке / запланировано
- **Миграция apps → services завершена:** auth-svc, web-svc, geo-device-svc, localization-svc в services/
- **API Gateway** (Traefik/Kong) для production
### deploy/k3s — HPA и PDB
| Файл | Описание |
|------|----------|
| hpa.yaml | HPA для chat-svc, search-svc, discover-svc, finance-svc; PDB для chat, search |
---
## Запуск (только Kubernetes)
Развёртывание в Kubernetes (Docker Desktop → Settings → Kubernetes, не Docker-контейнеры):
```bash
./deploy/k3s/deploy.sh
```
Конфигурация сервисов: `deploy/k3s/deploy.config.yaml`. Миграции БД выполняются автоматически при деплое.
---
## Переменные окружения
| Переменная | Описание | По умолчанию |
|------------|----------|--------------|
| `REDIS_URL` | Redis connection string | `redis://localhost:6379` |
| `SEARXNG_URL` | SearXNG instance | `https://searx.tiekoetter.com` |
| `SEARXNG_FALLBACK_URL` | Доп. инстансы (через запятую) | — |
| `DISCOVER_SVC_URL` | discover-svc (для frontend proxy) | `http://localhost:3002` |
| `SEARCH_SVC_URL` | search-svc — при установке frontend вызывает его вместо прямого SearXNG | `http://localhost:3001` |
| `CHAT_SVC_URL` | chat-svc — при установке /api/chat проксирует сюда | `http://localhost:3005` |
| `MEMORY_SVC_URL` | memory-svc (персональная память AI) | `http://localhost:3010` |
| `CREATE_SVC_URL` | create-svc (Create, Export) | `http://localhost:3011` |
| `NOTIFICATIONS_SVC_URL` | notifications-svc (Web Push, reminders) | `http://localhost:3013` |
| `BILLING_SVC_URL` | billing-svc (тарифы, подписки, ЮKassa) | `http://localhost:3008` |
| `AUTH_SERVICE_URL` | auth-svc (Bearer validation) | `http://localhost:3014` |
| `GHOST_URL`, `GHOST_CONTENT_API_KEY` | Ghost для topic=gooseek (discover-svc) | — |
| `NEWS_REGION` | Регион новостей: america\|eu\|russia\|china\|auto | `auto` |
| `FMP_API_KEY` | Financial Modeling Prep (finance summary, analyst-ratings, sec-filings, etf-holdings) | — |
| `YOOKASSA_SHOP_ID`, `YOOKASSA_SECRET` | ЮKassa для billing-svc (оплата Pro/Max) | — |
| `BILLING_RETURN_URL` | URL возврата после оплаты | `http://localhost:3000/profile?tab=billing` |
| `POSTGRES_URL` | PostgreSQL (library-svc, memory-svc, notifications-svc, billing-svc) | `postgresql://gooseek:gooseek@localhost:5432/gooseek` |
---
## Сборка Docker-образов
```bash
# discover-svc, search-svc, notifications-svc, auth-svc
docker build -t gooseek/discover-svc:latest -f services/discover-svc/Dockerfile services/discover-svc
docker build -t gooseek/search-svc:latest -f services/search-svc/Dockerfile services/search-svc
docker build -t gooseek/notifications-svc:latest -f services/notifications-svc/Dockerfile services/notifications-svc
docker build -t gooseek/auth-svc:latest -f services/auth-svc/Dockerfile services/auth-svc
# chat-svc, create-svc, billing-svc
docker build -t gooseek/chat-svc:latest -f services/chat-svc/Dockerfile services/chat-svc
docker build -t gooseek/create-svc:latest -f services/create-svc/Dockerfile services/create-svc
docker build -t gooseek/billing-svc:latest -f services/billing-svc/Dockerfile services/billing-svc
docker build -t gooseek/audit-svc:latest -f services/audit-svc/Dockerfile services/audit-svc
```
## deploy/k3s — манифесты
| Файл | Описание |
|------|----------|
| search-svc.yaml | SearXNG proxy, Redis cache |
| notifications-svc.yaml | Web Push, PostgreSQL, VAPID |
| auth-svc.yaml | better-auth, namespace gooseek-auth, PVC |
| discover-svc.yaml | + GHOST_URL, GHOST_CONTENT_API_KEY (optional) |
| cache-worker.yaml | CronJob finance/discover/travel, activeDeadlineSeconds |
| hpa.yaml | HPA + PDB для chat, search, discover, finance, travel, memory |
| audit-svc.yaml | Enterprise audit logs |
| ingress.yaml | + /api/v1/search, /api/v1/notifications, /api/v1/admin |
---
## Порядок реализации (roadmap)
См. [01-perplexity-analogue-design.md §6](./01-perplexity-analogue-design.md#6-порядок-реализации-best-practices).