This document is the source of truth for deploying the current stack:
- Backend: NestJS + PostgreSQL
- Frontend: React + Vite
- Realtime: Socket.io
- Backend production build works (
backend:npm run build) - Frontend production build works (
frontend:npm run build) - Dockerfiles added for backend and frontend
- Production compose file added (
docker-compose.prod.yml) - Production env template added (
.env.production.example) - TypeORM migrations not set up yet (currently no migration files)
- Automated tests are not yet implemented
From project root:
cp .env.production.example .env.productionEdit .env.production and set real values, especially:
POSTGRES_PASSWORDJWT_SECRETJWT_REFRESH_SECRETCORS_ORIGINVITE_API_URLVITE_WS_URL
docker compose --env-file .env.production -f docker-compose.prod.yml up -d --build- Frontend:
http://<server-ip>/ - Backend health:
http://<server-ip>:3000/api/v1/health
docker compose --env-file .env.production -f docker-compose.prod.yml up -d --builddocker compose --env-file .env.production -f docker-compose.prod.yml down- Use HTTPS + domain (Nginx, Caddy, or cloud load balancer).
- Use managed PostgreSQL when possible.
- Rotate JWT secrets and DB password regularly.
- Add CI/CD to build and deploy automatically.
- Add migrations before go-live to avoid schema drift.