Upgrade scripts to work with PVE 9 #1401

Closed
opened 2026-02-05 00:38:34 +03:00 by OVERLORD · 56 comments
Owner

Originally created by @Buco7854 on GitHub (Aug 5, 2025).

🌟 Briefly describe the feature

Post install script is currently setup to work with PVE 8. PVE 9 was just released and is not compatible due to the source list change.

📝 Detailed description

Hello,

As you probably now PVE 9 was released today and uses Debian 13 Trixie 🥳.

Currently the post-pve-install script is compatible only with PVE 8 and Debian 12.

Here is a non exhaustive list of changes I believe needs to be done in order for the script to be compatible again.

  • Change debian 12 sources list from 12 to 13.
  • Change source list format to deb822 style format (as per recommended in the Proxmox VE upgrade guide from 8 to 9).

Maybe some more things would need to be changed those are just the first things that came to mind while reading the script.

💡 Why is this useful?

The script cannot be used on latest Proxmox installs.

Originally created by @Buco7854 on GitHub (Aug 5, 2025). ### 🌟 Briefly describe the feature Post install script is currently setup to work with PVE 8. PVE 9 was just released and is not compatible due to the source list change. ### 📝 Detailed description Hello, As you probably now PVE 9 was released today and uses Debian 13 Trixie 🥳. Currently the [post-pve-install](https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh) script is compatible only with PVE 8 and Debian 12. Here is a non exhaustive list of changes I believe needs to be done in order for the script to be compatible again. - Change debian 12 sources list from 12 to 13. - Change source list format to deb822 style format (as per recommended in the Proxmox VE upgrade guide from 8 to 9). Maybe some more things would need to be changed those are just the first things that came to mind while reading the script. ### 💡 Why is this useful? The script cannot be used on latest Proxmox installs.
OVERLORD added the enhancement label 2026-02-05 00:38:34 +03:00
Author
Owner

@michelroegl-brunner commented on GitHub (Aug 5, 2025):

This will take some time as all of our backend scripts need to be tested befor we can release anything. There will be for sure a announcment on the discussions as well as the discord when we are ready to support pve 9.

@michelroegl-brunner commented on GitHub (Aug 5, 2025): This will take some time as all of our backend scripts need to be tested befor we can release anything. There will be for sure a announcment on the discussions as well as the discord when we are ready to support pve 9.
Author
Owner

@MickLesk commented on GitHub (Aug 6, 2025):

Feel free to give feedback, its an full refactored script, with more logic. Its only in DEV Repo now, i only test on 2 of my 3 nodes (2 PVE9 / 1 PVE8) and on an fresh installed VM

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/tools/pve/post-pve-install.sh)"
@MickLesk commented on GitHub (Aug 6, 2025): Feel free to give feedback, its an full refactored script, with more logic. Its only in DEV Repo now, i only test on 2 of my 3 nodes (2 PVE9 / 1 PVE8) and on an fresh installed VM ``` bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/tools/pve/post-pve-install.sh)" ```
Author
Owner

@AdamT20054 commented on GitHub (Aug 6, 2025):

Feel free to give feedback, its an full refactored script, with more logic. Its only in DEV Repo now, i only test on 2 of my 3 nodes (2 PVE9 / 1 PVE8) and on an fresh installed VM

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/tools/pve/post-pve-install.sh)"

Tested it myself, works fine for PVE9 except:

Can you verify disabling the enterprise repositories works? Didn't seem to disable pve-enterprise-source on my machine.

@AdamT20054 commented on GitHub (Aug 6, 2025): > Feel free to give feedback, its an full refactored script, with more logic. Its only in DEV Repo now, i only test on 2 of my 3 nodes (2 PVE9 / 1 PVE8) and on an fresh installed VM > > ``` > bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/tools/pve/post-pve-install.sh)" > ``` Tested it myself, works fine for PVE9 except: Can you verify disabling the enterprise repositories works? Didn't seem to disable pve-enterprise-source on my machine.
Author
Owner

@MickLesk commented on GitHub (Aug 6, 2025):

i dont have the enterprise in my system (removed before). Ive added an additional check, try it again and give feedback

@MickLesk commented on GitHub (Aug 6, 2025): i dont have the enterprise in my system (removed before). Ive added an additional check, try it again and give feedback
Author
Owner

@Buco7854 commented on GitHub (Aug 6, 2025):

Feel free to give feedback, its an full refactored script, with more logic. Its only in DEV Repo now, i only test on 2 of my 3 nodes (2 PVE9 / 1 PVE8) and on an fresh installed VM

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/tools/pve/post-pve-install.sh)"

Just tested it on pve 8.4.9, worked fine. I do not have a PVE 9 instance to test it out for now.

@Buco7854 commented on GitHub (Aug 6, 2025): > Feel free to give feedback, its an full refactored script, with more logic. Its only in DEV Repo now, i only test on 2 of my 3 nodes (2 PVE9 / 1 PVE8) and on an fresh installed VM > > ``` > bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/tools/pve/post-pve-install.sh)" > ``` Just tested it on pve `8.4.9`, worked fine. I do not have a PVE 9 instance to test it out for now.
Author
Owner

@AdamT20054 commented on GitHub (Aug 6, 2025):

i dont have the enterprise in my system (removed before). Ive added an additional check, try it again and give feedback

Seems to have fixed it.

I re-enabled the enterprise repo and ran the script, and it has now disabled it (as intended)

