🎯 Objective
By the end of the session, participants will be able to:
Use Docker Compose to install WordPress and MySQL
Configure NGINX as a reverse proxy
Set up SSL using Let’s Encrypt
Deploy the containerized app to a cloud server (e.g., AWS EC2, DigitalOcean, or Azure)
Use GitHub and Copilot for collaborative configuration and version control
⏱️ Duration
3.5–4 hours (can be split into 2–3 sessions)
👥 Target Audience
Intermediate web developers or DevOps learners
Outreach teams building secure public-facing sites
Students or professionals with basic Docker and Git knowledge
📦 Materials Needed
Cloud server (Ubuntu-based VM on AWS, Azure, or DigitalOcean)
Domain name (optional but recommended for SSL)
Docker, Docker Compose, Git, and VS Code installed
GitHub account + Copilot access
SSH access to cloud server
🗂️ Module Breakdown
1️⃣ Recap: Local Docker + WordPress Setup (30 min)
Review Docker Compose setup for WordPress + MySQL
Confirm local deployment works
Push code to GitHub repo
2️⃣ Cloud Server Setup (30 min)
Goal: Prepare remote environment Steps:
Launch Ubuntu VM on cloud provider
SSH into server
Install Docker and Docker Compose
Clone GitHub repo to server
Classroom Cue: “Your website is going global!”
3️⃣ NGINX Reverse Proxy Configuration (45 min)
Goal: Route traffic to WordPress container Steps:
Create nginx.conf file with reverse proxy rules
Use Copilot to scaffold config:
nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Add NGINX service to docker-compose.yml
Test routing with curl or browser
Visual Tag: [NGINX flow diagram]
4️⃣ SSL Setup with Let’s Encrypt (45 min)
Goal: Secure site with HTTPS Steps:
Install Certbot on server
Run Certbot to generate certificates:
Code
sudo certbot certonly --standalone -d yourdomain.com
Update nginx.conf to include SSL:
nginx
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
Reload NGINX and verify HTTPS
Classroom Cue: “Lock your site with a padlock!”
5️⃣ GitHub + Copilot for Teamwork (30 min)
Goal: Collaborate on config and deployment Steps:
Use Git branches for NGINX and SSL config
Use Copilot to suggest improvements and comments
Create pull requests and review changes
Document deployment steps in README.md
Visual Tag: [GitHub workflow + Copilot suggestions]
6️⃣ Final Deployment and Showcase (30 min)
Goal: Launch and share live site Steps:
Run docker-compose up -d on cloud server
Visit live site via domain
Share links and reflect on teamwork
🧠 Optional Extensions
Add database backups and volume persistence
Use Docker secrets for password management
Deploy via CI/CD pipeline (GitHub Actions)
Outreach adaptation: bilingual content, regional themes, classroom showcase
Tuesday, January 6, 2026
Secure Cloud Deployment of WordPress with Docker, NGINX, SSL, GitHub & Copilot
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment