NGINX Proxy Manager
Easy-to-use reverse proxy with a beautiful web interface for managing SSL certificates, proxy hosts, and access control.
Overview
NGINX Proxy Manager transforms the traditionally complex world of reverse proxy configuration into an intuitive web-based experience. Built on top of NGINX's battle-tested reverse proxy capabilities, this application provides a beautiful graphical interface for managing proxy hosts, SSL certificates, and access controls without requiring deep knowledge of NGINX configuration syntax. The project emerged from the need to democratize reverse proxy management, making enterprise-grade load balancing and SSL termination accessible to users who prefer visual configuration over command-line editing.
This Docker deployment leverages NGINX's event-driven architecture and proven performance characteristics while wrapping them in a user-friendly management layer. The container handles automatic SSL certificate provisioning through Let's Encrypt integration, eliminating the manual certificate management that traditionally requires cron jobs and custom scripts. The web interface communicates directly with the underlying NGINX instance, translating GUI actions into optimized NGINX configuration blocks that maintain the performance benefits of native NGINX while hiding the complexity.
Homelab enthusiasts, small development teams, and system administrators managing multiple web services will find this setup particularly valuable. Rather than manually editing NGINX configuration files and restarting services, users can add new proxy hosts, configure SSL certificates, and set up access restrictions through an elegant web dashboard. The combination delivers enterprise-grade reverse proxy functionality with the simplicity of point-and-click configuration, making advanced networking features accessible to users regardless of their NGINX expertise level.
Key Features
- Visual proxy host management with real-time NGINX configuration generation
- Automatic Let's Encrypt SSL certificate provisioning and renewal with wildcard support
- Built-in access list system for IP-based restrictions and HTTP basic authentication
- Dead host detection and automatic failover for upstream servers
- Custom NGINX configuration injection for advanced use cases and specific directives
- Stream proxy support for TCP/UDP traffic forwarding beyond HTTP/HTTPS
- Advanced SSL options including HTTP/2, HSTS, and custom certificate uploads
- Audit logging with detailed request tracking and proxy performance metrics
Common Use Cases
- 1Homelab reverse proxy for self-hosted applications like Nextcloud, Plex, and Home Assistant
- 2Development environment proxy for testing multiple applications on different ports
- 3Small business website hosting with automatic SSL for multiple domains
- 4Internal corporate proxy for securing access to development and staging environments
- 5Multi-tenant application hosting with domain-based routing and SSL isolation
- 6Load balancing for containerized applications across multiple Docker hosts
- 7Secure remote access gateway for internal web applications and dashboards
Prerequisites
- Minimum 256MB RAM for basic proxy operations, 512MB recommended for multiple hosts
- Ports 80, 443, and 81 available (or alternative ports for custom configurations)
- Domain names with proper DNS records pointing to your server for SSL certificate validation
- Basic understanding of DNS configuration and domain management
- Firewall configuration allowing inbound traffic on HTTP/HTTPS ports
- Docker host with persistent storage for certificate and configuration data
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 nginx-proxy-manager: 3 image: jc21/nginx-proxy-manager:latest4 container_name: nginx-proxy-manager5 restart: unless-stopped6 ports: 7 - "80:80"8 - "443:443"9 - "81:81"10 volumes: 11 - npm_data:/data12 - npm_letsencrypt:/etc/letsencrypt13 networks: 14 - npm-network1516volumes: 17 npm_data: 18 npm_letsencrypt: 1920networks: 21 npm-network: 22 driver: bridge.env Template
.env
1# Default admin credentials (change after first login)2# Email: admin@example.com3# Password: changemeUsage Notes
- 1Docs: https://nginxproxymanager.com/guide/
- 2Admin panel at http://localhost:81 - default: admin@example.com / changeme
- 3Add Proxy Hosts via UI - SSL certificates auto-generated with Let's Encrypt
- 4Access Lists for IP-based restrictions and basic auth
- 5Custom nginx config available for advanced use cases
- 6Perfect for homelab - no command line nginx config needed
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 nginx-proxy-manager:5 image: jc21/nginx-proxy-manager:latest6 container_name: nginx-proxy-manager7 restart: unless-stopped8 ports:9 - "80:80"10 - "443:443"11 - "81:81"12 volumes:13 - npm_data:/data14 - npm_letsencrypt:/etc/letsencrypt15 networks:16 - npm-network1718volumes:19 npm_data:20 npm_letsencrypt:2122networks:23 npm-network:24 driver: bridge25EOF2627# 2. Create the .env file28cat > .env << 'EOF'29# Default admin credentials (change after first login)30# Email: admin@example.com31# Password: changeme32EOF3334# 3. Start the services35docker compose up -d3637# 4. View logs38docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/nginx-proxy-manager/run | bashTroubleshooting
- 502 Bad Gateway errors: Verify upstream services are running and accessible from the NGINX Proxy Manager container network
- Let's Encrypt certificate failures: Check DNS propagation and ensure port 80 is accessible from the internet for HTTP-01 challenges
- Admin panel inaccessible on port 81: Confirm no other services are using port 81 and check Docker port mapping configuration
- SSL certificate renewal failures: Verify domain DNS still points to your server and upstream applications haven't changed ports
- Proxy host configuration not applying: Check for syntax errors in custom NGINX configurations and review container logs
- Container restart loops: Examine persistent volume permissions and ensure data directories are writable by the container user
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
nginx-proxy-manager
Tags
#nginx#proxy-manager#ssl#gui#reverse-proxy#letsencrypt
Category
Web Servers & Reverse ProxiesAd Space
Shortcuts: C CopyF FavoriteD Download