Commit Graph

6 Commits

Author SHA1 Message Date
58ee1b3bdd feat: add card-renderer internal service (v1)
- New card-renderer FastAPI service (Python 3.11 + Pillow)
  - GET /health, GET /templates
  - POST /render (URL input)
  - POST /render/file (multipart upload)
  - POST /render/meta (dry-run layout metadata)
  - nova-artwork-v1 template: cover crop, gradient overlay, text, logo
  - SSRF-safe async image fetch with redirect validation
  - Smart center cover crop isolated for future YOLO focal-point support
  - Graceful font/logo fallback when assets are absent

- docker-compose.yml: add card-renderer service + healthcheck;
  extend gateway with CARD_RENDERER_URL and depends_on

- gateway/main.py: proxy endpoints under /cards/*
  - GET  /cards/templates
  - POST /cards/render
  - POST /cards/render/file
  - POST /cards/render/meta
  All protected by existing APIKeyMiddleware
2026-03-31 10:39:29 +02:00
b8c44bd1b2 Persist Qdrant to host: bind-mount ./data/qdrant; add data dir ignore; update docs 2026-03-23 19:52:43 +01:00
ecf8c9a401 Fix: use pydantic pattern; handle httpx RequestError in gateway and qdrant 2026-03-21 10:07:20 +01:00
e6da9924ff gateway: handle non-JSON upstream responses with 502 and upstream text 2026-03-21 09:43:37 +01:00
3b300ab3b4 Add Qdrant vectorstore service, gateway API-key middleware, docs and .gitignore 2026-03-21 09:16:11 +01:00
8da669c0e1 first commit 2026-03-21 09:09:28 +01:00