A containerized Nginx with automatic SSL certificate management. It handles both development and production environments with minimal configuration.
- ✨ Automatic SSL certificate generation and renewal
- 🛡️ Cloudflare DNS integration
- 🚀 Development & production modes
- 📝 Dynamic configuration templates
# Development
export LOCAL=true FQDN=demo.local SERVICE_NAME=httpbin SERVICE_PORT=80
docker-compose -f local.yml up --build
# Production
export FQDN=example.com CERTBOT_EMAIL=admin@example.com
docker-compose -f production.yml up --build
Click to expand environment variables
Variable | Description | Required in Local | Required in Production |
---|---|---|---|
LOCAL | Set to "true" for local setup | ✅ | ❌ |
FQDN | Your domain name | ✅ | ✅ |
SERVICE_NAME | Name of the service to proxy | ✅ | ✅ |
SERVICE_PORT | Port of the service to proxy | ✅ | ✅ |
CERTBOT_EMAIL | Email for Let's Encrypt | ❌ | ✅ |
CERTBOT_DOMAIN | Domain for SSL certificate | ❌ | ✅ |
CLOUDFLARE_EMAIL | Cloudflare account email | ❌ | ✅ |
CLOUDFLARE_API_KEY | Cloudflare API key | ❌ | ✅ |
RENEWAL_INTERVAL | Certificate renewal check interval (default: 3d) | ❌ | ✅ |
NGINX_TEMPLATE | Path to Nginx config template (default: /etc/nginx/conf.d/default.conf.template) | ❌ | ❌ |
NGINX_CONF | Path to generated Nginx config (default: /etc/nginx/conf.d/default.conf) | ❌ | ❌ |
CUSTOM_USER | Set to "true" to create a custom user (default: false) | ❌ | ❌ |
CUSTOM_USERNAME | Username for custom user (required if CUSTOM_USER is true) | ❌ | ❌ |
CUSTOM_UID | UID for custom user (required if CUSTOM_USER is true) | ❌ | ❌ |
FLOATING_IP | IP address to use for domain verification (optional) | ❌ | ❌ |
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.