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.