@AdamT20054 commented on GitHub (Aug 6, 2025): > i dont have the enterprise in my system (removed before). Ive added an additional check, try it again and give feedback Seems to have fixed it. I re-enabled the enterprise repo and ran the script, and it has now disabled it (as intended)
Author
Owner

@Buco7854 commented on GitHub (Aug 6, 2025):

Just a small suggestion. When changing sources on PVE 8 (and 9 in case it's already using latest sources list format, in this case there would be no backup too) that would be nice to warn that it will overwrite existing one and their components.
I use non-free-firmware and I need to add it back after script ran. It would help to remind it for those in the same situation or with maybe other sources.

@Buco7854 commented on GitHub (Aug 6, 2025): Just a small suggestion. When changing sources on PVE 8 (and 9 in case it's already using latest sources list format, in this case there would be no backup too) that would be nice to warn that it will overwrite existing one and their components. I use `non-free-firmware` and I need to add it back after script ran. It would help to remind it for those in the same situation or with maybe other sources.
Author
Owner

@AdamT20054 commented on GitHub (Aug 6, 2025):

Just a small suggestion. When changing sources on PVE 8 (and 9 in case it's already using latest sources list format, in this case there would be no backup too) that would be nice to warn that it will overwrite existing one and their components. I use non-free-firmware and I need to add it back after script ran. It would help to remind it for those in the same situation or with maybe other sources.

Wdym? I have custom sources and they didn't get overwritten?

@AdamT20054 commented on GitHub (Aug 6, 2025): > Just a small suggestion. When changing sources on PVE 8 (and 9 in case it's already using latest sources list format, in this case there would be no backup too) that would be nice to warn that it will overwrite existing one and their components. I use `non-free-firmware` and I need to add it back after script ran. It would help to remind it for those in the same situation or with maybe other sources. Wdym? I have custom sources and they didn't get overwritten?
Author
Owner

@Buco7854 commented on GitHub (Aug 6, 2025):

Just a small suggestion. When changing sources on PVE 8 (and 9 in case it's already using latest sources list format, in this case there would be no backup too) that would be nice to warn that it will overwrite existing one and their components. I use non-free-firmware and I need to add it back after script ran. It would help to remind it for those in the same situation or with maybe other sources.

Wdym? I have custom sources and they didn't get overwritten?

The sources in /etc/apt/sources.list are overwritten. Custom sources in sources.list.d are not, my bad. I added the non-free-firmware component in the main /etc/apt/sources.list file tho, maybe I should not add them in there then ?

@Buco7854 commented on GitHub (Aug 6, 2025): > > Just a small suggestion. When changing sources on PVE 8 (and 9 in case it's already using latest sources list format, in this case there would be no backup too) that would be nice to warn that it will overwrite existing one and their components. I use `non-free-firmware` and I need to add it back after script ran. It would help to remind it for those in the same situation or with maybe other sources. > > Wdym? I have custom sources and they didn't get overwritten? The sources in `/etc/apt/sources.list` are overwritten. Custom sources in `sources.list.d` are not, my bad. I added the `non-free-firmware` component in the main `/etc/apt/sources.list` file tho, maybe I should not add them in there then ?
Author
Owner

@MickLesk commented on GitHub (Aug 6, 2025):

sources.list is "deprecated" with newer version. all stored in sources.d.list\

@MickLesk commented on GitHub (Aug 6, 2025): sources.list is "deprecated" with newer version. all stored in sources.d.list\
Author
Owner

@Buco7854 commented on GitHub (Aug 6, 2025):

sources.list is "deprecated" with newer version. all stored in sources.d.list\

Just saw it, thanks. Not really related but should I add an additional list file with debian repo, but only non-free-firmware component, or should I just edit the debian.sources one?

@Buco7854 commented on GitHub (Aug 6, 2025): > sources.list is "deprecated" with newer version. all stored in sources.d.list\ Just saw it, thanks. Not really related but should I add an additional list file with debian repo, but only `non-free-firmware` component, or should I just edit the `debian.sources` one?
Author
Owner

@MickLesk commented on GitHub (Aug 6, 2025):

in proxmox.sources (in deb 13) should be added this

@MickLesk commented on GitHub (Aug 6, 2025): in proxmox.sources (in deb 13) should be added this
Author
Owner

@krakazyabra commented on GitHub (Aug 6, 2025):

Hi! In fresh installed pve9 there is also need to comment out enterprise URI in ceph repo /etc/apt/sources.list.d/ceph.sources:

root@pve1:~# cat /etc/apt/sources.list.d/ceph.sources 
Types: deb
URIs: https://enterprise.proxmox.com/debian/ceph-squid
Suites: trixie
Components: enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
@krakazyabra commented on GitHub (Aug 6, 2025): Hi! In fresh installed pve9 there is also need to comment out enterprise URI in ceph repo `/etc/apt/sources.list.d/ceph.sources`: ``` root@pve1:~# cat /etc/apt/sources.list.d/ceph.sources Types: deb URIs: https://enterprise.proxmox.com/debian/ceph-squid Suites: trixie Components: enterprise Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg ```
Author
Owner

@Buco7854 commented on GitHub (Aug 6, 2025):

in proxmox.sources (in deb 13) should be added this

Thanks a lot, just to clarify. I should add non-free-firmware component to proxmox source?

Edit:

From : https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_debian_firmware_repo

If you upgraded your Proxmox VE 9 install from a previous version of Proxmox VE and have modernized your package repositories to the new deb822-style, you will need to adapt /etc/apt/sources.list.d/debian.sources instead. Run editor /etc/apt/sources.list.d/debian.sources and add non-free-firmware to the lines starting with Components: of each stanza.

That's what I'll do

@Buco7854 commented on GitHub (Aug 6, 2025): > in proxmox.sources (in deb 13) should be added this Thanks a lot, just to clarify. I should add `non-free-firmware` component to proxmox source? Edit: From : https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_debian_firmware_repo > If you upgraded your Proxmox VE 9 install from a previous version of Proxmox VE and have modernized your package repositories to the new deb822-style, you will need to adapt /etc/apt/sources.list.d/debian.sources instead. Run editor /etc/apt/sources.list.d/debian.sources and add non-free-firmware to the lines starting with Components: of each stanza. That's what I'll do
Author
Owner

@Buco7854 commented on GitHub (Aug 6, 2025):

Based on my previous comment I suggest to add a warning in the script before editing /etc/apt/sources.list since any component change to the debian or proxmox repo will be overwritten if the user did not already migrate to deb822. Additionally, shouldn't non-free-firmware be added by default in the script since that is now promox default setting.

Starting with Debian Bookworm (Proxmox VE 8) non-free firmware (as defined by DFSG) has been moved to the newly created Debian repository component non-free-firmware.

Since Proxmox VE 9 this repository is enabled by default for new installations to ensure they can get Early OS Microcode Updates.

@Buco7854 commented on GitHub (Aug 6, 2025): Based on my previous comment I suggest to add a warning in the script before editing `/etc/apt/sources.list` since any component change to the debian or proxmox repo will be overwritten if the user did not already migrate to deb822. Additionally, shouldn't `non-free-firmware` be added by default in the script since that is now promox default setting. > Starting with Debian Bookworm (Proxmox VE 8) non-free firmware (as defined by [DFSG](https://www.debian.org/social_contract#guidelines)) has been moved to the newly created Debian repository component non-free-firmware. > Since Proxmox VE 9 this repository is enabled by default for new installations to ensure they can get [Early OS Microcode Updates](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysadmin_firmware_cpu).
Author
Owner

@MickLesk commented on GitHub (Aug 6, 2025):

pve8 work like before? ^^

@MickLesk commented on GitHub (Aug 6, 2025): pve8 work like before? ^^
Author
Owner

@Buco7854 commented on GitHub (Aug 6, 2025):

pve8 work like before? ^^

Yes.

  • Removed everything in /etc/apt/sources.list, migrated it to /etc/apt/sources.list.d/debian.sources
  • Added it in deb822-style.
Types: deb
URIs: https://deb.debian.org/debian
Suites: bookworm bookworm-updates
Components: main contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://security.debian.org/debian-security
Suites: bookworm-security
Components: main contrib non-free-firmware
Enabled: yes
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
  • Ran apt update: Everything looked fine
  • Proceed to try to install intel-microcode: worked fine
  • Rebooted: everything looks as normal.

I am still on PVE 8.4.9

@Buco7854 commented on GitHub (Aug 6, 2025): > pve8 work like before? ^^ Yes. - Removed everything in `/etc/apt/sources.list`, migrated it to `/etc/apt/sources.list.d/debian.sources` - Added it in deb822-style. ``` Types: deb URIs: https://deb.debian.org/debian Suites: bookworm bookworm-updates Components: main contrib non-free-firmware Enabled: yes Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg Types: deb URIs: https://security.debian.org/debian-security Suites: bookworm-security Components: main contrib non-free-firmware Enabled: yes Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg ``` - Ran `apt update`: Everything looked fine - Proceed to try to install `intel-microcode`: worked fine - Rebooted: everything looks as normal. I am still on PVE 8.4.9
Author
Owner

@PhantomQuad commented on GitHub (Aug 6, 2025):

Hello, appreciate the work done on this so far thanks! I wondered if you could create a post install script for the PBS v4 too?

@PhantomQuad commented on GitHub (Aug 6, 2025): Hello, appreciate the work done on this so far thanks! I wondered if you could create a post install script for the PBS v4 too?
Author
Owner

@tjfrisch commented on GitHub (Aug 7, 2025):

Tried it out on PVE9 with a new beelink, worked fine @MickLesk

@tjfrisch commented on GitHub (Aug 7, 2025): Tried it out on PVE9 with a new beelink, worked fine @MickLesk
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

Finally installed PVE 9 and tried it. Worked as expected. Just added the non-free-firmware that I bieleved should be there by default.

Also updated to PBS 4, it seems the no nag fix in (https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pbs-install.sh) doesn't work anymore there tho.

@Buco7854 commented on GitHub (Aug 7, 2025): Finally installed PVE 9 and tried it. Worked as expected. Just added the `non-free-firmware` that I bieleved should be there by default. Also updated to PBS 4, it seems the no nag fix in (https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pbs-install.sh) doesn't work anymore there tho.
Author
Owner

@GeorgeToka commented on GitHub (Aug 7, 2025):

I tried the updated script and was getting errors related to ceph. I tried re-running it but got the same errors:

Image
@GeorgeToka commented on GitHub (Aug 7, 2025): I tried the updated script and was getting errors related to ceph. I tried re-running it but got the same errors: <img width="1956" height="871" alt="Image" src="https://github.com/user-attachments/assets/67d255fb-a44c-4ef7-88fc-145625fc6303" />
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

Not sure but it looks like you tried to pull from an enterprise repository without a license key. You should use ceph no subscription repository if you don't have a key. Checkout your sources and remove ceph enterprise repository, according to the script you already have the community one.

@Buco7854 commented on GitHub (Aug 7, 2025): Not sure but it looks like you tried to pull from an enterprise repository without a license key. You should use ceph no subscription repository if you don't have a key. Checkout your sources and remove ceph enterprise repository, according to the script you already have the community one.
Author
Owner

@GeorgeToka commented on GitHub (Aug 7, 2025):

I thought the script was supposed to switch the enterprise source with a no-subscription one. The log states that it found the no-subscription repo which suggests that somehow I ended up with both. I might be missing something though.

@GeorgeToka commented on GitHub (Aug 7, 2025): I thought the script was supposed to switch the enterprise source with a no-subscription one. The log states that it found the no-subscription repo which suggests that somehow I ended up with both. I might be missing something though.
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

I thought the script was supposed to switch the enterprise source with a no-subscription one. The log states that it found the no-subscription repo which suggests that somehow I ended up with both. I might be missing something though.

Seems like previously the script would ask you if you wanted to create the sources and comment them. Seems like it did not differentiate if you already had it or not as long as you said yes.

Now it will add the no subscription ceph repo if you say yes and it's not already there. And overwrite the source file in the process. Since you already have ceph no subscription package it skips it. Then when you run apt update it tries to fetch the enterprise repository and fails.

@Buco7854 commented on GitHub (Aug 7, 2025): > I thought the script was supposed to switch the enterprise source with a no-subscription one. The log states that it found the no-subscription repo which suggests that somehow I ended up with both. I might be missing something though. Seems like previously the script would ask you if you wanted to create the sources and comment them. Seems like it did not differentiate if you already had it or not as long as you said yes. Now it will add the no subscription ceph repo if you say yes and it's not already there. And overwrite the source file in the process. Since you already have ceph no subscription package it skips it. Then when you run apt update it tries to fetch the enterprise repository and fails.
Author
Owner

@foureight84 commented on GitHub (Aug 7, 2025):

FYI, the post install script (Proxmox 8) doesn't remove the subscription nag in mobile web view. Thought I bring that up so that could be addressed in this release.

@foureight84 commented on GitHub (Aug 7, 2025): FYI, the post install script (Proxmox 8) doesn't remove the subscription nag in mobile web view. Thought I bring that up so that could be addressed in this release.
Author
Owner

@MickLesk commented on GitHub (Aug 7, 2025):

FYI, the post install script (Proxmox 8) doesn't remove the subscription nag in mobile web view. Thought I bring that up so that could be addressed in this release.

This won't happen any time soon, as the mobile site is a completely new development and is completely different from what we had before. We'll have to spend hours looking to see where it is everywhere | by the way, for PVE8 it works for me?

@MickLesk commented on GitHub (Aug 7, 2025): > FYI, the post install script (Proxmox 8) doesn't remove the subscription nag in mobile web view. Thought I bring that up so that could be addressed in this release. This won't happen any time soon, as the mobile site is a completely new development and is completely different from what we had before. We'll have to spend hours looking to see where it is everywhere | by the way, for PVE8 it works for me?
Author
Owner

@MickLesk commented on GitHub (Aug 7, 2025):

Mobile-Subscription-NAG:
A patch like the one used in the classic Proxmox web interface is impossible for the new mobile GUI because the dialog is dynamically generated directly in the browser using WebAssembly (Yew/Rust) and JavaScript.
There is no longer a single JS or text file on the server that could be patched using sed as before – the logic is firmly integrated into the compiled .wasm and .js bundles and cannot be manipulated on the server side using simple on-board tools.
Therefore, only CSS overrides or browser user scripts can help at present, but not a genuine server-side removal of the dialog logic.

In short:
Classic patching of JS files using sed is no longer possible with the new Yew frontend, as the dialog is generated directly from compiled WebAssembly/JS.
A server-side fix is therefore no longer practical; only client-side workarounds (CSS/UserScript) are possible.

@MickLesk commented on GitHub (Aug 7, 2025): **Mobile-Subscription-NAG:** A patch like the one used in the classic Proxmox web interface is impossible for the new mobile GUI because the dialog is dynamically generated directly in the browser using WebAssembly (Yew/Rust) and JavaScript. There is no longer a single JS or text file on the server that could be patched using sed as before – the logic is firmly integrated into the compiled .wasm and .js bundles and cannot be manipulated on the server side using simple on-board tools. Therefore, only CSS overrides or browser user scripts can help at present, but not a genuine server-side removal of the dialog logic. **In short:** Classic patching of JS files using sed is no longer possible with the new Yew frontend, as the dialog is generated directly from compiled WebAssembly/JS. A server-side fix is therefore no longer practical; only client-side workarounds (CSS/UserScript) are possible.
Author
Owner

@MickLesk commented on GitHub (Aug 7, 2025):

PR Created #6626

@GeorgeToka your issue should be fixed. They have added the enterprise in ceph too

@MickLesk commented on GitHub (Aug 7, 2025): PR Created #6626 @GeorgeToka your issue should be fixed. They have added the enterprise in ceph too
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

Mobile-Subscription-NAG:
A patch like the one used in the classic Proxmox web interface is impossible for the new mobile GUI because the dialog is dynamically generated directly in the browser using WebAssembly (Yew/Rust) and JavaScript.
There is no longer a single JS or text file on the server that could be patched using sed as before – the logic is firmly integrated into the compiled .wasm and .js bundles and cannot be manipulated on the server side using simple on-board tools.
Therefore, only CSS overrides or browser user scripts can help at present, but not a genuine server-side removal of the dialog logic.

In short:
Classic patching of JS files using sed is no longer possible with the new Yew frontend, as the dialog is generated directly from compiled WebAssembly/JS.
A server-side fix is therefore no longer practical; only client-side workarounds (CSS/UserScript) are possible.

Is there some entrypoint html file?
If so, could a custom js be created by the script and integrated into this html file to nullify the behavior ?

@Buco7854 commented on GitHub (Aug 7, 2025): > **Mobile-Subscription-NAG:** > A patch like the one used in the classic Proxmox web interface is impossible for the new mobile GUI because the dialog is dynamically generated directly in the browser using WebAssembly (Yew/Rust) and JavaScript. > There is no longer a single JS or text file on the server that could be patched using sed as before – the logic is firmly integrated into the compiled .wasm and .js bundles and cannot be manipulated on the server side using simple on-board tools. > Therefore, only CSS overrides or browser user scripts can help at present, but not a genuine server-side removal of the dialog logic. > > **In short:** > Classic patching of JS files using sed is no longer possible with the new Yew frontend, as the dialog is generated directly from compiled WebAssembly/JS. > A server-side fix is therefore no longer practical; only client-side workarounds (CSS/UserScript) are possible. Is there some entrypoint html file? If so, could a custom js be created by the script and integrated into this html file to nullify the behavior ?
Author
Owner

@MickLesk commented on GitHub (Aug 7, 2025):

No, I have searched the whole system, it is apparently only generated at runtime on the client. There is only two CSS, which I tried to patch, but even that was ignored, or was then like a “blocker” on the frontend.

If anyone has the time and inclination, they are welcome to have a look. Unfortunately there are hardly any more files for the new frontend. I think it will look like this in the real Proxmox frontend in the future.

@MickLesk commented on GitHub (Aug 7, 2025): No, I have searched the whole system, it is apparently only generated at runtime on the client. There is only two CSS, which I tried to patch, but even that was ignored, or was then like a “blocker” on the frontend. If anyone has the time and inclination, they are welcome to have a look. Unfortunately there are hardly any more files for the new frontend. I think it will look like this in the real Proxmox frontend in the future.
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

No, I have searched the whole system, it is apparently only generated at runtime on the client. There is only two CSS, which I tried to patch, but even that was ignored, or was then like a “blocker” on the frontend.

If anyone has the time and inclination, they are welcome to have a look. Unfortunately there are hardly any more files for the new frontend. I think it will look like this in the real Proxmox frontend in the future.

Would you mind telling me the path were the mobile frontend is located please?

@Buco7854 commented on GitHub (Aug 7, 2025): > No, I have searched the whole system, it is apparently only generated at runtime on the client. There is only two CSS, which I tried to patch, but even that was ignored, or was then like a “blocker” on the frontend. > > If anyone has the time and inclination, they are welcome to have a look. Unfortunately there are hardly any more files for the new frontend. I think it will look like this in the real Proxmox frontend in the future. Would you mind telling me the path were the mobile frontend is located please?
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

I have a javascript script to make it go away, just need to find the right place to place it

const modal = document.querySelector('dialog.pwt-outer-dialog[aria-label="No valid subscription"]');

if (modal) {
  const closeButton = modal.querySelector('.fa-close');

  modal.style.visibility = 'hidden';
  modal.removeAttribute('open');

  // Simulate click on close button to avoid blocking the UI.
  if (closeButton) {
    closeButton.click();
  }
}
@Buco7854 commented on GitHub (Aug 7, 2025): I have a javascript script to make it go away, just need to find the right place to place it ```javascript const modal = document.querySelector('dialog.pwt-outer-dialog[aria-label="No valid subscription"]'); if (modal) { const closeButton = modal.querySelector('.fa-close'); modal.style.visibility = 'hidden'; modal.removeAttribute('open'); // Simulate click on close button to avoid blocking the UI. if (closeButton) { closeButton.click(); } } ```
Author
Owner

@MickLesk commented on GitHub (Aug 7, 2025):

No, I have searched the whole system, it is apparently only generated at runtime on the client. There is only two CSS, which I tried to patch, but even that was ignored, or was then like a “blocker” on the frontend.
If anyone has the time and inclination, they are welcome to have a look. Unfortunately there are hardly any more files for the new frontend. I think it will look like this in the real Proxmox frontend in the future.

Would you mind telling me the path were the mobile frontend is located please?

/usr/share/pve-yew-mobile-gui/

@MickLesk commented on GitHub (Aug 7, 2025): > > No, I have searched the whole system, it is apparently only generated at runtime on the client. There is only two CSS, which I tried to patch, but even that was ignored, or was then like a “blocker” on the frontend. > > If anyone has the time and inclination, they are welcome to have a look. Unfortunately there are hardly any more files for the new frontend. I think it will look like this in the real Proxmox frontend in the future. > > Would you mind telling me the path were the mobile frontend is located please? /usr/share/pve-yew-mobile-gui/
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

No, I have searched the whole system, it is apparently only generated at runtime on the client. There is only two CSS, which I tried to patch, but even that was ignored, or was then like a “blocker” on the frontend.
If anyone has the time and inclination, they are welcome to have a look. Unfortunately there are hardly any more files for the new frontend. I think it will look like this in the real Proxmox frontend in the future.

Would you mind telling me the path were the mobile frontend is located please?

/usr/share/pve-yew-mobile-gui/

Thanks, Trying to get 2 sed working but getting some trouble due to character escaping.

Here is 2 thing to add

CSS to hide the modal, and javascript to close it (so that you dont get blocked)

I have a sed for css

sed -i '/<\/head>/i\
<style id="custom-hide-modal-css">\
dialog.pwt-outer-dialog[aria-label="No valid subscription"] {\
  visibility: hidden !important;\
}\
</style>' /usr/share/pve-yew-mobile-gui/index.html.tpl

but I'm kind of blocked with escaping for the javascript one. It needs to add this script right before the body tag at the end

<script id="custom-close-modal-js">
const modal = document.querySelector('dialog.pwt-outer-dialog[aria-label="No valid subscription"]');

if (modal) {
  const closeButton = modal.querySelector('.fa-close');

  modal.style.visibility = 'hidden';

  // Simulate click on close button to avoid blocking the UI.
  if (closeButton) {
    closeButton.click();
  }
}
</script>

And here are cleanup scripts to remove them.

sed -i '/<script id="custom-close-modal-js">/,/<\/script>/d' /usr/share/pve-yew-mobile-gui/index.html.tpl
sed -i '/<style id="custom-hide-modal-css">/,/<\/style>/d' /usr/share/pve-yew-mobile-gui/index.html.tpl

EDIT: got it working

@Buco7854 commented on GitHub (Aug 7, 2025): > > > No, I have searched the whole system, it is apparently only generated at runtime on the client. There is only two CSS, which I tried to patch, but even that was ignored, or was then like a “blocker” on the frontend. > > > If anyone has the time and inclination, they are welcome to have a look. Unfortunately there are hardly any more files for the new frontend. I think it will look like this in the real Proxmox frontend in the future. > > > > > > Would you mind telling me the path were the mobile frontend is located please? > > /usr/share/pve-yew-mobile-gui/ ~~Thanks, Trying to get 2 sed working but getting some trouble due to character escaping.~~ ~~Here is 2 thing to add~~ ~~CSS to hide the modal, and javascript to close it (so that you dont get blocked)~~ ~~I have a sed for css~~ ``` sed -i '/<\/head>/i\ <style id="custom-hide-modal-css">\ dialog.pwt-outer-dialog[aria-label="No valid subscription"] {\ visibility: hidden !important;\ }\ </style>' /usr/share/pve-yew-mobile-gui/index.html.tpl ``` ~~but I'm kind of blocked with escaping for the javascript one. It needs to add this script right before the body tag at the end~~ ```javascript <script id="custom-close-modal-js"> const modal = document.querySelector('dialog.pwt-outer-dialog[aria-label="No valid subscription"]'); if (modal) { const closeButton = modal.querySelector('.fa-close'); modal.style.visibility = 'hidden'; // Simulate click on close button to avoid blocking the UI. if (closeButton) { closeButton.click(); } } </script> ``` ~~And here are cleanup scripts to remove them.~~ ``` sed -i '/<script id="custom-close-modal-js">/,/<\/script>/d' /usr/share/pve-yew-mobile-gui/index.html.tpl sed -i '/<style id="custom-hide-modal-css">/,/<\/style>/d' /usr/share/pve-yew-mobile-gui/index.html.tpl ``` EDIT: got it working
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

Got it working, CSS is not even needed can't see any flashing or something.
If someone experience the modal poping and being instantly deleted we can still add the css

CSS if needed

sed -i '/<\/head>/i <style id="custom-hide-subscription-nag-css">dialog.pwt-outer-dialog[aria-label="No valid subscription"]{visibility: hidden !important;}</style>' /usr/share/pve-yew-mobile-gui/index.html.tpl

Otherwise this should work on its own:

sed -i '/<\/head>/i <script id="custom-close-subscription-nag-js">document.addEventListener("DOMContentLoaded",()=>{let e=new MutationObserver(()=>{let t=document.querySelector('\''dialog.pwt-outer-dialog[aria-label="No valid subscription"]'\'');if(t){let i=t.querySelector(".fa-close");t.style.visibility="hidden",i&&i.click(),e.disconnect()}});e.observe(document.body,{childList:!0,subtree:!0})});</script>' /usr/share/pve-yew-mobile-gui/index.html.tpl

Basically this script adds new javascript inside the head section of the html (could not make it work in body probably related to the template). Then it waits for page to load and when it loaded, everytime the body is changed, it tries to get the nag and click on close button so that it disappear. Once it found the nag it stops watching for new change in the body.

Cleanup for CSS

sed -i '/<style id="custom-hide-subscription-nag-css">.*<\/style>/d' /usr/share/pve-yew-mobile-gui/index.html.tpl

Cleanup for JS

sed -i '/<script id="custom-close-subscription-nag-js">.*<\/script>/d' /usr/share/pve-yew-mobile-gui/index.html.tpl

I believe the cleanup scripts (too avoid duplicate code) followed by the script itself should be run in the apt hook, the same as previous script was

@Buco7854 commented on GitHub (Aug 7, 2025): Got it working, CSS is not even needed can't see any flashing or something. If someone experience the modal poping and being instantly deleted we can still add the css CSS if needed ``` sed -i '/<\/head>/i <style id="custom-hide-subscription-nag-css">dialog.pwt-outer-dialog[aria-label="No valid subscription"]{visibility: hidden !important;}</style>' /usr/share/pve-yew-mobile-gui/index.html.tpl ``` Otherwise this should work on its own: ``` sed -i '/<\/head>/i <script id="custom-close-subscription-nag-js">document.addEventListener("DOMContentLoaded",()=>{let e=new MutationObserver(()=>{let t=document.querySelector('\''dialog.pwt-outer-dialog[aria-label="No valid subscription"]'\'');if(t){let i=t.querySelector(".fa-close");t.style.visibility="hidden",i&&i.click(),e.disconnect()}});e.observe(document.body,{childList:!0,subtree:!0})});</script>' /usr/share/pve-yew-mobile-gui/index.html.tpl ``` Basically this script adds new javascript inside the head section of the html (could not make it work in body probably related to the template). Then it waits for page to load and when it loaded, everytime the body is changed, it tries to get the nag and click on close button so that it disappear. Once it found the nag it stops watching for new change in the body. Cleanup for CSS ``` sed -i '/<style id="custom-hide-subscription-nag-css">.*<\/style>/d' /usr/share/pve-yew-mobile-gui/index.html.tpl ``` Cleanup for JS ``` sed -i '/<script id="custom-close-subscription-nag-js">.*<\/script>/d' /usr/share/pve-yew-mobile-gui/index.html.tpl ``` I believe the cleanup scripts (too avoid duplicate code) followed by the script itself should be run in the apt hook, the same as previous script was
Author
Owner

@Buco7854 commented on GitHub (Aug 7, 2025):

Trying to implement it with the apt hook but can't make it work (escaping etc). Would stored scripts that are then called by the hook be acceptable?

@Buco7854 commented on GitHub (Aug 7, 2025): Trying to implement it with the apt hook but can't make it work (escaping etc). Would stored scripts that are then called by the hook be acceptable?
Author
Owner

@MickLesk commented on GitHub (Aug 7, 2025):

idk. at first i merge the current pr. Feel free to make a short single PR into ProxmoxVED

@MickLesk commented on GitHub (Aug 7, 2025): idk. at first i merge the current pr. Feel free to make a short single PR into ProxmoxVED
Author
Owner

@michelroegl-brunner commented on GitHub (Aug 7, 2025):

new post install is merged.

@michelroegl-brunner commented on GitHub (Aug 7, 2025): new post install is merged.
Author
Owner

@Buco7854 commented on GitHub (Aug 8, 2025):

idk. at first i merge the current pr. Feel free to make a short single PR into ProxmoxVED

Ok. Didn't go for the stored script approach, found a better way, you can look at it on the above PR if you wish.

@Buco7854 commented on GitHub (Aug 8, 2025): > idk. at first i merge the current pr. Feel free to make a short single PR into ProxmoxVED Ok. Didn't go for the stored script approach, found a better way, you can look at it on the above PR if you wish.
Author
Owner

@destratified commented on GitHub (Aug 9, 2025):

worked great. only issue i had was that I was upgrading and had an apt config issue with the new proxmox.source file and the old format pve-non-enterprise.list (which was used as the source for the upgrade) removed the old version and update/upgrade worked fine

@destratified commented on GitHub (Aug 9, 2025): worked great. only issue i had was that I was upgrading and had an apt config issue with the new proxmox.source file and the old format pve-non-enterprise.list (which was used as the source for the upgrade) removed the old version and update/upgrade worked fine
Author
Owner

@Buco7854 commented on GitHub (Aug 13, 2025):

FYI, the post install script (Proxmox 8) doesn't remove the subscription nag in mobile web view. Thought I bring that up so that could be addressed in this release.

Hello @foureight84 ,

Would you be willing to try out the script again?
Fix for mobile nag has been merged in dev, but some feedbacks would be appreciated

Discussion:
https://github.com/community-scripts/ProxmoxVE/discussions/6781

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/main/tools/pve/post-pve-install.sh)"
@Buco7854 commented on GitHub (Aug 13, 2025): > FYI, the post install script (Proxmox 8) doesn't remove the subscription nag in mobile web view. Thought I bring that up so that could be addressed in this release. Hello @foureight84 , Would you be willing to try out the script again? Fix for mobile nag has been merged in dev, but some feedbacks would be appreciated Discussion: https://github.com/community-scripts/ProxmoxVE/discussions/6781 ``` bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/main/tools/pve/post-pve-install.sh)" ```
Author
Owner

@exocyt0sis commented on GitHub (Aug 16, 2025):

This issue has been closed. Does that mean that the helper scripts are now all adjusted for Proxmox 9.0, or are they still incompatible?

@exocyt0sis commented on GitHub (Aug 16, 2025): This issue has been closed. Does that mean that the helper scripts are now all adjusted for Proxmox 9.0, or are they still incompatible?
Author
Owner

@MickLesk commented on GitHub (Aug 16, 2025):

Really? We provide changelogs. We provide Pull requests, we provide daily releases. 1min research

@MickLesk commented on GitHub (Aug 16, 2025): Really? We provide changelogs. We provide Pull requests, we provide daily releases. 1min research
Author
Owner

@deserty21 commented on GitHub (Aug 18, 2025):

@MickLesk Thank you!

I used your script on a new installed proxmox 9.0-1...

✓ Disabled 'pve-enterprise' repository
✓ Disabled 'ceph enterprise' repository
✓ Added 'pve-no-subscription' repository
✓ 'ceph' package repository (no-subscription) already exists (skipped)
✓ Added 'pvetest' repository
✓ Disabled subscription nag (Delete browser cache)
✗ Selected no to Disabling high availability
✓ Updated Proxmox VE
✓ Completed Post Install Routines

Your post-install-script seems to be working fine so far for me. Was able to perform upgrades. Now running pve 9.0.5 on my server.

