mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-02-13 16:53:27 +01:00
Compare commits
1 Commits
feat/unatt
...
fetch-depl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6049a1fe2b |
116
.github/changelogs/2026/02.md
generated
vendored
116
.github/changelogs/2026/02.md
generated
vendored
@@ -1,119 +1,3 @@
|
||||
## 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))
|
||||
|
||||
## 2026-02-05
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- OpenCloud ([#11538](https://github.com/community-scripts/ProxmoxVE/pull/11538))
|
||||
- Nginx-UI ([#11573](https://github.com/community-scripts/ProxmoxVE/pull/11573))
|
||||
- New: SQL-Server 2025 | Refactor SQL-Server 2022 [@MickLesk](https://github.com/MickLesk) ([#11546](https://github.com/community-scripts/ProxmoxVE/pull/11546))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- OpenCloud: pin version to 5.0.2; Collabora CSP fix [@vhsdream](https://github.com/vhsdream) ([#11585](https://github.com/community-scripts/ProxmoxVE/pull/11585))
|
||||
- Wanderer: Fix repo [@tremor021](https://github.com/tremor021) ([#11567](https://github.com/community-scripts/ProxmoxVE/pull/11567))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Refactor: Docker-VM (Multi-OS / Cloud-Init / Stabilization) [@MickLesk](https://github.com/MickLesk) ([#9047](https://github.com/community-scripts/ProxmoxVE/pull/9047))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- cloud-init: add interactive SSH key discovery and selection [@MickLesk](https://github.com/MickLesk) ([#11547](https://github.com/community-scripts/ProxmoxVE/pull/11547))
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- github: extend docs / contribution / templates [@MickLesk](https://github.com/MickLesk) ([#10921](https://github.com/community-scripts/ProxmoxVE/pull/10921))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix(frontend): theme respective syntax highlighting [@ls-root](https://github.com/ls-root) ([#11565](https://github.com/community-scripts/ProxmoxVE/pull/11565))
|
||||
|
||||
## 2026-02-04
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
260
CHANGELOG.md
260
CHANGELOG.md
@@ -12,9 +12,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h2>📜 History</h2></summary>
|
||||
|
||||
@@ -24,7 +21,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h4>February (7 entries)</h4></summary>
|
||||
<summary><h4>February (4 entries)</h4></summary>
|
||||
|
||||
[View February 2026 Changelog](.github/changelogs/2026/02.md)
|
||||
|
||||
@@ -44,84 +41,84 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h4>December (31 entries)</h4></summary>
|
||||
<summary><h4>December - 31 entries</h4></summary>
|
||||
|
||||
[View December 2025 Changelog](.github/changelogs/2025/12.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>November (29 entries)</h4></summary>
|
||||
<summary><h4>November - 30 entries</h4></summary>
|
||||
|
||||
[View November 2025 Changelog](.github/changelogs/2025/11.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>October (30 entries)</h4></summary>
|
||||
<summary><h4>October - 31 entries</h4></summary>
|
||||
|
||||
[View October 2025 Changelog](.github/changelogs/2025/10.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>September (29 entries)</h4></summary>
|
||||
<summary><h4>September - 30 entries</h4></summary>
|
||||
|
||||
[View September 2025 Changelog](.github/changelogs/2025/09.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>August (30 entries)</h4></summary>
|
||||
<summary><h4>August - 31 entries</h4></summary>
|
||||
|
||||
[View August 2025 Changelog](.github/changelogs/2025/08.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>July (29 entries)</h4></summary>
|
||||
<summary><h4>July - 30 entries</h4></summary>
|
||||
|
||||
[View July 2025 Changelog](.github/changelogs/2025/07.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>June (29 entries)</h4></summary>
|
||||
<summary><h4>June - 30 entries</h4></summary>
|
||||
|
||||
[View June 2025 Changelog](.github/changelogs/2025/06.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>May (30 entries)</h4></summary>
|
||||
<summary><h4>May - 31 entries</h4></summary>
|
||||
|
||||
[View May 2025 Changelog](.github/changelogs/2025/05.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>April (25 entries)</h4></summary>
|
||||
<summary><h4>April - 26 entries</h4></summary>
|
||||
|
||||
[View April 2025 Changelog](.github/changelogs/2025/04.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>March (30 entries)</h4></summary>
|
||||
<summary><h4>March - 31 entries</h4></summary>
|
||||
|
||||
[View March 2025 Changelog](.github/changelogs/2025/03.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>February (26 entries)</h4></summary>
|
||||
<summary><h4>February - 27 entries</h4></summary>
|
||||
|
||||
[View February 2025 Changelog](.github/changelogs/2025/02.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>January (27 entries)</h4></summary>
|
||||
<summary><h4>January - 28 entries</h4></summary>
|
||||
|
||||
[View January 2025 Changelog](.github/changelogs/2025/01.md)
|
||||
|
||||
@@ -134,84 +131,84 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h4>December (22 entries)</h4></summary>
|
||||
<summary><h4>December - 23 entries</h4></summary>
|
||||
|
||||
[View December 2024 Changelog](.github/changelogs/2024/12.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>November (15 entries)</h4></summary>
|
||||
<summary><h4>November - 16 entries</h4></summary>
|
||||
|
||||
[View November 2024 Changelog](.github/changelogs/2024/11.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>October (9 entries)</h4></summary>
|
||||
<summary><h4>October - 10 entries</h4></summary>
|
||||
|
||||
[View October 2024 Changelog](.github/changelogs/2024/10.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>September (1 entries)</h4></summary>
|
||||
<summary><h4>September - 2 entries</h4></summary>
|
||||
|
||||
[View September 2024 Changelog](.github/changelogs/2024/09.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>August (2 entries)</h4></summary>
|
||||
<summary><h4>August - 3 entries</h4></summary>
|
||||
|
||||
[View August 2024 Changelog](.github/changelogs/2024/08.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>July (0 entries)</h4></summary>
|
||||
<summary><h4>July - 1 entries</h4></summary>
|
||||
|
||||
[View July 2024 Changelog](.github/changelogs/2024/07.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>June (8 entries)</h4></summary>
|
||||
<summary><h4>June - 9 entries</h4></summary>
|
||||
|
||||
[View June 2024 Changelog](.github/changelogs/2024/06.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>May (16 entries)</h4></summary>
|
||||
<summary><h4>May - 17 entries</h4></summary>
|
||||
|
||||
[View May 2024 Changelog](.github/changelogs/2024/05.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>April (14 entries)</h4></summary>
|
||||
<summary><h4>April - 15 entries</h4></summary>
|
||||
|
||||
[View April 2024 Changelog](.github/changelogs/2024/04.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>March (5 entries)</h4></summary>
|
||||
<summary><h4>March - 6 entries</h4></summary>
|
||||
|
||||
[View March 2024 Changelog](.github/changelogs/2024/03.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>February (9 entries)</h4></summary>
|
||||
<summary><h4>February - 10 entries</h4></summary>
|
||||
|
||||
[View February 2024 Changelog](.github/changelogs/2024/02.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>January (9 entries)</h4></summary>
|
||||
<summary><h4>January - 10 entries</h4></summary>
|
||||
|
||||
[View January 2024 Changelog](.github/changelogs/2024/01.md)
|
||||
|
||||
@@ -224,84 +221,84 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h4>December (3 entries)</h4></summary>
|
||||
<summary><h4>December - 4 entries</h4></summary>
|
||||
|
||||
[View December 2023 Changelog](.github/changelogs/2023/12.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>November (3 entries)</h4></summary>
|
||||
<summary><h4>November - 4 entries</h4></summary>
|
||||
|
||||
[View November 2023 Changelog](.github/changelogs/2023/11.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>October (7 entries)</h4></summary>
|
||||
<summary><h4>October - 8 entries</h4></summary>
|
||||
|
||||
[View October 2023 Changelog](.github/changelogs/2023/10.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>September (10 entries)</h4></summary>
|
||||
<summary><h4>September - 11 entries</h4></summary>
|
||||
|
||||
[View September 2023 Changelog](.github/changelogs/2023/09.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>August (7 entries)</h4></summary>
|
||||
<summary><h4>August - 8 entries</h4></summary>
|
||||
|
||||
[View August 2023 Changelog](.github/changelogs/2023/08.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>July (5 entries)</h4></summary>
|
||||
<summary><h4>July - 6 entries</h4></summary>
|
||||
|
||||
[View July 2023 Changelog](.github/changelogs/2023/07.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>June (5 entries)</h4></summary>
|
||||
<summary><h4>June - 6 entries</h4></summary>
|
||||
|
||||
[View June 2023 Changelog](.github/changelogs/2023/06.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>May (8 entries)</h4></summary>
|
||||
<summary><h4>May - 9 entries</h4></summary>
|
||||
|
||||
[View May 2023 Changelog](.github/changelogs/2023/05.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>April (8 entries)</h4></summary>
|
||||
<summary><h4>April - 9 entries</h4></summary>
|
||||
|
||||
[View April 2023 Changelog](.github/changelogs/2023/04.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>March (8 entries)</h4></summary>
|
||||
<summary><h4>March - 9 entries</h4></summary>
|
||||
|
||||
[View March 2023 Changelog](.github/changelogs/2023/03.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>February (6 entries)</h4></summary>
|
||||
<summary><h4>February - 7 entries</h4></summary>
|
||||
|
||||
[View February 2023 Changelog](.github/changelogs/2023/02.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>January (15 entries)</h4></summary>
|
||||
<summary><h4>January - 16 entries</h4></summary>
|
||||
|
||||
[View January 2023 Changelog](.github/changelogs/2023/01.md)
|
||||
|
||||
@@ -314,84 +311,84 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h4>December (7 entries)</h4></summary>
|
||||
<summary><h4>December - 8 entries</h4></summary>
|
||||
|
||||
[View December 2022 Changelog](.github/changelogs/2022/12.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>November (7 entries)</h4></summary>
|
||||
<summary><h4>November - 8 entries</h4></summary>
|
||||
|
||||
[View November 2022 Changelog](.github/changelogs/2022/11.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>October (2 entries)</h4></summary>
|
||||
<summary><h4>October - 3 entries</h4></summary>
|
||||
|
||||
[View October 2022 Changelog](.github/changelogs/2022/10.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>September (9 entries)</h4></summary>
|
||||
<summary><h4>September - 10 entries</h4></summary>
|
||||
|
||||
[View September 2022 Changelog](.github/changelogs/2022/09.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>August (7 entries)</h4></summary>
|
||||
<summary><h4>August - 8 entries</h4></summary>
|
||||
|
||||
[View August 2022 Changelog](.github/changelogs/2022/08.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>July (10 entries)</h4></summary>
|
||||
<summary><h4>July - 11 entries</h4></summary>
|
||||
|
||||
[View July 2022 Changelog](.github/changelogs/2022/07.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>June (1 entries)</h4></summary>
|
||||
<summary><h4>June - 2 entries</h4></summary>
|
||||
|
||||
[View June 2022 Changelog](.github/changelogs/2022/06.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>May (8 entries)</h4></summary>
|
||||
<summary><h4>May - 9 entries</h4></summary>
|
||||
|
||||
[View May 2022 Changelog](.github/changelogs/2022/05.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>April (13 entries)</h4></summary>
|
||||
<summary><h4>April - 14 entries</h4></summary>
|
||||
|
||||
[View April 2022 Changelog](.github/changelogs/2022/04.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>March (20 entries)</h4></summary>
|
||||
<summary><h4>March - 21 entries</h4></summary>
|
||||
|
||||
[View March 2022 Changelog](.github/changelogs/2022/03.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>February (15 entries)</h4></summary>
|
||||
<summary><h4>February - 16 entries</h4></summary>
|
||||
|
||||
[View February 2022 Changelog](.github/changelogs/2022/02.md)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><h4>January (3 entries)</h4></summary>
|
||||
<summary><h4>January - 4 entries</h4></summary>
|
||||
|
||||
[View January 2022 Changelog](.github/changelogs/2022/01.md)
|
||||
|
||||
@@ -401,52 +398,8 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
</details>
|
||||
|
||||
## 2026-02-09
|
||||
|
||||
## 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
|
||||
@@ -1309,4 +1262,117 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- fix: setup_mariadb hangs on [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10672](https://github.com/community-scripts/ProxmoxVE/pull/10672))
|
||||
- fix: setup_mariadb hangs on [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10672](https://github.com/community-scripts/ProxmoxVE/pull/10672))
|
||||
|
||||
## 2026-01-08
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- GWN-Manager ([#10642](https://github.com/community-scripts/ProxmoxVE/pull/10642))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Fix line continuation for vlc-bin installation [@chinedu40](https://github.com/chinedu40) ([#10654](https://github.com/community-scripts/ProxmoxVE/pull/10654))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- outline: use corepack yarn module [@MickLesk](https://github.com/MickLesk) ([#10652](https://github.com/community-scripts/ProxmoxVE/pull/10652))
|
||||
- Remove unnecessary quotes from variable expansions in VM scripts [@MickLesk](https://github.com/MickLesk) ([#10649](https://github.com/community-scripts/ProxmoxVE/pull/10649))
|
||||
- Monica: Fix database variable names [@tremor021](https://github.com/tremor021) ([#10634](https://github.com/community-scripts/ProxmoxVE/pull/10634))
|
||||
- Tianji: Fix PostrgreSQL vars [@tremor021](https://github.com/tremor021) ([#10633](https://github.com/community-scripts/ProxmoxVE/pull/10633))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- deCONZ: Bump to Trixie base [@tremor021](https://github.com/tremor021) ([#10643](https://github.com/community-scripts/ProxmoxVE/pull/10643))
|
||||
|
||||
## 2026-01-07
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- pve-scripts-local: fix missing exit in update [@MickLesk](https://github.com/MickLesk) ([#10630](https://github.com/community-scripts/ProxmoxVE/pull/10630))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Upgrade ESPHome LXC to Debian 13 [@heinemannj](https://github.com/heinemannj) ([#10624](https://github.com/community-scripts/ProxmoxVE/pull/10624))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Explicitly state installation method [@tremor021](https://github.com/tremor021) ([#10608](https://github.com/community-scripts/ProxmoxVE/pull/10608))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- Modify Debian sources list for trixie updates (as 4.1.0-1 config) [@maiux](https://github.com/maiux) ([#10505](https://github.com/community-scripts/ProxmoxVE/pull/10505))
|
||||
|
||||
## 2026-01-06
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Sportarr ([#10600](https://github.com/community-scripts/ProxmoxVE/pull/10600))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- chore: fix update msg [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10593](https://github.com/community-scripts/ProxmoxVE/pull/10593))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- InspIRCd: Fix release fetching [@tremor021](https://github.com/tremor021) ([#10578](https://github.com/community-scripts/ProxmoxVE/pull/10578))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Sonarr [@tremor021](https://github.com/tremor021) ([#10573](https://github.com/community-scripts/ProxmoxVE/pull/10573))
|
||||
- Refactor: Dispatcharr [@tremor021](https://github.com/tremor021) ([#10599](https://github.com/community-scripts/ProxmoxVE/pull/10599))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- hwaccel: rewrite of GPU hardware acceleration support [@MickLesk](https://github.com/MickLesk) ([#10597](https://github.com/community-scripts/ProxmoxVE/pull/10597))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- iptag: fix syntax error in VM config file parsing [@MickLesk](https://github.com/MickLesk) ([#10598](https://github.com/community-scripts/ProxmoxVE/pull/10598))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Update clean-lxcs.sh to support Red Hat compatible distros [@jabofh](https://github.com/jabofh) ([#10583](https://github.com/community-scripts/ProxmoxVE/pull/10583))
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- [gh] New Script template update [@tremor021](https://github.com/tremor021) ([#10607](https://github.com/community-scripts/ProxmoxVE/pull/10607))
|
||||
- chore: bump copyright to 2026 - happy new year [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10585](https://github.com/community-scripts/ProxmoxVE/pull/10585))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- re-add shellcheck exclusions [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10586](https://github.com/community-scripts/ProxmoxVE/pull/10586))
|
||||
|
||||
## 2026-01-05
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- reitti: add postgis extension to PostgreSQL DB setup [@MickLesk](https://github.com/MickLesk) ([#10555](https://github.com/community-scripts/ProxmoxVE/pull/10555))
|
||||
- openWRT: separate disk attachment and resizing in VM setup [@MickLesk](https://github.com/MickLesk) ([#10557](https://github.com/community-scripts/ProxmoxVE/pull/10557))
|
||||
- paperless-ai: Set TMPDIR for pip to use disk during install [@MickLesk](https://github.com/MickLesk) ([#10559](https://github.com/community-scripts/ProxmoxVE/pull/10559))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Monica [@tremor021](https://github.com/tremor021) ([#10552](https://github.com/community-scripts/ProxmoxVE/pull/10552))
|
||||
- Upgrade Wazuh LXC Container to Debian 13 [@heinemannj](https://github.com/heinemannj) ([#10551](https://github.com/community-scripts/ProxmoxVE/pull/10551))
|
||||
- Upgrade evcc LXC to Debian 13 [@heinemannj](https://github.com/heinemannj) ([#10548](https://github.com/community-scripts/ProxmoxVE/pull/10548))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Harden setup_hwaccel for old Intel GPUs [@MickLesk](https://github.com/MickLesk) ([#10556](https://github.com/community-scripts/ProxmoxVE/pull/10556))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: IP-Tag (Multiple IP / Performance / Execution Time) [@MickLesk](https://github.com/MickLesk) ([#10558](https://github.com/community-scripts/ProxmoxVE/pull/10558))
|
||||
|
||||
@@ -25,7 +25,7 @@ function update_script() {
|
||||
fi
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 1 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 1 \
|
||||
"1" "Check for Docker Updates" 3>&2 2>&1 1>&3
|
||||
)
|
||||
exit_status=$?
|
||||
|
||||
@@ -26,7 +26,7 @@ function update_script() {
|
||||
LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 3 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 3 \
|
||||
"1" "Check for Grafana Updates" \
|
||||
"2" "Allow 0.0.0.0 for listening" \
|
||||
"3" "Allow only ${LXCIP} for listening" 3>&2 2>&1 1>&3
|
||||
|
||||
@@ -26,7 +26,7 @@ function update_script() {
|
||||
LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 3 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 3 \
|
||||
"1" "Check for Loki Updates" \
|
||||
"2" "Allow 0.0.0.0 for listening" \
|
||||
"3" "Allow only ${LXCIP} for listening" 3>&2 2>&1 1>&3
|
||||
|
||||
@@ -28,7 +28,7 @@ function update_script() {
|
||||
apk add -q newt
|
||||
fi
|
||||
while true; do
|
||||
CHOICE=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 3 \
|
||||
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 3 \
|
||||
"1" "Nextcloud Login Credentials" ON \
|
||||
"2" "Renew Self-signed Certificate" OFF \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
@@ -26,7 +26,7 @@ function update_script() {
|
||||
LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "Redis Management" --menu "Select option" 11 58 3 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Redis Management" --menu "Select option" 11 58 3 \
|
||||
"1" "Update Redis" \
|
||||
"2" "Allow 0.0.0.0 for listening" \
|
||||
"3" "Allow only ${LXCIP} for listening" 3>&2 2>&1 1>&3
|
||||
|
||||
@@ -26,7 +26,7 @@ function update_script() {
|
||||
LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "Valkey Management" --menu "Select option" 11 58 3 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Valkey Management" --menu "Select option" 11 58 3 \
|
||||
"1" "Update Valkey" \
|
||||
"2" "Allow 0.0.0.0 for listening" \
|
||||
"3" "Allow only ${LXCIP} for listening" 3>&2 2>&1 1>&3
|
||||
|
||||
@@ -25,7 +25,7 @@ function update_script() {
|
||||
fi
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 2 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 2 \
|
||||
"1" "Update Vaultwarden" \
|
||||
"2" "Reset ADMIN_TOKEN" 3>&2 2>&1 1>&3
|
||||
)
|
||||
@@ -43,7 +43,7 @@ function update_script() {
|
||||
exit
|
||||
;;
|
||||
2)
|
||||
if NEWTOKEN=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Setup your ADMIN_TOKEN (make it strong)" 10 58 3>&1 1>&2 2>&3); then
|
||||
if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Setup your ADMIN_TOKEN (make it strong)" 10 58 3>&1 1>&2 2>&3); then
|
||||
if [[ -z "$NEWTOKEN" ]]; then exit-script; fi
|
||||
if ! command -v argon2 >/dev/null 2>&1; then apk add argon2 &>/dev/null; fi
|
||||
TOKEN=$(echo -n "${NEWTOKEN}" | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1)
|
||||
|
||||
@@ -25,7 +25,7 @@ function update_script() {
|
||||
fi
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 1 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 1 \
|
||||
"1" "Check for Zigbee2MQTT Updates" 3>&2 2>&1 1>&3
|
||||
)
|
||||
exit_status=$?
|
||||
|
||||
@@ -21,7 +21,7 @@ catch_errors
|
||||
|
||||
function update_script() {
|
||||
UPD=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \
|
||||
"1" "Check for Alpine Updates" ON \
|
||||
3>&1 1>&2 2>&3
|
||||
)
|
||||
|
||||
55
ct/bichon.sh
55
ct/bichon.sh
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/rustmailer/bichon
|
||||
|
||||
APP="Bichon"
|
||||
var_tags="${var_tags:-email;archive}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/bichon ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "bichon" "rustmailer/bichon"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop bichon
|
||||
msg_ok "Stopped service"
|
||||
|
||||
cp /opt/bichon/bichon.env /tmp/bichon.env.backup
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
||||
cp /tmp/bichon.env.backup /opt/bichon/bichon.env
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start bichon
|
||||
msg_ok "Service started"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:15630${CL}"
|
||||
@@ -1,78 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/bluewave-labs/Checkmate
|
||||
|
||||
APP="Checkmate"
|
||||
var_tags="${var_tags:-monitoring;uptime}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-10}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/checkmate ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "checkmate" "bluewave-labs/Checkmate"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop checkmate-server checkmate-client nginx
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp /opt/checkmate/server/.env /opt/checkmate_server.env.bak
|
||||
[ -f /opt/checkmate/client/.env.local ] && cp /opt/checkmate/client/.env.local /opt/checkmate_client.env.local.bak
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate"
|
||||
|
||||
msg_info "Updating Checkmate Server"
|
||||
cd /opt/checkmate/server
|
||||
$STD npm install
|
||||
if [ -f package.json ]; then
|
||||
grep -q '"build"' package.json && $STD npm run build || true
|
||||
fi
|
||||
msg_ok "Updated Checkmate Server"
|
||||
|
||||
msg_info "Updating Checkmate Client"
|
||||
cd /opt/checkmate/client
|
||||
$STD npm install
|
||||
VITE_APP_API_BASE_URL="/api/v1" UPTIME_APP_API_BASE_URL="/api/v1" VITE_APP_LOG_LEVEL="warn" $STD npm run build
|
||||
msg_ok "Updated Checkmate Client"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
mv /opt/checkmate_server.env.bak /opt/checkmate/server/.env
|
||||
[ -f /opt/checkmate_client.env.local.bak ] && mv /opt/checkmate_client.env.local.bak /opt/checkmate/client/.env.local
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start checkmate-server checkmate-client nginx
|
||||
msg_ok "Started Services"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||
@@ -23,7 +23,7 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
|
||||
"1" "Update ${APP}" ON \
|
||||
"2" "Install ${APP} Worker" OFF \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
@@ -31,17 +31,17 @@ function update_script() {
|
||||
|
||||
APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4)
|
||||
if [[ $APP_VERSION =~ ^2\. ]]; then
|
||||
if ! phs_whiptail --backtitle "Gitea Mirror Update" --title "⚠️ VERSION 2.x DETECTED" --yesno \
|
||||
if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ VERSION 2.x DETECTED" --yesno \
|
||||
"WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! phs_whiptail --backtitle "Gitea Mirror Update" --title "⚠️ FINAL CONFIRMATION" --yesno \
|
||||
if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ FINAL CONFIRMATION" --yesno \
|
||||
"FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno; then
|
||||
whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
|
||||
exit 0
|
||||
fi
|
||||
phs_whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \
|
||||
whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \
|
||||
"Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
|
||||
rm -rf /opt/gitea-mirror
|
||||
fi
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
____ _ __
|
||||
/ __ )(_)____/ /_ ____ ____
|
||||
/ __ / / ___/ __ \/ __ \/ __ \
|
||||
/ /_/ / / /__/ / / / /_/ / / / /
|
||||
/_____/_/\___/_/ /_/\____/_/ /_/
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
________ __ __
|
||||
/ ____/ /_ ___ _____/ /______ ___ ____ _/ /____
|
||||
/ / / __ \/ _ \/ ___/ //_/ __ `__ \/ __ `/ __/ _ \
|
||||
/ /___/ / / / __/ /__/ ,< / / / / / / /_/ / /_/ __/
|
||||
\____/_/ /_/\___/\___/_/|_/_/ /_/ /_/\__,_/\__/\___/
|
||||
|
||||
@@ -27,7 +27,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
||||
"1" "Update ALL Containers" ON \
|
||||
"2" "Remove ALL Unused Images" OFF \
|
||||
"3" "Install HACS" OFF \
|
||||
|
||||
@@ -31,7 +31,7 @@ function update_script() {
|
||||
|
||||
while true; do
|
||||
CHOICE=$(
|
||||
phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 3 \
|
||||
whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --menu "Select option" 11 58 3 \
|
||||
"1" "Update Loki & Promtail" \
|
||||
"2" "Allow 0.0.0.0 for listening" \
|
||||
"3" "Allow only ${LOCAL_IP} for listening" 3>&2 2>&1 1>&3
|
||||
|
||||
@@ -24,7 +24,7 @@ function update_script() {
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "Meilisearch Update" --radiolist --cancel-button Exit-Script "Spacebar = Select" 10 58 2 \
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Meilisearch Update" --radiolist --cancel-button Exit-Script "Spacebar = Select" 10 58 2 \
|
||||
"1" "Update Meilisearch" ON \
|
||||
"2" "Update Meilisearch-UI" OFF \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
@@ -27,12 +27,12 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "memos" "usememos/memos" "v0.25.3"; then
|
||||
if check_for_gh_release "memos" "usememos/memos"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop memos
|
||||
msg_ok "Service stopped"
|
||||
|
||||
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "v0.25.3" "/opt/memos" "memos*linux_amd64.tar.gz"
|
||||
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start memos
|
||||
|
||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
|
||||
@@ -27,12 +27,12 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "nocodb" "nocodb/nocodb" "0.301.1"; then
|
||||
if check_for_gh_release "nocodb" "nocodb/nocodb"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop nocodb
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
fetch_and_deploy_gh_release "nocodb" "nocodb/nocodb" "singlefile" "0.301.1" "/opt/nocodb/" "Noco-linux-x64"
|
||||
fetch_and_deploy_gh_release "nocodb" "nocodb/nocodb" "singlefile" "latest" "/opt/nocodb/" "Noco-linux-x64"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start nocodb
|
||||
|
||||
@@ -27,7 +27,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
|
||||
"1" "Update ${APP}" ON \
|
||||
"2" "Install Themes" OFF \
|
||||
3>&1 1>&2 2>&3)
|
||||
@@ -49,7 +49,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
if [ "$UPD" == "2" ]; then
|
||||
THEME=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "NODE-RED THEMES" --radiolist --cancel-button Exit-Script "Choose Theme" 15 58 6 \
|
||||
THEME=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "NODE-RED THEMES" --radiolist --cancel-button Exit-Script "Choose Theme" 15 58 6 \
|
||||
"aurora" "" OFF \
|
||||
"cobalt2" "" OFF \
|
||||
"dark" "" OFF \
|
||||
|
||||
@@ -20,7 +20,7 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE MODE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 14 60 2 \
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE MODE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 14 60 2 \
|
||||
"1" "Check for Alpine Updates" OFF \
|
||||
"2" "Update NPMplus Docker Container" ON \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-8}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
|
||||
@@ -29,7 +29,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select \nplexupdate info >> https://github.com/mrworf/plexupdate" 10 59 2 \
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select \nplexupdate info >> https://github.com/mrworf/plexupdate" 10 59 2 \
|
||||
"1" "Update LXC" ON \
|
||||
"2" "Install plexupdate" OFF \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
@@ -27,7 +27,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
||||
"1" "Update system and containers" ON \
|
||||
"2" "Install HACS" OFF \
|
||||
"3" "Install FileBrowser" OFF \
|
||||
|
||||
@@ -10,8 +10,8 @@ var_tags="${var_tags:-dev_ops}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-ubuntu}"
|
||||
var_version="${var_version:-24.04}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
|
||||
@@ -31,7 +31,7 @@ function update_script() {
|
||||
VAULT=$(get_latest_github_release "dani-garcia/vaultwarden")
|
||||
WVRELEASE=$(get_latest_github_release "dani-garcia/bw_web_builds")
|
||||
|
||||
UPD=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 3 \
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 3 \
|
||||
"1" "VaultWarden $VAULT" ON \
|
||||
"2" "Web-Vault $WVRELEASE" OFF \
|
||||
"3" "Set Admin Token" OFF \
|
||||
@@ -92,7 +92,7 @@ function update_script() {
|
||||
fi
|
||||
|
||||
if [ "$UPD" == "3" ]; then
|
||||
if NEWTOKEN=$(phs_whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Set the ADMIN_TOKEN" 10 58 3>&1 1>&2 2>&3); then
|
||||
if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Set the ADMIN_TOKEN" 10 58 3>&1 1>&2 2>&3); then
|
||||
if [[ -z "$NEWTOKEN" ]]; then exit; fi
|
||||
ensure_dependencies argon2
|
||||
TOKEN=$(echo -n "${NEWTOKEN}" | argon2 "$(openssl rand -base64 32)" -t 2 -m 16 -p 4 -l 64 -e)
|
||||
|
||||
@@ -237,6 +237,7 @@ if [[ $# -gt 0 ]]; then
|
||||
# Check for --full flag
|
||||
if [[ "$1" == "--full" ]]; then
|
||||
UPDATE_ALL=true
|
||||
AUTO_DETECT=true
|
||||
shift # Remove --full from arguments
|
||||
fi
|
||||
|
||||
@@ -249,10 +250,8 @@ if [[ $# -gt 0 ]]; then
|
||||
REPO_NAME="$2"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Try auto-detection
|
||||
if [[ -z "$USERNAME" ]]; then
|
||||
else
|
||||
# Try auto-detection
|
||||
if username=$(detect_username); then
|
||||
USERNAME="$username"
|
||||
print_success "Detected GitHub username: $USERNAME"
|
||||
@@ -262,15 +261,14 @@ if [[ -z "$USERNAME" ]]; then
|
||||
echo " ./setup-fork.sh YOUR_USERNAME"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Auto-detect repo name if needed
|
||||
if repo_name=$(detect_repo_name); then
|
||||
REPO_NAME="$repo_name"
|
||||
if [[ "$REPO_NAME" != "ProxmoxVE" ]]; then
|
||||
print_info "Detected custom repo name: $REPO_NAME"
|
||||
else
|
||||
print_success "Using default repo name: ProxmoxVE"
|
||||
if repo_name=$(detect_repo_name); then
|
||||
REPO_NAME="$repo_name"
|
||||
if [[ "$REPO_NAME" != "ProxmoxVE" ]]; then
|
||||
print_info "Detected custom repo name: $REPO_NAME"
|
||||
else
|
||||
print_success "Using default repo name: ProxmoxVE"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
"name": "Bichon",
|
||||
"slug": "bichon",
|
||||
"categories": [
|
||||
7
|
||||
],
|
||||
"date_created": "2026-02-07",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 15630,
|
||||
"documentation": "https://github.com/rustmailer/bichon/wiki",
|
||||
"config_path": "/opt/bichon/bichon.env",
|
||||
"website": "https://github.com/rustmailer/bichon",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/bichon.webp",
|
||||
"description": "Bichon is an open-source email archiving system that synchronizes emails from IMAP servers, indexes them for full-text search, and provides a REST API for programmatic access. Unlike email clients, Bichon is designed for archiving and searching rather than sending/receiving emails. It runs as a standalone server application that continuously synchronizes configured email accounts and maintains a searchable local archive.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/bichon.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 1024,
|
||||
"hdd": 4,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": "admin",
|
||||
"password": "admin@bichon"
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "The Disk space initially allocated by the script is only a placeholder, as we can't know how much space you will ever need. You should increase it to match your workload.",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{
|
||||
"name": "Checkmate",
|
||||
"slug": "checkmate",
|
||||
"categories": [
|
||||
9
|
||||
],
|
||||
"date_created": "2026-02-07",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 5173,
|
||||
"documentation": "https://github.com/bluewave-labs/Checkmate#readme",
|
||||
"website": "https://github.com/bluewave-labs/Checkmate",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/checkmate.webp",
|
||||
"config_path": "/opt/checkmate/server/.env",
|
||||
"description": "Checkmate is an open source uptime and infrastructure monitoring application that helps you track the availability and performance of your services.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/checkmate.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 4096,
|
||||
"hdd": 10,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Create your admin account on first login via the web interface.",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "Server API runs on port 52345, Client UI on port 5173.",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "For PageSpeed monitoring, add a Google PageSpeed API key to the server .env file.",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated": "2026-02-09T06:27:10Z",
|
||||
"generated": "2026-02-07T12:07:39Z",
|
||||
"versions": [
|
||||
{
|
||||
"slug": "2fauth",
|
||||
@@ -120,13 +120,6 @@
|
||||
"pinned": false,
|
||||
"date": "2026-02-01T19:02:42Z"
|
||||
},
|
||||
{
|
||||
"slug": "bichon",
|
||||
"repo": "rustmailer/bichon",
|
||||
"version": "0.3.7",
|
||||
"pinned": false,
|
||||
"date": "2026-01-28T12:47:09Z"
|
||||
},
|
||||
{
|
||||
"slug": "bitmagnet",
|
||||
"repo": "bitmagnet-io/bitmagnet",
|
||||
@@ -158,9 +151,9 @@
|
||||
{
|
||||
"slug": "byparr",
|
||||
"repo": "ThePhaseless/Byparr",
|
||||
"version": "v2.1.0",
|
||||
"version": "v2.0.1",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T12:59:20Z"
|
||||
"date": "2025-09-11T20:29:38Z"
|
||||
},
|
||||
{
|
||||
"slug": "bytestash",
|
||||
@@ -176,13 +169,6 @@
|
||||
"pinned": false,
|
||||
"date": "2025-07-29T16:39:18Z"
|
||||
},
|
||||
{
|
||||
"slug": "checkmate",
|
||||
"repo": "bluewave-labs/Checkmate",
|
||||
"version": "v3.3",
|
||||
"pinned": false,
|
||||
"date": "2026-01-28T14:25:25Z"
|
||||
},
|
||||
{
|
||||
"slug": "cleanuparr",
|
||||
"repo": "Cleanuparr/Cleanuparr",
|
||||
@@ -249,9 +235,9 @@
|
||||
{
|
||||
"slug": "dawarich",
|
||||
"repo": "Freika/dawarich",
|
||||
"version": "1.1.0",
|
||||
"version": "1.0.4",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T14:42:45Z"
|
||||
"date": "2026-02-01T11:37:27Z"
|
||||
},
|
||||
{
|
||||
"slug": "discopanel",
|
||||
@@ -340,9 +326,9 @@
|
||||
{
|
||||
"slug": "firefly",
|
||||
"repo": "firefly-iii/firefly-iii",
|
||||
"version": "v6.4.18",
|
||||
"version": "v6.4.17",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T07:28:00Z"
|
||||
"date": "2026-02-07T06:56:00Z"
|
||||
},
|
||||
{
|
||||
"slug": "fladder",
|
||||
@@ -389,9 +375,9 @@
|
||||
{
|
||||
"slug": "ghostfolio",
|
||||
"repo": "ghostfolio/ghostfolio",
|
||||
"version": "2.237.0",
|
||||
"version": "2.236.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T13:59:53Z"
|
||||
"date": "2026-02-05T19:30:11Z"
|
||||
},
|
||||
{
|
||||
"slug": "gitea",
|
||||
@@ -557,9 +543,9 @@
|
||||
{
|
||||
"slug": "jackett",
|
||||
"repo": "Jackett/Jackett",
|
||||
"version": "v0.24.1074",
|
||||
"version": "v0.24.1060",
|
||||
"pinned": false,
|
||||
"date": "2026-02-09T06:01:19Z"
|
||||
"date": "2026-02-07T05:55:27Z"
|
||||
},
|
||||
{
|
||||
"slug": "joplin-server",
|
||||
@@ -767,16 +753,16 @@
|
||||
{
|
||||
"slug": "mediamanager",
|
||||
"repo": "maxdorninger/MediaManager",
|
||||
"version": "v1.12.2",
|
||||
"version": "v1.12.1",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T19:18:29Z"
|
||||
"date": "2026-01-05T09:06:22Z"
|
||||
},
|
||||
{
|
||||
"slug": "mediamtx",
|
||||
"repo": "bluenviron/mediamtx",
|
||||
"version": "v1.16.1",
|
||||
"version": "v1.16.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-07T18:58:24Z"
|
||||
"date": "2026-01-31T15:38:51Z"
|
||||
},
|
||||
{
|
||||
"slug": "meilisearch",
|
||||
@@ -788,16 +774,16 @@
|
||||
{
|
||||
"slug": "memos",
|
||||
"repo": "usememos/memos",
|
||||
"version": "v0.25.3",
|
||||
"pinned": true,
|
||||
"date": "2025-11-25T15:40:41Z"
|
||||
"version": "v0.26.0",
|
||||
"pinned": false,
|
||||
"date": "2026-01-31T15:28:09Z"
|
||||
},
|
||||
{
|
||||
"slug": "metube",
|
||||
"repo": "alexta69/metube",
|
||||
"version": "2026.02.08",
|
||||
"version": "2026.02.06",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T17:01:37Z"
|
||||
"date": "2026-02-06T14:20:34Z"
|
||||
},
|
||||
{
|
||||
"slug": "miniflux",
|
||||
@@ -837,9 +823,9 @@
|
||||
{
|
||||
"slug": "navidrome",
|
||||
"repo": "navidrome/navidrome",
|
||||
"version": "v0.60.2",
|
||||
"version": "v0.60.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-07T19:42:33Z"
|
||||
"date": "2026-02-03T18:57:04Z"
|
||||
},
|
||||
{
|
||||
"slug": "netbox",
|
||||
@@ -865,9 +851,9 @@
|
||||
{
|
||||
"slug": "nocodb",
|
||||
"repo": "nocodb/nocodb",
|
||||
"version": "0.301.1",
|
||||
"pinned": true,
|
||||
"date": "2026-01-14T13:13:33Z"
|
||||
"version": "0.301.2",
|
||||
"pinned": false,
|
||||
"date": "2026-01-21T16:23:04Z"
|
||||
},
|
||||
{
|
||||
"slug": "nodebb",
|
||||
@@ -1005,9 +991,9 @@
|
||||
{
|
||||
"slug": "peanut",
|
||||
"repo": "Brandawg93/PeaNUT",
|
||||
"version": "v5.22.0",
|
||||
"version": "v5.21.2",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T00:32:25Z"
|
||||
"date": "2026-01-18T17:32:08Z"
|
||||
},
|
||||
{
|
||||
"slug": "pelican-panel",
|
||||
@@ -1131,9 +1117,9 @@
|
||||
{
|
||||
"slug": "pulse",
|
||||
"repo": "rcourtman/Pulse",
|
||||
"version": "v5.1.5",
|
||||
"version": "v5.1.2",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T12:19:53Z"
|
||||
"date": "2026-02-05T00:18:57Z"
|
||||
},
|
||||
{
|
||||
"slug": "pve-scripts-local",
|
||||
@@ -1306,9 +1292,9 @@
|
||||
{
|
||||
"slug": "speedtest-tracker",
|
||||
"repo": "alexjustesen/speedtest-tracker",
|
||||
"version": "v1.13.9",
|
||||
"version": "v1.13.8",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T21:48:49Z"
|
||||
"date": "2026-02-04T19:24:23Z"
|
||||
},
|
||||
{
|
||||
"slug": "spoolman",
|
||||
@@ -1348,9 +1334,9 @@
|
||||
{
|
||||
"slug": "tandoor",
|
||||
"repo": "TandoorRecipes/recipes",
|
||||
"version": "2.5.0",
|
||||
"version": "2.4.2",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T13:23:02Z"
|
||||
"date": "2026-02-01T12:52:37Z"
|
||||
},
|
||||
{
|
||||
"slug": "tasmoadmin",
|
||||
@@ -1446,9 +1432,9 @@
|
||||
{
|
||||
"slug": "trip",
|
||||
"repo": "itskovacs/TRIP",
|
||||
"version": "1.39.0",
|
||||
"version": "1.38.1",
|
||||
"pinned": false,
|
||||
"date": "2026-02-07T16:59:51Z"
|
||||
"date": "2026-02-04T18:10:15Z"
|
||||
},
|
||||
{
|
||||
"slug": "tududi",
|
||||
@@ -1628,9 +1614,9 @@
|
||||
{
|
||||
"slug": "yubal",
|
||||
"repo": "guillevc/yubal",
|
||||
"version": "v0.4.2",
|
||||
"version": "v0.4.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-08T21:35:13Z"
|
||||
"date": "2026-02-06T21:25:24Z"
|
||||
},
|
||||
{
|
||||
"slug": "zigbee2mqtt",
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"website": "https://nginxproxymanager.com/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/nginx-proxy-manager.webp",
|
||||
"config_path": "",
|
||||
"disable": false,
|
||||
"disable": true,
|
||||
"disable_description": "This script is temporarily disabled due to an external issue with the OpenResty APT repository. The repository's GPG key uses SHA-1 signatures, which are no longer accepted by Debian as of February 1, 2026. This causes installation to fail with APT errors. The issue is tracked in openresty/openresty#1097. A workaround exists but requires manual configuration. The script will be re-enabled once OpenResty updates their repository signing key. For more details, see: https://github.com/community-scripts/ProxmoxVE/issues/11406",
|
||||
"description": "Nginx Proxy Manager is a tool that provides a web-based interface to manage Nginx reverse proxies. It enables users to easily and securely expose their services to the internet by providing features such as HTTPS encryption, domain mapping, and access control. It eliminates the need for manual configuration of Nginx reverse proxies, making it easy for users to quickly and securely expose their services to the public.",
|
||||
"install_methods": [
|
||||
@@ -25,7 +25,7 @@
|
||||
"ram": 2048,
|
||||
"hdd": 8,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"ram": 4096,
|
||||
"hdd": 8,
|
||||
"os": "Debian",
|
||||
"version": "12"
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 4,
|
||||
"os": "ubuntu",
|
||||
"version": "24.04"
|
||||
"os": "debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -32,11 +32,6 @@ import Note from "./_components/note";
|
||||
import { githubGist, nord } from "react-syntax-highlighter/dist/esm/styles/hljs";
|
||||
import SyntaxHighlighter from "react-syntax-highlighter";
|
||||
import { ScriptItem } from "../scripts/_components/script-item";
|
||||
import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu";
|
||||
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogTrigger } from "@/components/ui/dialog";
|
||||
import { search } from "@/components/command-menu";
|
||||
import { basePath } from "@/config/site-config";
|
||||
import Image from "next/image";
|
||||
import { useTheme } from "next-themes";
|
||||
|
||||
const initialScript: Script = {
|
||||
@@ -70,35 +65,8 @@ export default function JSONGenerator() {
|
||||
const [isValid, setIsValid] = useState(false);
|
||||
const [categories, setCategories] = useState<Category[]>([]);
|
||||
const [currentTab, setCurrentTab] = useState<"json" | "preview">("json");
|
||||
const [selectedCategory, setSelectedCategory] = useState<string>("");
|
||||
const [searchQuery, setSearchQuery] = useState<string>("");
|
||||
const [isImportDialogOpen, setIsImportDialogOpen] = useState(false);
|
||||
const [zodErrors, setZodErrors] = useState<z.ZodError | null>(null);
|
||||
|
||||
const selectedCategoryObj = useMemo(
|
||||
() => categories.find(cat => cat.id.toString() === selectedCategory),
|
||||
[categories, selectedCategory]
|
||||
);
|
||||
|
||||
const allScripts = useMemo(
|
||||
() => categories.flatMap(cat => cat.scripts || []),
|
||||
[categories]
|
||||
);
|
||||
|
||||
const scripts = useMemo(() => {
|
||||
const query = searchQuery.trim()
|
||||
|
||||
if (query) {
|
||||
return search(allScripts, query)
|
||||
}
|
||||
|
||||
if (selectedCategoryObj) {
|
||||
return selectedCategoryObj.scripts || []
|
||||
}
|
||||
|
||||
return []
|
||||
}, [allScripts, selectedCategoryObj, searchQuery]);
|
||||
|
||||
useEffect(() => {
|
||||
fetchCategories()
|
||||
.then(setCategories)
|
||||
@@ -152,53 +120,6 @@ export default function JSONGenerator() {
|
||||
if (isValid) toast.success("Copied metadata to clipboard");
|
||||
}, [script]);
|
||||
|
||||
const importScript = (script: Script) => {
|
||||
try {
|
||||
const result = ScriptSchema.safeParse(script);
|
||||
if (!result.success) {
|
||||
setIsValid(false);
|
||||
setZodErrors(result.error);
|
||||
toast.error("Imported JSON is invalid according to the schema.");
|
||||
return;
|
||||
}
|
||||
|
||||
setScript(result.data);
|
||||
setIsValid(true);
|
||||
setZodErrors(null);
|
||||
toast.success("Imported JSON successfully");
|
||||
} catch (error) {
|
||||
toast.error("Failed to read or parse the JSON file.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const handleFileImport = useCallback(() => {
|
||||
const input = document.createElement("input");
|
||||
input.type = "file";
|
||||
input.accept = "application/json";
|
||||
|
||||
input.onchange = (e: Event) => {
|
||||
const target = e.target as HTMLInputElement;
|
||||
const file = target.files?.[0];
|
||||
if (!file) return;
|
||||
|
||||
const reader = new FileReader();
|
||||
reader.onload = (event) => {
|
||||
try {
|
||||
const content = event.target?.result as string;
|
||||
const parsed = JSON.parse(content);
|
||||
importScript(parsed);
|
||||
toast.success("Imported JSON successfully");
|
||||
} catch (error) {
|
||||
toast.error("Failed to read the JSON file.");
|
||||
}
|
||||
};
|
||||
reader.readAsText(file);
|
||||
};
|
||||
|
||||
input.click();
|
||||
}, [setScript]);
|
||||
|
||||
const handleDownload = useCallback(() => {
|
||||
if (isValid === false) {
|
||||
toast.error("Cannot download invalid JSON");
|
||||
@@ -256,94 +177,7 @@ export default function JSONGenerator() {
|
||||
return (
|
||||
<div className="flex h-screen mt-20">
|
||||
<div className="w-1/2 p-4 overflow-y-auto">
|
||||
<div className="flex justify-between items-center mb-4">
|
||||
<h2 className="text-2xl font-bold">JSON Generator</h2>
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger asChild>
|
||||
<Button>Import</Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent className="w-52" align="start">
|
||||
<DropdownMenuGroup>
|
||||
<DropdownMenuItem onSelect={handleFileImport}>Import local JSON file</DropdownMenuItem>
|
||||
<Dialog
|
||||
open={isImportDialogOpen}
|
||||
onOpenChange={setIsImportDialogOpen}
|
||||
>
|
||||
<DialogTrigger asChild>
|
||||
<DropdownMenuItem onSelect={(e) => e.preventDefault()}>
|
||||
Import existing script
|
||||
</DropdownMenuItem>
|
||||
</DialogTrigger>
|
||||
<DialogContent className="sm:max-w-md w-full">
|
||||
<DialogHeader>
|
||||
<DialogTitle>Import existing script</DialogTitle>
|
||||
<DialogDescription>
|
||||
Select one of the puplished scripts to import its metadata.
|
||||
</DialogDescription>
|
||||
|
||||
</DialogHeader>
|
||||
<div className="flex items-center gap-2">
|
||||
<div className="grid flex-1 gap-2">
|
||||
<Select
|
||||
value={selectedCategory}
|
||||
onValueChange={setSelectedCategory}
|
||||
>
|
||||
<SelectTrigger>
|
||||
<SelectValue placeholder="Category" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{categories.map((category) => (
|
||||
<SelectItem key={category.id} value={category.id.toString()}>
|
||||
{category.name}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<Input
|
||||
placeholder="Search for a script..."
|
||||
value={searchQuery}
|
||||
onChange={(e) => setSearchQuery(e.target.value)}
|
||||
/>
|
||||
{!selectedCategory && !searchQuery ? (
|
||||
<p className="text-muted-foreground text-sm text-center">
|
||||
Select a category or search for a script
|
||||
</p>
|
||||
) : scripts.length === 0 ? (
|
||||
<p className="text-muted-foreground text-sm text-center">
|
||||
No scripts found
|
||||
</p>
|
||||
) : (
|
||||
<div className="grid grid-cols-3 auto-rows-min h-64 overflow-y-auto gap-4">
|
||||
{scripts.map(script => (
|
||||
<div
|
||||
key={script.slug}
|
||||
className="p-2 border rounded cursor-pointer hover:bg-accent hover:text-accent-foreground"
|
||||
onClick={() => {
|
||||
importScript(script);
|
||||
setIsImportDialogOpen(false);
|
||||
}}
|
||||
>
|
||||
<Image
|
||||
src={script.logo || `/${basePath}/logo.png`}
|
||||
alt={script.name}
|
||||
className="w-full h-12 object-contain mb-2"
|
||||
width={16}
|
||||
height={16}
|
||||
unoptimized
|
||||
/>
|
||||
<p className="text-sm text-center">{script.name}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
</DropdownMenuGroup>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
</div>
|
||||
<h2 className="text-2xl font-bold mb-4">JSON Generator</h2>
|
||||
<form className="space-y-4">
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
|
||||
@@ -23,7 +23,7 @@ import { Button } from "./ui/button";
|
||||
import { Badge } from "./ui/badge";
|
||||
import Link from "next/link";
|
||||
|
||||
export function search(scripts: Script[], query: string): Script[] {
|
||||
function search(scripts: Script[], query: string): Script[] {
|
||||
const queryLower = query.toLowerCase().trim();
|
||||
const searchWords = queryLower.split(/\s+/).filter(Boolean);
|
||||
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/rustmailer/bichon
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "bichon" "rustmailer/bichon" "prebuild" "latest" "/opt/bichon" "bichon-*-x86_64-unknown-linux-gnu.tar.gz"
|
||||
|
||||
read -r -p "${TAB3}Enter the public URL for Bichon (e.g., https://bichon.yourdomain.com) or leave empty to use container IP: " bichon_url
|
||||
if [[ -z "$bichon_url" ]]; then
|
||||
msg_info "No URL provided"
|
||||
BICHON_PUBLIC_URL="http://$LOCAL_IP:15630"
|
||||
msg_ok "Using local IP: http://$LOCAL_IP:15630\n"
|
||||
else
|
||||
msg_info "URL provided"
|
||||
BICHON_PUBLIC_URL="$bichon_url"
|
||||
msg_ok "Using provided URL: $BICHON_PUBLIC_URL\n"
|
||||
fi
|
||||
|
||||
msg_info "Setting up Bichon"
|
||||
mkdir -p /opt/bichon-data
|
||||
BICHON_ENC_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-32)
|
||||
|
||||
cat <<EOF >/opt/bichon/bichon.env
|
||||
BICHON_ROOT_DIR=/opt/bichon-data
|
||||
BICHON_LOG_LEVEL=info
|
||||
BICHON_ENCRYPT_PASSWORD=$BICHON_ENC_PASSWORD
|
||||
BICHON_PUBLIC_URL=$BICHON_PUBLIC_URL
|
||||
BICHON_CORS_ORIGINS=$BICHON_PUBLIC_URL
|
||||
EOF
|
||||
msg_ok "Setup Bichon"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/bichon.service
|
||||
[Unit]
|
||||
Description=Bichon service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
EnvironmentFile=/opt/bichon/bichon.env
|
||||
WorkingDirectory=/opt/bichon
|
||||
ExecStart=/opt/bichon/bichon
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now bichon
|
||||
msg_info "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
@@ -1,132 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/bluewave-labs/Checkmate
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y \
|
||||
build-essential \
|
||||
openssl \
|
||||
nginx
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
MONGO_VERSION="8.0" setup_mongodb
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate"
|
||||
|
||||
msg_info "Configuring Checkmate"
|
||||
JWT_SECRET="$(openssl rand -hex 32)"
|
||||
cat <<EOF >/opt/checkmate/server/.env
|
||||
CLIENT_HOST="http://${LOCAL_IP}"
|
||||
JWT_SECRET="${JWT_SECRET}"
|
||||
DB_CONNECTION_STRING="mongodb://localhost:27017/checkmate_db"
|
||||
TOKEN_TTL="99d"
|
||||
ORIGIN="${LOCAL_IP}"
|
||||
LOG_LEVEL="info"
|
||||
SERVER_HOST=0.0.0.0
|
||||
SERVER_PORT=52345
|
||||
EOF
|
||||
cat <<EOF >/opt/checkmate/client/.env.local
|
||||
VITE_APP_API_BASE_URL="/api/v1"
|
||||
UPTIME_APP_API_BASE_URL="/api/v1"
|
||||
VITE_APP_LOG_LEVEL="warn"
|
||||
EOF
|
||||
msg_ok "Configured Checkmate"
|
||||
|
||||
msg_info "Installing Checkmate Server"
|
||||
cd /opt/checkmate/server
|
||||
$STD npm install
|
||||
$STD npm run build
|
||||
msg_ok "Installed Checkmate Server"
|
||||
|
||||
msg_info "Installing Checkmate Client"
|
||||
cd /opt/checkmate/client
|
||||
$STD npm install
|
||||
VITE_APP_API_BASE_URL="/api/v1" UPTIME_APP_API_BASE_URL="/api/v1" VITE_APP_LOG_LEVEL="warn" $STD npm run build
|
||||
msg_ok "Installed Checkmate Client"
|
||||
|
||||
msg_info "Creating Services"
|
||||
cat <<EOF >/etc/systemd/system/checkmate-server.service
|
||||
[Unit]
|
||||
Description=Checkmate Server
|
||||
After=network.target mongod.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/checkmate/server
|
||||
EnvironmentFile=/opt/checkmate/server/.env
|
||||
ExecStart=/usr/bin/npm start
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
cat <<EOF >/etc/systemd/system/checkmate-client.service
|
||||
[Unit]
|
||||
Description=Checkmate Client
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/checkmate/client
|
||||
ExecStart=/usr/bin/npm run preview -- --host 127.0.0.1 --port 5173
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
$STD systemctl enable -q --now checkmate-server
|
||||
$STD systemctl enable -q --now checkmate-client
|
||||
msg_ok "Created Services"
|
||||
|
||||
msg_info "Configuring Nginx Reverse Proxy"
|
||||
cat <<EOF >/etc/nginx/sites-available/checkmate
|
||||
server {
|
||||
listen 80 default_server;
|
||||
server_name _;
|
||||
|
||||
client_max_body_size 100M;
|
||||
|
||||
# Client UI
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:5173;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade \$http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
}
|
||||
|
||||
# API Server
|
||||
location /api/v1/ {
|
||||
proxy_pass http://127.0.0.1:52345/api/v1/;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
ln -sf /etc/nginx/sites-available/checkmate /etc/nginx/sites-enabled/checkmate
|
||||
rm -f /etc/nginx/sites-enabled/default
|
||||
$STD systemctl reload nginx
|
||||
msg_ok "Configured Nginx Reverse Proxy"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
@@ -37,42 +37,26 @@ fetch_and_deploy_gh_release "ComfyUI" "comfyanonymous/ComfyUI" "tarball" "latest
|
||||
|
||||
msg_info "Python dependencies"
|
||||
$STD uv venv "/opt/ComfyUI/venv"
|
||||
|
||||
if [[ "${comfyui_gpu_type,,}" == "nvidia" ]]; then
|
||||
pytorch_url="https://download.pytorch.org/whl/cu130"
|
||||
if [[ -f "/opt/ComfyUI/README.md" ]]; then
|
||||
extracted=$(grep -oP 'pip install.*?--extra-index-url\s+\Khttps://download\.pytorch\.org/whl/cu\d+' /opt/ComfyUI/README.md | head -1 || true)
|
||||
[[ -n "$extracted" ]] && pytorch_url="$extracted"
|
||||
fi
|
||||
$STD uv pip install \
|
||||
torch \
|
||||
torchvision \
|
||||
torchaudio \
|
||||
--extra-index-url "$pytorch_url" \
|
||||
--extra-index-url "https://download.pytorch.org/whl/cu128" \
|
||||
--python="/opt/ComfyUI/venv/bin/python"
|
||||
elif [[ "${comfyui_gpu_type,,}" == "amd" ]]; then
|
||||
pytorch_url="https://download.pytorch.org/whl/rocm6.4"
|
||||
if [[ -f "/opt/ComfyUI/README.md" ]]; then
|
||||
extracted=$(grep -oP 'pip install.*?--index-url\s+\Khttps://download\.pytorch\.org/whl/rocm[\d.]+' /opt/ComfyUI/README.md | grep -v 'nightly' | head -1 || true)
|
||||
[[ -n "$extracted" ]] && pytorch_url="$extracted"
|
||||
fi
|
||||
$STD uv pip install \
|
||||
torch \
|
||||
torchvision \
|
||||
torchaudio \
|
||||
--index-url "$pytorch_url" \
|
||||
--index-url "https://download.pytorch.org/whl/rocm6.3" \
|
||||
--python="/opt/ComfyUI/venv/bin/python"
|
||||
elif [[ "${comfyui_gpu_type,,}" == "intel" ]]; then
|
||||
pytorch_url="https://download.pytorch.org/whl/xpu"
|
||||
if [[ -f "/opt/ComfyUI/README.md" ]]; then
|
||||
extracted=$(grep -oP 'pip install.*?--index-url\s+\Khttps://download\.pytorch\.org/whl/xpu' /opt/ComfyUI/README.md | head -1 || true)
|
||||
[[ -n "$extracted" ]] && pytorch_url="$extracted"
|
||||
fi
|
||||
$STD uv pip install \
|
||||
torch \
|
||||
torchvision \
|
||||
torchaudio \
|
||||
--index-url "$pytorch_url" \
|
||||
--index-url "https://download.pytorch.org/whl/xpu" \
|
||||
--python="/opt/ComfyUI/venv/bin/python"
|
||||
fi
|
||||
$STD uv pip install -r "/opt/ComfyUI/requirements.txt" --python="/opt/ComfyUI/venv/bin/python"
|
||||
|
||||
@@ -108,7 +108,7 @@ ${LOCAL_IP} {
|
||||
EOF
|
||||
msg_ok "Configured Caddy"
|
||||
|
||||
msg_info "Creating systemd services"
|
||||
msg_info "Creating systemd service"
|
||||
cat <<EOF >/etc/systemd/system/healthchecks.service
|
||||
[Unit]
|
||||
Description=Healthchecks Service
|
||||
@@ -123,23 +123,9 @@ Restart=always
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/healthchecks-sendalerts.service
|
||||
[Unit]
|
||||
Description=Healthchecks Sendalerts Service
|
||||
After=network.target postgresql.service healthchecks.service
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/healthchecks/
|
||||
ExecStart=/opt/healthchecks/venv/bin/python manage.py sendalerts
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable -q --now healthchecks healthchecks-sendalerts caddy
|
||||
systemctl enable -q --now healthchecks caddy
|
||||
systemctl reload caddy
|
||||
msg_ok "Created Services"
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
@@ -14,7 +14,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "v0.25.3" "/opt/memos" "memos*linux_amd64.tar.gz"
|
||||
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
|
||||
mkdir -p /opt/memos_data
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
||||
@@ -13,7 +13,7 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "nocodb" "nocodb/nocodb" "singlefile" "0.301.1" "/opt/nocodb/" "Noco-linux-x64"
|
||||
fetch_and_deploy_gh_release "nocodb" "nocodb/nocodb" "singlefile" "latest" "/opt/nocodb/" "Noco-linux-x64"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/nocodb.service
|
||||
|
||||
@@ -14,9 +14,13 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y \
|
||||
git \
|
||||
ansible
|
||||
$STD apt install -y git
|
||||
setup_deb822_repo \
|
||||
"ansible" \
|
||||
"https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=get&search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367" \
|
||||
"http://ppa.launchpad.net/ansible/ansible/ubuntu" \
|
||||
"noble"
|
||||
$STD apt install -y ansible
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary" "latest" "/opt/semaphore" "semaphore_*_linux_amd64.deb"
|
||||
|
||||
106
misc/build.func
106
misc/build.func
@@ -3326,112 +3326,6 @@ configure_ssh_settings() {
|
||||
# - In silent mode: runs update_script with automatic cleanup
|
||||
# - Otherwise: shows update/setting menu and runs update_script with cleanup
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# phs_whiptail()
|
||||
#
|
||||
# Drop-in wrapper for whiptail in update_script() functions.
|
||||
# In silent/unattended mode (PHS_SILENT=1), returns the default option
|
||||
# (the one marked "ON") without showing a dialog.
|
||||
# In interactive mode, passes through to whiptail transparently.
|
||||
#
|
||||
# Usage: same as whiptail, e.g.:
|
||||
# UPD=$(phs_whiptail --backtitle "..." --title "..." --radiolist "..." H W N \
|
||||
# "1" "Option A" ON \
|
||||
# "2" "Option B" OFF \
|
||||
# 3>&1 1>&2 2>&3)
|
||||
#
|
||||
# For --menu style (no ON/OFF), the first item is selected as default.
|
||||
# Returns exit code 1 if no default can be determined (script should skip).
|
||||
# ------------------------------------------------------------------------------
|
||||
phs_whiptail() {
|
||||
if [ -z "${PHS_SILENT+x}" ] || [[ "${PHS_SILENT}" != "1" ]]; then
|
||||
# Interactive mode: pass through to real whiptail
|
||||
whiptail "$@"
|
||||
return $?
|
||||
fi
|
||||
|
||||
# Silent mode: extract the default selection
|
||||
local mode="" items_start=0 i=0
|
||||
local -a args=("$@")
|
||||
|
||||
# Detect dialog type (--radiolist, --menu, --yesno, --passwordbox)
|
||||
for ((i = 0; i < ${#args[@]}; i++)); do
|
||||
case "${args[$i]}" in
|
||||
--radiolist)
|
||||
mode="radiolist"
|
||||
;;
|
||||
--menu)
|
||||
mode="menu"
|
||||
;;
|
||||
--yesno)
|
||||
# In silent mode, auto-confirm (return 0 = yes)
|
||||
return 0
|
||||
;;
|
||||
--msgbox)
|
||||
# In silent mode, skip message boxes (just acknowledge)
|
||||
return 0
|
||||
;;
|
||||
--passwordbox | --inputbox)
|
||||
# Cannot provide input in silent mode, signal skip
|
||||
msg_warn "Interactive input required - skipping in unattended mode"
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ "$mode" == "radiolist" ]]; then
|
||||
# radiolist items are triplets: tag description ON/OFF
|
||||
# Find the one marked ON
|
||||
for ((i = 0; i < ${#args[@]}; i++)); do
|
||||
if [[ "${args[$i]}" == "ON" ]]; then
|
||||
# The tag is 2 positions before ON
|
||||
echo "${args[$((i - 2))]}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
# No ON found, use first item after the height/width/count args
|
||||
# Fall through to menu logic
|
||||
mode="menu"
|
||||
fi
|
||||
|
||||
if [[ "$mode" == "menu" ]]; then
|
||||
# menu items are pairs: tag description
|
||||
# Find the first tag after height/width/menuheight (3 consecutive numbers after the prompt text)
|
||||
local h_w_n_count=0
|
||||
local past_flags=0
|
||||
for ((i = 0; i < ${#args[@]}; i++)); do
|
||||
# Skip option flags and their values
|
||||
if [[ "${args[$i]}" == --* ]]; then
|
||||
# Some flags take a value (--title, --backtitle, etc.) - skip next arg too
|
||||
case "${args[$i]}" in
|
||||
--title | --backtitle | --cancel-button | --ok-button | --default-item) ((i++)) ;;
|
||||
esac
|
||||
continue
|
||||
fi
|
||||
# First non-flag string is the prompt text, skip it
|
||||
if [[ $past_flags -eq 0 ]]; then
|
||||
past_flags=1
|
||||
continue
|
||||
fi
|
||||
# Next 3 numbers are height, width, menu-height
|
||||
if [[ "${args[$i]}" =~ ^[0-9]+$ ]] && [[ $h_w_n_count -lt 3 ]]; then
|
||||
((h_w_n_count++))
|
||||
continue
|
||||
fi
|
||||
# After H W N, the next arg is the first menu tag
|
||||
if [[ $h_w_n_count -ge 3 ]]; then
|
||||
echo "${args[$i]}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
# Fallback: could not determine default
|
||||
msg_warn "Cannot determine default action - skipping in unattended mode"
|
||||
return 1
|
||||
}
|
||||
|
||||
start() {
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
|
||||
if command -v pveversion >/dev/null 2>&1; then
|
||||
|
||||
@@ -421,18 +421,6 @@ for container in $CHOICE; do
|
||||
|
||||
if [ $exit_code -eq 0 ]; then
|
||||
msg_ok "Updated container $container"
|
||||
elif [ $exit_code -eq 75 ]; then
|
||||
# Exit code 75 (EX_TEMPFAIL) = script is disabled or skipped intentionally
|
||||
echo -e "${YW}[WARN]${CL} Update script for container $container is currently disabled - skipping"
|
||||
# Restore build resources if changed
|
||||
if [ "$UPDATE_BUILD_RESOURCES" -eq "1" ]; then
|
||||
pct set "$container" --cores "$run_cpu" --memory "$run_ram"
|
||||
fi
|
||||
continue
|
||||
elif [ "$UNATTENDED_UPDATE" == "yes" ]; then
|
||||
# In unattended mode, log the failure and continue with next container
|
||||
msg_error "Update failed for container $container - skipping (unattended mode)"
|
||||
continue
|
||||
elif [ "$BACKUP_CHOICE" == "yes" ]; then
|
||||
msg_info "Restoring LXC from backup"
|
||||
pct stop $container
|
||||
|
||||
Reference in New Issue
Block a user