async_nats::connect() silently drops user:pass embedded in NATS_URL,
so the server rejected every connection with an authorization violation.
Parse the URL and feed credentials through ConnectOptions instead.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DATABASE_URL required at startup; schema self-initializes.
Compose gains a postgres service for standalone dev.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Initial import plus deployment packaging: multi-stage Dockerfile
(cargo-leptos build -> debian-slim runtime), .dockerignore, and a
dev-only docker-compose (app + local NATS). Production deployment
lives in the infrastructure repo.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>