Skip to content

Repository files navigation

crawler-life

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
Loading

Полная схема, порты, конфигурация, фоновые задачи: reference/architecture.md.


Состав monorepo

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)

Требования: 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).


Windows: установка через Setup.exe

  1. Установить Docker Desktop (Engine running).
  2. Запустить CrawlerLife-Setup.exe (~2–4 МБ).
  3. Пуск → Crawler Life — первый запуск 20–40 мин.
  4. Работать в 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

docker compose up -d postgres config-server app searxng
mvn -f crawler-app/pom.xml spring-boot:run
cd frontend && npm install && npm run dev
SPRING_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

API (кратко)

База 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-дистрибутив

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages