From f147d1c9bc9a3d6cc12e1ef2a3105c3b8b55e03a Mon Sep 17 00:00:00 2001 From: root Date: Sun, 8 Jun 2025 04:21:21 +0000 Subject: [PATCH] fixes --- DOCKER-DEPLOYMENT-GUIDE.md | 379 ------------------ GO-LIVE-CHECKLIST.md | 109 ----- IMAGE-INVENTORY.md | 171 -------- MISSING-ELEMENTS-ADDED.md | 183 --------- PROJECT-MEMORY-REPORT.md | 325 --------------- README.md | 232 ----------- SECURITY-ANALYSIS.md | 112 ------ SITE-ERROR-ANALYSIS.md | 126 ------ SITE-FIXES-SUMMARY.md | 89 ---- WEBSITE-SUMMARY.md | 202 ---------- WINDOWS-SETUP.md | 108 ----- database_backup.sql | Bin 2572 -> 0 bytes database_final_backup.sql | Bin 2572 -> 0 bytes ...al_backup_utf8.sql => db_backup_080625.sql | 62 +-- 14 files changed, 35 insertions(+), 2063 deletions(-) delete mode 100644 DOCKER-DEPLOYMENT-GUIDE.md delete mode 100644 GO-LIVE-CHECKLIST.md delete mode 100644 IMAGE-INVENTORY.md delete mode 100644 MISSING-ELEMENTS-ADDED.md delete mode 100644 PROJECT-MEMORY-REPORT.md delete mode 100644 README.md delete mode 100644 SECURITY-ANALYSIS.md delete mode 100644 SITE-ERROR-ANALYSIS.md delete mode 100644 SITE-FIXES-SUMMARY.md delete mode 100644 WEBSITE-SUMMARY.md delete mode 100644 WINDOWS-SETUP.md delete mode 100644 database_backup.sql delete mode 100644 database_final_backup.sql rename database_final_backup_utf8.sql => db_backup_080625.sql (75%) diff --git a/DOCKER-DEPLOYMENT-GUIDE.md b/DOCKER-DEPLOYMENT-GUIDE.md deleted file mode 100644 index 16c5275..0000000 --- a/DOCKER-DEPLOYMENT-GUIDE.md +++ /dev/null @@ -1,379 +0,0 @@ -# UK Data Services - Docker Deployment Guide - -## Overview -This guide covers deploying the UK Data Services website using Docker containers for development, staging, and production environments. - -## Prerequisites -- Docker Engine 20.10+ -- Docker Compose 2.0+ -- 2GB+ RAM available -- 10GB+ disk space - -## Quick Start (Development) - -### 1. Clone Repository -```bash -git clone -cd ukdataservices -``` - -### 2. Start Development Environment -```bash -# Start all services -docker-compose -f docker-compose-dev.yml up -d - -# View logs -docker-compose -f docker-compose-dev.yml logs -f web - -# Stop services -docker-compose -f docker-compose-dev.yml down -``` - -### 3. Access Services -- **Website**: http://localhost:8080 -- **phpMyAdmin**: http://localhost:8081 -- **Mailhog**: http://localhost:8025 - -## Production Deployment - -### 1. Environment Setup -```bash -# Create production directories -mkdir -p {logs,uploads,cache,backups,ssl} - -# Set permissions -chmod 755 logs uploads cache backups -chmod 700 ssl -``` - -### 2. Configure Environment Variables -Create `.env` file: -```env -# Database -DB_ROOT_PASSWORD=your_secure_root_password -DB_PASSWORD=your_secure_web_password - -# Security -SECURITY_SALT=your_unique_salt_here -API_SECRET_KEY=your_api_secret_here - -# Application -SITE_URL=https://ukdataservices.co.uk -CONTACT_EMAIL=info@ukdataservices.co.uk -ANALYTICS_ID=your_ga_id -``` - -### 3. SSL Certificates -```bash -# Place SSL certificates in ssl/ directory -ssl/ -├── cert.pem -├── privkey.pem -└── chain.pem -``` - -### 4. Deploy Production -```bash -# Build and start services -docker-compose -f docker-compose-production.yml up -d - -# Check status -docker-compose -f docker-compose-production.yml ps - -# View logs -docker-compose -f docker-compose-production.yml logs -f -``` - -## Container Management - -### Building Images -```bash -# Build optimized production image -docker build -f Dockerfile-optimized -t ukds-web:latest . - -# Build development image -docker build -t ukds-web:dev . -``` - -### Container Operations -```bash -# Execute commands in containers -docker exec -it ukds-web bash -docker exec -it ukds-database mysql -u root -p - -# View container logs -docker logs ukds-web -f -docker logs ukds-database -f - -# Monitor resource usage -docker stats -``` - -### Database Management -```bash -# Create database backup -docker exec ukds-database mysqldump -u root -p ukdataservices > backup.sql - -# Restore database -docker exec -i ukds-database mysql -u root -p ukdataservices < backup.sql - -# Access MySQL shell -docker exec -it ukds-database mysql -u root -p -``` - -## Scaling and Load Balancing - -### Horizontal Scaling -```bash -# Scale web containers -docker-compose -f docker-compose-production.yml up -d --scale web=3 - -# Use with load balancer (nginx, traefik) -``` - -### Load Balancer Configuration (nginx) -```nginx -upstream ukds_backend { - server 127.0.0.1:8080; - server 127.0.0.1:8081; - server 127.0.0.1:8082; -} - -server { - listen 80; - server_name ukdataservices.co.uk; - - location / { - proxy_pass http://ukds_backend; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - } -} -``` - -## Monitoring and Maintenance - -### Health Checks -```bash -# Check container health -docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" - -# Application health check -curl -f http://localhost/health-check.php || echo "Health check failed" -``` - -### Log Management -```bash -# View application logs -tail -f logs/apache_access.log -tail -f logs/apache_error.log -tail -f logs/php_errors.log - -# Rotate logs -docker exec ukds-web logrotate /etc/logrotate.conf -``` - -### Performance Monitoring -```bash -# Monitor container resources -docker stats ukds-web ukds-database ukds-redis - -# Database performance -docker exec ukds-database mysqladmin -u root -p status -docker exec ukds-database mysqladmin -u root -p processlist -``` - -## Backup and Recovery - -### Automated Backups -The production setup includes automated daily backups: -- Database backups: `backups/ukds_YYYYMMDD_HHMMSS.sql` -- Log archives: `backups/logs_YYYYMMDD_HHMMSS.tar.gz` -- Retention: 7 days - -### Manual Backup -```bash -# Full site backup -tar -czf ukds_backup_$(date +%Y%m%d).tar.gz \ - --exclude='node_modules' \ - --exclude='.git' \ - --exclude='cache/*' \ - . - -# Database only -docker exec ukds-database mysqldump -u root -p --all-databases > full_backup.sql -``` - -### Recovery Procedures -```bash -# Restore from backup -docker-compose -f docker-compose-production.yml down -docker volume rm ukdataservices_mysql_data -docker-compose -f docker-compose-production.yml up -d database -docker exec -i ukds-database mysql -u root -p < backup.sql -docker-compose -f docker-compose-production.yml up -d -``` - -## Security Best Practices - -### Container Security -- Non-root user execution -- Read-only file systems where possible -- Minimal base images -- Regular security updates - -### Network Security -```bash -# Isolate networks -docker network create --driver bridge ukds-isolated - -# Firewall rules -ufw allow 80/tcp -ufw allow 443/tcp -ufw deny 3306/tcp -``` - -### SSL/TLS Configuration -- Use Let's Encrypt for certificates -- Enable HSTS headers -- Strong cipher suites -- Regular certificate renewal - -## Troubleshooting - -### Common Issues - -#### Container Won't Start -```bash -# Check logs -docker logs ukds-web - -# Check disk space -df -h - -# Check memory -free -m -``` - -#### Database Connection Failed -```bash -# Verify database container -docker exec ukds-database mysqladmin -u root -p ping - -# Check network connectivity -docker exec ukds-web ping database - -# Verify credentials -docker exec ukds-web env | grep DB_ -``` - -#### Performance Issues -```bash -# Monitor resource usage -docker stats - -# Check PHP errors -tail -f logs/php_errors.log - -# Database slow queries -docker exec ukds-database tail -f /var/log/mysql/slow.log -``` - -### Performance Optimization - -#### PHP-FPM Configuration -```ini -# In docker/php.ini -pm.max_children = 50 -pm.start_servers = 5 -pm.min_spare_servers = 5 -pm.max_spare_servers = 35 -``` - -#### MySQL Tuning -```sql --- Check MySQL status -SHOW STATUS LIKE 'Threads_connected'; -SHOW STATUS LIKE 'Questions'; -SHOW STATUS LIKE 'Uptime'; - --- Optimize tables -OPTIMIZE TABLE contact_submissions; -OPTIMIZE TABLE quote_requests; -``` - -#### Redis Cache -```bash -# Monitor Redis -docker exec ukds-redis redis-cli info memory -docker exec ukds-redis redis-cli info stats -``` - -## Development Workflow - -### Local Development -1. Use `docker-compose-dev.yml` for development -2. Code changes are reflected immediately (volume mounting) -3. Debug with xdebug enabled -4. Use Mailhog for email testing - -### Testing -```bash -# Run tests in container -docker exec ukds-web ./vendor/bin/phpunit - -# PHP syntax check -find . -name "*.php" -exec docker exec ukds-web php -l {} \; -``` - -### Deployment Pipeline -1. **Development**: Local Docker environment -2. **Staging**: Production-like Docker setup -3. **Production**: Optimized Docker with monitoring - -## Configuration Files Reference - -### Environment Variables -| Variable | Description | Default | -|----------|-------------|---------| -| `DB_HOST` | Database hostname | `database` | -| `DB_NAME` | Database name | `ukdataservices` | -| `DB_USER` | Database username | `webuser` | -| `DB_PASSWORD` | Database password | Required | -| `SITE_URL` | Site URL | `http://localhost` | -| `DEBUG_MODE` | Debug mode | `0` | - -### Volume Mounts -| Host Path | Container Path | Purpose | -|-----------|----------------|---------| -| `./logs` | `/var/www/html/logs` | Application logs | -| `./uploads` | `/var/www/html/uploads` | File uploads | -| `./cache` | `/var/www/html/cache` | Application cache | -| `./ssl` | `/etc/ssl/certs/ukds` | SSL certificates | - -## Support - -For deployment issues: -1. Check container logs: `docker logs ` -2. Verify configuration files -3. Review resource usage: `docker stats` -4. Contact: dev@ukdataservices.co.uk - -## Updates and Maintenance - -### Regular Tasks -- Weekly: Review logs and performance -- Monthly: Update container images -- Quarterly: Security audit and updates - -### Update Procedure -```bash -# Pull latest images -docker-compose -f docker-compose-production.yml pull - -# Rebuild and restart -docker-compose -f docker-compose-production.yml up -d --build - -# Verify deployment -curl -f https://ukdataservices.co.uk/health-check.php -``` \ No newline at end of file diff --git a/GO-LIVE-CHECKLIST.md b/GO-LIVE-CHECKLIST.md deleted file mode 100644 index 08d4f97..0000000 --- a/GO-LIVE-CHECKLIST.md +++ /dev/null @@ -1,109 +0,0 @@ -# UK Data Services - Go Live Checklist - -## 🚀 Pre-Launch Checklist - -### 1. Google Analytics Setup -**REQUIRED**: Replace tracking codes in `index.php` - -- [ ] **Get Google Analytics 4 Measurement ID** from your current site - - Log into [Google Analytics](https://analytics.google.com) - - Go to Admin → Property Settings → Data Streams - - Copy your Measurement ID (format: `G-XXXXXXXXXX`) - -- [ ] **Update tracking code** in `index.php` line ~52: - ```html - - -