diff --git a/nginx-proxy-manager/README.md b/nginx-proxy-manager/README.md new file mode 100644 index 0000000..901e37f --- /dev/null +++ b/nginx-proxy-manager/README.md @@ -0,0 +1,69 @@ +# 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](https://hub.docker.com/r/jc21/nginx-proxy-manager) +- Official Site: [Nginx Proxy Manager](https://nginxproxymanager.com/) +- [Docker tags](https://hub.docker.com/r/jc21/nginx-proxy-manager/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: + +```bash +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: + +```bash +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. + +```bash +mkdir -p /var/log/containers/nginx-proxy-manager +``` + +## Equivalent docker run command + +```bash +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 +``` diff --git a/nginx-proxy-manager_notes/compose.yml b/nginx-proxy-manager/compose.yml similarity index 52% rename from nginx-proxy-manager_notes/compose.yml rename to nginx-proxy-manager/compose.yml index 6b16417..85f76cd 100644 --- a/nginx-proxy-manager_notes/compose.yml +++ b/nginx-proxy-manager/compose.yml @@ -1,6 +1,6 @@ services: proxy: - image: ${PROXY_IMAGE} + image: ${PROXY_IMAGE:-jc21/nginx-proxy-manager:2.15.0} restart: unless-stopped environment: X_FRAME_OPTIONS: "sameorigin" @@ -10,8 +10,9 @@ services: - "81:81" - "443:443" volumes: - - "${VOL_PATH}/proxy/data:/data" - - "${VOL_PATH}/proxy/letsencrypt:/etc/letsencrypt" + - "${VOL_PATH:-/data}/nginx-proxy-manager/data:/data" + - "${VOL_PATH:-/data}/nginx-proxy-manager/letsencrypt:/etc/letsencrypt" + - "${LOG_PATH:-/var/log/containers/nginx-proxy-manager}:/data/logs" networks: - proxy diff --git a/nginx-proxy-manager_notes/sample.env b/nginx-proxy-manager/sample.env similarity index 62% rename from nginx-proxy-manager_notes/sample.env rename to nginx-proxy-manager/sample.env index 23941f8..699daf7 100644 --- a/nginx-proxy-manager_notes/sample.env +++ b/nginx-proxy-manager/sample.env @@ -1,3 +1,4 @@ # Nginx Proxy Manager VOL_PATH=/data +LOG_PATH=/var/log/containers/nginx-proxy-manager PROXY_IMAGE=jc21/nginx-proxy-manager:2.15.0 diff --git a/nginx-proxy-manager_notes/README.md b/nginx-proxy-manager_notes/README.md deleted file mode 100644 index fc17eb9..0000000 --- a/nginx-proxy-manager_notes/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Nginx Proxy Manager - -This doesn't really work in dockhand as you won't have access to a lot of services without this running. -Moved to notes section, run the compose file manually. - -## Overview -This Docker Compose configuration sets up the Reverse Proxy application using Docker container. - -- App: [Proxy Manager on Docker Hub](https://hub.docker.com/r/jc21/nginx-proxy-manager) -- Official Site: [Nginx Proxy Manager](https://nginxproxymanager.com/) -- [Docker tags](https://hub.docker.com/r/jc21/nginx-proxy-manager/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: - -```bash -docker network create proxy -``` - -## Expose Ports - -80 and 443 must be exposed, but you could proxy to 81 for the admin interface. - -## Project Setup - -See sample-extends.yml - -### Create volumes -```bash -mkdir -p data/proxy data/proxy-letsencrypt -```