3.9 KiB
3.9 KiB
Deployment View
Infrastructure Overview
┌──────────────┐ HTTPS/WSS ┌──────────────────────────────┐
│ Discord APIs │◄───────────────────►│ Coolify backend resource │
└──────────────┘ │ port 8787 │
│ - Discord gateway runtime │
│ - Admin API (Express) │
│ - Dailies pollers │
└──────────────┬───────────────┘
│
▼
┌───────────────────┐
│ PostgreSQL │
│ mileage + config │
└───────────────────┘
Internet
│
▼
┌──────────────────────────┐
│ Nginx edge reverse proxy │
│ - TLS termination │
│ - Host/path routing │
└─────────────┬────────────┘
│
┌────────┴───────────┐
▼ ▼
┌───────────────┐ ┌──────────────────────────┐
│ Coolify │ │ Coolify dashboard │
│ backend │ │ resource │
│ port 8787 │ │ port 80 │
└───────────────┘ │ React/Vite static deploy │
└──────────────────────────┘
CI/CD Pipeline
Source file: .gitea/workflows/ci-cd.yml
- Bot job: install dependencies, run lint, build, and test.
- Dashboard job: install dependencies in
admin-dashboard, run lint/build. - Deploy job: on
main, trigger Coolify webhook (optionally authenticated with token). - In two-resource production setup, deploy webhooks can independently trigger backend and dashboard resources.
Environment Matrix
| Environment | Runtime | Database | Notes |
|---|---|---|---|
| Local development | Node.js process via npm run dev |
Local/Postgres dev instance | Fast iteration, manual command registration |
| CI | Ephemeral runner | Test/dev DB or mocked integration path | Quality gates before deployment |
| Production | Nginx edge + Coolify backend/dashboard resources | Managed PostgreSQL | Host-based routing, TLS termination, webhook-triggered deployment from Gitea |
Deployment Risks and Mitigations
- Risk: bot restarts clear in-memory OAuth sessions. Mitigation: dashboard re-auth flow and short-lived session design.
- Risk: DB connectivity interruptions. Mitigation: startup validation + retry behavior on mileage writes.
- Risk: edge proxy misroutes dashboard/API traffic. Mitigation: verify upstream hostnames/ports and health checks after deploy.