PatchMon: Breaking Changes #12092
Replies: 27 comments 17 replies
-
|
Beta Was this translation helpful? Give feedback.
-
|
|
Beta Was this translation helpful? Give feedback.
-
|
Changed to the previous setting as indicated by my backup for yesterday evening: |
Beta Was this translation helpful? Give feedback.
-
|
@heinemannj Edit line 2 in your nginx config so it says Fix is in #12075 |
Beta Was this translation helpful? Give feedback.
-
|
Even after reboot patchmon GUI is lost |
Beta Was this translation helpful? Give feedback.
-
|
Nah, it's still there; it's just hiding. Post your envs (with any necessary redactions) from |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
-
|
|
Beta Was this translation helpful? Give feedback.
-
|
Oh boy so much wrong here. And through no fault of your own. OK so stay with me and do these things:
|
Beta Was this translation helpful? Give feedback.
-
|
OK - many thanks your your deep dive and your extremely quick support!!! I've already restored my backup ... We have now at least two possibilities:
Please advice. |
Beta Was this translation helpful? Give feedback.
-
|
Well I'm still trying to figure out how your frontend env ended up with those spaces and the port missing. I'm trying to reproduce it but I can't. The only thing I can think of is that it took me some time to make the PR that caused all hell to break loose. Version 1.4.0 was already out, so I suppose you may have updated then, which would not have had my changes. I was working from 1.3.7. Then the changes were merged and from 1.4.0 to 1.4.1 something got messed up. I think you should (carefully) go through the steps I outlined above instead of waiting for the PR as your install (if the configs indeed do look like you showed before updating) will not be fixable with the script. |
Beta Was this translation helpful? Give feedback.
-
|
To be honest: OK - I will go your proposed way above |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
OK - I was to quick ... Same procedure again - restore the working backup for 1.4.0 |
Beta Was this translation helpful? Give feedback.
-
|
After a reboot and additional 2-3 min and closing the browser window and reopen patchmon again in a new browser window the dashboard was available without authentication ...
|
Beta Was this translation helpful? Give feedback.
-
|
My final note: the required correction steps 1-4 are the results of a fresh patchmon LXC installation at yesterday afternoon: https://community-scripts.github.io/ProxmoxVE/scripts?id=patchmon |
Beta Was this translation helpful? Give feedback.
-
|
By cleanup within the new GUI the fucking error is popping up again and again ...
I will open a case at patchmon side ... |
Beta Was this translation helpful? Give feedback.
-
|
Open up Devtools in your web browser and go to the network tab, see what it says there. Or check the systemd journal logs when this happens: |
Beta Was this translation helpful? Give feedback.
-
|
You're missing the port for |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
I followed the instructions here |
Beta Was this translation helpful? Give feedback.
-
|
... and if anybody asks the Homepage Dashboard Integration also needs to change ports in the settings to 3000. Then it works again. |
Beta Was this translation helpful? Give feedback.
-
|
I took a closer look at my patchmon instance and there is not a single connection to a client... |
Beta Was this translation helpful? Give feedback.
This comment was marked as off-topic.
This comment was marked as off-topic.
-
GitHub Issue: VITE_API_URL in Community Script Breaks Access When Behind Reverse ProxyTitle: Hi team, First of all, many thanks for maintaining the Proxmox community script and dedicating time to it. We have been getting issues raised on the PatchMon repo where users report that after upgrading via the community script, their server access breaks. After some digging, here is the scenario and what is happening. Background: What is VITE_API_URL?The PatchMon frontend uses a Vite environment variable const API_BASE_URL = import.meta.env.VITE_API_URL || "/api/v1";
What the Community Script DoesFresh install ( cd /opt/patchmon/frontend
cat <<EOF >./.env
VITE_API_URL=http://${LOCAL_IP}:3001/api/v1
VITE_APP_NAME=PatchMon
VITE_APP_VERSION=${VERSION}
EOF
$STD npm install --no-audit --no-fund --no-save --ignore-scripts --include=dev
$STD npm run buildUpdate flow ( PROTO="$(sed -n '/SERVER_PROTOCOL/s/[^=]*=//p' /opt/backend.env)"
HOST="$(sed -n '/SERVER_HOST/s/[^=]*=//p' /opt/backend.env)"
SERVER_PORT="$(sed -n '/SERVER_PORT/s/[^=]*=//p' /opt/backend.env)"
[[ "$PROTO" == "http" ]] && PORT=":3001"
sed -i 's/PORT=3399/PORT=3001/' /opt/backend.env
sed -i -e "s/VERSION=.*/VERSION=$VERSION/" \
-e "\|VITE_API_URL=|s|http.*|${PROTO:-http}://${HOST:-$LOCAL_IP}${PORT:-}/api/v1|" /opt/frontend.envThe script takes the server URL and port from the backend config and writes that into Note: The Why This Breaks When Behind a Reverse ProxyThe community script also installs and configures Nginx:
So users access the app through Nginx (e.g. With
In typical production setups:
Result: API calls fail (connection refused, blocked by firewall, etc.), and the dashboard cannot reach the backend. The Fix: Use a Relative URLWhen Nginx (or Caddy/Traefik etc) is in front, the frontend should use a relative path so requests go to the same origin and get proxied correctly: VITE_API_URL=/api/v1Or omit the variable entirely so the app uses the default Then:
This works regardless of domain, port, or proxy setup. Our Side: PatchMon 1.4.3+ ChangesWe are removing
Suggested Fix for the Community ScriptFresh install ( cd /opt/patchmon/frontend
cat <<EOF >./.env
VITE_APP_NAME=PatchMon
VITE_APP_VERSION=${VERSION}
EOF
sed -i '/^VITE_API_URL=/d' ./.env
$STD npm install --no-audit --no-fund --no-save --ignore-scripts --include=dev
$STD npm run buildThe Update flow ( sed -i -e "s/VERSION=.*/VERSION=$VERSION/" \
-e "\|VITE_API_URL=|s|http.*|${PROTO:-http}://${HOST:-$LOCAL_IP}${PORT:-}/api/v1|" /opt/frontend.envTo: sed -i -e "s/VERSION=.*/VERSION=$VERSION/" \
-e '/^VITE_API_URL=/d' /opt/frontend.envThe Note on SERVER_PORT and URL ConfigThe backend uses The server URL should be the URL used to access the app, i.e. the URL that reaches Nginx. Since Nginx proxies The fresh install sets I've noted this only for clarification purposes. User ReportA user faced this issue after installing via the Proxmox Helper Script. They had Summary
We recommend updating the script to remove |
Beta Was this translation helpful? Give feedback.
-
|
I have upgraded to 1.4.2 and remediated all my clients and all existing hosts seem to be working fine however when I try to add a new host the command generated is still has port 3399 and it fails to connect, manually changing it to 3001 doesn't work either and I see nowhere in the configs to change that to what I believe it should now be which is 3001. Anyone know how I fix this? |
Beta Was this translation helpful? Give feedback.




















Uh oh!
There was an error while loading. Please reload this page.
-
✅ Have you read and understood the above guidelines?
yes
🔎 Did you run the script with verbose mode enabled?
Yes, verbose mode was enabled and the output is included below
📜 What is the name of the script you are using?
PatchMon
📂 What was the exact command used to execute the script?
command line in LXC - update
⚙️ What settings are you using?
🖥️ Which Linux distribution are you using?
Debian 13
📈 Which Proxmox version are you on?
pve-manager/9.1.5/80cf92a64bef6889 (running kernel: 6.17.4-2-pve)
📝 Provide a clear and concise description of the issue.
PatchMon: Update error by update from 1.4.0 -> 1.4.1
🔄 Steps to reproduce the issue.
The following migration(s) have been applied:
migrations/
└─ 20260213000000_v1_4_1_init/
└─ migration.sql
└─ 20260216120000_add_ui_preferences_to_users/
└─ migration.sql
All migrations have been successfully applied.
2026/02/19 13:59:11 [emerg] 1075#1075: unknown directive "000" in /etc/nginx/sites-enabled/patchmon.conf:2
nginx: configuration file /etc/nginx/nginx.conf test failed
✖️ in line 75: exit code 1 (General error / Operation not permitted): while executing command nginx -t
--- Last 20 lines of log ---
[2026-02-19 13:58:39] [INFO] Update Node.js 24
[2026-02-19 13:58:43] [OK] Update Node.js 24
[2026-02-19 13:58:43] [INFO] Checking for update: PatchMon
[2026-02-19 13:58:43] [OK] Update available: PatchMon 1.4.0 → 1.4.1
[2026-02-19 13:58:43] [INFO] Stopping Service
[2026-02-19 13:58:43] [OK] Stopped Service
[2026-02-19 13:58:43] [INFO] Creating Backup
[2026-02-19 13:58:43] [OK] Backup Created
[2026-02-19 13:58:43] [INFO] Fetching GitHub release: PatchMon (1.4.1)
[2026-02-19 13:58:49] [OK] Deployed: PatchMon (1.4.1)
[2026-02-19 13:58:49] [INFO] Updating PatchMon
[2026-02-19 13:59:11] [ERROR] in line 75: exit code 1 (General error / Operation not permitted): while executing command nginx -t
📋 Full log: /tmp/create-lxc-26ec66d0.log
root@patchmon:~#
❌ Paste the full error output (if available).
root@patchmon:~# cat /tmp/create-lxc-26ec66d0.log
[2026-02-19 13:58:39] [INFO] Update Node.js 24
[2026-02-19 13:58:43] [OK] Update Node.js 24
[2026-02-19 13:58:43] [INFO] Checking for update: PatchMon
[2026-02-19 13:58:43] [OK] Update available: PatchMon 1.4.0 → 1.4.1
[2026-02-19 13:58:43] [INFO] Stopping Service
[2026-02-19 13:58:43] [OK] Stopped Service
[2026-02-19 13:58:43] [INFO] Creating Backup
[2026-02-19 13:58:43] [OK] Backup Created
[2026-02-19 13:58:43] [INFO] Fetching GitHub release: PatchMon (1.4.1)
[2026-02-19 13:58:49] [OK] Deployed: PatchMon (1.4.1)
[2026-02-19 13:58:49] [INFO] Updating PatchMon
[2026-02-19 13:59:11] [ERROR] in line 75: exit code 1 (General error / Operation not permitted): while executing command nginx -t
[2026-02-19 13:59:11] Full log: /tmp/create-lxc-26ec66d0.log
🖼️ Additional context (optional).
No response
Beta Was this translation helpful? Give feedback.
All reactions