new testarena
This commit is contained in:
205
asf-cloud-server/testarena_1/DEPLOYMENT_CHECKLIST.md
Normal file
205
asf-cloud-server/testarena_1/DEPLOYMENT_CHECKLIST.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# Deployment Checklist
|
||||
|
||||
## Pre-Deployment
|
||||
|
||||
### 1. Configuration Files
|
||||
- [ ] Copy `.env.example` to `.env`
|
||||
- [ ] Update `SECRET_KEY` in `.env` with a secure random string
|
||||
- [ ] Update database password in `.env`
|
||||
- [ ] Update database password in `docker-compose.yml` to match
|
||||
|
||||
### 2. Caddy Integration
|
||||
- [ ] Find Caddy network name: `docker network ls`
|
||||
- [ ] Update `docker-compose.yml` with Caddy network name (lines 20 and 28-29)
|
||||
- [ ] Add TestArena configuration to Caddyfile
|
||||
- [ ] Reload Caddy configuration
|
||||
|
||||
### 3. Security
|
||||
- [ ] Generate strong SECRET_KEY (use: `python -c "import secrets; print(secrets.token_hex(32))"`)
|
||||
- [ ] Set strong database password
|
||||
- [ ] Review firewall rules
|
||||
- [ ] Ensure only Caddy exposes ports to internet
|
||||
|
||||
## Deployment
|
||||
|
||||
### 4. Build and Start
|
||||
- [ ] Run: `docker-compose up -d --build`
|
||||
- [ ] Wait 30 seconds for database initialization
|
||||
- [ ] Check containers are running: `docker ps`
|
||||
- [ ] Check logs for errors: `docker-compose logs`
|
||||
|
||||
### 5. Verify Services
|
||||
- [ ] Database container is running
|
||||
- [ ] Web container is running
|
||||
- [ ] Web container is on both networks (testarena_network and caddy_network)
|
||||
- [ ] No error messages in logs
|
||||
|
||||
### 6. Test Access
|
||||
- [ ] Access via domain: https://testarena.nabd-co.com
|
||||
- [ ] Login page loads correctly
|
||||
- [ ] Logo displays properly
|
||||
- [ ] CSS styles are applied
|
||||
|
||||
## Post-Deployment
|
||||
|
||||
### 7. Initial Setup
|
||||
- [ ] Login with default credentials (admin/admin123)
|
||||
- [ ] Change admin password immediately
|
||||
- [ ] Create test user account
|
||||
- [ ] Test user login
|
||||
- [ ] Verify admin can see admin dashboard
|
||||
- [ ] Verify regular user cannot see admin dashboard
|
||||
|
||||
### 8. Functionality Tests
|
||||
- [ ] Admin: Create new user
|
||||
- [ ] Admin: Reset user password
|
||||
- [ ] Admin: Delete user
|
||||
- [ ] User: Access dashboard
|
||||
- [ ] User: Start job submission workflow
|
||||
- [ ] User: Complete all 5 steps of submission
|
||||
- [ ] User: View job in dashboard
|
||||
- [ ] User: Click job to see details
|
||||
|
||||
### 9. Security Hardening
|
||||
- [ ] All default passwords changed
|
||||
- [ ] Database not accessible from internet
|
||||
- [ ] Only Caddy exposes ports
|
||||
- [ ] HTTPS working correctly
|
||||
- [ ] Security headers configured in Caddy
|
||||
|
||||
### 10. Monitoring Setup
|
||||
- [ ] Set up log rotation
|
||||
- [ ] Configure backup schedule for database
|
||||
- [ ] Set up monitoring alerts
|
||||
- [ ] Document backup restoration procedure
|
||||
|
||||
## Verification Commands
|
||||
|
||||
```bash
|
||||
# Check all containers
|
||||
docker ps
|
||||
|
||||
# Check logs
|
||||
docker-compose logs -f
|
||||
|
||||
# Check web container networks
|
||||
docker inspect testarena_web | grep -A 10 Networks
|
||||
|
||||
# Check database connection
|
||||
docker exec testarena_web python -c "from app import create_app, db; app = create_app(); app.app_context().push(); print('DB OK')"
|
||||
|
||||
# Test HTTP response
|
||||
curl -I http://localhost:5000
|
||||
|
||||
# Test HTTPS response
|
||||
curl -I https://testarena.nabd-co.com
|
||||
```
|
||||
|
||||
## Rollback Plan
|
||||
|
||||
If deployment fails:
|
||||
|
||||
```bash
|
||||
# Stop containers
|
||||
docker-compose down
|
||||
|
||||
# Remove volumes (WARNING: deletes data)
|
||||
docker-compose down -v
|
||||
|
||||
# Check for issues
|
||||
docker-compose logs
|
||||
|
||||
# Fix configuration
|
||||
# ... make changes ...
|
||||
|
||||
# Retry deployment
|
||||
docker-compose up -d --build
|
||||
```
|
||||
|
||||
## Backup Procedure
|
||||
|
||||
### Database Backup
|
||||
```bash
|
||||
# Create backup
|
||||
docker exec testarena_db pg_dump -U testarena_user testarena > backup_$(date +%Y%m%d).sql
|
||||
|
||||
# Restore backup
|
||||
docker exec -i testarena_db psql -U testarena_user testarena < backup_20240101.sql
|
||||
```
|
||||
|
||||
### Full Backup
|
||||
```bash
|
||||
# Backup volumes
|
||||
docker run --rm -v testarena_postgres_data:/data -v $(pwd):/backup alpine tar czf /backup/db_backup.tar.gz /data
|
||||
docker run --rm -v testarena_test_results:/data -v $(pwd):/backup alpine tar czf /backup/results_backup.tar.gz /data
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Container won't start
|
||||
1. Check logs: `docker-compose logs web`
|
||||
2. Verify database is ready: `docker-compose logs db`
|
||||
3. Check environment variables in docker-compose.yml
|
||||
|
||||
### Can't access via domain
|
||||
1. Verify DNS: `nslookup testarena.nabd-co.com`
|
||||
2. Check Caddy: `docker logs caddy_container_name`
|
||||
3. Verify network: `docker network inspect caddy_network`
|
||||
|
||||
### Database connection error
|
||||
1. Check DATABASE_URL format
|
||||
2. Verify database container is running
|
||||
3. Check database logs: `docker-compose logs db`
|
||||
|
||||
### 502 Bad Gateway
|
||||
1. Web container not ready - wait 30 seconds
|
||||
2. Check web logs: `docker-compose logs web`
|
||||
3. Verify Gunicorn is running: `docker exec testarena_web ps aux`
|
||||
|
||||
## Success Criteria
|
||||
|
||||
✅ All containers running
|
||||
✅ No errors in logs
|
||||
✅ Login page accessible via HTTPS
|
||||
✅ Admin can login and manage users
|
||||
✅ Regular user can login and access dashboard
|
||||
✅ Job submission workflow completes
|
||||
✅ Jobs appear in dashboard
|
||||
✅ Job details display correctly
|
||||
|
||||
## Post-Deployment Tasks
|
||||
|
||||
- [ ] Document any configuration changes
|
||||
- [ ] Update team on new system
|
||||
- [ ] Schedule training session
|
||||
- [ ] Plan Phase 2 implementation
|
||||
- [ ] Set up regular maintenance schedule
|
||||
|
||||
## Maintenance Schedule
|
||||
|
||||
### Daily
|
||||
- Check logs for errors
|
||||
- Verify all containers running
|
||||
|
||||
### Weekly
|
||||
- Database backup
|
||||
- Review disk usage
|
||||
- Check for security updates
|
||||
|
||||
### Monthly
|
||||
- Update Docker images
|
||||
- Review user accounts
|
||||
- Clean up old test results (automated)
|
||||
- Performance review
|
||||
|
||||
## Support Contacts
|
||||
|
||||
- System Admin: [Your contact]
|
||||
- Database Admin: [Your contact]
|
||||
- Development Team: [Your contact]
|
||||
|
||||
---
|
||||
|
||||
**Deployment Date:** _______________
|
||||
**Deployed By:** _______________
|
||||
**Verified By:** _______________
|
||||
Reference in New Issue
Block a user