fix: run only API in compose

This commit is contained in:
admin committed 2026-08-26 18:11:51 +03:00
1 parent 9eb7c3b3f8
commit b028d81e9d
5 files changed
+8 -36

No files matched your search

-1
View File
@@ -15,4 +15,3 @@ ADMIN_USERNAME=admin
ADMIN_PASSWORD=change-me
SESSION_SECRET=change-me-session-secret
API_PORT=8000
MCP_PORT=8001
+4 -9
View File
@@ -4,9 +4,7 @@
## Архитектура
- `api`: FastAPI, REST API, HTML-админка, healthcheck.
- `worker`: weekly scheduler, который запускает парсинг по `CRAWL_CRON`.
- `mcp`: открытый HTTP MCP endpoint для ИИ-агентов.
- `api`: FastAPI, REST API, HTML-админка, MCP endpoint и healthcheck.
- `postgres`: основная БД.
Парсер использует фиксированный источник сотрудников, по умолчанию `https://miem.hse.ru/persons`. Для каждой карточки сохраняются ФИО, должности, год начала работы, контакты, идентификаторы, вкладки профиля, секции, публикации, курсы, ВКР, новости, JSON-снапшот и сжатый HTML-снапшот. Детальные публикации дополнительно нормализуются в отдельную таблицу `employee_publications`, а новости из блока «В новостях» — в `employee_news_links`. Ссылки обходятся только из меню профиля самого сотрудника (`person-menu`), например `#sci`, `#teaching`, `#main`.
@@ -23,7 +21,6 @@ cp .env.example .env
- `DATABASE_URL`: строка подключения SQLAlchemy.
- `SOURCE_URL`: список сотрудников МИЭМ.
- `CRAWL_CRON`: расписание в формате crontab, по умолчанию `0 3 * * 1`.
- `CRAWL_LIMIT`: опциональный лимит профилей для тестового запуска.
- `ADMIN_USERNAME`, `ADMIN_PASSWORD`: логин и пароль админки.
- `SESSION_SECRET`: секрет подписи cookie.
@@ -57,7 +54,6 @@ docker compose up --build
По умолчанию:
- API и админка: `http://localhost:8000`
- MCP: `http://localhost:8001/mcp`
- Postgres: `localhost:5432`
Таблицы создаются приложением при старте. При обновлении существующей базы приложение также добавляет недостающие runtime-колонки, например `crawl_runs.skipped_count`. SQL-миграции для ручного применения лежат в `migrations/`.
@@ -84,7 +80,7 @@ docker compose up --build
## Парсинг
Weekly worker запускается по `CRAWL_CRON`. Ручной запуск доступен в админке на `Dashboard` и странице `Runs` или через REST:
Ручной запуск доступен в админке на `Dashboard` и странице `Runs` или через REST:
```bash
curl -X POST http://localhost:8000/api/crawl-runs --cookie "miem_admin_session=..."
@@ -131,7 +127,7 @@ Endpoint: `POST /mcp`, без авторизации на уровне прил
Пример локального запроса списка tools:
```bash
curl http://localhost:8001/mcp \
curl http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
```
@@ -142,9 +138,8 @@ curl http://localhost:8001/mcp \
```bash
docker compose logs -f api
docker compose logs -f worker
docker compose exec postgres pg_dump -U miem miem_workers > backup.sql
docker compose down
```
Версия сервиса: `0.7.3`. Админка всегда показывает версии backend и frontend в footer.
Версия сервиса: `0.7.5`. Админка всегда показывает версии backend и frontend в footer.
+3 -3
View File
@@ -1,3 +1,3 @@
APP_VERSION = "0.7.4"
FRONTEND_VERSION = "0.7.4"
BACKEND_VERSION = "0.7.4"
APP_VERSION = "0.7.5"
FRONTEND_VERSION = "0.7.5"
BACKEND_VERSION = "0.7.5"
-22
View File
@@ -25,27 +25,5 @@ services:
postgres:
condition: service_healthy
worker:
build: .
command: python -m app.worker
env_file: .env
environment:
DATABASE_URL: postgresql+psycopg://${POSTGRES_USER:-miem}:${POSTGRES_PASSWORD:-miem_password}@postgres:5432/${POSTGRES_DB:-miem_workers}
depends_on:
postgres:
condition: service_healthy
mcp:
build: .
command: uvicorn app.main:app --host 0.0.0.0 --port 8000
env_file: .env
environment:
DATABASE_URL: postgresql+psycopg://${POSTGRES_USER:-miem}:${POSTGRES_PASSWORD:-miem_password}@postgres:5432/${POSTGRES_DB:-miem_workers}
ports:
- "127.0.0.1:${MCP_PORT:-8001}:8000"
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "miem-workers"
version = "0.7.4"
version = "0.7.5"
description = "MIEM employees parser, admin API, and MCP server"
requires-python = ">=3.11"
dependencies = [