Files
maternal-app/DEPLOYMENT_QUICK_START.md
Andrei c22fa82521
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
feat: Implement comprehensive error handling and production deployment pipeline
## 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>
2025-10-09 21:27:39 +00:00

3.7 KiB

Production Deployment - Quick Start Guide

Last Updated: October 9, 2025


🚀 Quick Deployment (5 Minutes)

On Development Server

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

# 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

    cd /root/maternal-app/maternal-web && npm run build
    cd /root/maternal-app/maternal-app/maternal-app-backend && npm run build
    
  2. Commit Changes

    git add .
    git commit -m "your message"
    git push origin main
    

Production Server (Deploy)

  1. Backup

    pg_dump -U postgres -d parentflowprod -F c -f /backup/db_$(date +%Y%m%d).dump
    
  2. Pull Code

    cd /var/www/maternal-app
    git pull origin main
    
  3. Install & Build

    # 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

    cd /var/www/maternal-app/maternal-app/maternal-app-backend
    npm run migration:run
    
  5. Restart Services

    pm2 restart all
    pm2 status
    
  6. Verify

    curl http://localhost:3020/api/v1/health
    curl http://localhost:3030
    

Emergency Rollback

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

# 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:

rm -rf .next node_modules/.cache dist
npm install
npm run build

Migration Fails:

# Check migration history
npm run migration:show

# Rollback last migration
npm run migration:revert

Service Won't Start:

pm2 stop all
pm2 delete all
pm2 start ecosystem.config.js

Database Connection Issues:

# 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