Crawler Life (в интерфейсе — «Афина AI») — локальный агрегатор новостей на вашем ПК: сбор RSS, обход сайтов по ключевым словам, поиск новых источников («Найти источники»), ИИ-извлечение со страниц, опционально Telegram. Всё работает в Docker; отдельно ставить Java, Python и Node для работы не нужно (только для разработки или сборки установщика).
Monorepo: один репозиторий, один docker compose, общая PostgreSQL и config-server.
| Вы | С чего начать |
|---|---|
| Пользователь Windows (Setup.exe) | Руководство пользователя · кратко: ИНСТРУКЦИЯ.md |
| Разработчик / devops | этот файл → Архитектура → README модулей |
| Сборка установщика | installer/README.md |
Пользователь задаёт регионы, ключевые фразы и источники (адреса RSS, домены сайтов). По расписанию или вручную crawler-app качает ленты, ищет совпадения, тянет полнотекст; для сайтов делегирует обход crawler-site (обход по ссылкам + Playwright). Поиск новых источников идёт через метапоиск SearXNG. crawler-ai + Ollama отвечают на запросы «вытащи с страницы по промпту»; агентный поиск (RouterAI) — чат и сбор материалов по теме в интернете. Результаты — в PostgreSQL, интерфейс — React на порту 5173.
Подробные схемы потоков: reference/workflows.md.
flowchart TB
Browser[Браузер :5173]
FE[frontend]
APP[crawler-app :8081]
CS[config-server :8888]
PY[crawler-site]
AI[crawler-ai]
PG[(PostgreSQL)]
SX[searxng]
OL[Ollama]
Browser --> FE
FE -->|/api| APP
APP --> CS
PY --> CS
AI --> CS
APP --> PG
PY --> PG
APP --> PY
APP --> AI
APP --> SX
AI --> OL
Полная схема, порты, конфигурация, фоновые задачи: reference/architecture.md.
crawler-app/ Spring Boot API, Liquibase, RSS, Telegram, поиск источников
crawler-site/ обход сайтов, совпадения в py_crawler.matches
crawler-ai/ LLM + Playwright page_flow
frontend/ React-интерфейс → прокси /api на app
config-repo/ YAML для Docker-профиля
config-server/ Spring Cloud Config :8888
searxng/ settings.yml для метапоиска
scripts/ spring_config_fetch_env.py для Python
installer/ Windows Setup.exe, лаунчер, config-user
docker-compose.yml
reference/ архитектура, сценарии, руководство Windows
| Сервис | Порт | Задача |
|---|---|---|
| frontend | 5173 | интерфейс (единственный URL для браузера) |
| app | 8081 | REST API, оркестрация |
| config-server | 8888 | конфигурация |
| crawler-site | 8090 | краулер (обычно только из app) |
| crawler-ai | 8010 | LLM API |
| searxng | 8088 | метапоиск для «Найти источники» |
| postgres | 5433 | база данных crawler |
| redis | 6379 | кэш crawler-site |
| ollama | 11434 | локальные модели |
Требования: Docker Desktop / Engine + Compose v2, 16+ ГБ RAM, ~25–35 ГБ диска после первого up.
docker compose up -d --buildПервый раз долго: образы, Liquibase, ollama-init (llama3.2:1b, qwen2.5:7b). При следующих запусках init только проверяет том ollama_data и не тянет модели снова (если не делали docker compose down -v).
docker compose ps
curl -s http://localhost:8081/actuator/health/readinessИнтерфейс: http://localhost:5173
Остановка: docker compose down. Тома crawler-life_pg_data, crawler-life_ollama_data, crawler-life_app_logs сохраняются (external volumes). Перед первым запуском из репозитория: powershell -File scripts/ensure-crawler-life-volumes.ps1.
Корневого .env нет — настройки в config-repo/, раздача через config-server.
| Файл | Клиент |
|---|---|
crawler-life-docker.yml |
app |
crawler-site-docker.yml |
crawler-site |
crawler-ai-docker.yml |
crawler-ai |
Локальные секреты: *-local.yml (в .gitignore). Windows-установка: оверлей C:\ProgramData\Crawler Life\config-user\ или UI «Интеграции» (installer).
- Установить Docker Desktop (Engine running).
- Запустить
CrawlerLife-Setup.exe(~2–4 МБ). - Пуск → Crawler Life — первый запуск 20–40 мин.
- Работать в http://127.0.0.1:5173.
.\installer\build-setup.ps1 # сборка Setup из исходников| Документ | Содержание |
|---|---|
| installer/РУКОВОДСТВО.md | руководство пользователя (все разделы интерфейса) |
| installer/ИНСТРУКЦИЯ.md | краткая инструкция в пакете |
| installer/README.md | сборка, composite-конфиг |
| Сценарий | Где в интерфейсе | Подробности |
|---|---|---|
| Читать RSS-новости | / |
workflows.md § RSS |
| Материалы с сайтов | /sites |
workflows.md § обход сайтов |
| Найти новые источники | /discovery |
workflows.md § Найти источники |
| ИИ-поиск (интернет или сайт) | /admin/llm |
workflows.md § ИИ |
| Агентный поиск в интернете (RouterAI) | /admin/agent-search |
workflows.md § Агентный поиск |
| Telegram / RouterAI | Боковая панель «Интеграции» | РУКОВОДСТВО.md § Интеграции |
docker compose up -d postgres config-server app searxng
mvn -f crawler-app/pom.xml spring-boot:run
cd frontend && npm install && npm run devSPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5433/crawler
SPRING_CLOUD_CONFIG_URI=http://127.0.0.1:8888
SPRING_CONFIG_IMPORT=optional:configserver:
Python-сервисы — README соответствующих модулей. Portable Node на Windows: scripts/README.md.
JDK 21, Maven 3.9+, Node 20+, Python 3.11+ — при локальной сборке модулей.
mvn test
cd frontend && npm test
cd crawler-site && pytest
cd crawler-ai && pip install ".[server,dev]" && pytestБаза http://localhost:8081. Основное:
| Метод | Путь |
|---|---|
| GET | /api/news |
| POST | /api/crawler/start, /api/site-crawl/run, /api/site-crawl/auto/start |
| GET/POST | /api/feeds, /api/regions, /api/keywords, /api/crawl-sites |
| GET | /api/discover |
| GET/PUT | /api/integrations/settings |
| POST | /api/crawler-ai/smart-scrape?async=true |
| GET | /api/crawler-ai/smart-scrape/jobs/{jobId} |
| GET | /api/agent-search/options |
| POST | /api/agent-search?async=true, /api/agent-search/chat?async=true |
| GET | /api/agent-search/jobs/{jobId} |
| POST | /api/agent-search/collect-schedule/start |
| GET | /api/logs/stream |
Полный список: crawler-app/reference/api.md.
| Симптом | Действие |
|---|---|
| app не стартует | docker compose logs config-server — fail-fast без конфига |
| Интерфейс 502 | docker compose logs app |
| 429 на сбор | подождать ~30 с, rate-limit |
| AI / Ollama | docker compose logs ollama-init crawler-ai |
| Windows-лаунчер | РУКОВОДСТВО.md §13 · ИНСТРУКЦИЯ.md (диагностика) |
docker compose logs -f appПодробный отчёт валидационного прогона 30.05.2026 (метрики RSS, обход сайтов, «Найти источники»): reference/session-report-2026-05-30.md.
| reference/architecture.md | стек, конфиг, база данных, Docker |
| reference/workflows.md | RSS, обход сайтов, поиск источников, ИИ, Telegram |
| installer/РУКОВОДСТВО.md | работа после Setup.exe |
| crawler-app | Java API |
| frontend | интерфейс |
| config-server | Config Server |
| config-repo | YAML |
| crawler-site | краулер |
| crawler-ai | LLM |
| searxng | метапоиск для «Найти источники» |
| scripts | config → env для Python |
| installer | Windows-дистрибутив |