- 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
389 B
389 B
Card Renderer Assets
Place the following files here before building the image:
fonts/Inter-Regular.ttf— body textfonts/Inter-Bold.ttf— title textlogo.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.