@deserty21 commented on GitHub (Aug 18, 2025): @MickLesk **Thank you!** I used your script on a new installed proxmox 9.0-1... ✓ Disabled 'pve-enterprise' repository ✓ Disabled 'ceph enterprise' repository ✓ Added 'pve-no-subscription' repository ✓ 'ceph' package repository (no-subscription) already exists (skipped) ✓ Added 'pvetest' repository ✓ Disabled subscription nag (Delete browser cache) ✗ Selected no to Disabling high availability ✓ Updated Proxmox VE ✓ Completed Post Install Routines Your post-install-script seems to be working fine so far for me. Was able to perform upgrades. Now running pve 9.0.5 on my server.
Author
Owner

@skutter-de commented on GitHub (Aug 19, 2025):

The script works for me, too. Tested it on a fresh pve 9 install

@skutter-de commented on GitHub (Aug 19, 2025): The script works for me, too. Tested it on a fresh pve 9 install
Author
Owner

@MarcelloCuoghi commented on GitHub (Aug 19, 2025):

I run it without problems after upgrading from 8.4.11 to 9.0.5, thank you!

@MarcelloCuoghi commented on GitHub (Aug 19, 2025): I run it without problems after upgrading from 8.4.11 to 9.0.5, thank you!
Author
Owner

@foureight84 commented on GitHub (Aug 21, 2025):

Confirmed working on 9.0.0 and upgraded to 9.0.5 using the script.

@foureight84 commented on GitHub (Aug 21, 2025): Confirmed working on 9.0.0 and upgraded to 9.0.5 using the script.
Author
Owner

@foureight84 commented on GitHub (Aug 28, 2025):

FYI, the post install script (Proxmox 8) doesn't remove the subscription nag in mobile web view. Thought I bring that up so that could be addressed in this release.

Hello @foureight84 ,

Would you be willing to try out the script again? Fix for mobile nag has been merged in dev, but some feedbacks would be appreciated

Discussion: #6781

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/main/tools/pve/post-pve-install.sh)"

OMG how did I miss this message. I just tested this and can confirm the nag on mobile does not appear

@foureight84 commented on GitHub (Aug 28, 2025): > > FYI, the post install script (Proxmox 8) doesn't remove the subscription nag in mobile web view. Thought I bring that up so that could be addressed in this release. > > Hello [@foureight84](https://github.com/foureight84) , > > Would you be willing to try out the script again? Fix for mobile nag has been merged in dev, but some feedbacks would be appreciated > > Discussion: [#6781](https://github.com/community-scripts/ProxmoxVE/discussions/6781) > > ``` > bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/main/tools/pve/post-pve-install.sh)" > ``` OMG how did I miss this message. I just tested this and can confirm the nag on mobile does not appear
Author
Owner

@hypnguyen1209 commented on GitHub (Sep 3, 2025):

Here is my script for performing upgrade of Proxmox Virtual Environment version 8.4 to latest version 9. It worked
https://gist.github.com/hypnguyen1209/b5bf7f256a7581cbcccbd32b18d9038c

@hypnguyen1209 commented on GitHub (Sep 3, 2025): Here is my script for performing upgrade of Proxmox Virtual Environment version 8.4 to latest version 9. It worked https://gist.github.com/hypnguyen1209/b5bf7f256a7581cbcccbd32b18d9038c
Author
Owner

@K2-Manu commented on GitHub (Oct 1, 2025):

C'est OK pour moi aussi :)
Merci

@K2-Manu commented on GitHub (Oct 1, 2025): C'est OK pour moi aussi :) Merci
Author
Owner

@arnimated commented on GitHub (Oct 6, 2025):

Thank you for this! I can confirm a successful execution on a 9.0.3 that was upgraded from a previous 8.4.1. No issues and all worked as expected and updated to the current 9.0.10!

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/main/tools/pve/post-pve-install.sh)"

@arnimated commented on GitHub (Oct 6, 2025): Thank you for this! I can confirm a successful execution on a 9.0.3 that was upgraded from a previous 8.4.1. No issues and all worked as expected and updated to the current 9.0.10! `bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/main/tools/pve/post-pve-install.sh)" `
Author
Owner

