Add comprehensive DNS switchover instructions for v2.0 deployment
This commit is contained in:
parent
10b3f92cdd
commit
d15a2fcb30
1 changed files with 224 additions and 0 deletions
224
DNS_SWITCHOVER_INSTRUCTIONS.md
Normal file
224
DNS_SWITCHOVER_INSTRUCTIONS.md
Normal file
|
|
@ -0,0 +1,224 @@
|
||||||
|
# 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
|
||||||
|
```bash
|
||||||
|
ssh chaulmark@10.4.0.205
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Stop v1.0 Containers (Old mad-lawsuit.org)
|
||||||
|
```bash
|
||||||
|
cd ~/websites/mad-lawsuit.org
|
||||||
|
docker compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Pull Latest v2.0 Code
|
||||||
|
```bash
|
||||||
|
cd ~/websites/v2.mad-lawsuit.org
|
||||||
|
git pull origin main
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Rebuild v2.0 Container with New Port
|
||||||
|
```bash
|
||||||
|
docker compose down
|
||||||
|
docker compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Verify Container is Running on Port 806
|
||||||
|
```bash
|
||||||
|
docker compose ps
|
||||||
|
# Should show mad-lawsuit-v2 running on 0.0.0.0:806->80/tcp
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Clear Laravel Cache
|
||||||
|
```bash
|
||||||
|
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
|
||||||
|
```bash
|
||||||
|
docker exec caddy caddy reload --config /etc/caddy/Caddyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8. Test the Switchover
|
||||||
|
```bash
|
||||||
|
# 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
|
||||||
|
```caddyfile
|
||||||
|
# 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
|
||||||
|
```bash
|
||||||
|
cd ~/websites/v2.mad-lawsuit.org
|
||||||
|
docker compose down
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Restore Original Caddyfile
|
||||||
|
```bash
|
||||||
|
# Download backup Caddyfile (if you made one)
|
||||||
|
# Or manually edit to point back to v1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Start v1.0 Containers
|
||||||
|
```bash
|
||||||
|
cd ~/websites/mad-lawsuit.org
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Reload Caddy
|
||||||
|
```bash
|
||||||
|
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
|
||||||
|
```bash
|
||||||
|
docker compose ps
|
||||||
|
docker logs mad-lawsuit-v2 --tail 50
|
||||||
|
```
|
||||||
|
|
||||||
|
### Issue: 502 Bad Gateway
|
||||||
|
**Solution**: Verify Caddy can reach container
|
||||||
|
```bash
|
||||||
|
docker exec caddy caddy validate --config /etc/caddy/Caddyfile
|
||||||
|
docker network inspect caddy_network
|
||||||
|
```
|
||||||
|
|
||||||
|
### Issue: Database connection errors
|
||||||
|
**Solution**: Check PostgreSQL container
|
||||||
|
```bash
|
||||||
|
docker compose ps postgres
|
||||||
|
docker logs mad-lawsuit-v2-db --tail 50
|
||||||
|
```
|
||||||
|
|
||||||
|
### Issue: PDFs not loading
|
||||||
|
**Solution**: Check file permissions and storage
|
||||||
|
```bash
|
||||||
|
docker exec mad-lawsuit-v2 ls -la storage/app/public/documents
|
||||||
|
docker exec mad-lawsuit-v2 php artisan storage:link
|
||||||
|
```
|
||||||
|
|
||||||
|
## Important Notes
|
||||||
|
|
||||||
|
1. **SSL Certificates**: Caddy automatically handles SSL for mad-lawsuit.org (Let's Encrypt)
|
||||||
|
2. **Database**: PostgreSQL data persists in Docker volume `postgres_data`
|
||||||
|
3. **PDF Files**: Stored in `./storage/app/public/documents` (bind mount)
|
||||||
|
4. **No Downtime**: Switchover should be nearly instant (< 1 minute)
|
||||||
|
5. **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
|
||||||
Loading…
Add table
Reference in a new issue