5.3 KiB
5.3 KiB
DNS Switchover Instructions - MAD Lawsuit v2.0
Overview
This document provides step-by-step instructions to switch mad-lawsuit.org from v1.0 (Next.js) to v2.0 (Laravel).
Pre-Switchover Checklist
- ✅ v2.0 fully tested at https://v2.mad-lawsuit.org
- ✅ All data migrated (63 entries, 63 documents, 28 subscribers)
- ✅ Admin dashboard functional
- ✅ PDF uploads working
- ✅ iOS/iPad PDF viewing fixed
- ✅ .env updated with mad-lawsuit.org URLs
- ✅ docker-compose.yml updated to use port 806
- ✅ Caddyfile updated on server
Deployment Steps
1. SSH to Production Server
ssh chaulmark@10.4.0.205
2. Stop v1.0 Containers (Old mad-lawsuit.org)
cd ~/websites/mad-lawsuit.org
docker compose down
3. Pull Latest v2.0 Code
cd ~/websites/v2.mad-lawsuit.org
git pull origin main
4. Rebuild v2.0 Container with New Port
docker compose down
docker compose up -d --build
5. Verify Container is Running on Port 806
docker compose ps
# Should show mad-lawsuit-v2 running on 0.0.0.0:806->80/tcp
6. Clear Laravel Cache
docker exec mad-lawsuit-v2 php artisan config:clear
docker exec mad-lawsuit-v2 php artisan cache:clear
docker exec mad-lawsuit-v2 php artisan route:clear
7. Reload Caddy Configuration
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
8. Test the Switchover
# Test from command line
curl -I https://mad-lawsuit.org
# Should return HTTP/2 200
# Should show Laravel headers
9. Browser Testing
Open https://mad-lawsuit.org in multiple browsers:
- ✅ Desktop Chrome/Firefox/Safari
- ✅ Mobile Chrome/Safari
- ✅ iPad Safari (test PDF viewing)
10. Verify All Functionality
- Home page loads correctly
- Docket entries display properly
- PDF documents open correctly
- iPad PDF viewing works (opens in new tab)
- Admin login works: https://mad-lawsuit.org/admin/login
- Admin dashboard accessible
- Can create/edit/delete docket entries
- Can upload PDFs
- Email subscription works
Configuration Details
Port Mapping
- v1.0 (Old): Port 806 (now stopped)
- v2.0 (New): Port 806 (same port, different container)
Caddyfile Configuration
# MAD Lawsuit V2 (Production)
www.mad-lawsuit.org {
redir https://mad-lawsuit.org{uri} permanent
}
mad-lawsuit.org {
reverse_proxy 172.18.0.6:806
}
# Old v2 subdomain redirects to main domain
v2.mad-lawsuit.org {
redir https://mad-lawsuit.org{uri} permanent
}
www.v2.mad-lawsuit.org {
redir https://mad-lawsuit.org{uri} permanent
}
Docker Network
- Network:
caddy_network(external) - Container IP: 172.18.0.6
- Container Port: 80 (internal)
- Host Port: 806 (external)
Rollback Plan (If Needed)
If issues arise, you can quickly rollback to v1.0:
1. Stop v2.0 Container
cd ~/websites/v2.mad-lawsuit.org
docker compose down
2. Restore Original Caddyfile
# Download backup Caddyfile (if you made one)
# Or manually edit to point back to v1.0
3. Start v1.0 Containers
cd ~/websites/mad-lawsuit.org
docker compose up -d
4. Reload Caddy
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
Post-Switchover Tasks
Immediate (Within 24 hours)
- Monitor error logs:
docker logs mad-lawsuit-v2 -f - Check database connections
- Verify email notifications work
- Test all admin functions
Within 1 Week
- Remove v1.0 containers permanently
- Clean up old v1.0 files (optional backup first)
- Update documentation
- Notify Eliza of successful switchover
Optional Enhancements
- Set up automated backups
- Configure monitoring/alerts
- Implement email notifications for new entries
- Add Redis caching for performance
Troubleshooting
Issue: Site not loading
Solution: Check container status
docker compose ps
docker logs mad-lawsuit-v2 --tail 50
Issue: 502 Bad Gateway
Solution: Verify Caddy can reach container
docker exec caddy caddy validate --config /etc/caddy/Caddyfile
docker network inspect caddy_network
Issue: Database connection errors
Solution: Check PostgreSQL container
docker compose ps postgres
docker logs mad-lawsuit-v2-db --tail 50
Issue: PDFs not loading
Solution: Check file permissions and storage
docker exec mad-lawsuit-v2 ls -la storage/app/public/documents
docker exec mad-lawsuit-v2 php artisan storage:link
Important Notes
- SSL Certificates: Caddy automatically handles SSL for mad-lawsuit.org (Let's Encrypt)
- Database: PostgreSQL data persists in Docker volume
postgres_data - PDF Files: Stored in
./storage/app/public/documents(bind mount) - No Downtime: Switchover should be nearly instant (< 1 minute)
- DNS: No DNS changes needed - same domain, different backend
Success Criteria
✅ https://mad-lawsuit.org loads v2.0 application ✅ All 63 docket entries visible ✅ All 63 PDFs accessible ✅ Admin dashboard functional ✅ iPad PDF viewing works correctly ✅ No errors in logs ✅ SSL certificate valid
Contact
If issues arise:
- Check logs:
docker logs mad-lawsuit-v2 -f - Review this document
- Rollback if necessary (see Rollback Plan above)
Last Updated: December 19, 2025 Version: 2.0 Status: Ready for deployment