feat: Implement comprehensive error handling and production deployment pipeline
Some checks failed
ParentFlow CI/CD Pipeline / Backend Tests (push) Has been cancelled
ParentFlow CI/CD Pipeline / Frontend Tests (push) Has been cancelled
ParentFlow CI/CD Pipeline / Security Scanning (push) Has been cancelled
ParentFlow CI/CD Pipeline / Build Docker Images (map[context:maternal-app/maternal-app-backend dockerfile:Dockerfile.production name:backend]) (push) Has been cancelled
ParentFlow CI/CD Pipeline / Build Docker Images (map[context:maternal-web dockerfile:Dockerfile.production name:frontend]) (push) Has been cancelled
ParentFlow CI/CD Pipeline / Deploy to Development (push) Has been cancelled
ParentFlow CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled
CI/CD Pipeline / Build Application (push) Has been cancelled
Some checks failed
ParentFlow CI/CD Pipeline / Backend Tests (push) Has been cancelled
ParentFlow CI/CD Pipeline / Frontend Tests (push) Has been cancelled
ParentFlow CI/CD Pipeline / Security Scanning (push) Has been cancelled
ParentFlow CI/CD Pipeline / Build Docker Images (map[context:maternal-app/maternal-app-backend dockerfile:Dockerfile.production name:backend]) (push) Has been cancelled
ParentFlow CI/CD Pipeline / Build Docker Images (map[context:maternal-web dockerfile:Dockerfile.production name:frontend]) (push) Has been cancelled
ParentFlow CI/CD Pipeline / Deploy to Development (push) Has been cancelled
ParentFlow CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled
CI/CD Pipeline / Build Application (push) Has been cancelled
## Error Handling System - Add centralized error handling utilities (errorHandler.ts) - Create reusable error components (ErrorMessage, ErrorToast) - Implement multilingual error support (preserves backend error messages in 5 languages) - Update 15+ forms and components with consistent error handling - Auth forms: login, register, forgot-password - Family management: family page, join family dialog - Child management: child dialog - All tracking forms: feeding, sleep, diaper, medicine, growth, activity ## Production Build Fixes - Fix backend TypeScript errors: InviteCode.uses → InviteCode.useCount (5 instances) - Remove non-existent savedFamily variable from registration response - Fix admin panel TypeScript errors: SimpleMDE toolbar type, PieChart label type ## User Experience Improvements - Auto-uppercase invite code and share code inputs - Visual feedback for case conversion with helper text - Improved form validation with error codes ## CI/CD Pipeline - Create comprehensive production deployment checklist (PRODUCTION_DEPLOYMENT_CHECKLIST.md) - Add automated pre-deployment check script (pre-deploy-check.sh) - Validates frontend, backend, and admin panel builds - Checks git status, branch, and sync state - Verifies environment files and migrations - Add quick start deployment guide (DEPLOYMENT_QUICK_START.md) - Add production deployment automation template (deploy-production.sh) ## Cleanup - Remove outdated push notifications documentation files - Remove outdated PWA implementation plan 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
219
DEPLOYMENT_QUICK_START.md
Normal file
219
DEPLOYMENT_QUICK_START.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# Production Deployment - Quick Start Guide
|
||||
|
||||
**Last Updated**: October 9, 2025
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Quick Deployment (5 Minutes)
|
||||
|
||||
### On Development Server
|
||||
|
||||
```bash
|
||||
cd /root/maternal-app
|
||||
|
||||
# 1. Run pre-deployment checks
|
||||
./pre-deploy-check.sh
|
||||
|
||||
# 2. Commit and push (if checks pass)
|
||||
git add .
|
||||
git commit -m "feat: describe your changes"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
### On Production Server
|
||||
|
||||
```bash
|
||||
# SSH to production
|
||||
ssh user@production-server
|
||||
|
||||
# Run automated deployment
|
||||
cd /var/www/maternal-app
|
||||
./deploy.sh
|
||||
|
||||
# Monitor logs
|
||||
pm2 logs --lines 100
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📋 Manual Deployment Steps
|
||||
|
||||
### Development Server (Pre-Deploy)
|
||||
|
||||
1. **Test Builds**
|
||||
```bash
|
||||
cd /root/maternal-app/maternal-web && npm run build
|
||||
cd /root/maternal-app/maternal-app/maternal-app-backend && npm run build
|
||||
```
|
||||
|
||||
2. **Commit Changes**
|
||||
```bash
|
||||
git add .
|
||||
git commit -m "your message"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
### Production Server (Deploy)
|
||||
|
||||
1. **Backup**
|
||||
```bash
|
||||
pg_dump -U postgres -d parentflowprod -F c -f /backup/db_$(date +%Y%m%d).dump
|
||||
```
|
||||
|
||||
2. **Pull Code**
|
||||
```bash
|
||||
cd /var/www/maternal-app
|
||||
git pull origin main
|
||||
```
|
||||
|
||||
3. **Install & Build**
|
||||
```bash
|
||||
# Frontend
|
||||
cd maternal-web
|
||||
npm ci --production
|
||||
npm run build
|
||||
|
||||
# Backend
|
||||
cd ../maternal-app/maternal-app-backend
|
||||
npm ci --production
|
||||
npm run build
|
||||
```
|
||||
|
||||
4. **Migrate Database**
|
||||
```bash
|
||||
cd /var/www/maternal-app/maternal-app/maternal-app-backend
|
||||
npm run migration:run
|
||||
```
|
||||
|
||||
5. **Restart Services**
|
||||
```bash
|
||||
pm2 restart all
|
||||
pm2 status
|
||||
```
|
||||
|
||||
6. **Verify**
|
||||
```bash
|
||||
curl http://localhost:3020/api/v1/health
|
||||
curl http://localhost:3030
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚡ Emergency Rollback
|
||||
|
||||
```bash
|
||||
cd /var/www/maternal-app
|
||||
|
||||
# 1. Rollback code
|
||||
git log -5 --oneline
|
||||
git reset --hard <previous-commit>
|
||||
|
||||
# 2. Restore database
|
||||
pg_restore -U postgres -d parentflowprod -c /backup/db_YYYYMMDD.dump
|
||||
|
||||
# 3. Rebuild & restart
|
||||
cd maternal-web && npm run build
|
||||
cd ../maternal-app/maternal-app-backend && npm run build
|
||||
pm2 restart all
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Health Checks
|
||||
|
||||
```bash
|
||||
# Backend
|
||||
curl http://localhost:3020/api/v1/health
|
||||
|
||||
# Frontend
|
||||
curl http://localhost:3030
|
||||
|
||||
# PM2 Status
|
||||
pm2 status
|
||||
pm2 logs --lines 50
|
||||
|
||||
# Database
|
||||
psql -U postgres -d parentflowprod -c "SELECT COUNT(*) FROM users;"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📁 Important Paths
|
||||
|
||||
**Development Server**:
|
||||
- App: `/root/maternal-app/`
|
||||
- Database: `10.0.0.207:5432/parentflowdev`
|
||||
- Scripts: `/root/maternal-app/*.sh`
|
||||
|
||||
**Production Server**:
|
||||
- App: `/var/www/maternal-app/`
|
||||
- Database: `localhost:5432/parentflowprod`
|
||||
- Backups: `/backup/`
|
||||
- Logs: `/var/log/maternal-app-deploy-*.log`
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Common Issues
|
||||
|
||||
**Build Fails**:
|
||||
```bash
|
||||
rm -rf .next node_modules/.cache dist
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
|
||||
**Migration Fails**:
|
||||
```bash
|
||||
# Check migration history
|
||||
npm run migration:show
|
||||
|
||||
# Rollback last migration
|
||||
npm run migration:revert
|
||||
```
|
||||
|
||||
**Service Won't Start**:
|
||||
```bash
|
||||
pm2 stop all
|
||||
pm2 delete all
|
||||
pm2 start ecosystem.config.js
|
||||
```
|
||||
|
||||
**Database Connection Issues**:
|
||||
```bash
|
||||
# Check PostgreSQL is running
|
||||
systemctl status postgresql
|
||||
|
||||
# Check connections
|
||||
psql -U postgres -c "SELECT count(*) FROM pg_stat_activity;"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 Support
|
||||
|
||||
- **Full Documentation**: See `PRODUCTION_DEPLOYMENT_CHECKLIST.md`
|
||||
- **Pre-Deploy Script**: `./pre-deploy-check.sh`
|
||||
- **Production Deploy**: Copy deploy script from checklist to production server
|
||||
|
||||
---
|
||||
|
||||
## ✅ Pre-Deployment Checklist (Quick)
|
||||
|
||||
- [ ] All builds pass locally
|
||||
- [ ] Tests pass
|
||||
- [ ] Database migrations created
|
||||
- [ ] `.env` files reviewed
|
||||
- [ ] Backup created
|
||||
- [ ] Team notified (if major release)
|
||||
|
||||
## ✅ Post-Deployment Checklist (Quick)
|
||||
|
||||
- [ ] Health checks pass
|
||||
- [ ] Login works
|
||||
- [ ] Critical features tested
|
||||
- [ ] No errors in logs
|
||||
- [ ] PM2 processes healthy
|
||||
|
||||
---
|
||||
|
||||
**For detailed instructions, see `PRODUCTION_DEPLOYMENT_CHECKLIST.md`**
|
||||
Reference in New Issue
Block a user