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
This commit is contained in:
10
card-renderer/assets/README.md
Normal file
10
card-renderer/assets/README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# Card Renderer Assets
|
||||
|
||||
Place the following files here before building the image:
|
||||
|
||||
- `fonts/Inter-Regular.ttf` — body text
|
||||
- `fonts/Inter-Bold.ttf` — title text
|
||||
- `logo.png` — Skinbase Nova logo (RGBA, ~320×120 px)
|
||||
|
||||
The renderer will fall back to PIL's built-in font if TTF files are absent,
|
||||
and will skip the logo overlay silently if `logo.png` is missing.
|
||||
Reference in New Issue
Block a user