Deployment Topology
This page describes the recommended production layout.
Recommended split
- API runtime: app host (Heroku/VM/K8s)
- Dashboard: web host
- Mongo + Redis: managed services
- Mailcow: separate persistent server
Why: email infrastructure should not depend on ephemeral app containers.
API deploy (quick path)
npm run deploy:heroku:api -- <heroku-app-name>
Then set production env/secrets from api/.env.production.example and api/docs/ENVIRONMENT_MATRIX.md.
Mailcow deploy (quick path)
./scripts/setup-mailcow-vps.sh root@<vps-ip> mail.<your-domain>
After installation:
- configure DNS records
- create Mailcow API key
- set API
MAILCOW_*vars - run
npm run verify:mailcow