Handover workspace

ERS, Todo, OfferReview, and Docu in one view

Imported from live server docs, code structure, and deployment notes.

Apr 3, 2026, 12:38 PM

Todo

Operations Runbook

pm2 start whatidotoday pm2 stop whatidotoday pm2 restart whatidotoday pm2 status pm2 logs whatidotoday --lines 200

docs/OPERATIONS_RUNBOOK.md

Updated Mar 4, 2026, 3:14 AM

Operations Runbook

Routine Operations

Start / Stop / Restart

pm2 start whatidotoday
pm2 stop whatidotoday
pm2 restart whatidotoday
pm2 status
pm2 logs whatidotoday --lines 200

Health Verification

  • HTTPS app reachable
  • Login works
  • Dashboard, analytics, team pages load
  • CSV/PDF export works
  • Team settings and automation pages load for owner/admin

Scheduled Export Jobs

Manual run:

npm run cron:exports

Cron example (every hour):

0 * * * * cd /var/www/whatidotoday && npm run cron:exports >> /var/log/widt-cron.log 2>&1

Backups

Daily DB backup:

PGPASSWORD='<db_pass>' pg_dump -h localhost -U widt_user -d what_i_do_today > /var/backups/widt_$(date +%F).sql

Restore:

PGPASSWORD='<db_pass>' psql -h localhost -U widt_user -d what_i_do_today < /var/backups/widt_YYYY-MM-DD.sql

Incident Playbook

App Down

  1. Check PM2 status/logs
  2. Check Nginx logs (journalctl)
  3. Confirm DB connectivity
  4. Restart services

Rate Limit Complaints

  1. Confirm request pattern and source IP
  2. Validate that traffic is expected
  3. If needed, tune limits in src/lib/security.ts

Export Failures

  1. Check /api/export/* responses
  2. Inspect app logs for scope/range/permission errors
  3. Verify write permissions for exports/ directory
  4. Run npm run cron:exports manually to reproduce

AI Summary Failures

  1. Verify OPENAI_API_KEY
  2. Check outbound network access
  3. Confirm fallback narrative still generates

Maintenance Checklist

git pull
npm install
npm run prisma:generate
# apply schema change to DB
npm run prisma:migrate
npm run lint
npm test
npm run build
pm2 restart whatidotoday