Rechnungsfuchs runs on the same shape as this forum: one app container, one Postgres, Coolify on a VPS. No Redis, no queue, no k8s. Monthly invoice run fans out inside the app with advisory locks and idempotency keys. P99 invoice render is 1.8s including PDF.
Things people told me would break that have not: the database (connections capped at 25, pooled, boring), deploys during the invoice run (migrations are backward compatible, always), backups (daily, restore-tested twice, once for real when I fat-fingered a where clause).
Things that actually hurt: a PDF font that rendered Ä as tofu on exactly one customer's machine, and German tax deadlines moving.