#!/bin/bash # DigiServer v2 Production Deployment Commands Reference # Use this file as a reference for all deployment-related operations echo "📋 DigiServer v2 Production Deployment Reference" echo "=================================================" echo "" echo "QUICK START:" echo " 1. Set environment variables" echo " 2. Create .env file" echo " 3. Run: docker-compose up -d" echo "" echo "Available commands below (copy/paste as needed):" echo "" # ============================================================================ # SECTION: INITIAL SETUP # ============================================================================ echo "=== SECTION 1: INITIAL SETUP ===" echo "" echo "Generate Secret Key:" echo ' python -c "import secrets; print(secrets.token_urlsafe(32))"' echo "" echo "Create environment file from template:" echo " cp .env.example .env" echo " nano .env # Edit with your values" echo "" echo "Required .env variables:" echo " SECRET_KEY=" echo " ADMIN_USERNAME=admin" echo " ADMIN_PASSWORD=" echo " ADMIN_EMAIL=admin@company.com" echo " DOMAIN=your-domain.com" echo " EMAIL=admin@your-domain.com" echo "" # ============================================================================ # SECTION: DOCKER OPERATIONS # ============================================================================ echo "=== SECTION 2: DOCKER OPERATIONS ===" echo "" echo "Build images:" echo " docker-compose build" echo "" echo "Start services:" echo " docker-compose up -d" echo "" echo "Stop services:" echo " docker-compose down" echo "" echo "Restart services:" echo " docker-compose restart" echo "" echo "View container status:" echo " docker-compose ps" echo "" echo "View logs (live):" echo " docker-compose logs -f digiserver-app" echo "" echo "View logs (last 100 lines):" echo " docker-compose logs --tail=100 digiserver-app" echo "" # ============================================================================ # SECTION: DATABASE OPERATIONS # ============================================================================ echo "=== SECTION 3: DATABASE OPERATIONS ===" echo "" echo "Initialize database (first deployment only):" echo " docker-compose exec digiserver-app flask db upgrade" echo "" echo "Run database migrations:" echo " docker-compose exec digiserver-app flask db upgrade head" echo "" echo "Create new migration (after model changes):" echo " docker-compose exec digiserver-app flask db migrate -m 'description'" echo "" echo "Backup database:" echo " docker-compose exec digiserver-app cp instance/dashboard.db /backup/dashboard.db.bak" echo "" echo "Restore database:" echo " docker-compose exec digiserver-app cp /backup/dashboard.db.bak instance/dashboard.db" echo "" # ============================================================================ # SECTION: VERIFICATION & TESTING # ============================================================================ echo "=== SECTION 4: VERIFICATION & TESTING ===" echo "" echo "Health check:" echo " curl -k https://your-domain.com/api/health" echo "" echo "Check CORS headers (should see Access-Control-Allow-*):" echo " curl -i -k https://your-domain.com/api/playlists" echo "" echo "Check HTTPS only (should redirect):" echo " curl -i http://your-domain.com/" echo "" echo "Test certificate:" echo " openssl s_client -connect your-domain.com:443 -showcerts" echo "" echo "Check SSL certificate expiry:" echo " openssl x509 -enddate -noout -in data/nginx-ssl/cert.pem" echo "" # ============================================================================ # SECTION: TROUBLESHOOTING # ============================================================================ echo "=== SECTION 5: TROUBLESHOOTING ===" echo "" echo "View full container logs:" echo " docker-compose logs digiserver-app" echo "" echo "Execute command in container:" echo " docker-compose exec digiserver-app bash" echo "" echo "Check container resources:" echo " docker stats" echo "" echo "Remove and rebuild from scratch:" echo " docker-compose down -v" echo " docker-compose build --no-cache" echo " docker-compose up -d" echo "" echo "Check disk space:" echo " du -sh data/" echo "" echo "View network configuration:" echo " docker-compose exec digiserver-app netstat -tuln" echo "" # ============================================================================ # SECTION: MAINTENANCE # ============================================================================ echo "=== SECTION 6: MAINTENANCE ===" echo "" echo "Clean up unused Docker resources:" echo " docker system prune -a" echo "" echo "Backup entire application:" echo " tar -czf digiserver-backup-\$(date +%Y%m%d).tar.gz ." echo "" echo "Update Docker images:" echo " docker-compose pull" echo " docker-compose up -d" echo "" echo "Rebuild and redeploy:" echo " docker-compose down" echo " docker-compose build --no-cache" echo " docker-compose up -d" echo "" # ============================================================================ # SECTION: MONITORING # ============================================================================ echo "=== SECTION 7: MONITORING ===" echo "" echo "Monitor containers in real-time:" echo " watch -n 1 docker-compose ps" echo "" echo "Monitor resource usage:" echo " docker stats --no-stream" echo "" echo "Check application errors:" echo " docker-compose logs --since 10m digiserver-app | grep ERROR" echo "" # ============================================================================ # SECTION: GIT OPERATIONS # ============================================================================ echo "=== SECTION 8: GIT OPERATIONS ===" echo "" echo "Check deployment status:" echo " git status" echo "" echo "View deployment history:" echo " git log --oneline -5" echo "" echo "Commit deployment changes:" echo " git add ." echo " git commit -m 'Deployment configuration'" echo "" echo "Tag release:" echo " git tag -a v2.0.0 -m 'Production release'" echo " git push --tags" echo "" # ============================================================================ # SECTION: EMERGENCY PROCEDURES # ============================================================================ echo "=== SECTION 9: EMERGENCY PROCEDURES ===" echo "" echo "Kill stuck container:" echo " docker-compose kill digiserver-app" echo "" echo "Restore from backup:" echo " docker-compose down" echo " cp /backup/dashboard.db.bak data/instance/dashboard.db" echo " docker-compose up -d" echo "" echo "Rollback to previous version:" echo " git checkout v1.9.0" echo " docker-compose down" echo " docker-compose build" echo " docker-compose up -d" echo "" # ============================================================================ # SECTION: QUICK REFERENCE # ============================================================================ echo "=== SECTION 10: QUICK REFERENCE ALIASES ===" echo "" echo "Add these to your ~/.bashrc for quick access:" echo "" cat << 'EOF' alias ds-start='docker-compose up -d' alias ds-stop='docker-compose down' alias ds-logs='docker-compose logs -f digiserver-app' alias ds-health='curl -k https://your-domain/api/health' alias ds-status='docker-compose ps' alias ds-bash='docker-compose exec digiserver-app bash' EOF echo "" # ============================================================================ # DONE # ============================================================================ echo "=== END OF REFERENCE ===" echo "" echo "For detailed documentation, see:" echo " - PRODUCTION_DEPLOYMENT_GUIDE.md" echo " - DEPLOYMENT_READINESS_SUMMARY.md" echo " - old_code_documentation/" echo ""