Docker Deployment with Nginx HTTPS
Quick Start
For Docker web application deployment with HTTPS support:
- •Configure Nginx with SSL certificates (see nginx-https.md)
- •Set up docker-compose.yml with certificate volume mounting
- •Configure Cloudflare Tunnel to connect external domain to local container
Common Tasks
| Task | Reference |
|---|---|
| Nginx HTTPS configuration | nginx-https.md |
| Cloudflare Origin Certificate | cf-origin-cert.md |
| Docker data persistence | data-persistence.md |
| Cloudflare Tunnel setup | cf-tunnel.md |
Architecture Overview
code
Internet → Cloudflare Edge (HTTPS) → Cloudflare Tunnel → Ubuntu/Docker (Nginx)
Key Principles
- •Always use named Docker volumes for persistent data
- •Nginx should redirect HTTP (80) to HTTPS (443) in production
- •Cloudflare Origin Certificates are for CF-to-origin encryption only
- •Tunnel connects to HTTP or HTTPS - configure based on nginx setup
Troubleshooting
HTTPS not working after enabling Cloudflare force HTTPS?
- •Check if nginx listens on port 443
- •Verify SSL certificates are mounted correctly
- •Ensure Cloudflare Tunnel service URL matches (http:// or https://)
Data lost after container restart?
- •Check docker-compose.yml uses named volumes, not bind mounts for critical data
- •Verify database path points to mounted volume directory
See individual reference files for detailed solutions.