Integrations
Payments, storage, email, AI chat, and the health endpoint.
| Integration | Configure | Used for |
|---|---|---|
| PostgreSQL | DATABASE_URL | Everything |
| S3-compatible storage | S3_BUCKET_NAME, S3_REGION, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_ENDPOINT | Menu images |
| SMTP | SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_FROM, SMTP_STORE_LINK | Password reset email |
| Stripe | See Payment providers | Online card payment, refunds |
| PayPal | PAYPAL_* | Adapter and webhook |
| OpenRouter | OPENROUTER_API_KEY, OPENROUTER_MODEL, OPENROUTER_MAX_TOKENS | Dashboard AI chat at /api/completion |
Health
GET /api/health returns the runtime health as JSON: 200 when ok, 503 otherwise, never cached. Use it for load balancer checks.
Domain events
State changes write CoffeeDomainEvent records and CoffeeOutboxDelivery rows. Both lists are hidden and system only.