Major changes: - Add Go backend (backend/) with microservices architecture - Enhanced master-agents-svc: reranker, content-classifier, stealth-crawler, proxy-manager, media-search, fastClassifier, language detection - New web-svc widgets: KnowledgeCard, ProductCard, ProfileCard, VideoCard, UnifiedCard, CardGallery, InlineImageGallery, SourcesPanel, RelatedQuestions - Improved discover-svc with discover-db integration - Docker deployment improvements (Caddyfile, vendor.sh, BUILD.md) - Library-svc: project_id schema migration - Remove deprecated finance-svc and travel-svc - Localization improvements across services Made-with: Cursor
281 lines
8.8 KiB
Markdown
281 lines
8.8 KiB
Markdown
# Результаты тестирования https://gooseek.ru/
|
||
|
||
**Дата:** 27 февраля 2026, 02:40 МСК
|
||
|
||
## ❌ Основная проблема
|
||
|
||
**Сайт https://gooseek.ru/ НЕДОСТУПЕН**
|
||
|
||
```
|
||
$ curl https://gooseek.ru/
|
||
curl: (7) Failed to connect to gooseek.ru port 443: Couldn't connect to server
|
||
```
|
||
|
||
## Причины
|
||
|
||
### 1. Reverse-proxy (Caddy) не запущен
|
||
|
||
Файл `deploy/docker/docker-compose.yml` содержит конфигурацию для Caddy, который должен:
|
||
- Слушать порты 80/443
|
||
- Автоматически получать SSL от Let's Encrypt
|
||
- Проксировать `gooseek.ru` → `web-svc:3000`
|
||
|
||
**Но этот контейнер НЕ ЗАПУЩЕН.**
|
||
|
||
### 2. Запущена неправильная конфигурация
|
||
|
||
Сейчас работают контейнеры из `/backend/deploy/docker/docker-compose.yml` (Go backend):
|
||
|
||
```
|
||
$ docker ps
|
||
NAME STATUS
|
||
docker-api-gateway-1 Up 21 minutes (unhealthy)
|
||
docker-chat-svc-1 Up 21 minutes (unhealthy)
|
||
docker-agent-svc-1 Up 21 minutes (unhealthy)
|
||
docker-webui-1 Up 20 minutes
|
||
docker-llm-svc-1 Up 21 minutes (unhealthy)
|
||
docker-search-svc-1 Up 21 minutes (unhealthy)
|
||
docker-scraper-svc-1 Up 21 minutes (unhealthy)
|
||
...
|
||
```
|
||
|
||
**Все сервисы помечены как "unhealthy"**, кроме базовых (postgres, redis, crawl4ai).
|
||
|
||
### 3. Chat API не работает
|
||
|
||
#### Тест 1: Прямой доступ к API Gateway
|
||
```bash
|
||
$ curl http://localhost:3015/health
|
||
curl: (7) Connection refused
|
||
```
|
||
**Результат:** API Gateway недоступен на localhost, хотя порт должен быть проброшен.
|
||
|
||
#### Тест 2: Через WebUI
|
||
```bash
|
||
$ curl http://localhost:3000
|
||
✅ OK - WebUI возвращает HTML
|
||
```
|
||
|
||
```bash
|
||
$ curl -X POST http://localhost:3000/api/chat \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"message": {
|
||
"messageId": "msg-123",
|
||
"chatId": "chat-123",
|
||
"content": "Привет, как дела?"
|
||
},
|
||
"optimizationMode": "balanced",
|
||
"history": [],
|
||
"locale": "ru"
|
||
}'
|
||
|
||
Internal Server Error
|
||
```
|
||
|
||
**Результат:** WebUI работает, но chat API возвращает ошибку.
|
||
|
||
**Причина:** WebUI пытается проксировать запрос на `api-gateway:3015` (через Next.js rewrites), но API Gateway недоступен или не отвечает.
|
||
|
||
## Что работает ✅
|
||
|
||
1. **WebUI доступен локально** - `http://localhost:3000` возвращает интерфейс
|
||
2. **Docker контейнеры запущены** - все сервисы работают (но unhealthy)
|
||
3. **Базовые сервисы здоровы:**
|
||
- ✅ postgres (healthy)
|
||
- ✅ redis (healthy)
|
||
- ✅ crawl4ai (healthy)
|
||
- ✅ searxng (running)
|
||
|
||
## Что НЕ работает ❌
|
||
|
||
1. **Reverse-proxy (Caddy)** - не запущен
|
||
2. **API Gateway** - unhealthy, порт 3015 недоступен
|
||
3. **Chat сервис** - unhealthy
|
||
4. **Agent сервис** - unhealthy
|
||
5. **LLM сервис** - unhealthy
|
||
6. **Search сервис** - unhealthy
|
||
7. **Все остальные backend Go сервисы** - unhealthy
|
||
|
||
## Диагностика
|
||
|
||
### Проверка портов
|
||
```bash
|
||
$ lsof -nP -iTCP -sTCP:LISTEN | grep -E "3000|3015|3005"
|
||
node 31314 home 16u IPv6 *:3000 (LISTEN)
|
||
```
|
||
|
||
Только порт 3000 (webui) слушает. Порты 3015 (api-gateway) и 3005 (chat-svc) не доступны на хосте.
|
||
|
||
### Архитектура
|
||
|
||
Текущая конфигурация:
|
||
```
|
||
[Browser]
|
||
↓
|
||
❌ gooseek.ru:443 (Caddy не запущен)
|
||
↓
|
||
✅ localhost:3000 (WebUI - Next.js)
|
||
↓ (Next.js rewrites /api/* → api-gateway:3015)
|
||
❌ api-gateway:3015 (unhealthy, недоступен)
|
||
↓
|
||
❌ chat-svc:3005 (unhealthy)
|
||
↓
|
||
❌ agent-svc:3018 (unhealthy)
|
||
```
|
||
|
||
## Рекомендации по исправлению
|
||
|
||
### 1. Запустить правильный docker-compose
|
||
|
||
```bash
|
||
cd /Users/home/Desktop/GooSeek/deploy/docker
|
||
./run.sh
|
||
```
|
||
|
||
Это должно запустить полный стек включая reverse-proxy.
|
||
|
||
### 2. Проверить логи unhealthy контейнеров
|
||
|
||
```bash
|
||
docker logs docker-api-gateway-1 --tail 100
|
||
docker logs docker-chat-svc-1 --tail 100
|
||
docker logs docker-agent-svc-1 --tail 100
|
||
docker logs docker-llm-svc-1 --tail 100
|
||
```
|
||
|
||
Искать ошибки:
|
||
- Отсутствующие переменные окружения
|
||
- Проблемы с подключением к зависимостям
|
||
- Ошибки при старте сервиса
|
||
|
||
### 3. Проверить переменные окружения
|
||
|
||
Убедиться что `.env` файл существует и содержит:
|
||
```bash
|
||
# LLM API Keys
|
||
OPENAI_API_KEY=sk-...
|
||
ANTHROPIC_API_KEY=sk-ant-...
|
||
GEMINI_API_KEY=...
|
||
TIMEWEB_API_KEY=...
|
||
TIMEWEB_AGENT_ACCESS_ID=...
|
||
TIMEWEB_API_BASE_URL=...
|
||
|
||
# Ghost CMS
|
||
GHOST_CONTENT_API_KEY=...
|
||
GHOST_DB_PASSWORD=...
|
||
GHOST_MAIL_USER=...
|
||
GHOST_MAIL_PASSWORD=...
|
||
```
|
||
|
||
### 4. Проверить healthcheck'и
|
||
|
||
Каждый сервис имеет healthcheck. Например, для api-gateway:
|
||
```yaml
|
||
healthcheck:
|
||
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:3015/health"]
|
||
interval: 15s
|
||
timeout: 5s
|
||
retries: 3
|
||
start_period: 10s
|
||
```
|
||
|
||
Если сервис не отвечает на `/health` в течение 10s после старта → unhealthy.
|
||
|
||
Возможные причины unhealthy:
|
||
- Сервис не стартует из-за ошибки
|
||
- Сервис стартует медленно (нужно увеличить `start_period`)
|
||
- Зависимости недоступны (другие сервисы)
|
||
- Отсутствуют переменные окружения
|
||
|
||
### 5. Проверить сеть Docker
|
||
|
||
```bash
|
||
docker network ls
|
||
docker network inspect gooseek
|
||
```
|
||
|
||
Убедиться что все контейнеры в одной сети и могут общаться.
|
||
|
||
### 6. Проверить DNS и порты
|
||
|
||
```bash
|
||
# DNS
|
||
nslookup gooseek.ru
|
||
|
||
# Порты на роутере
|
||
# Убедиться что 80 и 443 проброшены на ПК
|
||
```
|
||
|
||
### 7. Перезапустить с нуля
|
||
|
||
```bash
|
||
# Остановить все
|
||
cd /Users/home/Desktop/GooSeek/backend/deploy/docker
|
||
docker compose down
|
||
|
||
# Запустить правильный compose
|
||
cd /Users/home/Desktop/GooSeek/deploy/docker
|
||
docker compose down
|
||
docker compose up -d
|
||
|
||
# Проверить логи
|
||
docker compose logs -f reverse-proxy
|
||
docker compose logs -f web-svc
|
||
docker compose logs -f api-gateway
|
||
```
|
||
|
||
## Тестовые скрипты
|
||
|
||
Созданы скрипты для тестирования:
|
||
|
||
1. **test-chat.sh** - базовая проверка сервисов
|
||
2. **test-chat-proper.sh** - тест с правильным payload
|
||
3. **test-chat-via-webui.sh** - тест через webui
|
||
|
||
Использование:
|
||
```bash
|
||
cd /Users/home/Desktop/GooSeek
|
||
./test-chat-via-webui.sh
|
||
```
|
||
|
||
## Скриншоты и ошибки
|
||
|
||
### Консоль браузера (ожидаемые ошибки)
|
||
|
||
Если открыть https://gooseek.ru/ в браузере:
|
||
- **Network:** ERR_CONNECTION_REFUSED или ERR_NAME_NOT_RESOLVED
|
||
- **Console:** Нет ошибок (страница не загружается)
|
||
|
||
Если открыть http://localhost:3000/ в браузере:
|
||
- **Network:** ✅ 200 OK для главной страницы
|
||
- **Network:** ❌ 500 Internal Server Error для `/api/chat`
|
||
- **Console:** Ошибка при попытке отправить сообщение
|
||
|
||
### Пример ошибки в консоли (если бы сайт был доступен)
|
||
|
||
```javascript
|
||
POST http://localhost:3000/api/chat 500 (Internal Server Error)
|
||
|
||
Error: Chat request failed: 500
|
||
at streamChat (api.ts:43)
|
||
at sendMessage (useChat.ts:53)
|
||
```
|
||
|
||
## Итоговый вывод
|
||
|
||
**Сайт https://gooseek.ru/ полностью недоступен.**
|
||
|
||
**Причины:**
|
||
1. ❌ Reverse-proxy (Caddy) не запущен → нет HTTPS доступа
|
||
2. ❌ API Gateway unhealthy → chat не работает даже локально
|
||
3. ❌ Все backend сервисы unhealthy → нет функциональности
|
||
|
||
**Что нужно сделать:**
|
||
1. Запустить правильный docker-compose с reverse-proxy
|
||
2. Исправить проблемы с unhealthy контейнерами (проверить логи)
|
||
3. Убедиться что все переменные окружения настроены
|
||
4. Проверить DNS и проброс портов
|
||
|
||
**Приоритет:** КРИТИЧЕСКИЙ - сайт полностью не работает.
|