Files
chatballs/compose.yaml
T
AndreyandClaude Fable 5 a086675283 refactor(ai): упрощение агента и знаний (ADR-HUB-0023)
Знания: плоская сущность Knowledge (заголовок, описание, MD) + файловые
вложения с оригинальными именами (retrieval из md/txt/pdf/docx, публичная
ссылка для клиента). Агент: без релизов, инструкции из трёх частей
(персонализация/тон/инструкции) + выбор знаний из библиотеки; лимит
диалогов упразднён (остался dailyCostUsd). channel.system_prompt/model
удалены — AI-поведение только на агенте. Продукт — техническая запись
без summary/sales_description. Data-миграция переносит опубликованные
документы и активные релизы в новую модель. Internal-UI: раздел Знания,
новая карточка агента, упрощённые продукты, release-страницы удалены.
ADR-0005/0007/0017 → superseded; SPEC-HUB-0012 переписан.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 17:08:50 +03:00

119 lines
2.8 KiB
YAML

x-hub-env: &hub-env
- path: .env.example
- path: .env
required: false
services:
postgres:
image: pgvector/pgvector:pg16
environment:
POSTGRES_DB: ${POSTGRES_DB:-edevs_hub}
POSTGRES_USER: ${POSTGRES_USER:-edevs_hub}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-edevs_hub}
ports:
- "${POSTGRES_HOST_PORT:-5432}:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 10
redis:
image: redis:7-alpine
ports:
- "${REDIS_HOST_PORT:-6379}:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 10
backend:
build:
context: .
dockerfile: apps/backend/Dockerfile
env_file: *hub-env
command: >
sh -c "python manage.py collectstatic --noinput &&
python manage.py migrate &&
uvicorn hub_backend.asgi:application --host 0.0.0.0 --port 8000"
ports:
- "${BACKEND_PORT:-8010}:8000"
volumes:
- ./apps/backend:/app/apps/backend
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test:
[
"CMD",
"python",
"-c",
"import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/health/live/', timeout=3)",
]
interval: 10s
timeout: 5s
retries: 10
worker:
build:
context: .
dockerfile: apps/backend/Dockerfile
env_file: *hub-env
command: python manage.py run_worker
volumes:
- ./apps/backend:/app/apps/backend
depends_on:
backend:
condition: service_healthy
internal-ui:
build:
context: .
dockerfile: apps/internal-ui/Dockerfile
env_file: *hub-env
command: npm run dev -- --host 0.0.0.0 --port 5173
ports:
- "5173:5173"
volumes:
- ./apps/internal-ui:/app/apps/internal-ui
- ./packages:/app/packages
- /app/node_modules
- /app/apps/internal-ui/node_modules
web-chat:
build:
context: .
dockerfile: apps/web-chat/Dockerfile
env_file: *hub-env
command: npm run dev -- --host 0.0.0.0 --port 5175
ports:
- "5175:5175"
volumes:
- ./apps/web-chat:/app/apps/web-chat
- ./packages:/app/packages
- /app/node_modules
- /app/apps/web-chat/node_modules
proxy:
image: nginx:1.27-alpine
ports:
- "80:80"
volumes:
- ./deploy/nginx/local.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
backend:
condition: service_healthy
internal-ui:
condition: service_started
web-chat:
condition: service_started
volumes:
postgres_data: