deploy: система живая на med.secondbrain.tools + актуальный README

- infra/deploy/ — реальный compose (API-контейнер за Caddy) + Caddyfile
- docs/quality_report.json — отчёт: 8871 позиций, 73.9% автонормализации
- README переписан под факт: стек, результаты, запуск (ru-text 8.6)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-26 17:47:28 +05:00
parent 787092dc02
commit 3d7b12d63d
5 changed files with 128 additions and 25 deletions
+19
View File
@@ -0,0 +1,19 @@
{
email laukhin@dementiy.com
acme_ca https://acme-v02.api.letsencrypt.org/directory
}
med.secondbrain.tools {
handle_path /api/* {
reverse_proxy api:8000
}
handle /demo* {
root * /srv
file_server
}
handle {
root * /web
file_server
encode gzip
}
}
+19
View File
@@ -0,0 +1,19 @@
# Деплой MedArchive
Лёгкая схема: контейнер API (FastAPI на готовой SQLite-базе) за общим Caddy на Selectel KZ.
Рантайму не нужны ни Gemini, ни модель — эмбеддинги и Vision отработали на этапе сборки базы.
## Шаги
1. Залить на сервер: код (`api/`, `contracts/`), фронт (`web/`), базу (`data/medarchive.db`) и
отчёт (`data/quality_report.json`) — в `/root/medarchive/`.
2. Положить `docker-compose.yml` и `Caddyfile` из этой папки в каталог с Caddy.
3. `docker compose up -d` — поднимется `medarchive-api` (ставит зависимости и запускает uvicorn).
4. Маршруты Caddy: `/api/*` → контейнер API, `/` → фронт, `/demo` → презентация.
## Проверка
```bash
curl https://med.secondbrain.tools/api/health
curl https://med.secondbrain.tools/api/stats
```
+29
View File
@@ -0,0 +1,29 @@
services:
caddy:
image: caddy:2-alpine
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./site:/srv:ro
- /root/medarchive/web:/web:ro
- caddy_data:/data
- caddy_config:/config
api:
image: python:3.12-slim
container_name: medarchive-api
restart: unless-stopped
working_dir: /app
volumes:
- /root/medarchive:/app
environment:
MEDARCHIVE_DB: /app/data/medarchive.db
command: sh -c "pip install --quiet --no-cache-dir fastapi 'uvicorn[standard]' pydantic && uvicorn api.main:app --host 0.0.0.0 --port 8000"
volumes:
caddy_data:
caddy_config: