nginx-proxy-manager: add upgrade/backup workflow, rename container, fix wording

Documents backing up with restic before upgrading, for both the compose
and docker run workflows. Renames the docker run container to
nginx-proxy-manager to match the directory, and cleans up minor wording
and trailing-slash inconsistencies in the README.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
code
2026-08-22 14:52:35 +00:00
co-authored by Claude Sonnet 5
parent 310d5e8456
commit 2bb279f912
3 changed files with 44 additions and 6 deletions
+42 -4
View File
@@ -6,7 +6,7 @@ I run one instance of Nginx Proxy Manager (NPM) on each host.
## Overview ## 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) - App: [Proxy Manager on Docker Hub](https://hub.docker.com/r/jc21/nginx-proxy-manager)
- Official Site: [Nginx Proxy Manager](https://nginxproxymanager.com/) - 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 ## 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 ```bash
mkdir -p /var/log/containers/nginx-proxy-manager 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 network create proxy
docker run -d \ docker run -d \
--name proxy \ --name nginx-proxy-manager \
--restart unless-stopped \ --restart unless-stopped \
--network proxy \ --network proxy \
-e X_FRAME_OPTIONS="sameorigin" \ -e X_FRAME_OPTIONS="sameorigin" \
@@ -65,5 +65,43 @@ docker run -d \
-v "/data/nginx-proxy-manager/data:/data" \ -v "/data/nginx-proxy-manager/data:/data" \
-v "/data/nginx-proxy-manager/letsencrypt:/etc/letsencrypt" \ -v "/data/nginx-proxy-manager/letsencrypt:/etc/letsencrypt" \
-v "/var/log/containers/nginx-proxy-manager:/data/logs" \ -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.
+1 -1
View File
@@ -1,6 +1,6 @@
services: services:
proxy: proxy:
image: ${PROXY_IMAGE:-jc21/nginx-proxy-manager:2.15.0} image: ${PROXY_IMAGE:-jc21/nginx-proxy-manager:latest}
restart: unless-stopped restart: unless-stopped
environment: environment:
X_FRAME_OPTIONS: "sameorigin" X_FRAME_OPTIONS: "sameorigin"
+1 -1
View File
@@ -1,4 +1,4 @@
# Nginx Proxy Manager # Nginx Proxy Manager
VOL_PATH=/data VOL_PATH=/data
LOG_PATH=/var/log/containers/nginx-proxy-manager 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