- 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>
7.1 KiB
7.1 KiB
Миграция GooSeek на сервисную архитектуру (СОА)
Ссылки: 01-perplexity-analogue-design.md, 02-k3s-services-spec.md
Текущий статус
Реализовано (Фаза 0–2)
| Компонент | Описание | Статус |
|---|---|---|
| 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-контейнеры):
./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-образов
# 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 |