diff --git a/nginx-proxy-manager/README.md b/nginx-proxy-manager/README.md index 901e37f..12d1f9b 100644 --- a/nginx-proxy-manager/README.md +++ b/nginx-proxy-manager/README.md @@ -6,7 +6,7 @@ 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. +This Docker Compose configuration sets up the Reverse Proxy application using a 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/) @@ -40,7 +40,7 @@ mkdir -p /data/nginx-proxy-manager/data /data/nginx-proxy-manager/letsencrypt /v ## 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. +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 @@ -54,7 +54,7 @@ mkdir -p /data/nginx-proxy-manager/data /data/nginx-proxy-manager/letsencrypt /v docker network create proxy docker run -d \ - --name proxy \ + --name nginx-proxy-manager \ --restart unless-stopped \ --network proxy \ -e X_FRAME_OPTIONS="sameorigin" \ @@ -65,5 +65,43 @@ docker run -d \ -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 + jc21/nginx-proxy-manager:latest ``` + +## Upgrade (and backup) + +Back up the data volume with restic before upgrading, so you can restore it if the new version doesn't come up cleanly. Logs aren't included since they're not needed for a restore. + +```bash +restic backup /data/nginx-proxy-manager +``` + +Once the backup completes, pull the new image and recreate the container: + +```bash +docker compose pull +docker compose up -d +``` + +Or, if you're running the `docker run` version instead of compose: + +```bash +docker pull jc21/nginx-proxy-manager:latest +docker stop nginx-proxy-manager +docker rm nginx-proxy-manager +docker run -d \ + --name nginx-proxy-manager \ + --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:latest +``` + +If something goes wrong, restore the snapshot with `restic restore latest --target /` (or `restic snapshots` to pick an earlier one) and start the old container again. diff --git a/nginx-proxy-manager/compose.yml b/nginx-proxy-manager/compose.yml index 85f76cd..8834cda 100644 --- a/nginx-proxy-manager/compose.yml +++ b/nginx-proxy-manager/compose.yml @@ -1,6 +1,6 @@ services: proxy: - image: ${PROXY_IMAGE:-jc21/nginx-proxy-manager:2.15.0} + image: ${PROXY_IMAGE:-jc21/nginx-proxy-manager:latest} restart: unless-stopped environment: X_FRAME_OPTIONS: "sameorigin" diff --git a/nginx-proxy-manager/sample.env b/nginx-proxy-manager/sample.env index 699daf7..af7e877 100644 --- a/nginx-proxy-manager/sample.env +++ b/nginx-proxy-manager/sample.env @@ -1,4 +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 +PROXY_IMAGE=jc21/nginx-proxy-manager:2.15.1