mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-15 22:43:00 +01:00
Compare commits
2 Commits
main
...
docs/websi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c582e37dc | ||
|
|
0071259e67 |
161
.github/changelogs/2026/03.md
generated
vendored
161
.github/changelogs/2026/03.md
generated
vendored
@@ -1,164 +1,3 @@
|
|||||||
## 2026-03-14
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Patchmon: remove v prefix from pinned version [@MickLesk](https://github.com/MickLesk) ([#12891](https://github.com/community-scripts/ProxmoxVE/pull/12891))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- tools.func: don't abort on AMD repo apt update failure [@MickLesk](https://github.com/MickLesk) ([#12890](https://github.com/community-scripts/ProxmoxVE/pull/12890))
|
|
||||||
|
|
||||||
## 2026-03-13
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Hotfix: Removed clean install usage from original script. [@nickheyer](https://github.com/nickheyer) ([#12870](https://github.com/community-scripts/ProxmoxVE/pull/12870))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Discopanel: V2 Support + Script rewrite [@nickheyer](https://github.com/nickheyer) ([#12763](https://github.com/community-scripts/ProxmoxVE/pull/12763))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- update-apps: fix restore path, add PBS support and improve restore messages [@omertahaoztop](https://github.com/omertahaoztop) ([#12528](https://github.com/community-scripts/ProxmoxVE/pull/12528))
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- fix(pve-privilege-converter): handle already stopped container in manage_states [@liuqitoday](https://github.com/liuqitoday) ([#12765](https://github.com/community-scripts/ProxmoxVE/pull/12765))
|
|
||||||
|
|
||||||
### 📚 Documentation
|
|
||||||
|
|
||||||
- Update: Docs/website metadata workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12858](https://github.com/community-scripts/ProxmoxVE/pull/12858))
|
|
||||||
|
|
||||||
## 2026-03-12
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- manyfold: fix incorrect port in upstream requests by forwarding original host [@anlopo](https://github.com/anlopo) ([#12812](https://github.com/community-scripts/ProxmoxVE/pull/12812))
|
|
||||||
- SparkyFitness: install pnpm dependencies from workspace root [@MickLesk](https://github.com/MickLesk) ([#12792](https://github.com/community-scripts/ProxmoxVE/pull/12792))
|
|
||||||
- n8n: add build-essential to update dependencies [@MickLesk](https://github.com/MickLesk) ([#12795](https://github.com/community-scripts/ProxmoxVE/pull/12795))
|
|
||||||
- Frigate openvino labelmap patch [@semtex1987](https://github.com/semtex1987) ([#12751](https://github.com/community-scripts/ProxmoxVE/pull/12751))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Pin Patchmon to 1.4.2 [@vhsdream](https://github.com/vhsdream) ([#12789](https://github.com/community-scripts/ProxmoxVE/pull/12789))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- tools.func: correct PATH escaping in ROCm profile script [@MickLesk](https://github.com/MickLesk) ([#12793](https://github.com/community-scripts/ProxmoxVE/pull/12793))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- core: add mode=generated for unattended frontend installs [@MickLesk](https://github.com/MickLesk) ([#12807](https://github.com/community-scripts/ProxmoxVE/pull/12807))
|
|
||||||
- core: validate storage availability when loading defaults [@MickLesk](https://github.com/MickLesk) ([#12794](https://github.com/community-scripts/ProxmoxVE/pull/12794))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- tools.func: support older NVIDIA driver versions with 2 segments (xxx.xxx) [@MickLesk](https://github.com/MickLesk) ([#12796](https://github.com/community-scripts/ProxmoxVE/pull/12796))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Fix PBS microcode naming [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12834](https://github.com/community-scripts/ProxmoxVE/pull/12834))
|
|
||||||
|
|
||||||
### 📂 Github
|
|
||||||
|
|
||||||
- Cleanup: remove old workflow files [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12818](https://github.com/community-scripts/ProxmoxVE/pull/12818))
|
|
||||||
- Cleanup: remove frontend, move JSONs to json/ top-level [@MickLesk](https://github.com/MickLesk) ([#12813](https://github.com/community-scripts/ProxmoxVE/pull/12813))
|
|
||||||
|
|
||||||
### ❔ Uncategorized
|
|
||||||
|
|
||||||
- Remove json files [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12830](https://github.com/community-scripts/ProxmoxVE/pull/12830))
|
|
||||||
|
|
||||||
## 2026-03-11
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- fix: Init telemetry in addon scripts [@MickLesk](https://github.com/MickLesk) ([#12777](https://github.com/community-scripts/ProxmoxVE/pull/12777))
|
|
||||||
- Tracearr: Increase default disk variable from 5 to 10 [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12762](https://github.com/community-scripts/ProxmoxVE/pull/12762))
|
|
||||||
- Fix Wireguard Dashboard update [@odin568](https://github.com/odin568) ([#12767](https://github.com/community-scripts/ProxmoxVE/pull/12767))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- Coder-Code-Server: Check if config file exists [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12758](https://github.com/community-scripts/ProxmoxVE/pull/12758))
|
|
||||||
|
|
||||||
## 2026-03-10
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- [Fix] Immich: Pin libvips to 8.17.3 [@vhsdream](https://github.com/vhsdream) ([#12744](https://github.com/community-scripts/ProxmoxVE/pull/12744))
|
|
||||||
|
|
||||||
## 2026-03-09
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- Pin Opencloud to 5.2.0 [@vhsdream](https://github.com/vhsdream) ([#12721](https://github.com/community-scripts/ProxmoxVE/pull/12721))
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- [Hotfix] qBittorrent: Disable UPnP port forwarding by default [@vhsdream](https://github.com/vhsdream) ([#12728](https://github.com/community-scripts/ProxmoxVE/pull/12728))
|
|
||||||
- [Quickfix] Opencloud: ensure correct case for binary [@vhsdream](https://github.com/vhsdream) ([#12729](https://github.com/community-scripts/ProxmoxVE/pull/12729))
|
|
||||||
- Omada: Bump libssl [@MickLesk](https://github.com/MickLesk) ([#12724](https://github.com/community-scripts/ProxmoxVE/pull/12724))
|
|
||||||
- openwebui: Ensure required dependencies [@MickLesk](https://github.com/MickLesk) ([#12717](https://github.com/community-scripts/ProxmoxVE/pull/12717))
|
|
||||||
- Frigate: try an OpenVino model build fallback [@MickLesk](https://github.com/MickLesk) ([#12704](https://github.com/community-scripts/ProxmoxVE/pull/12704))
|
|
||||||
- Change cronjob setup to use www-data user [@opastorello](https://github.com/opastorello) ([#12695](https://github.com/community-scripts/ProxmoxVE/pull/12695))
|
|
||||||
- RustDesk Server: Fix check_for_gh_release function call [@tremor021](https://github.com/tremor021) ([#12694](https://github.com/community-scripts/ProxmoxVE/pull/12694))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- feat: improve zigbee2mqtt backup handler [@MickLesk](https://github.com/MickLesk) ([#12714](https://github.com/community-scripts/ProxmoxVE/pull/12714))
|
|
||||||
|
|
||||||
- #### 💥 Breaking Changes
|
|
||||||
|
|
||||||
- Reactive Resume: rewrite for v5 using original repo amruthpilla/reactive-resume [@MickLesk](https://github.com/MickLesk) ([#12705](https://github.com/community-scripts/ProxmoxVE/pull/12705))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- tools: add Alpine (apk) support to ensure_dependencies and is_package_installed [@MickLesk](https://github.com/MickLesk) ([#12703](https://github.com/community-scripts/ProxmoxVE/pull/12703))
|
|
||||||
- tools.func: extend hwaccel with ROCm [@MickLesk](https://github.com/MickLesk) ([#12707](https://github.com/community-scripts/ProxmoxVE/pull/12707))
|
|
||||||
|
|
||||||
### 🌐 Website
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- feat: add CopycatWarningToast component for user warnings [@BramSuurdje](https://github.com/BramSuurdje) ([#12733](https://github.com/community-scripts/ProxmoxVE/pull/12733))
|
|
||||||
|
|
||||||
## 2026-03-08
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- [Fix] Immich: chown install dir before machine-learning update [@vhsdream](https://github.com/vhsdream) ([#12684](https://github.com/community-scripts/ProxmoxVE/pull/12684))
|
|
||||||
- [Fix] Scanopy: Build generate-fixtures [@vhsdream](https://github.com/vhsdream) ([#12686](https://github.com/community-scripts/ProxmoxVE/pull/12686))
|
|
||||||
- fix: rustdeskserver: use correct repo string [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12682](https://github.com/community-scripts/ProxmoxVE/pull/12682))
|
|
||||||
- NZBGet: Fixes for RAR5 handling [@tremor021](https://github.com/tremor021) ([#12675](https://github.com/community-scripts/ProxmoxVE/pull/12675))
|
|
||||||
|
|
||||||
### 🌐 Website
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- LXC-Execute: Fix slug [@tremor021](https://github.com/tremor021) ([#12681](https://github.com/community-scripts/ProxmoxVE/pull/12681))
|
|
||||||
|
|
||||||
## 2026-03-07
|
## 2026-03-07
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
299
CHANGELOG.md
299
CHANGELOG.md
@@ -26,9 +26,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><h2>📜 History</h2></summary>
|
<summary><h2>📜 History</h2></summary>
|
||||||
@@ -39,7 +36,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><h4>March (14 entries)</h4></summary>
|
<summary><h4>March (7 entries)</h4></summary>
|
||||||
|
|
||||||
[View March 2026 Changelog](.github/changelogs/2026/03.md)
|
[View March 2026 Changelog](.github/changelogs/2026/03.md)
|
||||||
|
|
||||||
@@ -423,66 +420,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## 2026-03-15
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Wishlist: use --frozen-lockfile for pnpm install [@MickLesk](https://github.com/MickLesk) ([#12892](https://github.com/community-scripts/ProxmoxVE/pull/12892))
|
|
||||||
- SparkyFitness: use --legacy-peer-deps for npm install [@MickLesk](https://github.com/MickLesk) ([#12888](https://github.com/community-scripts/ProxmoxVE/pull/12888))
|
|
||||||
- Frigate: add fallback for OpenVino labelmap file [@MickLesk](https://github.com/MickLesk) ([#12889](https://github.com/community-scripts/ProxmoxVE/pull/12889))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Refactor: ITSM-NG [@MickLesk](https://github.com/MickLesk) ([#12918](https://github.com/community-scripts/ProxmoxVE/pull/12918))
|
|
||||||
- core: unify RELEASE variable for check_for_gh_release and fetch_and_deploy [@MickLesk](https://github.com/MickLesk) ([#12917](https://github.com/community-scripts/ProxmoxVE/pull/12917))
|
|
||||||
- Standardize NSAPP names across VM scripts [@MickLesk](https://github.com/MickLesk) ([#12924](https://github.com/community-scripts/ProxmoxVE/pull/12924))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- core: retry downloads with exponential backoff [@MickLesk](https://github.com/MickLesk) ([#12896](https://github.com/community-scripts/ProxmoxVE/pull/12896))
|
|
||||||
|
|
||||||
## 2026-03-14
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Patchmon: remove v prefix from pinned version [@MickLesk](https://github.com/MickLesk) ([#12891](https://github.com/community-scripts/ProxmoxVE/pull/12891))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- tools.func: don't abort on AMD repo apt update failure [@MickLesk](https://github.com/MickLesk) ([#12890](https://github.com/community-scripts/ProxmoxVE/pull/12890))
|
|
||||||
|
|
||||||
## 2026-03-13
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Hotfix: Removed clean install usage from original script. [@nickheyer](https://github.com/nickheyer) ([#12870](https://github.com/community-scripts/ProxmoxVE/pull/12870))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Discopanel: V2 Support + Script rewrite [@nickheyer](https://github.com/nickheyer) ([#12763](https://github.com/community-scripts/ProxmoxVE/pull/12763))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- update-apps: fix restore path, add PBS support and improve restore messages [@omertahaoztop](https://github.com/omertahaoztop) ([#12528](https://github.com/community-scripts/ProxmoxVE/pull/12528))
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- fix(pve-privilege-converter): handle already stopped container in manage_states [@liuqitoday](https://github.com/liuqitoday) ([#12765](https://github.com/community-scripts/ProxmoxVE/pull/12765))
|
|
||||||
|
|
||||||
### 📚 Documentation
|
|
||||||
|
|
||||||
- Update: Docs/website metadata workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12858](https://github.com/community-scripts/ProxmoxVE/pull/12858))
|
|
||||||
|
|
||||||
## 2026-03-12
|
## 2026-03-12
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
@@ -1282,4 +1219,236 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
- #### 📝 Script Information
|
- #### 📝 Script Information
|
||||||
|
|
||||||
- SQLServer-2025: add PVE9/Kernel 6.x incompatibility warning [@MickLesk](https://github.com/MickLesk) ([#11829](https://github.com/community-scripts/ProxmoxVE/pull/11829))
|
- SQLServer-2025: add PVE9/Kernel 6.x incompatibility warning [@MickLesk](https://github.com/MickLesk) ([#11829](https://github.com/community-scripts/ProxmoxVE/pull/11829))
|
||||||
|
|
||||||
|
## 2026-02-12
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- EMQX: increase disk to 6GB and add optional MQ disable prompt [@MickLesk](https://github.com/MickLesk) ([#11844](https://github.com/community-scripts/ProxmoxVE/pull/11844))
|
||||||
|
- Increased the Grafana container default disk size. [@shtefko](https://github.com/shtefko) ([#11840](https://github.com/community-scripts/ProxmoxVE/pull/11840))
|
||||||
|
- Pangolin: Update database generation command in install script [@tremor021](https://github.com/tremor021) ([#11825](https://github.com/community-scripts/ProxmoxVE/pull/11825))
|
||||||
|
- Deluge: add python3-setuptools as dep [@MickLesk](https://github.com/MickLesk) ([#11833](https://github.com/community-scripts/ProxmoxVE/pull/11833))
|
||||||
|
- Dispatcharr: migrate to uv sync [@MickLesk](https://github.com/MickLesk) ([#11831](https://github.com/community-scripts/ProxmoxVE/pull/11831))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Archlinux-VM: fix LVM/LVM-thin storage and improve error reporting | VM's add correct exit_code for analytics [@MickLesk](https://github.com/MickLesk) ([#11842](https://github.com/community-scripts/ProxmoxVE/pull/11842))
|
||||||
|
- Debian13-VM: Optimize First Boot & add noCloud/Cloud Selection [@MickLesk](https://github.com/MickLesk) ([#11810](https://github.com/community-scripts/ProxmoxVE/pull/11810))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: auto-detect binary vs armored GPG keys in setup_deb822_repo [@MickLesk](https://github.com/MickLesk) ([#11841](https://github.com/community-scripts/ProxmoxVE/pull/11841))
|
||||||
|
- core: remove old Go API and extend misc/api.func with new backend [@MickLesk](https://github.com/MickLesk) ([#11822](https://github.com/community-scripts/ProxmoxVE/pull/11822))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- error_handler: prevent stuck 'installing' status [@MickLesk](https://github.com/MickLesk) ([#11845](https://github.com/community-scripts/ProxmoxVE/pull/11845))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tailscale: fix DNS check and keyrings directory issues [@MickLesk](https://github.com/MickLesk) ([#11837](https://github.com/community-scripts/ProxmoxVE/pull/11837))
|
||||||
|
|
||||||
|
## 2026-02-11
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Draw.io ([#11788](https://github.com/community-scripts/ProxmoxVE/pull/11788))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- dispatcharr: include port 9191 in success-message [@MickLesk](https://github.com/MickLesk) ([#11808](https://github.com/community-scripts/ProxmoxVE/pull/11808))
|
||||||
|
- fix: make donetick 0.1.71 compatible [@tomfrenzel](https://github.com/tomfrenzel) ([#11804](https://github.com/community-scripts/ProxmoxVE/pull/11804))
|
||||||
|
- Kasm: Support new version URL format without hash suffix [@MickLesk](https://github.com/MickLesk) ([#11787](https://github.com/community-scripts/ProxmoxVE/pull/11787))
|
||||||
|
- LibreTranslate: Remove Torch [@tremor021](https://github.com/tremor021) ([#11783](https://github.com/community-scripts/ProxmoxVE/pull/11783))
|
||||||
|
- Snowshare: fix update script [@TuroYT](https://github.com/TuroYT) ([#11726](https://github.com/community-scripts/ProxmoxVE/pull/11726))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [Feature] OpenCloud: support PosixFS Collaborative Mode [@vhsdream](https://github.com/vhsdream) ([#11806](https://github.com/community-scripts/ProxmoxVE/pull/11806))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: respect EDITOR variable for config editing [@ls-root](https://github.com/ls-root) ([#11693](https://github.com/community-scripts/ProxmoxVE/pull/11693))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- Fix formatting in kutt.json notes section [@tiagodenoronha](https://github.com/tiagodenoronha) ([#11774](https://github.com/community-scripts/ProxmoxVE/pull/11774))
|
||||||
|
|
||||||
|
## 2026-02-10
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: Pin version to 2.5.6 [@vhsdream](https://github.com/vhsdream) ([#11775](https://github.com/community-scripts/ProxmoxVE/pull/11775))
|
||||||
|
- Libretranslate: Fix setuptools [@tremor021](https://github.com/tremor021) ([#11772](https://github.com/community-scripts/ProxmoxVE/pull/11772))
|
||||||
|
- Element Synapse: prevent systemd invoke failure during apt install [@MickLesk](https://github.com/MickLesk) ([#11758](https://github.com/community-scripts/ProxmoxVE/pull/11758))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Refactor: Slskd & Soularr [@vhsdream](https://github.com/vhsdream) ([#11674](https://github.com/community-scripts/ProxmoxVE/pull/11674))
|
||||||
|
|
||||||
|
### 🗑️ Deleted Scripts
|
||||||
|
|
||||||
|
- move paperless-exporter from LXC to addon ([#11737](https://github.com/community-scripts/ProxmoxVE/pull/11737))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- feat: improve storage parsing & add guestname [@carlosmaroot](https://github.com/carlosmaroot) ([#11752](https://github.com/community-scripts/ProxmoxVE/pull/11752))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- Github-Version Workflow: include addon scripts in extraction [@MickLesk](https://github.com/MickLesk) ([#11757](https://github.com/community-scripts/ProxmoxVE/pull/11757))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Snowshare: fix typo in config file path on website [@BirdMakingStuff](https://github.com/BirdMakingStuff) ([#11754](https://github.com/community-scripts/ProxmoxVE/pull/11754))
|
||||||
|
|
||||||
|
## 2026-02-09
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- several scripts: add --clear to uv venv calls for uv 0.10 compatibility [@MickLesk](https://github.com/MickLesk) ([#11723](https://github.com/community-scripts/ProxmoxVE/pull/11723))
|
||||||
|
- Koillection: ensure setup_composer is in update script [@MickLesk](https://github.com/MickLesk) ([#11734](https://github.com/community-scripts/ProxmoxVE/pull/11734))
|
||||||
|
- PeaNUT: symlink server.js after update [@vhsdream](https://github.com/vhsdream) ([#11696](https://github.com/community-scripts/ProxmoxVE/pull/11696))
|
||||||
|
- Umlautadaptarr: use release appsettings.json instead of hardcoded copy [@MickLesk](https://github.com/MickLesk) ([#11725](https://github.com/community-scripts/ProxmoxVE/pull/11725))
|
||||||
|
- tracearr: prepare for next stable release [@durzo](https://github.com/durzo) ([#11673](https://github.com/community-scripts/ProxmoxVE/pull/11673))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- remove whiptail from update scripts for unattended update support [@MickLesk](https://github.com/MickLesk) ([#11712](https://github.com/community-scripts/ProxmoxVE/pull/11712))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: FileFlows [@tremor021](https://github.com/tremor021) ([#11108](https://github.com/community-scripts/ProxmoxVE/pull/11108))
|
||||||
|
- Refactor: wger [@MickLesk](https://github.com/MickLesk) ([#11722](https://github.com/community-scripts/ProxmoxVE/pull/11722))
|
||||||
|
- Nginx-UI: better User Handling | ACME [@MickLesk](https://github.com/MickLesk) ([#11715](https://github.com/community-scripts/ProxmoxVE/pull/11715))
|
||||||
|
- NginxProxymanager: use better-sqlite3 [@MickLesk](https://github.com/MickLesk) ([#11708](https://github.com/community-scripts/ProxmoxVE/pull/11708))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- hwaccel: add libmfx-gen1.2 to Intel Arc setup for QSV support [@MickLesk](https://github.com/MickLesk) ([#11707](https://github.com/community-scripts/ProxmoxVE/pull/11707))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- addons: ensure curl is installed before use [@MickLesk](https://github.com/MickLesk) ([#11718](https://github.com/community-scripts/ProxmoxVE/pull/11718))
|
||||||
|
- Netbird (addon): add systemd ordering to start after Docker [@MickLesk](https://github.com/MickLesk) ([#11716](https://github.com/community-scripts/ProxmoxVE/pull/11716))
|
||||||
|
|
||||||
|
### ❔ Uncategorized
|
||||||
|
|
||||||
|
- Bichon: Update website [@tremor021](https://github.com/tremor021) ([#11711](https://github.com/community-scripts/ProxmoxVE/pull/11711))
|
||||||
|
|
||||||
|
## 2026-02-08
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- feat(healthchecks): add sendalerts service [@Mika56](https://github.com/Mika56) ([#11694](https://github.com/community-scripts/ProxmoxVE/pull/11694))
|
||||||
|
- ComfyUI: Dynamic Fetch PyTorch Versions [@MickLesk](https://github.com/MickLesk) ([#11657](https://github.com/community-scripts/ProxmoxVE/pull/11657))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Semaphore: switch from Debian to Ubuntu 24.04 [@MickLesk](https://github.com/MickLesk) ([#11670](https://github.com/community-scripts/ProxmoxVE/pull/11670))
|
||||||
|
|
||||||
|
## 2026-02-07
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Checkmate ([#11672](https://github.com/community-scripts/ProxmoxVE/pull/11672))
|
||||||
|
- Bichon ([#11671](https://github.com/community-scripts/ProxmoxVE/pull/11671))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- NocoDB: pin to v0.301.1 [@MickLesk](https://github.com/MickLesk) ([#11655](https://github.com/community-scripts/ProxmoxVE/pull/11655))
|
||||||
|
- Pin Memos to v0.25.3 - last version with release binaries [@MickLesk](https://github.com/MickLesk) ([#11658](https://github.com/community-scripts/ProxmoxVE/pull/11658))
|
||||||
|
- Downgrade: OpenProject | NginxProxyManager | Semaphore to Debian 12 due to persistent SHA1 issues [@MickLesk](https://github.com/MickLesk) ([#11654](https://github.com/community-scripts/ProxmoxVE/pull/11654))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools: fallback to previous release when asset is missing [@MickLesk](https://github.com/MickLesk) ([#11660](https://github.com/community-scripts/ProxmoxVE/pull/11660))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- fix(setup): correctly auto-detect username when using --full [@ls-root](https://github.com/ls-root) ([#11650](https://github.com/community-scripts/ProxmoxVE/pull/11650))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- feat(frontend): add JSON script import functionality [@ls-root](https://github.com/ls-root) ([#11563](https://github.com/community-scripts/ProxmoxVE/pull/11563))
|
||||||
|
|
||||||
|
## 2026-02-06
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Nightscout ([#11621](https://github.com/community-scripts/ProxmoxVE/pull/11621))
|
||||||
|
- PVE LXC Apps Updater [@MickLesk](https://github.com/MickLesk) ([#11533](https://github.com/community-scripts/ProxmoxVE/pull/11533))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: supress startup messages for immich-admin [@vhsdream](https://github.com/vhsdream) ([#11635](https://github.com/community-scripts/ProxmoxVE/pull/11635))
|
||||||
|
- Semaphore: Change Ubuntu release from 'jammy' to 'noble' [@MickLesk](https://github.com/MickLesk) ([#11625](https://github.com/community-scripts/ProxmoxVE/pull/11625))
|
||||||
|
- Pangolin: replace build:sqlite with db:generate + build [@MickLesk](https://github.com/MickLesk) ([#11616](https://github.com/community-scripts/ProxmoxVE/pull/11616))
|
||||||
|
- [FIX] OpenCloud: path issues [@vhsdream](https://github.com/vhsdream) ([#11593](https://github.com/community-scripts/ProxmoxVE/pull/11593))
|
||||||
|
- [FIX] Homepage: preserve public/images & public/icons if they exist [@vhsdream](https://github.com/vhsdream) ([#11594](https://github.com/community-scripts/ProxmoxVE/pull/11594))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Shelfmark: remove Chromedriver dep, add URL_BASE env [@vhsdream](https://github.com/vhsdream) ([#11619](https://github.com/community-scripts/ProxmoxVE/pull/11619))
|
||||||
|
- Immich: pin to v2.5.5 [@vhsdream](https://github.com/vhsdream) ([#11598](https://github.com/community-scripts/ProxmoxVE/pull/11598))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- refactor: homepage [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11605](https://github.com/community-scripts/ProxmoxVE/pull/11605))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix(core): spinner misalignment [@ls-root](https://github.com/ls-root) ([#11627](https://github.com/community-scripts/ProxmoxVE/pull/11627))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- [Fix] build.func: QOL grammar adjustment for Creating LXC message [@vhsdream](https://github.com/vhsdream) ([#11633](https://github.com/community-scripts/ProxmoxVE/pull/11633))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- [gh] Update to the New Script request template [@tremor021](https://github.com/tremor021) ([#11612](https://github.com/community-scripts/ProxmoxVE/pull/11612))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Update LXC App Updater JSON to reflect tag override option [@vhsdream](https://github.com/vhsdream) ([#11626](https://github.com/community-scripts/ProxmoxVE/pull/11626))
|
||||||
|
|
||||||
|
### ❔ Uncategorized
|
||||||
|
|
||||||
|
- Opencloud: fix JSON [@vhsdream](https://github.com/vhsdream) ([#11617](https://github.com/community-scripts/ProxmoxVE/pull/11617))
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: DragoQC | Co-Author: nickheyer
|
# Author: DragoQC
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://discopanel.app/ | Github: https://github.com/nickheyer/discopanel
|
# Source: https://discopanel.app/ | Github: https://github.com/nickheyer/discopanel
|
||||||
|
|
||||||
@@ -38,15 +38,34 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Creating Backup"
|
msg_info "Creating Backup"
|
||||||
mkdir -p /opt/discopanel_backup_temp
|
mkdir -p /opt/discopanel_backup_temp
|
||||||
cp /opt/discopanel/data/discopanel.db /opt/discopanel_backup_temp/discopanel.db
|
cp -r /opt/discopanel/data/discopanel.db \
|
||||||
|
/opt/discopanel/data/.recovery_key \
|
||||||
|
/opt/discopanel_backup_temp/
|
||||||
|
if [[ -d /opt/discopanel/data/servers ]]; then
|
||||||
|
cp -r /opt/discopanel/data/servers /opt/discopanel_backup_temp/
|
||||||
|
fi
|
||||||
msg_ok "Created Backup"
|
msg_ok "Created Backup"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "prebuild" "latest" "/opt/discopanel" "discopanel-linux-amd64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "tarball" "latest" "/opt/discopanel"
|
||||||
ln -sf /opt/discopanel/discopanel-linux-amd64 /opt/discopanel/discopanel
|
|
||||||
|
msg_info "Setting up DiscoPanel"
|
||||||
|
cd /opt/discopanel
|
||||||
|
$STD make gen
|
||||||
|
cd /opt/discopanel/web/discopanel
|
||||||
|
$STD npm install
|
||||||
|
$STD npm run build
|
||||||
|
msg_ok "Built Web Interface"
|
||||||
|
|
||||||
|
setup_go
|
||||||
|
|
||||||
|
msg_info "Building DiscoPanel"
|
||||||
|
cd /opt/discopanel
|
||||||
|
$STD go build -o discopanel cmd/discopanel/main.go
|
||||||
|
msg_ok "Built DiscoPanel"
|
||||||
|
|
||||||
msg_info "Restoring Data"
|
msg_info "Restoring Data"
|
||||||
mkdir -p /opt/discopanel/data
|
mkdir -p /opt/discopanel/data
|
||||||
mv /opt/discopanel_backup_temp/discopanel.db /opt/discopanel/data/discopanel.db
|
cp -a /opt/discopanel_backup_temp/. /opt/discopanel/data/
|
||||||
rm -rf /opt/discopanel_backup_temp
|
rm -rf /opt/discopanel_backup_temp
|
||||||
msg_ok "Restored Data"
|
msg_ok "Restored Data"
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ EOF
|
|||||||
msg_ok "Image-processing libraries up to date"
|
msg_ok "Image-processing libraries up to date"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE="v2.5.6"
|
RELEASE="2.5.6"
|
||||||
if check_for_gh_release "Immich" "immich-app/immich" "${RELEASE}"; then
|
if check_for_gh_release "Immich" "immich-app/immich" "${RELEASE}"; then
|
||||||
if [[ $(cat ~/.immich) > "2.5.1" ]]; then
|
if [[ $(cat ~/.immich) > "2.5.1" ]]; then
|
||||||
msg_info "Enabling Maintenance Mode"
|
msg_info "Enabling Maintenance Mode"
|
||||||
@@ -165,7 +165,7 @@ EOF
|
|||||||
)
|
)
|
||||||
|
|
||||||
setup_uv
|
setup_uv
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "${RELEASE}" "$SRC_DIR"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
|
||||||
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' ${SRC_DIR}/package.json)"
|
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' ${SRC_DIR}/package.json)"
|
||||||
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
||||||
|
|
||||||
|
|||||||
@@ -30,14 +30,9 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
|
|
||||||
msg_info "Updating ITSM-NG"
|
msg_info "Updating LXC"
|
||||||
$STD apt update
|
$STD apt update
|
||||||
$STD apt -y upgrade
|
$STD apt -y upgrade
|
||||||
chown -R www-data:www-data /var/lib/itsm-ng
|
|
||||||
mkdir -p /usr/share/itsm-ng/css/palettes
|
|
||||||
chown -R www-data:www-data /usr/share/itsm-ng/css
|
|
||||||
chown -R www-data:www-data /usr/share/itsm-ng/css_compiled
|
|
||||||
chown www-data:www-data /etc/itsm-ng/config_db.php
|
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,17 +23,16 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
RELEASE="0.301.1"
|
|
||||||
if [[ ! -f /etc/systemd/system/nocodb.service ]]; then
|
if [[ ! -f /etc/systemd/system/nocodb.service ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if check_for_gh_release "nocodb" "nocodb/nocodb" "${RELEASE}"; then
|
if check_for_gh_release "nocodb" "nocodb/nocodb" "0.301.1"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop nocodb
|
systemctl stop nocodb
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "nocodb" "nocodb/nocodb" "singlefile" "${RELEASE}" "/opt/nocodb/" "Noco-linux-x64"
|
fetch_and_deploy_gh_release "nocodb" "nocodb/nocodb" "singlefile" "0.301.1" "/opt/nocodb/" "Noco-linux-x64"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start nocodb
|
systemctl start nocodb
|
||||||
|
|||||||
@@ -36,9 +36,8 @@ function update_script() {
|
|||||||
read -r
|
read -r
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE="v1.4.2"
|
|
||||||
NODE_VERSION="24" setup_nodejs
|
NODE_VERSION="24" setup_nodejs
|
||||||
if check_for_gh_release "PatchMon" "PatchMon/PatchMon" "${RELEASE}"; then
|
if check_for_gh_release "PatchMon" "PatchMon/PatchMon" "v1.4.2"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop patchmon-server
|
systemctl stop patchmon-server
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
@@ -48,7 +47,7 @@ function update_script() {
|
|||||||
cp /opt/patchmon/frontend/.env /opt/frontend.env
|
cp /opt/patchmon/frontend/.env /opt/frontend.env
|
||||||
msg_ok "Backup Created"
|
msg_ok "Backup Created"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "tarball" "${RELEASE}" "/opt/patchmon"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PatchMon" "PatchMon/PatchMon" "tarball" "v1.4.2" "/opt/patchmon"
|
||||||
|
|
||||||
msg_info "Updating PatchMon"
|
msg_info "Updating PatchMon"
|
||||||
VERSION=$(get_latest_github_release "PatchMon/PatchMon")
|
VERSION=$(get_latest_github_release "PatchMon/PatchMon")
|
||||||
|
|||||||
@@ -23,19 +23,18 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
RELEASE="0.10.0"
|
|
||||||
if [[ ! -d /opt/plant-it ]]; then
|
if [[ ! -d /opt/plant-it ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
if check_for_gh_release "plant-it" "MDeLuise/plant-it" "${RELEASE}"; then
|
if check_for_gh_release "plant-it" "MDeLuise/plant-it"; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop plant-it
|
systemctl stop plant-it
|
||||||
msg_info "Stopped Service"
|
msg_info "Stopped Service"
|
||||||
|
|
||||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "${RELEASE}" "/opt/plant-it/backend" "server.jar"
|
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "0.10.0" "/opt/plant-it/backend" "server.jar"
|
||||||
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "${RELEASE}" "/opt/plant-it/frontend" "client.tar.gz"
|
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "0.10.0" "/opt/plant-it/frontend" "client.tar.gz"
|
||||||
msg_warn "Application is updated to latest Web version (v0.10.0). There will be no more updates available."
|
msg_warn "Application is updated to latest Web version (v0.10.0). There will be no more updates available."
|
||||||
msg_warn "Please read: https://github.com/MDeLuise/plant-it/releases/tag/1.0.0"
|
msg_warn "Please read: https://github.com/MDeLuise/plant-it/releases/tag/1.0.0"
|
||||||
|
|
||||||
|
|||||||
15
ct/plex.sh
15
ct/plex.sh
@@ -46,11 +46,11 @@ function update_script() {
|
|||||||
"main"
|
"main"
|
||||||
msg_ok "Migrated to new Plex repository"
|
msg_ok "Migrated to new Plex repository"
|
||||||
fi
|
fi
|
||||||
elif compgen -G "/etc/apt/sources.list.d/plex*.list" >/dev/null; then
|
elif [[ -f /etc/apt/sources.list.d/plexmediaserver.list ]]; then
|
||||||
msg_info "Migrating to new Plex repository (deb822)"
|
msg_info "Migrating to new Plex repository (deb822)"
|
||||||
rm -f /etc/apt/sources.list.d/plex*.list
|
rm -f /etc/apt/sources.list.d/plexmediaserver.list
|
||||||
|
rm -f /etc/apt/sources.list.d/plex*
|
||||||
rm -f /usr/share/keyrings/PlexSign.asc
|
rm -f /usr/share/keyrings/PlexSign.asc
|
||||||
rm -f /usr/share/keyrings/plexmediaserver.v2.gpg
|
|
||||||
setup_deb822_repo \
|
setup_deb822_repo \
|
||||||
"plexmediaserver" \
|
"plexmediaserver" \
|
||||||
"https://downloads.plex.tv/plex-keys/PlexSign.v2.key" \
|
"https://downloads.plex.tv/plex-keys/PlexSign.v2.key" \
|
||||||
@@ -58,15 +58,6 @@ function update_script() {
|
|||||||
"public" \
|
"public" \
|
||||||
"main"
|
"main"
|
||||||
msg_ok "Migrated to new Plex repository (deb822)"
|
msg_ok "Migrated to new Plex repository (deb822)"
|
||||||
elif [[ ! -f /etc/apt/sources.list.d/plexmediaserver.sources ]]; then
|
|
||||||
msg_info "Setting up Plex repository"
|
|
||||||
setup_deb822_repo \
|
|
||||||
"plexmediaserver" \
|
|
||||||
"https://downloads.plex.tv/plex-keys/PlexSign.v2.key" \
|
|
||||||
"https://repo.plex.tv/deb/" \
|
|
||||||
"public" \
|
|
||||||
"main"
|
|
||||||
msg_ok "Set up Plex repository"
|
|
||||||
fi
|
fi
|
||||||
if [[ -f /usr/local/bin/plexupdate ]] || [[ -d /opt/plexupdate ]]; then
|
if [[ -f /usr/local/bin/plexupdate ]] || [[ -d /opt/plexupdate ]]; then
|
||||||
msg_info "Removing legacy plexupdate"
|
msg_info "Removing legacy plexupdate"
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Updating Sparky Fitness Backend"
|
msg_info "Updating Sparky Fitness Backend"
|
||||||
cd /opt/sparkyfitness/SparkyFitnessServer
|
cd /opt/sparkyfitness/SparkyFitnessServer
|
||||||
$STD npm install --legacy-peer-deps
|
$STD npm install
|
||||||
msg_ok "Updated Sparky Fitness Backend"
|
msg_ok "Updated Sparky Fitness Backend"
|
||||||
|
|
||||||
msg_info "Updating Sparky Fitness Frontend (Patience)"
|
msg_info "Updating Sparky Fitness Frontend (Patience)"
|
||||||
@@ -62,27 +62,6 @@ function update_script() {
|
|||||||
cp -a /opt/sparkyfitness/SparkyFitnessFrontend/dist/. /var/www/sparkyfitness/
|
cp -a /opt/sparkyfitness/SparkyFitnessFrontend/dist/. /var/www/sparkyfitness/
|
||||||
msg_ok "Updated Sparky Fitness Frontend"
|
msg_ok "Updated Sparky Fitness Frontend"
|
||||||
|
|
||||||
msg_info "Refreshing SparkyFitness Service"
|
|
||||||
cat <<EOF >/etc/systemd/system/sparkyfitness-server.service
|
|
||||||
[Unit]
|
|
||||||
Description=SparkyFitness Backend Service
|
|
||||||
After=network.target postgresql.service
|
|
||||||
Requires=postgresql.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
WorkingDirectory=/opt/sparkyfitness/SparkyFitnessServer
|
|
||||||
EnvironmentFile=/etc/sparkyfitness/.env
|
|
||||||
ExecStart=/opt/sparkyfitness/SparkyFitnessServer/node_modules/.bin/tsx SparkyFitnessServer.js
|
|
||||||
Restart=always
|
|
||||||
RestartSec=5
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
systemctl daemon-reload
|
|
||||||
msg_ok "Refreshed SparkyFitness Service"
|
|
||||||
|
|
||||||
msg_info "Restoring data"
|
msg_info "Restoring data"
|
||||||
cp -r /opt/sparkyfitness_backup/. /opt/sparkyfitness/SparkyFitnessServer/
|
cp -r /opt/sparkyfitness_backup/. /opt/sparkyfitness/SparkyFitnessServer/
|
||||||
rm -rf /opt/sparkyfitness_backup
|
rm -rf /opt/sparkyfitness_backup
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ function update_script() {
|
|||||||
|
|
||||||
msg_info "Updating Wishlist"
|
msg_info "Updating Wishlist"
|
||||||
cd /opt/wishlist
|
cd /opt/wishlist
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install
|
||||||
$STD pnpm svelte-kit sync
|
$STD pnpm svelte-kit sync
|
||||||
$STD pnpm prisma generate
|
$STD pnpm prisma generate
|
||||||
sed -i 's|/usr/src/app/|/opt/wishlist/|g' $(grep -rl '/usr/src/app/' /opt/wishlist)
|
sed -i 's|/usr/src/app/|/opt/wishlist/|g' $(grep -rl '/usr/src/app/' /opt/wishlist)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: DragoQC | Co-Author: nickheyer
|
# Author: DragoQC
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://discopanel.app/ | Github: https://github.com/nickheyer/discopanel
|
# Source: https://discopanel.app/ | Github: https://github.com/nickheyer/discopanel
|
||||||
|
|
||||||
@@ -12,9 +12,25 @@ setting_up_container
|
|||||||
network_check
|
network_check
|
||||||
update_os
|
update_os
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "prebuild" "latest" "/opt/discopanel" "discopanel-linux-amd64.tar.gz"
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt install -y build-essential
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
setup_go
|
||||||
|
fetch_and_deploy_gh_release "discopanel" "nickheyer/discopanel" "tarball" "latest" "/opt/discopanel"
|
||||||
setup_docker
|
setup_docker
|
||||||
|
|
||||||
|
msg_info "Setting up DiscoPanel"
|
||||||
|
cd /opt/discopanel
|
||||||
|
$STD make gen
|
||||||
|
cd /opt/discopanel/web/discopanel
|
||||||
|
$STD npm install
|
||||||
|
$STD npm run build
|
||||||
|
cd /opt/discopanel
|
||||||
|
$STD go build -o discopanel cmd/discopanel/main.go
|
||||||
|
msg_ok "Setup DiscoPanel"
|
||||||
|
|
||||||
msg_info "Creating Service"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/discopanel.service
|
cat <<EOF >/etc/systemd/system/discopanel.service
|
||||||
[Unit]
|
[Unit]
|
||||||
@@ -23,7 +39,7 @@ After=network.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
WorkingDirectory=/opt/discopanel
|
WorkingDirectory=/opt/discopanel
|
||||||
ExecStart=/opt/discopanel/discopanel-linux-amd64
|
ExecStart=/opt/discopanel/discopanel
|
||||||
Restart=always
|
Restart=always
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
|
|||||||
@@ -211,17 +211,7 @@ if python3 /opt/frigate/docker/main/build_ov_model.py &>/dev/null; then
|
|||||||
mkdir -p /openvino-model
|
mkdir -p /openvino-model
|
||||||
cp /models/ssdlite_mobilenet_v2.xml /openvino-model/
|
cp /models/ssdlite_mobilenet_v2.xml /openvino-model/
|
||||||
cp /models/ssdlite_mobilenet_v2.bin /openvino-model/
|
cp /models/ssdlite_mobilenet_v2.bin /openvino-model/
|
||||||
OV_LABELS=$(python3 -c "import omz_tools; import os; print(os.path.join(omz_tools.__path__[0], 'data/dataset_classes/coco_91cl_bkgr.txt'))" 2>/dev/null)
|
$STD ln -sf $(python3 -c "import omz_tools; import os; print(os.path.join(omz_tools.__path__[0], 'data/dataset_classes/coco_91cl_bkgr.txt'))") /openvino-model/coco_91cl_bkgr.txt
|
||||||
if [[ -n "$OV_LABELS" && -f "$OV_LABELS" ]]; then
|
|
||||||
ln -sf "$OV_LABELS" /openvino-model/coco_91cl_bkgr.txt
|
|
||||||
else
|
|
||||||
OV_LABELS=$(find /usr/local/lib -name "coco_91cl_bkgr.txt" 2>/dev/null | head -1)
|
|
||||||
if [[ -n "$OV_LABELS" ]]; then
|
|
||||||
ln -sf "$OV_LABELS" /openvino-model/coco_91cl_bkgr.txt
|
|
||||||
else
|
|
||||||
wget -q "https://raw.githubusercontent.com/openvinotoolkit/open_model_zoo/master/data/dataset_classes/coco_91cl_bkgr.txt" -O /openvino-model/coco_91cl_bkgr.txt
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
sed -i 's/truck/car/g' /openvino-model/coco_91cl_bkgr.txt
|
sed -i 's/truck/car/g' /openvino-model/coco_91cl_bkgr.txt
|
||||||
msg_ok "Built OpenVino Model"
|
msg_ok "Built OpenVino Model"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -14,32 +14,40 @@ network_check
|
|||||||
update_os
|
update_os
|
||||||
|
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
msg_info "Loading timezone data"
|
|
||||||
mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb mysql
|
|
||||||
msg_ok "Loaded timezone data"
|
|
||||||
MARIADB_DB_NAME="itsmng_db" MARIADB_DB_USER="itsmng" MARIADB_DB_EXTRA_GRANTS="GRANT SELECT ON \`mysql\`.\`time_zone_name\`" setup_mariadb_db
|
|
||||||
|
|
||||||
msg_info "Installing ITSM-NG"
|
msg_info "Setting up database"
|
||||||
|
DB_NAME=itsmng_db
|
||||||
|
DB_USER=itsmng
|
||||||
|
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
|
mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb mysql
|
||||||
|
mariadb -u root -e "CREATE DATABASE $DB_NAME;"
|
||||||
|
mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
||||||
|
mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"
|
||||||
|
mariadb -u root -e "GRANT SELECT ON \`mysql\`.\`time_zone_name\` TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
|
{
|
||||||
|
echo "ITSM-NG Database Credentials"
|
||||||
|
echo "Database: $DB_NAME"
|
||||||
|
echo "Username: $DB_USER"
|
||||||
|
echo "Password: $DB_PASS"
|
||||||
|
} >>~/itsmng_db.creds
|
||||||
|
msg_ok "Set up database"
|
||||||
|
|
||||||
|
msg_info "Setup ITSM-NG Repository"
|
||||||
setup_deb822_repo \
|
setup_deb822_repo \
|
||||||
"itsm-ng" \
|
"itsm-ng" \
|
||||||
"http://deb.itsm-ng.org/pubkey.gpg" \
|
"http://deb.itsm-ng.org/pubkey.gpg" \
|
||||||
"http://deb.itsm-ng.org/$(get_os_info id)/" \
|
"http://deb.itsm-ng.org/$(get_os_info id)/" \
|
||||||
"$(get_os_info codename)"
|
"$(get_os_info codename)"
|
||||||
|
msg_ok "Setup ITSM-NG Repository"
|
||||||
|
|
||||||
|
msg_info "Installing ITSM-NG"
|
||||||
$STD apt install -y itsm-ng
|
$STD apt install -y itsm-ng
|
||||||
cd /usr/share/itsm-ng
|
cd /usr/share/itsm-ng
|
||||||
$STD php bin/console db:install --db-name="$MARIADB_DB_NAME" --db-user="$MARIADB_DB_USER" --db-password="$MARIADB_DB_PASS" --no-interaction
|
$STD php bin/console db:install --db-name=$DB_NAME --db-user=$DB_USER --db-password=$DB_PASS --no-interaction
|
||||||
$STD a2dissite 000-default.conf
|
$STD a2dissite 000-default.conf
|
||||||
echo "* * * * * www-data php /usr/share/itsm-ng/front/cron.php" | crontab -
|
echo "* * * * * php /usr/share/itsm-ng/front/cron.php" | crontab -
|
||||||
msg_ok "Installed ITSM-NG"
|
msg_ok "Installed ITSM-NG"
|
||||||
|
|
||||||
msg_info "Setting permissions"
|
|
||||||
chown -R www-data:www-data /var/lib/itsm-ng
|
|
||||||
mkdir -p /usr/share/itsm-ng/css/palettes
|
|
||||||
chown -R www-data:www-data /usr/share/itsm-ng/css
|
|
||||||
chown -R www-data:www-data /usr/share/itsm-ng/css_compiled
|
|
||||||
chown www-data:www-data /etc/itsm-ng/config_db.php
|
|
||||||
msg_ok "Set permissions"
|
|
||||||
|
|
||||||
msg_info "Configuring PHP"
|
msg_info "Configuring PHP"
|
||||||
PHP_VERSION=$(ls /etc/php/ | grep -E '^[0-9]+\.[0-9]+$' | head -n 1)
|
PHP_VERSION=$(ls /etc/php/ | grep -E '^[0-9]+\.[0-9]+$' | head -n 1)
|
||||||
PHP_INI="/etc/php/$PHP_VERSION/apache2/php.ini"
|
PHP_INI="/etc/php/$PHP_VERSION/apache2/php.ini"
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ msg_ok "Configured Sparky Fitness"
|
|||||||
|
|
||||||
msg_info "Building Backend"
|
msg_info "Building Backend"
|
||||||
cd /opt/sparkyfitness/SparkyFitnessServer
|
cd /opt/sparkyfitness/SparkyFitnessServer
|
||||||
$STD npm install --legacy-peer-deps
|
$STD npm install
|
||||||
msg_ok "Built Backend"
|
msg_ok "Built Backend"
|
||||||
|
|
||||||
msg_info "Building Frontend (Patience)"
|
msg_info "Building Frontend (Patience)"
|
||||||
@@ -69,7 +69,7 @@ Requires=postgresql.service
|
|||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=/opt/sparkyfitness/SparkyFitnessServer
|
WorkingDirectory=/opt/sparkyfitness/SparkyFitnessServer
|
||||||
EnvironmentFile=/etc/sparkyfitness/.env
|
EnvironmentFile=/etc/sparkyfitness/.env
|
||||||
ExecStart=/opt/sparkyfitness/SparkyFitnessServer/node_modules/.bin/tsx SparkyFitnessServer.js
|
ExecStart=/usr/bin/node SparkyFitnessServer.js
|
||||||
Restart=always
|
Restart=always
|
||||||
RestartSec=5
|
RestartSec=5
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ cp .env.example .env
|
|||||||
sed -i "s|^ORIGIN=.*|ORIGIN=http://${LOCAL_IP}:3280|" /opt/wishlist/.env
|
sed -i "s|^ORIGIN=.*|ORIGIN=http://${LOCAL_IP}:3280|" /opt/wishlist/.env
|
||||||
echo "" >>/opt/wishlist/.env
|
echo "" >>/opt/wishlist/.env
|
||||||
echo "NODE_ENV=production" >>/opt/wishlist/.env
|
echo "NODE_ENV=production" >>/opt/wishlist/.env
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install
|
||||||
$STD pnpm svelte-kit sync
|
$STD pnpm svelte-kit sync
|
||||||
$STD pnpm prisma generate
|
$STD pnpm prisma generate
|
||||||
sed -i 's|/usr/src/app/|/opt/wishlist/|g' $(grep -rl '/usr/src/app/' /opt/wishlist)
|
sed -i 's|/usr/src/app/|/opt/wishlist/|g' $(grep -rl '/usr/src/app/' /opt/wishlist)
|
||||||
|
|||||||
103
misc/tools.func
103
misc/tools.func
@@ -105,13 +105,11 @@ curl_with_retry() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
debug_log "curl attempt $attempt failed (timeout=${timeout}s), waiting ${backoff}s before retry..."
|
debug_log "curl attempt $attempt failed, waiting ${backoff}s before retry..."
|
||||||
sleep "$backoff"
|
sleep "$backoff"
|
||||||
# Exponential backoff: 1, 2, 4, 8... capped at 30s
|
# Exponential backoff: 1, 2, 4, 8... capped at 30s
|
||||||
backoff=$((backoff * 2))
|
backoff=$((backoff * 2))
|
||||||
((backoff > 30)) && backoff=30
|
((backoff > 30)) && backoff=30
|
||||||
# Double --max-time on each retry so slow connections can finish
|
|
||||||
timeout=$((timeout * 2))
|
|
||||||
((attempt++))
|
((attempt++))
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -174,10 +172,8 @@ curl_api_with_retry() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
debug_log "curl API attempt $attempt failed (HTTP $http_code, timeout=${timeout}s), waiting ${attempt}s..."
|
debug_log "curl API attempt $attempt failed (HTTP $http_code), waiting ${attempt}s..."
|
||||||
sleep "$attempt"
|
sleep "$attempt"
|
||||||
# Double --max-time on each retry so slow connections can finish
|
|
||||||
timeout=$((timeout * 2))
|
|
||||||
((attempt++))
|
((attempt++))
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -2223,35 +2219,6 @@ check_for_gh_release() {
|
|||||||
# Try /latest endpoint for non-pinned versions (most efficient)
|
# Try /latest endpoint for non-pinned versions (most efficient)
|
||||||
local releases_json="" http_code=""
|
local releases_json="" http_code=""
|
||||||
|
|
||||||
# For pinned versions, query the specific release tag directly
|
|
||||||
if [[ -n "$pinned_version_in" ]]; then
|
|
||||||
http_code=$(curl -sSL --max-time 20 -w "%{http_code}" -o /tmp/gh_check.json \
|
|
||||||
-H 'Accept: application/vnd.github+json' \
|
|
||||||
-H 'X-GitHub-Api-Version: 2022-11-28' \
|
|
||||||
"${header_args[@]}" \
|
|
||||||
"https://api.github.com/repos/${source}/releases/tags/${pinned_version_in}" 2>/dev/null) || true
|
|
||||||
|
|
||||||
if [[ "$http_code" == "200" ]] && [[ -s /tmp/gh_check.json ]]; then
|
|
||||||
releases_json="[$(</tmp/gh_check.json)]"
|
|
||||||
elif [[ "$http_code" == "401" ]]; then
|
|
||||||
msg_error "GitHub API authentication failed (HTTP 401)."
|
|
||||||
if [[ -n "${GITHUB_TOKEN:-}" ]]; then
|
|
||||||
msg_error "Your GITHUB_TOKEN appears to be invalid or expired."
|
|
||||||
else
|
|
||||||
msg_error "The repository may require authentication. Try: export GITHUB_TOKEN=\"ghp_your_token\""
|
|
||||||
fi
|
|
||||||
rm -f /tmp/gh_check.json
|
|
||||||
return 1
|
|
||||||
elif [[ "$http_code" == "403" ]]; then
|
|
||||||
msg_error "GitHub API rate limit exceeded (HTTP 403)."
|
|
||||||
msg_error "To increase the limit, export a GitHub token before running the script:"
|
|
||||||
msg_error " export GITHUB_TOKEN=\"ghp_your_token_here\""
|
|
||||||
rm -f /tmp/gh_check.json
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
rm -f /tmp/gh_check.json
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -z "$pinned_version_in" ]]; then
|
if [[ -z "$pinned_version_in" ]]; then
|
||||||
http_code=$(curl -sSL --max-time 20 -w "%{http_code}" -o /tmp/gh_check.json \
|
http_code=$(curl -sSL --max-time 20 -w "%{http_code}" -o /tmp/gh_check.json \
|
||||||
-H 'Accept: application/vnd.github+json' \
|
-H 'Accept: application/vnd.github+json' \
|
||||||
@@ -2607,30 +2574,6 @@ function ensure_usr_local_bin_persist() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
# curl_download - Downloads a file with automatic retry and exponential backoff.
|
|
||||||
#
|
|
||||||
# Usage: curl_download <output_file> <url>
|
|
||||||
#
|
|
||||||
# Retries up to 5 times with increasing --max-time (60/120/240/480/960s).
|
|
||||||
# Returns 0 on success, 1 if all attempts fail.
|
|
||||||
# ------------------------------------------------------------------------------
|
|
||||||
function curl_download() {
|
|
||||||
local output="$1"
|
|
||||||
local url="$2"
|
|
||||||
local timeouts=(60 120 240 480 960)
|
|
||||||
|
|
||||||
for i in "${!timeouts[@]}"; do
|
|
||||||
if curl --connect-timeout 15 --max-time "${timeouts[$i]}" -fsSL -o "$output" "$url"; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
if ((i < ${#timeouts[@]} - 1)); then
|
|
||||||
msg_warn "Download timed out after ${timeouts[$i]}s, retrying... (attempt $((i + 2))/${#timeouts[@]})"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Downloads and deploys latest Codeberg release (source, binary, tarball, asset).
|
# Downloads and deploys latest Codeberg release (source, binary, tarball, asset).
|
||||||
#
|
#
|
||||||
@@ -2688,7 +2631,8 @@ function fetch_and_deploy_codeberg_release() {
|
|||||||
local app_lc=$(echo "${app,,}" | tr -d ' ')
|
local app_lc=$(echo "${app,,}" | tr -d ' ')
|
||||||
local version_file="$HOME/.${app_lc}"
|
local version_file="$HOME/.${app_lc}"
|
||||||
|
|
||||||
local api_timeouts=(60 120 240)
|
local api_timeout="--connect-timeout 10 --max-time 60"
|
||||||
|
local download_timeout="--connect-timeout 15 --max-time 900"
|
||||||
|
|
||||||
local current_version=""
|
local current_version=""
|
||||||
[[ -f "$version_file" ]] && current_version=$(<"$version_file")
|
[[ -f "$version_file" ]] && current_version=$(<"$version_file")
|
||||||
@@ -2728,7 +2672,7 @@ function fetch_and_deploy_codeberg_release() {
|
|||||||
|
|
||||||
# Codeberg archive URL format: https://codeberg.org/{owner}/{repo}/archive/{tag}.tar.gz
|
# Codeberg archive URL format: https://codeberg.org/{owner}/{repo}/archive/{tag}.tar.gz
|
||||||
local archive_url="https://codeberg.org/$repo/archive/${tag_name}.tar.gz"
|
local archive_url="https://codeberg.org/$repo/archive/${tag_name}.tar.gz"
|
||||||
if curl_download "$tmpdir/$filename" "$archive_url"; then
|
if curl $download_timeout -fsSL -o "$tmpdir/$filename" "$archive_url"; then
|
||||||
download_success=true
|
download_success=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -2775,18 +2719,16 @@ function fetch_and_deploy_codeberg_release() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local attempt=0 success=false resp http_code
|
local max_retries=3 retry_delay=2 attempt=1 success=false resp http_code
|
||||||
|
|
||||||
while ((attempt < ${#api_timeouts[@]})); do
|
while ((attempt <= max_retries)); do
|
||||||
resp=$(curl --connect-timeout 10 --max-time "${api_timeouts[$attempt]}" -fsSL -w "%{http_code}" -o /tmp/codeberg_rel.json "$api_url") && success=true && break
|
resp=$(curl $api_timeout -fsSL -w "%{http_code}" -o /tmp/codeberg_rel.json "$api_url") && success=true && break
|
||||||
|
sleep "$retry_delay"
|
||||||
((attempt++))
|
((attempt++))
|
||||||
if ((attempt < ${#api_timeouts[@]})); then
|
|
||||||
msg_warn "API request timed out after ${api_timeouts[$((attempt - 1))]}s, retrying... (attempt $((attempt + 1))/${#api_timeouts[@]})"
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
if ! $success; then
|
if ! $success; then
|
||||||
msg_error "Failed to fetch release metadata from $api_url after ${#api_timeouts[@]} attempts"
|
msg_error "Failed to fetch release metadata from $api_url after $max_retries attempts"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -2827,7 +2769,7 @@ function fetch_and_deploy_codeberg_release() {
|
|||||||
|
|
||||||
# Codeberg archive URL format
|
# Codeberg archive URL format
|
||||||
local archive_url="https://codeberg.org/$repo/archive/${tag_name}.tar.gz"
|
local archive_url="https://codeberg.org/$repo/archive/${tag_name}.tar.gz"
|
||||||
if curl_download "$tmpdir/$filename" "$archive_url"; then
|
if curl $download_timeout -fsSL -o "$tmpdir/$filename" "$archive_url"; then
|
||||||
download_success=true
|
download_success=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -2901,7 +2843,7 @@ function fetch_and_deploy_codeberg_release() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
filename="${url_match##*/}"
|
filename="${url_match##*/}"
|
||||||
curl_download "$tmpdir/$filename" "$url_match" || {
|
curl $download_timeout -fsSL -o "$tmpdir/$filename" "$url_match" || {
|
||||||
msg_error "Download failed: $url_match"
|
msg_error "Download failed: $url_match"
|
||||||
rm -rf "$tmpdir"
|
rm -rf "$tmpdir"
|
||||||
return 1
|
return 1
|
||||||
@@ -2944,7 +2886,7 @@ function fetch_and_deploy_codeberg_release() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
filename="${asset_url##*/}"
|
filename="${asset_url##*/}"
|
||||||
curl_download "$tmpdir/$filename" "$asset_url" || {
|
curl $download_timeout -fsSL -o "$tmpdir/$filename" "$asset_url" || {
|
||||||
msg_error "Download failed: $asset_url"
|
msg_error "Download failed: $asset_url"
|
||||||
rm -rf "$tmpdir"
|
rm -rf "$tmpdir"
|
||||||
return 1
|
return 1
|
||||||
@@ -3045,7 +2987,7 @@ function fetch_and_deploy_codeberg_release() {
|
|||||||
local target_file="$app"
|
local target_file="$app"
|
||||||
[[ "$use_filename" == "true" ]] && target_file="$filename"
|
[[ "$use_filename" == "true" ]] && target_file="$filename"
|
||||||
|
|
||||||
curl_download "$target/$target_file" "$asset_url" || {
|
curl $download_timeout -fsSL -o "$target/$target_file" "$asset_url" || {
|
||||||
msg_error "Download failed: $asset_url"
|
msg_error "Download failed: $asset_url"
|
||||||
rm -rf "$tmpdir"
|
rm -rf "$tmpdir"
|
||||||
return 1
|
return 1
|
||||||
@@ -3240,7 +3182,8 @@ function fetch_and_deploy_gh_release() {
|
|||||||
local app_lc=$(echo "${app,,}" | tr -d ' ')
|
local app_lc=$(echo "${app,,}" | tr -d ' ')
|
||||||
local version_file="$HOME/.${app_lc}"
|
local version_file="$HOME/.${app_lc}"
|
||||||
|
|
||||||
local api_timeouts=(60 120 240)
|
local api_timeout="--connect-timeout 10 --max-time 60"
|
||||||
|
local download_timeout="--connect-timeout 15 --max-time 900"
|
||||||
|
|
||||||
local current_version=""
|
local current_version=""
|
||||||
[[ -f "$version_file" ]] && current_version=$(<"$version_file")
|
[[ -f "$version_file" ]] && current_version=$(<"$version_file")
|
||||||
@@ -3260,10 +3203,10 @@ function fetch_and_deploy_gh_release() {
|
|||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local max_retries=${#api_timeouts[@]} retry_delay=2 attempt=1 success=false http_code
|
local max_retries=3 retry_delay=2 attempt=1 success=false http_code
|
||||||
|
|
||||||
while ((attempt <= max_retries)); do
|
while ((attempt <= max_retries)); do
|
||||||
http_code=$(curl --connect-timeout 10 --max-time "${api_timeouts[$((attempt - 1))]:-240}" -sSL -w "%{http_code}" -o /tmp/gh_rel.json "${header[@]}" "$api_url" 2>/dev/null) || true
|
http_code=$(curl $api_timeout -sSL -w "%{http_code}" -o /tmp/gh_rel.json "${header[@]}" "$api_url" 2>/dev/null) || true
|
||||||
if [[ "$http_code" == "200" ]]; then
|
if [[ "$http_code" == "200" ]]; then
|
||||||
success=true
|
success=true
|
||||||
break
|
break
|
||||||
@@ -3337,7 +3280,7 @@ function fetch_and_deploy_gh_release() {
|
|||||||
local direct_tarball_url="https://github.com/$repo/archive/refs/tags/$tag_name.tar.gz"
|
local direct_tarball_url="https://github.com/$repo/archive/refs/tags/$tag_name.tar.gz"
|
||||||
filename="${app_lc}-${version_safe}.tar.gz"
|
filename="${app_lc}-${version_safe}.tar.gz"
|
||||||
|
|
||||||
curl_download "$tmpdir/$filename" "$direct_tarball_url" || {
|
curl $download_timeout -fsSL -o "$tmpdir/$filename" "$direct_tarball_url" || {
|
||||||
msg_error "Download failed: $direct_tarball_url"
|
msg_error "Download failed: $direct_tarball_url"
|
||||||
rm -rf "$tmpdir"
|
rm -rf "$tmpdir"
|
||||||
return 1
|
return 1
|
||||||
@@ -3440,7 +3383,7 @@ function fetch_and_deploy_gh_release() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
filename="${url_match##*/}"
|
filename="${url_match##*/}"
|
||||||
curl_download "$tmpdir/$filename" "$url_match" || {
|
curl $download_timeout -fsSL -o "$tmpdir/$filename" "$url_match" || {
|
||||||
msg_error "Download failed: $url_match"
|
msg_error "Download failed: $url_match"
|
||||||
rm -rf "$tmpdir"
|
rm -rf "$tmpdir"
|
||||||
return 1
|
return 1
|
||||||
@@ -3507,7 +3450,7 @@ function fetch_and_deploy_gh_release() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
filename="${asset_url##*/}"
|
filename="${asset_url##*/}"
|
||||||
curl_download "$tmpdir/$filename" "$asset_url" || {
|
curl $download_timeout -fsSL -o "$tmpdir/$filename" "$asset_url" || {
|
||||||
msg_error "Download failed: $asset_url"
|
msg_error "Download failed: $asset_url"
|
||||||
rm -rf "$tmpdir"
|
rm -rf "$tmpdir"
|
||||||
return 1
|
return 1
|
||||||
@@ -3628,7 +3571,7 @@ function fetch_and_deploy_gh_release() {
|
|||||||
local target_file="$app"
|
local target_file="$app"
|
||||||
[[ "$use_filename" == "true" ]] && target_file="$filename"
|
[[ "$use_filename" == "true" ]] && target_file="$filename"
|
||||||
|
|
||||||
curl_download "$target/$target_file" "$asset_url" || {
|
curl $download_timeout -fsSL -o "$target/$target_file" "$asset_url" || {
|
||||||
msg_error "Download failed: $asset_url"
|
msg_error "Download failed: $asset_url"
|
||||||
rm -rf "$tmpdir"
|
rm -rf "$tmpdir"
|
||||||
return 1
|
return 1
|
||||||
@@ -4697,7 +4640,7 @@ Pin: release o=repo.radeon.com
|
|||||||
Pin-Priority: 600
|
Pin-Priority: 600
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
$STD apt update || msg_warn "apt update failed (AMD repo may be temporarily unavailable) — continuing anyway"
|
$STD apt update
|
||||||
# Install only runtime packages — full 'rocm' meta-package includes 15GB+ dev tools
|
# Install only runtime packages — full 'rocm' meta-package includes 15GB+ dev tools
|
||||||
$STD apt install -y rocm-opencl-runtime rocm-hip-runtime rocm-smi-lib 2>/dev/null || {
|
$STD apt install -y rocm-opencl-runtime rocm-hip-runtime rocm-smi-lib 2>/dev/null || {
|
||||||
msg_warn "ROCm runtime install failed — trying minimal set"
|
msg_warn "ROCm runtime install failed — trying minimal set"
|
||||||
|
|||||||
@@ -134,20 +134,16 @@ manage_states() {
|
|||||||
read -rp "Shutdown source and start new container? [Y/n]: " answer
|
read -rp "Shutdown source and start new container? [Y/n]: " answer
|
||||||
answer=${answer:-Y}
|
answer=${answer:-Y}
|
||||||
if [[ $answer =~ ^[Yy] ]]; then
|
if [[ $answer =~ ^[Yy] ]]; then
|
||||||
|
pct shutdown "$CONTAINER_ID"
|
||||||
|
for i in {1..36}; do
|
||||||
|
sleep 5
|
||||||
|
! pct status "$CONTAINER_ID" | grep -q running && break
|
||||||
|
done
|
||||||
if pct status "$CONTAINER_ID" | grep -q running; then
|
if pct status "$CONTAINER_ID" | grep -q running; then
|
||||||
pct shutdown "$CONTAINER_ID"
|
read -rp "Timeout reached. Force shutdown? [Y/n]: " force
|
||||||
for i in {1..36}; do
|
if [[ ${force:-Y} =~ ^[Yy] ]]; then
|
||||||
sleep 5
|
pkill -9 -f "lxc-start -F -n $CONTAINER_ID"
|
||||||
! pct status "$CONTAINER_ID" | grep -q running && break
|
|
||||||
done
|
|
||||||
if pct status "$CONTAINER_ID" | grep -q running; then
|
|
||||||
read -rp "Timeout reached. Force shutdown? [Y/n]: " force
|
|
||||||
if [[ ${force:-Y} =~ ^[Yy] ]]; then
|
|
||||||
pkill -9 -f "lxc-start -F -n $CONTAINER_ID"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
msg_custom "ℹ️" "\e[36m" "Source container $CONTAINER_ID is already stopped"
|
|
||||||
fi
|
fi
|
||||||
pct start "$NEW_CONTAINER_ID"
|
pct start "$NEW_CONTAINER_ID"
|
||||||
msg_ok "New container started"
|
msg_ok "New container started"
|
||||||
|
|||||||
@@ -426,23 +426,16 @@ for container in $CHOICE; do
|
|||||||
elif [ $exit_code -eq 75 ]; then
|
elif [ $exit_code -eq 75 ]; then
|
||||||
echo -e "${YW}[WARN]${CL} Container $container skipped (requires interactive mode)"
|
echo -e "${YW}[WARN]${CL} Container $container skipped (requires interactive mode)"
|
||||||
elif [ "$BACKUP_CHOICE" == "yes" ]; then
|
elif [ "$BACKUP_CHOICE" == "yes" ]; then
|
||||||
msg_error "Update failed for container $container (exit code: $exit_code) — attempting restore"
|
msg_info "Restoring LXC from backup"
|
||||||
msg_info "Restoring LXC $container from backup ($STORAGE_CHOICE)"
|
|
||||||
pct stop $container
|
pct stop $container
|
||||||
LXC_STORAGE=$(pct config $container | awk -F '[:,]' '/rootfs/ {print $2}')
|
LXC_STORAGE=$(pct config $container | awk -F '[:,]' '/rootfs/ {print $2}')
|
||||||
BACKUP_ENTRY=$(pvesm list "$STORAGE_CHOICE" 2>/dev/null | awk -v ctid="$container" '$1 ~ "vzdump-lxc-"ctid"-" || $1 ~ "/ct/"ctid"/" {print $1}' | sort -r | head -n1)
|
pct restore $container /var/lib/vz/dump/vzdump-lxc-${container}-*.tar.zst --storage $LXC_STORAGE --force >/dev/null 2>&1
|
||||||
if [ -z "$BACKUP_ENTRY" ]; then
|
pct start $container
|
||||||
msg_error "No backup found in storage $STORAGE_CHOICE for container $container"
|
|
||||||
exit 235
|
|
||||||
fi
|
|
||||||
msg_info "Restoring from: $BACKUP_ENTRY"
|
|
||||||
pct restore $container "$BACKUP_ENTRY" --storage $LXC_STORAGE --force >/dev/null 2>&1
|
|
||||||
restorestatus=$?
|
restorestatus=$?
|
||||||
if [ $restorestatus -eq 0 ]; then
|
if [ $restorestatus -eq 0 ]; then
|
||||||
pct start $container
|
msg_ok "Restored LXC from backup"
|
||||||
msg_ok "Container $container successfully restored from backup"
|
|
||||||
else
|
else
|
||||||
msg_error "Restore failed for container $container"
|
msg_error "Restored LXC from backup failed"
|
||||||
exit 235
|
exit 235
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="archlinux-vm"
|
NSAPP="arch-linux-vm"
|
||||||
var_os="arch-linux"
|
var_os="arch-linux"
|
||||||
var_version="n.d."
|
var_version="n.d."
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="debian-13-vm"
|
NSAPP="debian13vm"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="13"
|
var_version="13"
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="debian-vm"
|
NSAPP="debian12vm"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:
|
|||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
VERSIONS=(stable beta dev)
|
VERSIONS=(stable beta dev)
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="haos-vm"
|
NSAPP="homeassistant-os"
|
||||||
var_os="homeassistant"
|
var_os="homeassistant"
|
||||||
DISK_SIZE="32G"
|
DISK_SIZE="32G"
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ echo -e "Loading..."
|
|||||||
GEN_MAC=$(echo '00 60 2f'$(od -An -N3 -t xC /dev/urandom) | sed -e 's/ /:/g' | tr '[:lower:]' '[:upper:]')
|
GEN_MAC=$(echo '00 60 2f'$(od -An -N3 -t xC /dev/urandom) | sed -e 's/ /:/g' | tr '[:lower:]' '[:upper:]')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="mikrotik-routeros"
|
NSAPP="mikrotik-router-os"
|
||||||
var_os="mikrotik"
|
var_os="mikrotik"
|
||||||
var_version=" "
|
var_version=" "
|
||||||
DISK_SIZE="1G"
|
DISK_SIZE="1G"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="nextcloud-vm"
|
NSAPP="turnkey-nextcloud"
|
||||||
var_os="turnkey-nextcloud"
|
var_os="turnkey-nextcloud"
|
||||||
var_version="n.d."
|
var_version="n.d."
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="owncloud-vm"
|
NSAPP="turnkey-owncloud-vm"
|
||||||
var_os="owncloud"
|
var_os="owncloud"
|
||||||
var_version="18.0"
|
var_version="18.0"
|
||||||
APP="TurnKey ownCloud VM"
|
APP="TurnKey ownCloud VM"
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="truenas-vm"
|
|
||||||
|
|
||||||
YW=$(echo "\033[33m")
|
YW=$(echo "\033[33m")
|
||||||
BL=$(echo "\033[36m")
|
BL=$(echo "\033[36m")
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="ubuntu2204-vm"
|
NSAPP="ubuntu-2204-vm"
|
||||||
var_os="ubuntu"
|
var_os="ubuntu"
|
||||||
var_version="2204"
|
var_version="2204"
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="ubuntu2404-vm"
|
NSAPP="ubuntu-2404-vm"
|
||||||
var_os="ubuntu"
|
var_os="ubuntu"
|
||||||
var_version="2404"
|
var_version="2404"
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ echo -e "\n Loading..."
|
|||||||
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
GEN_MAC=02:$(openssl rand -hex 5 | awk '{print toupper($0)}' | sed 's/\(..\)/\1:/g; s/.$//')
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
METHOD=""
|
METHOD=""
|
||||||
NSAPP="ubuntu2504-vm"
|
NSAPP="ubuntu-2504-vm"
|
||||||
var_os="ubuntu"
|
var_os="ubuntu"
|
||||||
var_version="2504"
|
var_version="2504"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user