Adds a docker run command equivalent to the compose file, splits container logs out to a separate LOG_PATH volume (they shouldn't be backed up with the rest of the data), and cleans up README wording. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2.0 KiB
Nginx Proxy Manager
Remember, if dockhand is using a domain name, this will have to be set up first.
I run one instance of Nginx Proxy Manager (NPM) on each host.
Overview
This Docker Compose configuration sets up the Reverse Proxy application using Docker container.
- App: Proxy Manager on Docker Hub
- Official Site: Nginx Proxy Manager
- Docker tags
- Expose ports: 80, 81, 443
Default Login
- Email: admin@example.com
- Password: changeme
Create Network
The first thing you want to do is create the network:
docker network create proxy
Expose Ports
80 and 443 must be exposed, but you could proxy to 81 for the admin interface.
Create volumes
Assuming default sample.env is used:
mkdir -p /data/nginx-proxy-manager/data /data/nginx-proxy-manager/letsencrypt /var/log/containers/nginx-proxy-manager
Logs
Nginx Proxy Manager writes access/error logs under /data/logs, which is mounted outside of VOL_PATH. Since logs shouldn't be backed up with the rest of the data, they're mounted separately via LOG_PATH, which defaults to /var/log/containers/nginx-proxy-manager/. If you'd rather back up/sync logs with the rest of the data, just remove the logs volume.
mkdir -p /var/log/containers/nginx-proxy-manager
Equivalent docker run command
mkdir -p /data/nginx-proxy-manager/data /data/nginx-proxy-manager/letsencrypt /var/log/containers/nginx-proxy-manager
docker network create proxy
docker run -d \
--name proxy \
--restart unless-stopped \
--network proxy \
-e X_FRAME_OPTIONS="sameorigin" \
-e DB_SQLITE_FILE="/data/database.sqlite" \
-p 80:80 \
-p 81:81 \
-p 443:443 \
-v "/data/nginx-proxy-manager/data:/data" \
-v "/data/nginx-proxy-manager/letsencrypt:/etc/letsencrypt" \
-v "/var/log/containers/nginx-proxy-manager:/data/logs" \
jc21/nginx-proxy-manager:2.15.1