mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-01 16:35:55 +01:00
Compare commits
30 Commits
2026-02-27
...
github-act
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
753409a472 | ||
|
|
4dfa649a81 | ||
|
|
3233646831 | ||
|
|
b122de1f99 | ||
|
|
c3d34736e8 | ||
|
|
a77c95750c | ||
|
|
e10b7fba82 | ||
|
|
dd37770b86 | ||
|
|
c85809e512 | ||
|
|
edb86a7150 | ||
|
|
d0e107d707 | ||
|
|
187ccc4f1c | ||
|
|
20cecec4ad | ||
|
|
8c28126479 | ||
|
|
85213ea8b0 | ||
|
|
1858aeee03 | ||
|
|
7ce4313ba4 | ||
|
|
fd498b0efb | ||
|
|
cdbcf098d2 | ||
|
|
fddc47064d | ||
|
|
16ae89cd88 | ||
|
|
f2d88b7b4f | ||
|
|
187c96f777 | ||
|
|
f974ac4773 | ||
|
|
869985dc60 | ||
|
|
1e391e22ce | ||
|
|
dae03cf80e | ||
|
|
1edcc106e3 | ||
|
|
34eb094143 | ||
|
|
683c0d4e8b |
250
.github/changelogs/2026/02.md
generated
vendored
250
.github/changelogs/2026/02.md
generated
vendored
@@ -1,3 +1,253 @@
|
||||
## 2026-02-28
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Update Reactive Resume install script with useful .env information for reverse proxy setup [@Mazianni](https://github.com/Mazianni) ([#12401](https://github.com/community-scripts/ProxmoxVE/pull/12401))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- gramps-web: install addons (FilterRules) for relationship diagram [@MickLesk](https://github.com/MickLesk) ([#12387](https://github.com/community-scripts/ProxmoxVE/pull/12387))
|
||||
- [Fix] Immich: Change `sed` command to fully replace line in postgresql.conf [@vhsdream](https://github.com/vhsdream) ([#12429](https://github.com/community-scripts/ProxmoxVE/pull/12429))
|
||||
- [FIX] Immich: fix Openvino memory leak during OCR; improve HW-accelerated ML performance [@vhsdream](https://github.com/vhsdream) ([#12426](https://github.com/community-scripts/ProxmoxVE/pull/12426))
|
||||
- Fix default tag for ioBroker LXC install [@josefglatz](https://github.com/josefglatz) ([#12423](https://github.com/community-scripts/ProxmoxVE/pull/12423))
|
||||
- Ombi: Add database.json [@hraphael](https://github.com/hraphael) ([#12412](https://github.com/community-scripts/ProxmoxVE/pull/12412))
|
||||
- Dawarich: add missing build deps and handle seed failure [@MickLesk](https://github.com/MickLesk) ([#12410](https://github.com/community-scripts/ProxmoxVE/pull/12410))
|
||||
- pangolin: increase hdd to 10G [@MickLesk](https://github.com/MickLesk) ([#12409](https://github.com/community-scripts/ProxmoxVE/pull/12409))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- BookLore: add additional JVM flags [@vhsdream](https://github.com/vhsdream) ([#12421](https://github.com/community-scripts/ProxmoxVE/pull/12421))
|
||||
|
||||
### 🗑️ Deleted Scripts
|
||||
|
||||
- Delete Palmr [@vhsdream](https://github.com/vhsdream) ([#12399](https://github.com/community-scripts/ProxmoxVE/pull/12399))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- core: read from /dev/tty in all interactive prompts | fix empty or cropped logs due build process [@MickLesk](https://github.com/MickLesk) ([#12406](https://github.com/community-scripts/ProxmoxVE/pull/12406))
|
||||
|
||||
## 2026-02-27
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Strapi ([#12320](https://github.com/community-scripts/ProxmoxVE/pull/12320))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- TrueNAS VM: filter out new nightlies with MASTER [@juronja](https://github.com/juronja) ([#12355](https://github.com/community-scripts/ProxmoxVE/pull/12355))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- core: graceful fallback for apt-get update failures [@MickLesk](https://github.com/MickLesk) ([#12386](https://github.com/community-scripts/ProxmoxVE/pull/12386))
|
||||
- core: Improve error outputs across core functions [@MickLesk](https://github.com/MickLesk) ([#12378](https://github.com/community-scripts/ProxmoxVE/pull/12378))
|
||||
|
||||
## 2026-02-26
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Kima-Hub ([#12319](https://github.com/community-scripts/ProxmoxVE/pull/12319))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- tools.func: update glx alternatives / nvidia alternative if nvidia glx are missing [@MickLesk](https://github.com/MickLesk) ([#12372](https://github.com/community-scripts/ProxmoxVE/pull/12372))
|
||||
- hotfix: overseer version [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12366](https://github.com/community-scripts/ProxmoxVE/pull/12366))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Add ffmpeg for booklore (ffprobe) [@MickLesk](https://github.com/MickLesk) ([#12371](https://github.com/community-scripts/ProxmoxVE/pull/12371))
|
||||
- [QOL] Immich: add warning regarding library compilation time [@vhsdream](https://github.com/vhsdream) ([#12345](https://github.com/community-scripts/ProxmoxVE/pull/12345))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Improves adguardhome-sync addon when running on alpine LXCs [@Darkangeel-hd](https://github.com/Darkangeel-hd) ([#12362](https://github.com/community-scripts/ProxmoxVE/pull/12362))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Add Alpine support and improve Tailscale install [@MickLesk](https://github.com/MickLesk) ([#12370](https://github.com/community-scripts/ProxmoxVE/pull/12370))
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- fix wrong link on contributions README.md [@Darkangeel-hd](https://github.com/Darkangeel-hd) ([#12363](https://github.com/community-scripts/ProxmoxVE/pull/12363))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- github: add workflow to autom. close unauthorized new-script PRs [@MickLesk](https://github.com/MickLesk) ([#12356](https://github.com/community-scripts/ProxmoxVE/pull/12356))
|
||||
|
||||
## 2026-02-25
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Zerobyte ([#12321](https://github.com/community-scripts/ProxmoxVE/pull/12321))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix: overseer migration [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12340](https://github.com/community-scripts/ProxmoxVE/pull/12340))
|
||||
- add: vikunja: daemon reload [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12323](https://github.com/community-scripts/ProxmoxVE/pull/12323))
|
||||
- opnsense-VM: Use ip link to verify bridge existence [@MickLesk](https://github.com/MickLesk) ([#12329](https://github.com/community-scripts/ProxmoxVE/pull/12329))
|
||||
- wger: Use $http_host for proxy Host header [@MickLesk](https://github.com/MickLesk) ([#12327](https://github.com/community-scripts/ProxmoxVE/pull/12327))
|
||||
- Passbolt: Update Nginx config `client_max_body_size` [@tremor021](https://github.com/tremor021) ([#12313](https://github.com/community-scripts/ProxmoxVE/pull/12313))
|
||||
- Zammad: configure Elasticsearch before zammad start [@MickLesk](https://github.com/MickLesk) ([#12308](https://github.com/community-scripts/ProxmoxVE/pull/12308))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- OpenProject: Various fixes [@tremor021](https://github.com/tremor021) ([#12246](https://github.com/community-scripts/ProxmoxVE/pull/12246))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Fix detection of ssh keys [@1-tempest](https://github.com/1-tempest) ([#12230](https://github.com/community-scripts/ProxmoxVE/pull/12230))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- tools.func: Improve GitHub/Codeberg API error handling and error output [@MickLesk](https://github.com/MickLesk) ([#12330](https://github.com/community-scripts/ProxmoxVE/pull/12330))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- core: remove duplicate traps, consolidate error handling and harden signal traps [@MickLesk](https://github.com/MickLesk) ([#12316](https://github.com/community-scripts/ProxmoxVE/pull/12316))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- github: improvements for node drift wf [@MickLesk](https://github.com/MickLesk) ([#12309](https://github.com/community-scripts/ProxmoxVE/pull/12309))
|
||||
|
||||
## 2026-02-24
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- several scripts: add additional github link in source [@MickLesk](https://github.com/MickLesk) ([#12282](https://github.com/community-scripts/ProxmoxVE/pull/12282))
|
||||
- adds further documentation during the installation script. [@d12rio](https://github.com/d12rio) ([#12248](https://github.com/community-scripts/ProxmoxVE/pull/12248))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- [Fix] PatchMon: remove VITE_API_URL from frontend env [@vhsdream](https://github.com/vhsdream) ([#12294](https://github.com/community-scripts/ProxmoxVE/pull/12294))
|
||||
- fix(searxng): remove orphaned fi causing syntax error [@mark-jeffrey](https://github.com/mark-jeffrey) ([#12283](https://github.com/community-scripts/ProxmoxVE/pull/12283))
|
||||
- Refactor n8n [@MickLesk](https://github.com/MickLesk) ([#12264](https://github.com/community-scripts/ProxmoxVE/pull/12264))
|
||||
- Firefly: PHP bump [@tremor021](https://github.com/tremor021) ([#12247](https://github.com/community-scripts/ProxmoxVE/pull/12247))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Databasus: add mariadb path for mysql/mariadb backups | add mongodb database tools [@MickLesk](https://github.com/MickLesk) ([#12259](https://github.com/community-scripts/ProxmoxVE/pull/12259))
|
||||
- make searxng updateable [@shtefko](https://github.com/shtefko) ([#12207](https://github.com/community-scripts/ProxmoxVE/pull/12207))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- fix: wealthfolio for v3 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11765](https://github.com/community-scripts/ProxmoxVE/pull/11765))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- bump various scripts from Node 22 to 24 [@MickLesk](https://github.com/MickLesk) ([#12265](https://github.com/community-scripts/ProxmoxVE/pull/12265))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- core: fix broken "command not found" after err_trap [@MickLesk](https://github.com/MickLesk) ([#12280](https://github.com/community-scripts/ProxmoxVE/pull/12280))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- tools.func: add get_latest_gh_tag helper function [@MickLesk](https://github.com/MickLesk) ([#12261](https://github.com/community-scripts/ProxmoxVE/pull/12261))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- Arcane ([#12263](https://github.com/community-scripts/ProxmoxVE/pull/12263))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- github: add weekly Node.js version drift check workflow [@MickLesk](https://github.com/MickLesk) ([#12267](https://github.com/community-scripts/ProxmoxVE/pull/12267))
|
||||
- add: workflow to close stale PRs [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12243](https://github.com/community-scripts/ProxmoxVE/pull/12243))
|
||||
|
||||
## 2026-02-23
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- SeaweedFS ([#12220](https://github.com/community-scripts/ProxmoxVE/pull/12220))
|
||||
- Sonobarr ([#12221](https://github.com/community-scripts/ProxmoxVE/pull/12221))
|
||||
- SparkyFitness ([#12185](https://github.com/community-scripts/ProxmoxVE/pull/12185))
|
||||
- Frigate v16.4 [@MickLesk](https://github.com/MickLesk) ([#11887](https://github.com/community-scripts/ProxmoxVE/pull/11887))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- memos: unpin version due new release artifacts [@MickLesk](https://github.com/MickLesk) ([#12224](https://github.com/community-scripts/ProxmoxVE/pull/12224))
|
||||
- core: Enhance signal handling, reported "status" and logs [@MickLesk](https://github.com/MickLesk) ([#12216](https://github.com/community-scripts/ProxmoxVE/pull/12216))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- booklore v2: embed frontend, bump Java to 25, remove nginx [@MickLesk](https://github.com/MickLesk) ([#12223](https://github.com/community-scripts/ProxmoxVE/pull/12223))
|
||||
|
||||
### 🗑️ Deleted Scripts
|
||||
|
||||
- Remove: Huntarr (deprecated & Security) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12226](https://github.com/community-scripts/ProxmoxVE/pull/12226))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- core: Improve error handling and logging for LXC builds [@MickLesk](https://github.com/MickLesk) ([#12208](https://github.com/community-scripts/ProxmoxVE/pull/12208))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- calibre-web: update default credentials [@LaevaertK](https://github.com/LaevaertK) ([#12201](https://github.com/community-scripts/ProxmoxVE/pull/12201))
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- chore: update Frigate documentation and website URLs [@JohnICB](https://github.com/JohnICB) ([#12218](https://github.com/community-scripts/ProxmoxVE/pull/12218))
|
||||
|
||||
## 2026-02-22
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Gramps-Web ([#12157](https://github.com/community-scripts/ProxmoxVE/pull/12157))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix: Apache Guacamole - bump to Temurin JDK 17 to resolve Debian 13 (Trixie) install failure [@Copilot](https://github.com/Copilot) ([#12161](https://github.com/community-scripts/ProxmoxVE/pull/12161))
|
||||
- Docker-VM: add error handling for virt-customize finalization [@MickLesk](https://github.com/MickLesk) ([#12127](https://github.com/community-scripts/ProxmoxVE/pull/12127))
|
||||
- [Fix] Sure: add Sidekiq service [@vhsdream](https://github.com/vhsdream) ([#12186](https://github.com/community-scripts/ProxmoxVE/pull/12186))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Refactor & Bump to v2: Plex [@MickLesk](https://github.com/MickLesk) ([#12179](https://github.com/community-scripts/ProxmoxVE/pull/12179))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- karakeep: bump to node 24 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12183](https://github.com/community-scripts/ProxmoxVE/pull/12183))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- tools.func: add GitHub API rate-limit detection and GITHUB_TOKEN support [@MickLesk](https://github.com/MickLesk) ([#12176](https://github.com/community-scripts/ProxmoxVE/pull/12176))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- CR*NMASTER ([#12065](https://github.com/community-scripts/ProxmoxVE/pull/12065))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Update package management commands in clean-lxcs.sh [@heinemannj](https://github.com/heinemannj) ([#12166](https://github.com/community-scripts/ProxmoxVE/pull/12166))
|
||||
|
||||
### ❔ Uncategorized
|
||||
|
||||
- calibre-web: Update logo URL [@MickLesk](https://github.com/MickLesk) ([#12178](https://github.com/community-scripts/ProxmoxVE/pull/12178))
|
||||
|
||||
## 2026-02-21
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
274
CHANGELOG.md
274
CHANGELOG.md
@@ -21,6 +21,9 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h2>📜 History</h2></summary>
|
||||
|
||||
@@ -30,7 +33,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
|
||||
<details>
|
||||
<summary><h4>February (21 entries)</h4></summary>
|
||||
<summary><h4>February (28 entries)</h4></summary>
|
||||
|
||||
[View February 2026 Changelog](.github/changelogs/2026/02.md)
|
||||
|
||||
@@ -407,8 +410,38 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
</details>
|
||||
|
||||
## 2026-03-01
|
||||
|
||||
## 2026-02-28
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Update Reactive Resume install script with useful .env information for reverse proxy setup [@Mazianni](https://github.com/Mazianni) ([#12401](https://github.com/community-scripts/ProxmoxVE/pull/12401))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- gramps-web: install addons (FilterRules) for relationship diagram [@MickLesk](https://github.com/MickLesk) ([#12387](https://github.com/community-scripts/ProxmoxVE/pull/12387))
|
||||
- [Fix] Immich: Change `sed` command to fully replace line in postgresql.conf [@vhsdream](https://github.com/vhsdream) ([#12429](https://github.com/community-scripts/ProxmoxVE/pull/12429))
|
||||
- [FIX] Immich: fix Openvino memory leak during OCR; improve HW-accelerated ML performance [@vhsdream](https://github.com/vhsdream) ([#12426](https://github.com/community-scripts/ProxmoxVE/pull/12426))
|
||||
- Fix default tag for ioBroker LXC install [@josefglatz](https://github.com/josefglatz) ([#12423](https://github.com/community-scripts/ProxmoxVE/pull/12423))
|
||||
- Ombi: Add database.json [@hraphael](https://github.com/hraphael) ([#12412](https://github.com/community-scripts/ProxmoxVE/pull/12412))
|
||||
- Dawarich: add missing build deps and handle seed failure [@MickLesk](https://github.com/MickLesk) ([#12410](https://github.com/community-scripts/ProxmoxVE/pull/12410))
|
||||
- pangolin: increase hdd to 10G [@MickLesk](https://github.com/MickLesk) ([#12409](https://github.com/community-scripts/ProxmoxVE/pull/12409))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- BookLore: add additional JVM flags [@vhsdream](https://github.com/vhsdream) ([#12421](https://github.com/community-scripts/ProxmoxVE/pull/12421))
|
||||
|
||||
### 🗑️ Deleted Scripts
|
||||
|
||||
- Delete Palmr [@vhsdream](https://github.com/vhsdream) ([#12399](https://github.com/community-scripts/ProxmoxVE/pull/12399))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- core: read from /dev/tty in all interactive prompts | fix empty or cropped logs due build process [@MickLesk](https://github.com/MickLesk) ([#12406](https://github.com/community-scripts/ProxmoxVE/pull/12406))
|
||||
|
||||
## 2026-02-27
|
||||
|
||||
### 🆕 New Scripts
|
||||
@@ -1316,241 +1349,4 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
- #### ✨ New Features
|
||||
|
||||
- [tools] Add `fetch_and_deploy_from_url()` [@tremor021](https://github.com/tremor021) ([#11376](https://github.com/community-scripts/ProxmoxVE/pull/11376))
|
||||
- core: php - improve module handling and prevent installation failures [@MickLesk](https://github.com/MickLesk) ([#11358](https://github.com/community-scripts/ProxmoxVE/pull/11358))
|
||||
|
||||
## 2026-01-29
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Alpine-Valkey [@MickLesk](https://github.com/MickLesk) ([#11320](https://github.com/community-scripts/ProxmoxVE/pull/11320))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: Pin version to 2.5.2 [@vhsdream](https://github.com/vhsdream) ([#11335](https://github.com/community-scripts/ProxmoxVE/pull/11335))
|
||||
- Kollection: Update to php 8.5 [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#11315](https://github.com/community-scripts/ProxmoxVE/pull/11315))
|
||||
- Notifiarr: change installation check from apt to systemd service [@MickLesk](https://github.com/MickLesk) ([#11319](https://github.com/community-scripts/ProxmoxVE/pull/11319))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- [FEAT] Immich: Enable Maintenance Mode before update [@vhsdream](https://github.com/vhsdream) ([#11342](https://github.com/community-scripts/ProxmoxVE/pull/11342))
|
||||
- jellyfin: add logrotate instead of reducing log level [@MickLesk](https://github.com/MickLesk) ([#11326](https://github.com/community-scripts/ProxmoxVE/pull/11326))
|
||||
- core: Add config file handling options | Fix Vikunja update with interactive overwrite [@MickLesk](https://github.com/MickLesk) ([#11317](https://github.com/community-scripts/ProxmoxVE/pull/11317))
|
||||
- Immich: v2.5.0 [@vhsdream](https://github.com/vhsdream) ([#11240](https://github.com/community-scripts/ProxmoxVE/pull/11240))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- fix: vikunja v1 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11308](https://github.com/community-scripts/ProxmoxVE/pull/11308))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Byparr [@vhsdream](https://github.com/vhsdream) ([#11338](https://github.com/community-scripts/ProxmoxVE/pull/11338))
|
||||
- cloudflare: Remove deprecated DNS-over-HTTPS proxy option [@MickLesk](https://github.com/MickLesk) ([#11068](https://github.com/community-scripts/ProxmoxVE/pull/11068))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- build.func: Replace storage variable with searchdomain variable [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#11322](https://github.com/community-scripts/ProxmoxVE/pull/11322))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- Add workflow to lock closed issues [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#11316](https://github.com/community-scripts/ProxmoxVE/pull/11316))
|
||||
|
||||
## 2026-01-28
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- nodecast-tv ([#11287](https://github.com/community-scripts/ProxmoxVE/pull/11287))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Ubuntu 25.04 VM - Change default start from yes to no [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#11292](https://github.com/community-scripts/ProxmoxVE/pull/11292))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- various scripts: use setup_meilisearch function [@MickLesk](https://github.com/MickLesk) ([#11259](https://github.com/community-scripts/ProxmoxVE/pull/11259))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: NPMPlus / Default Login [@MickLesk](https://github.com/MickLesk) ([#11262](https://github.com/community-scripts/ProxmoxVE/pull/11262))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- core: sed patch for ram [@lavacano](https://github.com/lavacano) ([#11285](https://github.com/community-scripts/ProxmoxVE/pull/11285))
|
||||
- Fix installer loop caused by invalid whiptail menu separator [@Mesteriis](https://github.com/Mesteriis) ([#11237](https://github.com/community-scripts/ProxmoxVE/pull/11237))
|
||||
- core: fix Debian 13 LXC template root ownership bug [@MickLesk](https://github.com/MickLesk) ([#11277](https://github.com/community-scripts/ProxmoxVE/pull/11277))
|
||||
- tools.func: prevent systemd-tmpfiles failure in unprivileged LXC during deb install [@MickLesk](https://github.com/MickLesk) ([#11271](https://github.com/community-scripts/ProxmoxVE/pull/11271))
|
||||
- tools.func: fix php "wait_for" hint [@MickLesk](https://github.com/MickLesk) ([#11254](https://github.com/community-scripts/ProxmoxVE/pull/11254))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- core: update dynamic values in LXC profile on update_motd_ip [@MickLesk](https://github.com/MickLesk) ([#11268](https://github.com/community-scripts/ProxmoxVE/pull/11268))
|
||||
- tools.func: add new function - setup_meilisearch [@MickLesk](https://github.com/MickLesk) ([#11258](https://github.com/community-scripts/ProxmoxVE/pull/11258))
|
||||
|
||||
### 📂 Github
|
||||
|
||||
- github: add GitHub-based versions.json updater [@MickLesk](https://github.com/MickLesk) ([#10021](https://github.com/community-scripts/ProxmoxVE/pull/10021))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Frontend: use github-versions.json for version display [@MickLesk](https://github.com/MickLesk) ([#11281](https://github.com/community-scripts/ProxmoxVE/pull/11281))
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- fix: homarr: conf location [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11253](https://github.com/community-scripts/ProxmoxVE/pull/11253))
|
||||
|
||||
## 2026-01-27
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: update libraw [@vhsdream](https://github.com/vhsdream) ([#11233](https://github.com/community-scripts/ProxmoxVE/pull/11233))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- grist: enable optional enterprise features toggle [@MickLesk](https://github.com/MickLesk) ([#11239](https://github.com/community-scripts/ProxmoxVE/pull/11239))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Termix: use nginx.conf from upstream repo [@MickLesk](https://github.com/MickLesk) ([#11228](https://github.com/community-scripts/ProxmoxVE/pull/11228))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- feat: add NVIDIA driver install prompt for GPU-enabled containers [@devdecrux](https://github.com/devdecrux) ([#11184](https://github.com/community-scripts/ProxmoxVE/pull/11184))
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- doc setup_deb822_repo arg order [@chrnie](https://github.com/chrnie) ([#11215](https://github.com/community-scripts/ProxmoxVE/pull/11215))
|
||||
- changelog: archive old entries to year/month files [@MickLesk](https://github.com/MickLesk) ([#11225](https://github.com/community-scripts/ProxmoxVE/pull/11225))
|
||||
|
||||
## 2026-01-26
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Ghost: Fix missing dependency [@tremor021](https://github.com/tremor021) ([#11196](https://github.com/community-scripts/ProxmoxVE/pull/11196))
|
||||
- tracearr: fix install check and update node to version 24 [@durzo](https://github.com/durzo) ([#11188](https://github.com/community-scripts/ProxmoxVE/pull/11188))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- jotty: full refactor / prebuild package [@MickLesk](https://github.com/MickLesk) ([#11059](https://github.com/community-scripts/ProxmoxVE/pull/11059))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Termix: Fixing Nginx configuration for 1.11.0 installs (read description for fix!) [@8b1th3r0](https://github.com/8b1th3r0) ([#11207](https://github.com/community-scripts/ProxmoxVE/pull/11207))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- core: refine cleanup_lxc to safely clear caches [@MickLesk](https://github.com/MickLesk) ([#11197](https://github.com/community-scripts/ProxmoxVE/pull/11197))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- core: add nesting warning for systemd-based distributions [@MickLesk](https://github.com/MickLesk) ([#11208](https://github.com/community-scripts/ProxmoxVE/pull/11208))
|
||||
|
||||
### 🧰 Tools
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- jellystat: correct WorkingDirectory to /backend [@MickLesk](https://github.com/MickLesk) ([#11201](https://github.com/community-scripts/ProxmoxVE/pull/11201))
|
||||
|
||||
## 2026-01-25
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- [FIX] Tautulli: ensure virtualenv is recreated during update; backup tautulli.db [@vhsdream](https://github.com/vhsdream) ([#11182](https://github.com/community-scripts/ProxmoxVE/pull/11182))
|
||||
- [Fix] Pangolin: ensure additional JSON files are in place [@vhsdream](https://github.com/vhsdream) ([#11183](https://github.com/community-scripts/ProxmoxVE/pull/11183))
|
||||
- Manyfold: fix permissions error [@vhsdream](https://github.com/vhsdream) ([#11165](https://github.com/community-scripts/ProxmoxVE/pull/11165))
|
||||
- Termix: recreate nginx dirs and backup uploads on update [@MickLesk](https://github.com/MickLesk) ([#11169](https://github.com/community-scripts/ProxmoxVE/pull/11169))
|
||||
- Deluge: correct service paths to /usr/local/bin [@MickLesk](https://github.com/MickLesk) ([#11170](https://github.com/community-scripts/ProxmoxVE/pull/11170))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Karakeep: Add the FFmpeg option to the installation script [@vonhyou](https://github.com/vonhyou) ([#11157](https://github.com/community-scripts/ProxmoxVE/pull/11157))
|
||||
- apt-cacher-ng: add avahi-daemon for mDNS service discovery [@MickLesk](https://github.com/MickLesk) ([#11140](https://github.com/community-scripts/ProxmoxVE/pull/11140))
|
||||
|
||||
## 2026-01-24
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Manyfold ([#11143](https://github.com/community-scripts/ProxmoxVE/pull/11143))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- elementsynapse: correct parameter order in fetch_and_deploy_gh_release [@MickLesk](https://github.com/MickLesk) ([#11145](https://github.com/community-scripts/ProxmoxVE/pull/11145))
|
||||
- leantime: fix backup file naming [@MickLesk](https://github.com/MickLesk) ([#11137](https://github.com/community-scripts/ProxmoxVE/pull/11137))
|
||||
- [Hotfix] Element Synapse [@vhsdream](https://github.com/vhsdream) ([#11135](https://github.com/community-scripts/ProxmoxVE/pull/11135))
|
||||
- authelia: use POSIX-safe arithmetic to avoid exit code 1 with set -e in subshells [@MickLesk](https://github.com/MickLesk) ([#11125](https://github.com/community-scripts/ProxmoxVE/pull/11125))
|
||||
- Bitmagnet: PostgreSQL and environment variable fixes [@tremor021](https://github.com/tremor021) ([#11119](https://github.com/community-scripts/ProxmoxVE/pull/11119))
|
||||
- Spoolman: move to uv [@vhsdream](https://github.com/vhsdream) ([#11121](https://github.com/community-scripts/ProxmoxVE/pull/11121))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- bump crafty-controller to debian 13 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11094](https://github.com/community-scripts/ProxmoxVE/pull/11094))
|
||||
- Netbox: Refactor [@vhsdream](https://github.com/vhsdream) ([#11126](https://github.com/community-scripts/ProxmoxVE/pull/11126))
|
||||
- Flatnotes: Standard enforcing [@tremor021](https://github.com/tremor021) ([#11109](https://github.com/community-scripts/ProxmoxVE/pull/11109))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- nvidia: use versioned nvidia-utils package for Ubuntu fallback [@MickLesk](https://github.com/MickLesk) ([#11139](https://github.com/community-scripts/ProxmoxVE/pull/11139))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- Byparr: Add config file path to website [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11120](https://github.com/community-scripts/ProxmoxVE/pull/11120))
|
||||
|
||||
## 2026-01-23
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Tracearr ([#11079](https://github.com/community-scripts/ProxmoxVE/pull/11079))
|
||||
- Dawarich ([#11075](https://github.com/community-scripts/ProxmoxVE/pull/11075))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix: homarr: more ram [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11102](https://github.com/community-scripts/ProxmoxVE/pull/11102))
|
||||
- plant-it: re-add JWT_SECRET [@MickLesk](https://github.com/MickLesk) ([#11098](https://github.com/community-scripts/ProxmoxVE/pull/11098))
|
||||
- Tautulli: fix config backup and restore logic [@MickLesk](https://github.com/MickLesk) ([#11099](https://github.com/community-scripts/ProxmoxVE/pull/11099))
|
||||
- Scanopy: remove integrated daemon script [@vhsdream](https://github.com/vhsdream) ([#11100](https://github.com/community-scripts/ProxmoxVE/pull/11100))
|
||||
- fix: reitti start nginx [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11095](https://github.com/community-scripts/ProxmoxVE/pull/11095))
|
||||
- add: uptime-kuma: chromium [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11081](https://github.com/community-scripts/ProxmoxVE/pull/11081))
|
||||
- fix(install): Add typing_extensions to SearXNG Python dependencies [@ZarenOFF](https://github.com/ZarenOFF) ([#11074](https://github.com/community-scripts/ProxmoxVE/pull/11074))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Bump various scripts to Debian 13 (Trixie) [@MickLesk](https://github.com/MickLesk) ([#11093](https://github.com/community-scripts/ProxmoxVE/pull/11093))
|
||||
- several scripts: bump default Alpine version to 3.23 [@MickLesk](https://github.com/MickLesk) ([#11082](https://github.com/community-scripts/ProxmoxVE/pull/11082))
|
||||
- PDM: avoid installing useless package [@LongQT-sea](https://github.com/LongQT-sea) ([#10833](https://github.com/community-scripts/ProxmoxVE/pull/10833))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- FHEM: Bump to Debian 13 [@tremor021](https://github.com/tremor021) ([#11061](https://github.com/community-scripts/ProxmoxVE/pull/11061))
|
||||
- Duplicati: Bump to Debian 13 [@tremor021](https://github.com/tremor021) ([#11060](https://github.com/community-scripts/ProxmoxVE/pull/11060))
|
||||
|
||||
### 💾 Core
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- core: add IPv6 fallback support to get_current_ip functions | add check for SSH_KEYS_FILE in user_defaults [@MickLesk](https://github.com/MickLesk) ([#11067](https://github.com/community-scripts/ProxmoxVE/pull/11067))
|
||||
- core: php - improve module handling and prevent installation failures [@MickLesk](https://github.com/MickLesk) ([#11358](https://github.com/community-scripts/ProxmoxVE/pull/11358))
|
||||
@@ -91,7 +91,7 @@ function update_script() {
|
||||
echo "SERVER_PORT=6060" >>/opt/booklore_storage/.env
|
||||
fi
|
||||
|
||||
sed -i 's|ExecStart=/usr/bin/java -jar|ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -jar|' /etc/systemd/system/booklore.service
|
||||
sed -i 's|ExecStart=.*|ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -XX:MaxRAMPercentage=75.0 -XX:+ExitOnOutOfMemoryError -jar /opt/booklore/dist/app.jar|' /etc/systemd/system/booklore.service
|
||||
systemctl daemon-reload
|
||||
|
||||
msg_info "Starting Service"
|
||||
|
||||
@@ -29,6 +29,8 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
ensure_dependencies libgeos++-dev libxml2-dev libxslt-dev libjemalloc-dev
|
||||
|
||||
if check_for_gh_release "dawarich" "Freika/dawarich"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop dawarich-web dawarich-worker
|
||||
|
||||
@@ -51,11 +51,23 @@ function update_script() {
|
||||
cd /opt/gramps-web-api
|
||||
GRAMPS_API_CONFIG=/opt/gramps-web/config/config.cfg \
|
||||
ALEMBIC_CONFIG=/opt/gramps-web-api/alembic.ini \
|
||||
GRAMPSHOME=/opt/gramps-web/data/gramps \
|
||||
GRAMPSHOME=/opt/gramps-web/data \
|
||||
GRAMPS_DATABASE_PATH=/opt/gramps-web/data/gramps/grampsdb \
|
||||
$STD /opt/gramps-web/venv/bin/python3 -m gramps_webapi user migrate
|
||||
msg_ok "Applied Database Migration"
|
||||
|
||||
msg_info "Updating Gramps Addons"
|
||||
GRAMPS_VERSION=$(/opt/gramps-web/venv/bin/python3 -c "import gramps.version; print('%s%s' % (gramps.version.VERSION_TUPLE[0], gramps.version.VERSION_TUPLE[1]))" 2>/dev/null || echo "60")
|
||||
GRAMPS_PLUGINS_DIR="/opt/gramps-web/data/gramps/gramps${GRAMPS_VERSION}/plugins"
|
||||
mkdir -p "$GRAMPS_PLUGINS_DIR"
|
||||
$STD wget -q https://github.com/gramps-project/addons/archive/refs/heads/master.zip -O /tmp/gramps-addons.zip
|
||||
for addon in FilterRules JSON; do
|
||||
unzip -p /tmp/gramps-addons.zip "addons-master/gramps${GRAMPS_VERSION}/download/${addon}.addon.tgz" |
|
||||
tar -xz -C "$GRAMPS_PLUGINS_DIR"
|
||||
done
|
||||
rm -f /tmp/gramps-addons.zip
|
||||
msg_ok "Updated Gramps Addons"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start gramps-web
|
||||
msg_ok "Started Service"
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
____ __
|
||||
/ __ \____ _/ /___ ___ _____
|
||||
/ /_/ / __ `/ / __ `__ \/ ___/
|
||||
/ ____/ /_/ / / / / / / / /
|
||||
/_/ \__,_/_/_/ /_/ /_/_/
|
||||
|
||||
10
ct/immich.sh
10
ct/immich.sh
@@ -72,9 +72,9 @@ EOF
|
||||
SOURCE_DIR=${STAGING_DIR}/image-source
|
||||
cd /tmp
|
||||
if [[ -f ~/.intel_version ]]; then
|
||||
curl -fsSLO https://raw.githubusercontent.com/immich-app/base-images/refs/heads/main/server/Dockerfile
|
||||
curl -fsSLO https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/machine-learning/Dockerfile
|
||||
readarray -t INTEL_URLS < <(
|
||||
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $2}'
|
||||
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $3}'
|
||||
sed -n "/libigdgmm12/p" ./Dockerfile | awk '{print $3}'
|
||||
)
|
||||
INTEL_RELEASE="$(grep "intel-opencl-icd_" ./Dockerfile | awk -F '_' '{print $2}')"
|
||||
@@ -214,9 +214,9 @@ EOF
|
||||
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
||||
if [[ -f ~/.openvino ]]; then
|
||||
msg_info "Updating HW-accelerated machine-learning"
|
||||
$STD uv add --no-sync --optional openvino onnxruntime-openvino==1.20.0 --active -n -p python3.12 --managed-python
|
||||
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p python3.12 --managed-python
|
||||
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-312-x86_64-linux-gnu.so"
|
||||
$STD uv add --no-sync --optional openvino onnxruntime-openvino==1.24.1 --active -n -p python3.13 --managed-python
|
||||
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p python3.13 --managed-python
|
||||
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.13/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-313-x86_64-linux-gnu.so"
|
||||
msg_ok "Updated HW-accelerated machine-learning"
|
||||
else
|
||||
msg_info "Updating machine-learning"
|
||||
|
||||
@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# Source: https://www.iobroker.net/#en/intro | Github: https://github.com/ioBroker/ioBroker.js-controller
|
||||
|
||||
APP="ioBroker"
|
||||
var_tags="${var_tags:-automtation}"
|
||||
var_tags="${var_tags:-automation}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-8}"
|
||||
|
||||
@@ -36,6 +36,7 @@ function update_script() {
|
||||
[[ -f /opt/ombi/Ombi.db ]] && mv /opt/ombi/Ombi.db /opt
|
||||
[[ -f /opt/ombi/OmbiExternal.db ]] && mv /opt/ombi/OmbiExternal.db /opt
|
||||
[[ -f /opt/ombi/OmbiSettings.db ]] && mv /opt/ombi/OmbiSettings.db /opt
|
||||
[[ -f /opt/ombi/database.json ]] && mv /opt/ombi/database.json /opt
|
||||
msg_ok "Backup created"
|
||||
|
||||
rm -rf /opt/ombi
|
||||
@@ -43,6 +44,7 @@ function update_script() {
|
||||
[[ -f /opt/Ombi.db ]] && mv /opt/Ombi.db /opt/ombi
|
||||
[[ -f /opt/OmbiExternal.db ]] && mv /opt/OmbiExternal.db /opt/ombi
|
||||
[[ -f /opt/OmbiSettings.db ]] && mv /opt/OmbiSettings.db /opt/ombi
|
||||
[[ -f /opt/database.json ]] && mv /opt/database.json /opt/ombi
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start ombi
|
||||
|
||||
75
ct/palmr.sh
75
ct/palmr.sh
@@ -1,75 +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: vhsdream
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/kyantech/Palmr
|
||||
|
||||
APP="Palmr"
|
||||
var_tags="${var_tags:-files}"
|
||||
var_cpu="${var_cpu:-4}"
|
||||
var_ram="${var_ram:-6144}"
|
||||
var_disk="${var_disk:-6}"
|
||||
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/palmr_data ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "palmr" "kyantech/Palmr"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop palmr-frontend palmr-backend
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
cp /opt/palmr/apps/server/.env /opt/palmr.env
|
||||
rm -rf /opt/palmr
|
||||
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
|
||||
|
||||
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
|
||||
NODE_VERSION="24" NODE_MODULE="$PNPM" setup_nodejs
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/palmr/apps/server
|
||||
mv /opt/palmr.env /opt/palmr/apps/server/.env
|
||||
$STD pnpm install
|
||||
$STD npx prisma generate
|
||||
$STD npx prisma migrate deploy
|
||||
$STD npx prisma db push
|
||||
$STD pnpm build
|
||||
|
||||
cd /opt/palmr/apps/web
|
||||
export NODE_ENV=production
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
mv ./.env.example ./.env
|
||||
$STD pnpm install
|
||||
$STD pnpm build
|
||||
chown -R palmr:palmr /opt/palmr_data /opt/palmr
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start palmr-backend palmr-frontend
|
||||
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}:3000${CL}"
|
||||
@@ -9,7 +9,7 @@ APP="Pangolin"
|
||||
var_tags="${var_tags:-proxy}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-5}"
|
||||
var_disk="${var_disk:-10}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
@@ -29,6 +29,8 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
ensure_dependencies build-essential python3
|
||||
|
||||
NODE_VERSION="24" setup_nodejs
|
||||
|
||||
if check_for_gh_release "pangolin" "fosrl/pangolin"; then
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated": "2026-02-28T00:18:10Z",
|
||||
"generated": "2026-02-28T18:06:16Z",
|
||||
"versions": [
|
||||
{
|
||||
"slug": "2fauth",
|
||||
@@ -151,9 +151,9 @@
|
||||
{
|
||||
"slug": "booklore",
|
||||
"repo": "booklore-app/BookLore",
|
||||
"version": "v2.0.3",
|
||||
"version": "v2.0.4",
|
||||
"pinned": false,
|
||||
"date": "2026-02-26T19:10:59Z"
|
||||
"date": "2026-02-28T01:54:25Z"
|
||||
},
|
||||
{
|
||||
"slug": "bookstack",
|
||||
@@ -438,9 +438,9 @@
|
||||
{
|
||||
"slug": "ghostfolio",
|
||||
"repo": "ghostfolio/ghostfolio",
|
||||
"version": "2.243.0",
|
||||
"version": "2.244.0",
|
||||
"pinned": false,
|
||||
"date": "2026-02-23T19:31:36Z"
|
||||
"date": "2026-02-28T09:51:45Z"
|
||||
},
|
||||
{
|
||||
"slug": "gitea",
|
||||
@@ -613,9 +613,9 @@
|
||||
{
|
||||
"slug": "jackett",
|
||||
"repo": "Jackett/Jackett",
|
||||
"version": "v0.24.1223",
|
||||
"version": "v0.24.1226",
|
||||
"pinned": false,
|
||||
"date": "2026-02-27T05:51:11Z"
|
||||
"date": "2026-02-28T05:58:51Z"
|
||||
},
|
||||
{
|
||||
"slug": "jellystat",
|
||||
@@ -942,9 +942,9 @@
|
||||
{
|
||||
"slug": "nightscout",
|
||||
"repo": "nightscout/cgm-remote-monitor",
|
||||
"version": "15.0.3",
|
||||
"version": "15.0.4",
|
||||
"pinned": false,
|
||||
"date": "2025-05-08T22:12:34Z"
|
||||
"date": "2026-02-28T17:07:02Z"
|
||||
},
|
||||
{
|
||||
"slug": "nocodb",
|
||||
@@ -1037,13 +1037,6 @@
|
||||
"pinned": false,
|
||||
"date": "2025-02-24T19:47:06Z"
|
||||
},
|
||||
{
|
||||
"slug": "palmr",
|
||||
"repo": "kyantech/Palmr",
|
||||
"version": "v3.3.2-beta",
|
||||
"pinned": false,
|
||||
"date": "2025-12-10T05:42:43Z"
|
||||
},
|
||||
{
|
||||
"slug": "pangolin",
|
||||
"repo": "fosrl/pangolin",
|
||||
@@ -1068,9 +1061,9 @@
|
||||
{
|
||||
"slug": "paperless-ngx",
|
||||
"repo": "paperless-ngx/paperless-ngx",
|
||||
"version": "v2.20.8",
|
||||
"version": "v2.20.9",
|
||||
"pinned": false,
|
||||
"date": "2026-02-22T01:40:54Z"
|
||||
"date": "2026-02-28T10:17:35Z"
|
||||
},
|
||||
{
|
||||
"slug": "patchmon",
|
||||
@@ -1348,9 +1341,9 @@
|
||||
{
|
||||
"slug": "scanopy",
|
||||
"repo": "scanopy/scanopy",
|
||||
"version": "v0.14.8",
|
||||
"version": "v0.14.9",
|
||||
"pinned": false,
|
||||
"date": "2026-02-24T16:45:30Z"
|
||||
"date": "2026-02-28T02:59:32Z"
|
||||
},
|
||||
{
|
||||
"slug": "scraparr",
|
||||
@@ -1383,9 +1376,9 @@
|
||||
{
|
||||
"slug": "semaphore",
|
||||
"repo": "semaphoreui/semaphore",
|
||||
"version": "v2.17.14",
|
||||
"version": "v2.17.15",
|
||||
"pinned": false,
|
||||
"date": "2026-02-24T14:27:03Z"
|
||||
"date": "2026-02-28T09:04:40Z"
|
||||
},
|
||||
{
|
||||
"slug": "shelfmark",
|
||||
@@ -1488,9 +1481,9 @@
|
||||
{
|
||||
"slug": "sure",
|
||||
"repo": "we-promise/sure",
|
||||
"version": "chart-v0.6.8-alpha.13",
|
||||
"version": "v0.6.8",
|
||||
"pinned": false,
|
||||
"date": "2026-02-20T11:15:15Z"
|
||||
"date": "2026-02-28T12:55:36Z"
|
||||
},
|
||||
{
|
||||
"slug": "tandoor",
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
"name": "Palmr",
|
||||
"slug": "palmr",
|
||||
"categories": [
|
||||
11
|
||||
],
|
||||
"date_created": "2025-08-08",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"disable": true,
|
||||
"documentation": "https://palmr.kyantech.com.br/docs/3.1-beta",
|
||||
"config_path": "/opt/palmr/apps/server/.env, /opt/palmr/apps/web/.env",
|
||||
"website": "https://palmr.kyantech.com.br/",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/palmr.webp",
|
||||
"description": "Palmr is a fast and secure platform for sharing files, built with performance and privacy in mind.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/palmr.sh",
|
||||
"resources": {
|
||||
"cpu": 4,
|
||||
"ram": 6144,
|
||||
"hdd": 6,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "To use a bind mount for storage, create symlinks to your mount for both `uploads` and `temp-uploads` in `/opt/palmr_data`, and uncomment `CUSTOM_PATH` to add the path to your bind mount",
|
||||
"type": "info"
|
||||
},
|
||||
{
|
||||
"text": "To use Palmr with a reverse proxy, uncomment `SECURE_SITE` in `/opt/palmr/apps/server/.env`",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -21,7 +21,7 @@
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 4096,
|
||||
"hdd": 5,
|
||||
"hdd": 10,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ After=network.target mariadb.service
|
||||
Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/booklore/dist
|
||||
ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -jar /opt/booklore/dist/app.jar
|
||||
ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -XX:MaxRAMPercentage=75.0 -XX:+ExitOnOutOfMemoryError -jar /opt/booklore/dist/app.jar
|
||||
EnvironmentFile=/opt/booklore_storage/.env
|
||||
SuccessExitStatus=143
|
||||
TimeoutStopSec=10
|
||||
|
||||
@@ -16,19 +16,23 @@ update_os
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y \
|
||||
build-essential \
|
||||
git \
|
||||
libpq-dev \
|
||||
libgeos-dev \
|
||||
libyaml-dev \
|
||||
libffi-dev \
|
||||
libssl-dev \
|
||||
libjemalloc2 \
|
||||
imagemagick \
|
||||
libmagickwand-dev \
|
||||
libvips-dev \
|
||||
cmake \
|
||||
redis-server \
|
||||
nginx
|
||||
git \
|
||||
imagemagick \
|
||||
libffi-dev \
|
||||
libgeos-dev \
|
||||
libgeos++-dev \
|
||||
libjemalloc2 \
|
||||
libjemalloc-dev \
|
||||
libmagickwand-dev \
|
||||
libpq-dev \
|
||||
libssl-dev \
|
||||
libvips-dev \
|
||||
libxml2-dev \
|
||||
libxslt-dev \
|
||||
libyaml-dev \
|
||||
nginx \
|
||||
redis-server
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
PG_VERSION="17" PG_MODULES="postgis-3" setup_postgresql
|
||||
@@ -82,7 +86,9 @@ elif [[ -f /opt/dawarich/app/package.json ]]; then
|
||||
$STD npm install
|
||||
fi
|
||||
$STD bundle exec rake assets:precompile
|
||||
$STD bundle exec rails db:prepare
|
||||
$STD bundle exec rails db:create
|
||||
$STD bundle exec rails db:schema:load
|
||||
$STD bundle exec rails db:seed || msg_warn "Database seed failed (upstream rgeo-geojson issue), app will still work"
|
||||
$STD bundle exec rake data:migrate
|
||||
msg_ok "Installed Dawarich"
|
||||
|
||||
|
||||
@@ -76,6 +76,20 @@ source /opt/gramps-web/venv/bin/activate
|
||||
$STD uv pip install --no-cache-dir --upgrade pip setuptools wheel
|
||||
$STD uv pip install --no-cache-dir gunicorn
|
||||
$STD uv pip install --no-cache-dir /opt/gramps-web-api
|
||||
|
||||
GRAMPS_VERSION=$(/opt/gramps-web/venv/bin/python3 -c "import gramps.version; print('%s%s' % (gramps.version.VERSION_TUPLE[0], gramps.version.VERSION_TUPLE[1]))" 2>/dev/null || echo "60")
|
||||
GRAMPS_PLUGINS_DIR="/opt/gramps-web/data/gramps/gramps${GRAMPS_VERSION}/plugins"
|
||||
mkdir -p "$GRAMPS_PLUGINS_DIR"
|
||||
|
||||
msg_info "Installing Gramps Addons (gramps${GRAMPS_VERSION})"
|
||||
$STD wget -q https://github.com/gramps-project/addons/archive/refs/heads/master.zip -O /tmp/gramps-addons.zip
|
||||
for addon in FilterRules JSON; do
|
||||
unzip -p /tmp/gramps-addons.zip "addons-master/gramps${GRAMPS_VERSION}/download/${addon}.addon.tgz" | \
|
||||
tar -xz -C "$GRAMPS_PLUGINS_DIR"
|
||||
done
|
||||
rm -f /tmp/gramps-addons.zip
|
||||
msg_ok "Installed Gramps Addons"
|
||||
|
||||
cd /opt/gramps-web/frontend
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
$STD corepack enable
|
||||
@@ -84,7 +98,7 @@ $STD npm run build
|
||||
cd /opt/gramps-web-api
|
||||
GRAMPS_API_CONFIG=/opt/gramps-web/config/config.cfg \
|
||||
ALEMBIC_CONFIG=/opt/gramps-web-api/alembic.ini \
|
||||
GRAMPSHOME=/opt/gramps-web/data/gramps \
|
||||
GRAMPSHOME=/opt/gramps-web/data \
|
||||
GRAMPS_DATABASE_PATH=/opt/gramps-web/data/gramps/grampsdb \
|
||||
$STD /opt/gramps-web/venv/bin/python3 -m gramps_webapi user migrate
|
||||
msg_ok "Set up Gramps Web"
|
||||
@@ -100,7 +114,7 @@ Type=simple
|
||||
User=root
|
||||
WorkingDirectory=/opt/gramps-web-api
|
||||
Environment=GRAMPS_API_CONFIG=/opt/gramps-web/config/config.cfg
|
||||
Environment=GRAMPSHOME=/opt/gramps-web/data/gramps
|
||||
Environment=GRAMPSHOME=/opt/gramps-web/data
|
||||
Environment=GRAMPS_DATABASE_PATH=/opt/gramps-web/data/gramps/grampsdb
|
||||
Environment=PATH=/opt/gramps-web/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
ExecStart=/opt/gramps-web/venv/bin/gunicorn -w 2 -b 0.0.0.0:5000 gramps_webapi.wsgi:app --timeout 120 --limit-request-line 8190
|
||||
|
||||
@@ -32,9 +32,9 @@ if [ -d /dev/dri ]; then
|
||||
$STD apt install -y --no-install-recommends patchelf
|
||||
tmp_dir=$(mktemp -d)
|
||||
$STD pushd "$tmp_dir"
|
||||
curl -fsSLO https://raw.githubusercontent.com/immich-app/base-images/refs/heads/main/server/Dockerfile
|
||||
curl -fsSLO https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/machine-learning/Dockerfile
|
||||
readarray -t INTEL_URLS < <(
|
||||
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $2}'
|
||||
sed -n "/intel-[igc|opencl]/p" ./Dockerfile | awk '{print $3}'
|
||||
sed -n "/libigdgmm12/p" ./Dockerfile | awk '{print $3}'
|
||||
)
|
||||
for url in "${INTEL_URLS[@]}"; do
|
||||
@@ -150,7 +150,7 @@ PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
|
||||
VCHORD_RELEASE="0.5.3"
|
||||
fetch_and_deploy_gh_release "VectorChord" "tensorchord/VectorChord" "binary" "${VCHORD_RELEASE}" "/tmp" "postgresql-16-vchord_*_amd64.deb"
|
||||
|
||||
sed -i -e "/^#shared_preload/s/^#//;/^shared_preload/s/''/'vchord.so'/" /etc/postgresql/16/main/postgresql.conf
|
||||
sed -i "s/^#shared_preload.*/shared_preload_libraries = 'vchord.so'/" /etc/postgresql/16/main/postgresql.conf
|
||||
systemctl restart postgresql.service
|
||||
PG_DB_NAME="immich" PG_DB_USER="immich" PG_DB_GRANT_SUPERUSER="true" PG_DB_SKIP_ALTER_ROLE="true" setup_postgresql_db
|
||||
|
||||
@@ -342,9 +342,9 @@ mkdir -p "$ML_DIR" && chown -R immich:immich "$INSTALL_DIR"
|
||||
export VIRTUAL_ENV="${ML_DIR}/ml-venv"
|
||||
if [[ -f ~/.openvino ]]; then
|
||||
msg_info "Installing HW-accelerated machine-learning"
|
||||
$STD uv add --no-sync --optional openvino onnxruntime-openvino==1.20.0 --active -n -p python3.12 --managed-python
|
||||
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p python3.12 --managed-python
|
||||
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.12/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-312-x86_64-linux-gnu.so"
|
||||
$STD uv add --no-sync --optional openvino onnxruntime-openvino==1.24.1 --active -n -p python3.13 --managed-python
|
||||
$STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --no-dev --active --link-mode copy -n -p python3.13 --managed-python
|
||||
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.13/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-313-x86_64-linux-gnu.so"
|
||||
msg_ok "Installed HW-accelerated machine-learning"
|
||||
else
|
||||
msg_info "Installing machine-learning"
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: vhsdream
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/kyantech/Palmr
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
|
||||
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
|
||||
NODE_VERSION="24" NODE_MODULE="$PNPM" setup_nodejs
|
||||
|
||||
msg_info "Configuring palmr backend"
|
||||
PALMR_DIR="/opt/palmr_data"
|
||||
mkdir -p "$PALMR_DIR"
|
||||
PALMR_DB="${PALMR_DIR}/palmr.db"
|
||||
PALMR_KEY="$(openssl rand -hex 32)"
|
||||
cd /opt/palmr/apps/server
|
||||
sed -e 's/_ENCRYPTION=true/_ENCRYPTION=false/' \
|
||||
-e '/^# ENC/s/# //' \
|
||||
-e "s/ENCRYPTION_KEY=.*$/ENCRYPTION_KEY=$PALMR_KEY/" \
|
||||
-e "s|file:.*$|file:$PALMR_DB\"|" \
|
||||
-e "\|db\"$|a\\# Uncomment below when using a reverse proxy\\
|
||||
# SECURE_SITE=true\\
|
||||
# Uncomment and add your path if using symlinks for data storage\\
|
||||
# CUSTOM_PATH=<path-to-your-bind-mount>" \
|
||||
.env.example >./.env
|
||||
$STD pnpm install
|
||||
$STD npx prisma generate
|
||||
$STD npx prisma migrate deploy
|
||||
$STD npx prisma db push
|
||||
$STD pnpm db:seed
|
||||
$STD pnpm build
|
||||
msg_ok "Configured palmr backend"
|
||||
|
||||
msg_info "Configuring palmr frontend"
|
||||
cd /opt/palmr/apps/web
|
||||
mv ./.env.example ./.env
|
||||
export NODE_ENV=production
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
$STD pnpm install
|
||||
$STD pnpm build
|
||||
msg_ok "Configured palmr frontend"
|
||||
|
||||
msg_info "Creating service"
|
||||
useradd -d "$PALMR_DIR" -M -s /usr/sbin/nologin -U palmr
|
||||
chown -R palmr:palmr "$PALMR_DIR" /opt/palmr
|
||||
cat <<EOF >/etc/systemd/system/palmr-backend.service
|
||||
[Unit]
|
||||
Description=palmr Backend Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=palmr
|
||||
Group=palmr
|
||||
WorkingDirectory=/opt/palmr_data
|
||||
ExecStart=/usr/bin/node /opt/palmr/apps/server/dist/server.js
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
cat <<EOF >/etc/systemd/system/palmr-frontend.service
|
||||
[Unit]
|
||||
Description=palmr Frontend Service
|
||||
After=network.target palmr-backend.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=palmr
|
||||
Group=palmr
|
||||
WorkingDirectory=/opt/palmr/apps/web
|
||||
ExecStart=/usr/bin/pnpm start
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now palmr-backend palmr-frontend
|
||||
msg_ok "Created service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
@@ -15,6 +15,8 @@ update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt install -y \
|
||||
build-essential \
|
||||
python3 \
|
||||
sqlite3 \
|
||||
iptables
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
@@ -69,6 +69,10 @@ cat <<EOF >/opt/Reactive-Resume/.env
|
||||
NODE_ENV=production
|
||||
PORT=3000
|
||||
# for use behind a reverse proxy, use your FQDN for PUBLIC_URL and STORAGE_URL
|
||||
# To avoid issues when behind a reverse proxy with downloading PDFs, ensure that the
|
||||
# storage path is accessible via a subdomain (i.e storage.yourapp.xyz) or you set your
|
||||
# reverse proxy to properly rewrite the subpath (/rxresume) to point to the service
|
||||
# running on port 9000 (minio).
|
||||
PUBLIC_URL=http://${LOCAL_IP}:3000
|
||||
STORAGE_URL=http://${LOCAL_IP}:9000/rxresume
|
||||
DATABASE_URL=postgresql://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}?schema=public
|
||||
|
||||
198
misc/build.func
198
misc/build.func
@@ -3132,7 +3132,7 @@ check_container_resources() {
|
||||
msg_warn "Under-provisioned: Required ${var_cpu} CPU/${var_ram}MB RAM, Current ${current_cpu} CPU/${current_ram}MB RAM"
|
||||
echo -e "${YWB}Please ensure that the ${APP} LXC is configured with at least ${var_cpu} vCPU and ${var_ram} MB RAM for the build process.${CL}\n"
|
||||
echo -ne "${INFO}${HOLD} May cause data loss! ${INFO} Continue update with under-provisioned LXC? <yes/No> "
|
||||
read -r prompt
|
||||
read -r prompt </dev/tty
|
||||
if [[ ! ${prompt,,} =~ ^(yes)$ ]]; then
|
||||
msg_error "Aborted: under-provisioned LXC (${current_cpu} CPU/${current_ram}MB RAM < ${var_cpu} CPU/${var_ram}MB RAM)"
|
||||
exit 1
|
||||
@@ -3155,7 +3155,7 @@ check_container_storage() {
|
||||
if ((usage > 80)); then
|
||||
msg_warn "Storage is dangerously low (${usage}% used on /boot)"
|
||||
echo -ne "Continue anyway? <y/N> "
|
||||
read -r prompt
|
||||
read -r prompt </dev/tty
|
||||
if [[ ! ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
msg_error "Aborted: storage too low (${usage}% used)"
|
||||
exit 1
|
||||
@@ -3707,10 +3707,18 @@ $PCT_OPTIONS_STRING"
|
||||
NVIDIA_DEVICES=()
|
||||
|
||||
# Store PCI info to avoid multiple calls
|
||||
local pci_vga_info=$(lspci -nn 2>/dev/null | grep -E "VGA|Display|3D")
|
||||
# grep returns exit 1 when no match — use || true to prevent ERR trap
|
||||
local pci_vga_info
|
||||
pci_vga_info=$(lspci -nn 2>/dev/null | grep -E "VGA|Display|3D" || true)
|
||||
|
||||
# No GPU-related PCI devices at all? Skip silently.
|
||||
if [[ -z "$pci_vga_info" ]]; then
|
||||
msg_debug "No VGA/Display/3D PCI devices found"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Intel GPU - look for Intel vendor ID [8086]
|
||||
if echo "$pci_vga_info" | grep -q "\[8086:"; then
|
||||
if grep -q "\[8086:" <<<"$pci_vga_info"; then
|
||||
msg_custom "🎮" "${BL}" "Detected Intel GPU"
|
||||
if [[ -d /dev/dri ]]; then
|
||||
for d in /dev/dri/renderD* /dev/dri/card*; do
|
||||
@@ -3720,7 +3728,7 @@ $PCT_OPTIONS_STRING"
|
||||
fi
|
||||
|
||||
# Check for AMD GPU - look for AMD vendor IDs [1002] (AMD/ATI) or [1022] (AMD)
|
||||
if echo "$pci_vga_info" | grep -qE "\[1002:|\[1022:"; then
|
||||
if grep -qE "\[1002:|\[1022:" <<<"$pci_vga_info"; then
|
||||
msg_custom "🎮" "${RD}" "Detected AMD GPU"
|
||||
if [[ -d /dev/dri ]]; then
|
||||
# Only add if not already claimed by Intel
|
||||
@@ -3733,7 +3741,7 @@ $PCT_OPTIONS_STRING"
|
||||
fi
|
||||
|
||||
# Check for NVIDIA GPU - look for NVIDIA vendor ID [10de]
|
||||
if echo "$pci_vga_info" | grep -q "\[10de:"; then
|
||||
if grep -q "\[10de:" <<<"$pci_vga_info"; then
|
||||
msg_custom "🎮" "${GN}" "Detected NVIDIA GPU"
|
||||
|
||||
# Simple passthrough - just bind /dev/nvidia* devices if they exist
|
||||
@@ -3834,7 +3842,7 @@ EOF
|
||||
for gpu in "${available_gpus[@]}"; do
|
||||
echo " - $gpu"
|
||||
done
|
||||
read -rp "Which GPU type to passthrough? (${available_gpus[*]}): " selected_gpu
|
||||
read -rp "Which GPU type to passthrough? (${available_gpus[*]}): " selected_gpu </dev/tty
|
||||
selected_gpu="${selected_gpu^^}"
|
||||
|
||||
# Validate selection
|
||||
@@ -4012,6 +4020,16 @@ EOF
|
||||
# install_gpu_userland "NVIDIA"
|
||||
# fi
|
||||
|
||||
# Disable error trap for entire customization & install phase.
|
||||
# All errors are handled explicitly — recovery menu shown on failure.
|
||||
# Without this, customization errors (e.g. container stopped during base package
|
||||
# install) would trigger error_handler() with a simple "Remove broken container?"
|
||||
# prompt instead of the full recovery menu with retry/repair options.
|
||||
set +Eeuo pipefail
|
||||
trap - ERR
|
||||
|
||||
local install_exit_code=0
|
||||
|
||||
# Continue with standard container setup
|
||||
if [ "$var_os" == "alpine" ]; then
|
||||
sleep 3
|
||||
@@ -4019,9 +4037,9 @@ EOF
|
||||
http://dl-cdn.alpinelinux.org/alpine/latest-stable/main
|
||||
http://dl-cdn.alpinelinux.org/alpine/latest-stable/community
|
||||
EOF'
|
||||
pct exec "$CTID" -- ash -c "apk add bash newt curl openssh nano mc ncurses jq >/dev/null" || {
|
||||
pct exec "$CTID" -- ash -c "apk add bash newt curl openssh nano mc ncurses jq" >>"$BUILD_LOG" 2>&1 || {
|
||||
msg_error "Failed to install base packages in Alpine container"
|
||||
exit 1
|
||||
install_exit_code=1
|
||||
}
|
||||
else
|
||||
sleep 3
|
||||
@@ -4045,69 +4063,69 @@ EOF'
|
||||
msg_warn "Skipping timezone setup – zone '$tz' not found in container"
|
||||
fi
|
||||
|
||||
pct exec "$CTID" -- bash -c "apt-get update >/dev/null && apt-get install -y sudo curl mc gnupg2 jq >/dev/null" || {
|
||||
pct exec "$CTID" -- bash -c "apt-get update 2>&1 && apt-get install -y sudo curl mc gnupg2 jq 2>&1" >>"$BUILD_LOG" 2>&1 || {
|
||||
msg_error "apt-get base packages installation failed"
|
||||
exit 1
|
||||
install_exit_code=1
|
||||
}
|
||||
fi
|
||||
|
||||
msg_ok "Customized LXC Container"
|
||||
# Only continue with installation if customization succeeded
|
||||
if [[ $install_exit_code -eq 0 ]]; then
|
||||
msg_ok "Customized LXC Container"
|
||||
|
||||
# Optional DNS override for retry scenarios (inside LXC, never on host)
|
||||
if [[ "${DNS_RETRY_OVERRIDE:-false}" == "true" ]]; then
|
||||
msg_info "Applying DNS retry override in LXC (8.8.8.8, 1.1.1.1)"
|
||||
pct exec "$CTID" -- bash -c "printf 'nameserver 8.8.8.8\nnameserver 1.1.1.1\n' >/etc/resolv.conf" >/dev/null 2>&1 || true
|
||||
msg_ok "DNS override applied in LXC"
|
||||
fi
|
||||
|
||||
# Install SSH keys
|
||||
install_ssh_keys_into_ct
|
||||
|
||||
# Start timer for duration tracking
|
||||
start_install_timer
|
||||
|
||||
# Run application installer
|
||||
# Disable error trap - container errors are handled internally via flag file
|
||||
set +Eeuo pipefail # Disable ALL error handling temporarily
|
||||
trap - ERR # Remove ERR trap completely
|
||||
|
||||
# Signal handlers use this flag to stop the container on abort (SIGHUP/SIGINT/SIGTERM)
|
||||
# Without this, SSH disconnects leave the container running as an orphan process
|
||||
# that sends "configuring" status AFTER the host already reported "failed"
|
||||
export CONTAINER_INSTALLING=true
|
||||
|
||||
# Capture lxc-attach terminal output to host-side log via tee.
|
||||
# This is the ONLY reliable way to get install output when:
|
||||
# - install.func fails to load (DNS error) → no container-side logging
|
||||
# - install script crashes before logging starts
|
||||
# - $STD/silent() not used for some commands
|
||||
# PIPESTATUS[0] gets the real exit code from lxc-attach (not from tee).
|
||||
local _LXC_CAPTURE_LOG="/tmp/.install-capture-${SESSION_ID}.log"
|
||||
lxc-attach -n "$CTID" -- bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/install/${var_install}.sh)" 2>&1 | tee "$_LXC_CAPTURE_LOG"
|
||||
local lxc_exit=${PIPESTATUS[0]}
|
||||
|
||||
unset CONTAINER_INSTALLING
|
||||
|
||||
# Keep error handling DISABLED during failure detection and recovery
|
||||
# Re-enabling it here would cause any pct exec/pull failure to trigger
|
||||
# error_handler() on the host, bypassing the recovery menu entirely
|
||||
|
||||
# Check for error flag file in container (more reliable than lxc-attach exit code)
|
||||
local install_exit_code=0
|
||||
if [[ -n "${SESSION_ID:-}" ]]; then
|
||||
local error_flag="/root/.install-${SESSION_ID}.failed"
|
||||
if pct exec "$CTID" -- test -f "$error_flag" 2>/dev/null; then
|
||||
install_exit_code=$(pct exec "$CTID" -- cat "$error_flag" 2>/dev/null || echo "1")
|
||||
pct exec "$CTID" -- rm -f "$error_flag" 2>/dev/null || true
|
||||
# Optional DNS override for retry scenarios (inside LXC, never on host)
|
||||
if [[ "${DNS_RETRY_OVERRIDE:-false}" == "true" ]]; then
|
||||
msg_info "Applying DNS retry override in LXC (8.8.8.8, 1.1.1.1)"
|
||||
pct exec "$CTID" -- bash -c "printf 'nameserver 8.8.8.8\nnameserver 1.1.1.1\n' >/etc/resolv.conf" >/dev/null 2>&1 || true
|
||||
msg_ok "DNS override applied in LXC"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Fallback to lxc-attach exit code if no flag file
|
||||
if [[ $install_exit_code -eq 0 && $lxc_exit -ne 0 ]]; then
|
||||
install_exit_code=$lxc_exit
|
||||
fi
|
||||
# Install SSH keys
|
||||
install_ssh_keys_into_ct
|
||||
|
||||
# Installation failed?
|
||||
# Start timer for duration tracking
|
||||
start_install_timer
|
||||
|
||||
# Run application installer
|
||||
# Error handling already disabled above (before customization phase)
|
||||
|
||||
# Signal handlers use this flag to stop the container on abort (SIGHUP/SIGINT/SIGTERM)
|
||||
# Without this, SSH disconnects leave the container running as an orphan process
|
||||
# that sends "configuring" status AFTER the host already reported "failed"
|
||||
export CONTAINER_INSTALLING=true
|
||||
|
||||
# Capture lxc-attach terminal output to host-side log via tee.
|
||||
# This is the ONLY reliable way to get install output when:
|
||||
# - install.func fails to load (DNS error) → no container-side logging
|
||||
# - install script crashes before logging starts
|
||||
# - $STD/silent() not used for some commands
|
||||
# PIPESTATUS[0] gets the real exit code from lxc-attach (not from tee).
|
||||
local _LXC_CAPTURE_LOG="/tmp/.install-capture-${SESSION_ID}.log"
|
||||
lxc-attach -n "$CTID" -- bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/install/${var_install}.sh)" 2>&1 | tee "$_LXC_CAPTURE_LOG"
|
||||
local lxc_exit=${PIPESTATUS[0]}
|
||||
|
||||
unset CONTAINER_INSTALLING
|
||||
|
||||
# Keep error handling DISABLED during failure detection and recovery
|
||||
# Re-enabling it here would cause any pct exec/pull failure to trigger
|
||||
# error_handler() on the host, bypassing the recovery menu entirely
|
||||
|
||||
# Check for error flag file in container (more reliable than lxc-attach exit code)
|
||||
if [[ -n "${SESSION_ID:-}" ]]; then
|
||||
local error_flag="/root/.install-${SESSION_ID}.failed"
|
||||
if pct exec "$CTID" -- test -f "$error_flag" 2>/dev/null; then
|
||||
install_exit_code=$(pct exec "$CTID" -- cat "$error_flag" 2>/dev/null || echo "1")
|
||||
pct exec "$CTID" -- rm -f "$error_flag" 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
||||
# Fallback to lxc-attach exit code if no flag file
|
||||
if [[ $install_exit_code -eq 0 && ${lxc_exit:-0} -ne 0 ]]; then
|
||||
install_exit_code=${lxc_exit:-0}
|
||||
fi
|
||||
fi # end: if [[ $install_exit_code -eq 0 ]] (customization succeeded)
|
||||
|
||||
# Installation or customization failed?
|
||||
if [[ $install_exit_code -ne 0 ]]; then
|
||||
# Prevent job-control signals from suspending the script during recovery.
|
||||
# In non-interactive shells (bash -c), background processes (spinner) can
|
||||
@@ -4219,7 +4237,7 @@ EOF'
|
||||
pct enter "$CTID"
|
||||
echo ""
|
||||
echo -en "${YW}Container ${CTID} still running. Remove now? (y/N): ${CL}"
|
||||
if read -r response && [[ "$response" =~ ^[Yy]$ ]]; then
|
||||
if read -r response </dev/tty && [[ "$response" =~ ^[Yy]$ ]]; then
|
||||
pct stop "$CTID" &>/dev/null || true
|
||||
pct destroy "$CTID" &>/dev/null || true
|
||||
msg_ok "Container ${CTID} removed"
|
||||
@@ -4369,7 +4387,7 @@ EOF'
|
||||
echo ""
|
||||
echo -en "${YW}Select option [1-${max_option}] (default: 1, auto-remove in 60s): ${CL}"
|
||||
|
||||
if read -t 60 -r response; then
|
||||
if read -t 60 -r response </dev/tty; then
|
||||
case "${response:-1}" in
|
||||
1)
|
||||
# Remove container
|
||||
@@ -4586,7 +4604,7 @@ destroy_lxc() {
|
||||
trap 'echo; msg_error "Aborted by user (SIGINT/SIGQUIT)"; return 130' INT QUIT
|
||||
|
||||
local prompt
|
||||
if ! read -rp "Remove this Container? <y/N> " prompt; then
|
||||
if ! read -rp "Remove this Container? <y/N> " prompt </dev/tty; then
|
||||
# read returns non-zero on Ctrl-D/ESC
|
||||
msg_error "Aborted input (Ctrl-D/ESC)"
|
||||
return 130
|
||||
@@ -4923,7 +4941,7 @@ create_lxc_container() {
|
||||
echo " pve-container: installed=${_pvec_i:-n/a} candidate=${_pvec_c:-n/a}"
|
||||
echo " lxc-pve : installed=${_lxcp_i:-n/a} candidate=${_lxcp_c:-n/a}"
|
||||
echo
|
||||
read -rp "Do you want to upgrade now? [y/N] " _ans
|
||||
read -rp "Do you want to upgrade now? [y/N] " _ans </dev/tty
|
||||
case "${_ans,,}" in
|
||||
y | yes)
|
||||
msg_info "Upgrading Proxmox LXC stack (pve-container, lxc-pve)"
|
||||
@@ -5155,7 +5173,7 @@ create_lxc_container() {
|
||||
echo " [$((i + 1))] ${AVAILABLE_VERSIONS[$i]}"
|
||||
done
|
||||
echo ""
|
||||
read -p "Select version [1-${#AVAILABLE_VERSIONS[@]}] or press Enter to cancel: " choice
|
||||
read -p "Select version [1-${#AVAILABLE_VERSIONS[@]}] or press Enter to cancel: " choice </dev/tty
|
||||
|
||||
if [[ "$choice" =~ ^[0-9]+$ ]] && [[ "$choice" -ge 1 ]] && [[ "$choice" -le ${#AVAILABLE_VERSIONS[@]} ]]; then
|
||||
PCT_OSVERSION="${AVAILABLE_VERSIONS[$((choice - 1))]}"
|
||||
@@ -5218,7 +5236,7 @@ create_lxc_container() {
|
||||
done
|
||||
|
||||
echo ""
|
||||
read -p "Select version [1-${#AVAILABLE_VERSIONS[@]}] or Enter to exit: " choice
|
||||
read -p "Select version [1-${#AVAILABLE_VERSIONS[@]}] or Enter to exit: " choice </dev/tty
|
||||
|
||||
if [[ "$choice" =~ ^[0-9]+$ ]] && [[ "$choice" -ge 1 ]] && [[ "$choice" -le ${#AVAILABLE_VERSIONS[@]} ]]; then
|
||||
export var_version="${AVAILABLE_VERSIONS[$((choice - 1))]}"
|
||||
@@ -5328,7 +5346,7 @@ create_lxc_container() {
|
||||
[[ -f "$TEMPLATE_PATH" ]] && rm -f "$TEMPLATE_PATH"
|
||||
for attempt in {1..3}; do
|
||||
msg_info "Attempt $attempt: Downloading template $TEMPLATE to $TEMPLATE_STORAGE"
|
||||
if pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null 2>&1; then
|
||||
if pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >>"${BUILD_LOG:-/dev/null}" 2>&1; then
|
||||
msg_ok "Template download successful."
|
||||
break
|
||||
fi
|
||||
@@ -5405,11 +5423,23 @@ create_lxc_container() {
|
||||
|
||||
LOGFILE="/tmp/pct_create_${CTID}_$(date +%Y%m%d_%H%M%S)_${SESSION_ID}.log"
|
||||
|
||||
# Helper: append pct_create log to BUILD_LOG before exit so combined log has full context
|
||||
_flush_pct_log() {
|
||||
if [[ -s "${LOGFILE:-}" && -n "${BUILD_LOG:-}" ]]; then
|
||||
{
|
||||
echo ""
|
||||
echo "--- pct create output (${LOGFILE}) ---"
|
||||
cat "$LOGFILE"
|
||||
echo "--- end pct create output ---"
|
||||
} >>"$BUILD_LOG" 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
# Validate template before pct create (while holding lock)
|
||||
if [[ ! -s "$TEMPLATE_PATH" || "$(stat -c%s "$TEMPLATE_PATH" 2>/dev/null || echo 0)" -lt 1000000 ]]; then
|
||||
msg_info "Template file missing or too small – downloading"
|
||||
rm -f "$TEMPLATE_PATH"
|
||||
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null 2>&1 || {
|
||||
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >>"${BUILD_LOG:-/dev/null}" 2>&1 || {
|
||||
msg_error "Failed to download template '$TEMPLATE' to storage '$TEMPLATE_STORAGE'"
|
||||
exit 222
|
||||
}
|
||||
@@ -5418,7 +5448,7 @@ create_lxc_container() {
|
||||
if [[ -n "$ONLINE_TEMPLATE" ]]; then
|
||||
msg_info "Template appears corrupted – re-downloading"
|
||||
rm -f "$TEMPLATE_PATH"
|
||||
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null 2>&1 || {
|
||||
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >>"${BUILD_LOG:-/dev/null}" 2>&1 || {
|
||||
msg_error "Failed to re-download template '$TEMPLATE'"
|
||||
exit 222
|
||||
}
|
||||
@@ -5442,7 +5472,7 @@ create_lxc_container() {
|
||||
if grep -qiE 'unable to open|corrupt|invalid' "$LOGFILE"; then
|
||||
msg_info "Template may be corrupted – re-downloading"
|
||||
rm -f "$TEMPLATE_PATH"
|
||||
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null 2>&1
|
||||
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >>"${BUILD_LOG:-/dev/null}" 2>&1
|
||||
msg_ok "Template re-downloaded"
|
||||
fi
|
||||
|
||||
@@ -5455,7 +5485,7 @@ create_lxc_container() {
|
||||
if [[ ! -f "$LOCAL_TEMPLATE_PATH" ]]; then
|
||||
msg_ok "Trying local storage fallback"
|
||||
msg_info "Downloading template to local"
|
||||
pveam download local "$TEMPLATE" >/dev/null 2>&1
|
||||
pveam download local "$TEMPLATE" >>"${BUILD_LOG:-/dev/null}" 2>&1
|
||||
msg_ok "Template downloaded to local"
|
||||
else
|
||||
msg_ok "Trying local storage fallback"
|
||||
@@ -5470,10 +5500,12 @@ create_lxc_container() {
|
||||
0) : ;; # success - container created, continue
|
||||
2)
|
||||
msg_error "Upgrade declined. Please update and re-run: apt update && apt install --only-upgrade pve-container lxc-pve"
|
||||
_flush_pct_log
|
||||
exit 231
|
||||
;;
|
||||
3)
|
||||
msg_error "Upgrade and/or retry failed. Please inspect: $LOGFILE"
|
||||
_flush_pct_log
|
||||
exit 231
|
||||
;;
|
||||
esac
|
||||
@@ -5484,6 +5516,7 @@ create_lxc_container() {
|
||||
pct create "$CTID" "local:vztmpl/${TEMPLATE}" $PCT_OPTIONS 2>&1 | tee -a "$LOGFILE"
|
||||
set +x
|
||||
fi
|
||||
_flush_pct_log
|
||||
exit 209
|
||||
fi
|
||||
else
|
||||
@@ -5499,10 +5532,12 @@ create_lxc_container() {
|
||||
0) : ;; # success - container created, continue
|
||||
2)
|
||||
msg_error "Upgrade declined. Please update and re-run: apt update && apt install --only-upgrade pve-container lxc-pve"
|
||||
_flush_pct_log
|
||||
exit 231
|
||||
;;
|
||||
3)
|
||||
msg_error "Upgrade and/or retry failed. Please inspect: $LOGFILE"
|
||||
_flush_pct_log
|
||||
exit 231
|
||||
;;
|
||||
esac
|
||||
@@ -5513,6 +5548,7 @@ create_lxc_container() {
|
||||
pct create "$CTID" "local:vztmpl/${TEMPLATE}" $PCT_OPTIONS 2>&1 | tee -a "$LOGFILE"
|
||||
set +x
|
||||
fi
|
||||
_flush_pct_log
|
||||
exit 209
|
||||
fi
|
||||
fi
|
||||
@@ -5524,16 +5560,28 @@ create_lxc_container() {
|
||||
# Verify container exists
|
||||
pct list | awk '{print $1}' | grep -qx "$CTID" || {
|
||||
msg_error "Container ID $CTID not listed in 'pct list'. See $LOGFILE"
|
||||
_flush_pct_log
|
||||
exit 215
|
||||
}
|
||||
|
||||
# Verify config rootfs
|
||||
grep -q '^rootfs:' "/etc/pve/lxc/$CTID.conf" || {
|
||||
msg_error "RootFS entry missing in container config. See $LOGFILE"
|
||||
_flush_pct_log
|
||||
exit 216
|
||||
}
|
||||
|
||||
msg_ok "LXC Container ${BL}$CTID${CL} ${GN}was successfully created."
|
||||
|
||||
# Append pct create log to BUILD_LOG for combined log visibility
|
||||
if [[ -s "$LOGFILE" && -n "${BUILD_LOG:-}" ]]; then
|
||||
{
|
||||
echo ""
|
||||
echo "--- pct create output ---"
|
||||
cat "$LOGFILE"
|
||||
echo "--- end pct create output ---"
|
||||
} >>"$BUILD_LOG" 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
# ==============================================================================
|
||||
|
||||
@@ -286,7 +286,7 @@ error_handler() {
|
||||
echo -en "${YW}Remove broken container ${CTID}? (Y/n) [auto-remove in 60s]: ${CL}"
|
||||
fi
|
||||
|
||||
if read -t 60 -r response; then
|
||||
if read -t 60 -r response </dev/tty; then
|
||||
if [[ -z "$response" || "$response" =~ ^[Yy]$ ]]; then
|
||||
echo ""
|
||||
if declare -f msg_info >/dev/null 2>&1; then
|
||||
|
||||
Reference in New Issue
Block a user