@kwetnico commented on GitHub (Dec 30, 2025):

Don't works to proxmox v9.1.1 👍

Image
@kwetnico commented on GitHub (Dec 30, 2025): Don't works to proxmox v9.1.1 👍 <img width="546" height="240" alt="Image" src="https://github.com/user-attachments/assets/982ff49c-7387-4e8b-9210-b0b95f90bb9b" />
Author
Owner

@MickLesk commented on GitHub (Dec 30, 2025):

Yes, If you use the wrong script. 👍

@MickLesk commented on GitHub (Dec 30, 2025): Yes, If you use the wrong script. 👍
Author
Owner

@kwetnico commented on GitHub (Dec 30, 2025):

Yes, If you use the wrong script. 👍

Where is the correct script ?
Thanks

@kwetnico commented on GitHub (Dec 30, 2025): > Yes, If you use the wrong script. 👍 Where is the correct script ? Thanks
Author
Owner

@MickLesk commented on GitHub (Dec 30, 2025):

In this Repo.

@MickLesk commented on GitHub (Dec 30, 2025): In this Repo.
Author
Owner

@foureight84 commented on GitHub (Jan 30, 2026):

Yes, If you use the wrong script. 👍

Where is the correct script ? Thanks

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/tools/pve/post-pve-install.sh)"

main branch is up-to-date works with 9.1

@foureight84 commented on GitHub (Jan 30, 2026): > > Yes, If you use the wrong script. 👍 > > Where is the correct script ? Thanks ``` bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/tools/pve/post-pve-install.sh)" ``` main branch is up-to-date works with 9.1
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ProxmoxVE#1401