Compare commits

..
Author SHA1 Message Date
MickLesk 0a8426d0c0 navidrome: restore data folder ownership on install and update
Upstream's deb postinstall runs chown navidrome:navidrome on
/var/lib/navidrome/cache without -R, and only behind an .installed
flag, so it never runs again on an upgrade. Every navidrome command
the packaging invokes as root creates cache content owned by root,
which the service then cannot write as the navidrome user - artwork
that was already cached keeps working while newly resolved album and
playlist covers fail.

Reassert ownership of the data folder after deploying the release.
The music folder is left alone, it is commonly a bind mount.
2026-09-14 16:03:47 +02:00
285 changed files with 4782 additions and 3173 deletions
+2 -12
View File
@@ -8,12 +8,7 @@
"turnkey/**",
"vm/**"
],
"excludeGlobs": [
"**/headers/**",
"ct/headers/**",
"tools/headers/**",
"vm/headers/**"
]
"excludeGlobs": []
}
],
"update script": [
@@ -46,12 +41,7 @@
"includeGlobs": [
"vm/**"
],
"excludeGlobs": [
"**/headers/**",
"ct/headers/**",
"tools/headers/**",
"vm/headers/**"
]
"excludeGlobs": []
}
],
"tools": [
-152
View File
@@ -1,155 +1,3 @@
## 2026-09-19
### 🆕 New Scripts
- qBit-Manage ([#17377](https://github.com/community-scripts/ProxmoxVE/pull/17377))
- Ubuntu-VM: AIO | new core | performance | remove old wrappers [@MickLesk](https://github.com/MickLesk) ([#17354](https://github.com/community-scripts/ProxmoxVE/pull/17354))
### 💾 Core
- Fall back to the unversioned banner slug [@MickLesk](https://github.com/MickLesk) ([core#48](https://github.com/community-scripts/core/pull/48))
### ❔ Uncategorized
- chore(ct): sync immichframe defaults with PocketBase [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17373](https://github.com/community-scripts/ProxmoxVE/pull/17373))
## 2026-09-18
### 🆕 New Scripts
- Almalinux-VM ([#17349](https://github.com/community-scripts/ProxmoxVE/pull/17349))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- update authentik to 2026.8.3 [@thieneret](https://github.com/thieneret) ([#17366](https://github.com/community-scripts/ProxmoxVE/pull/17366))
- crafty-controller: chown after restore_backup so restored data keeps ownership [@MickLesk](https://github.com/MickLesk) ([#17348](https://github.com/community-scripts/ProxmoxVE/pull/17348))
- databasus, domain-monitor, poznote: chown after restore_backup so restored data keeps its owner [@MickLesk](https://github.com/MickLesk) ([#17350](https://github.com/community-scripts/ProxmoxVE/pull/17350))
- alpine-vm: ask for the Cloud-Init credentials [@MickLesk](https://github.com/MickLesk) ([#17355](https://github.com/community-scripts/ProxmoxVE/pull/17355))
- suggestarr: keep the data where the app actually reads it [@MickLesk](https://github.com/MickLesk) ([#17317](https://github.com/community-scripts/ProxmoxVE/pull/17317))
- immichframe: set the admin password the new admin UI requires [@MickLesk](https://github.com/MickLesk) ([#17315](https://github.com/community-scripts/ProxmoxVE/pull/17315))
- #### ✨ New Features
- pangolin: Bump to 1.23.0 [@MickLesk](https://github.com/MickLesk) ([#17343](https://github.com/community-scripts/ProxmoxVE/pull/17343))
- #### 🔧 Refactor
- Refactor: Oxicloud [@MickLesk](https://github.com/MickLesk) ([#17338](https://github.com/community-scripts/ProxmoxVE/pull/17338))
### 💾 Core
- Stop a modified conffile from aborting the whole update [@MickLesk](https://github.com/MickLesk) ([core#47](https://github.com/community-scripts/core/pull/47))
- Generate app headers [@github-actions[bot]](https://github.com/github-actions[bot]) ([core#46](https://github.com/community-scripts/core/pull/46))
- github api: retry a 200 that is not a usable release payload [@MickLesk](https://github.com/MickLesk) ([core#45](https://github.com/community-scripts/core/pull/45))
### 📚 Documentation
- chore: fix PR template help [@CrazyWolf13](https://github.com/CrazyWolf13) ([#17364](https://github.com/community-scripts/ProxmoxVE/pull/17364))
## 2026-09-17
### 🆕 New Scripts
- Alpine-VM ([#17324](https://github.com/community-scripts/ProxmoxVE/pull/17324))
- Allstarlink ([#17321](https://github.com/community-scripts/ProxmoxVE/pull/17321))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- changedetection: update: various fixes [@CrazyWolf13](https://github.com/CrazyWolf13) ([#17331](https://github.com/community-scripts/ProxmoxVE/pull/17331))
- sparkyfitness: run the Better Auth migration during the update [@MickLesk](https://github.com/MickLesk) ([#17318](https://github.com/community-scripts/ProxmoxVE/pull/17318))
- poznote: follow init.sh into docker/ [@MickLesk](https://github.com/MickLesk) ([#17316](https://github.com/community-scripts/ProxmoxVE/pull/17316))
- #### ✨ New Features
- romm: make the library paths follow ROMM_BASE_PATH [@MickLesk](https://github.com/MickLesk) ([#17279](https://github.com/community-scripts/ProxmoxVE/pull/17279))
- Debian-VM: Refactor | Support Debian 11, 12, 13 [@MickLesk](https://github.com/MickLesk) ([#17325](https://github.com/community-scripts/ProxmoxVE/pull/17325))
### 💾 Core
- Ask before replacing a cached image that no longer matches [@MickLesk](https://github.com/MickLesk) ([core#44](https://github.com/community-scripts/core/pull/44))
## 2026-09-16
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: Pin to v3.2.2 [@vhsdream](https://github.com/vhsdream) ([#17307](https://github.com/community-scripts/ProxmoxVE/pull/17307))
- Dispatcharr: Bump to 4G RAM [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17302](https://github.com/community-scripts/ProxmoxVE/pull/17302))
- navidrome: repair root-owned data folders left by 0.61.x [@MickLesk](https://github.com/MickLesk) ([#17275](https://github.com/community-scripts/ProxmoxVE/pull/17275))
- tor-snowflake: read the Go version from the module root [@MickLesk](https://github.com/MickLesk) ([#17276](https://github.com/community-scripts/ProxmoxVE/pull/17276))
- docmost: stop corepack asking for confirmation during the build [@MickLesk](https://github.com/MickLesk) ([#17282](https://github.com/community-scripts/ProxmoxVE/pull/17282))
- #### ✨ New Features
- Refactor: TrueNAS VM (core / improve functions / performance) [@MickLesk](https://github.com/MickLesk) ([#17277](https://github.com/community-scripts/ProxmoxVE/pull/17277))
- Frigate: Bump to 0.18.0 [@MickLesk](https://github.com/MickLesk) ([#17273](https://github.com/community-scripts/ProxmoxVE/pull/17273))
- Refactor: HomeAssistant-OS (core / improve functions / performance) [@MickLesk](https://github.com/MickLesk) ([#17281](https://github.com/community-scripts/ProxmoxVE/pull/17281))
### 💾 Core
- Read the IGC version compute-runtime pins, instead of taking the newest [@MickLesk](https://github.com/MickLesk) ([core#43](https://github.com/community-scripts/core/pull/43))
- Install the Intel driver dependency before the .deb that needs it [@MickLesk](https://github.com/MickLesk) ([core#42](https://github.com/community-scripts/core/pull/42))
### 📚 Documentation
- pocketbase-bot: accept the var_ names and two missing fields [@MickLesk](https://github.com/MickLesk) ([#17305](https://github.com/community-scripts/ProxmoxVE/pull/17305))
## 2026-09-15
### 🆕 New Scripts
- valhalla ([#17231](https://github.com/community-scripts/ProxmoxVE/pull/17231))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- borg-ui: missing dependency `sshpass` [@christian-forgacs](https://github.com/christian-forgacs) ([#17286](https://github.com/community-scripts/ProxmoxVE/pull/17286))
- tracearr: copy packages/emails into the deploy tree [@connorgallopo](https://github.com/connorgallopo) ([#17268](https://github.com/community-scripts/ProxmoxVE/pull/17268))
- Immich: Pin to v3.2.1 [@vhsdream](https://github.com/vhsdream) ([#17264](https://github.com/community-scripts/ProxmoxVE/pull/17264))
### 💾 Core
- Add vm_extract_image, which two VM scripts already call [@MickLesk](https://github.com/MickLesk) ([core#40](https://github.com/community-scripts/core/pull/40))
- Releases: rank releases on their numbers, not on sort -V over the raw tag [@MickLesk](https://github.com/MickLesk) ([core#39](https://github.com/community-scripts/core/pull/39))
### 🧰 Tools
- #### 🔧 Refactor
- Refactor: monitor-all (decide on flag values, not on key presence) [@MickLesk](https://github.com/MickLesk) ([#17261](https://github.com/community-scripts/ProxmoxVE/pull/17261))
## 2026-09-14
### 🆕 New Scripts
- Borg-UI ([#17258](https://github.com/community-scripts/ProxmoxVE/pull/17258))
### 🚀 Updated Scripts
- SparkyFitness: substitute NGINX_RATE_LIMIT in nginx config [@RafBorrelli](https://github.com/RafBorrelli) ([#17256](https://github.com/community-scripts/ProxmoxVE/pull/17256))
- #### 🐞 Bug Fixes
- spliit: bump Node.js from 24 to 26 [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17250](https://github.com/community-scripts/ProxmoxVE/pull/17250))
## 2026-09-13
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Downgrade iobroker to Node 24 [@Copilot](https://github.com/Copilot) ([#17229](https://github.com/community-scripts/ProxmoxVE/pull/17229))
### 💾 Core
- Pick the highest release version, not the newest published one [@MickLesk](https://github.com/MickLesk) ([core#38](https://github.com/community-scripts/core/pull/38))
## 2026-09-12
### 🆕 New Scripts
+3 -3
View File
@@ -8,7 +8,7 @@ PRs without prior testing will be closed. If you are an AI agent writing this pu
Fixes #
## ✅ Prerequisites (**x** in brackets)
## ✅ Prerequisites (**X** in brackets)
- [ ] **Self-review completed** – Code follows project standards.
- [ ] **Tested thoroughly** – Changes work as expected.
@@ -43,13 +43,13 @@ Fixes #
## 💥 Breaking Change Advisory (only if you checked "Breaking change")
<!-- If this PR changes existing behaviour in a way that may require action before an
If this PR changes existing behaviour in a way that may require action before an
update, add a `breaking-change` advisory block to this PR body. The website and
the in-container update guard read it to tell operators exactly what to expect,
what to do first, and — with `action: block` — to stop an update until it's
handled. Every field is optional; the advisory auto-expires 30 days after merge.
Copy the block out of the comment below, fill it in, and paste it here: -->
Copy the block out of the comment below, fill it in, and paste it here:
<!--
```breaking-change
+1 -4
View File
@@ -28,7 +28,6 @@ jobs:
const allowedBots = [
"push-app-to-main[bot]",
"push-app-to-main",
"community-scripts-pr-app[bot]",
"community-scripts-pr-app"
];
@@ -63,9 +62,7 @@ jobs:
per_page: 100,
});
hasAddedScriptFile = files.some(
f => f.status === "added" &&
!f.filename.includes("/headers/") &&
scriptPrefixes.some(p => f.filename.startsWith(p))
f => f.status === "added" && scriptPrefixes.some(p => f.filename.startsWith(p))
);
} catch (error) {
core.warning(`Could not list files for PR #${prNumber}: ${error.message}`);
+7 -33
View File
@@ -26,7 +26,6 @@ jobs:
COMMENT_BODY: ${{ github.event.comment.body }}
COMMENT_ID: ${{ github.event.comment.id }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
IS_PR_COMMENT: ${{ github.event.issue.pull_request && 'true' || 'false' }}
REPO_OWNER: ${{ github.repository_owner }}
REPO_NAME: ${{ github.event.repository.name }}
ACTOR: ${{ github.event.comment.user.login }}
@@ -85,7 +84,6 @@ jobs:
const owner = process.env.REPO_OWNER;
const repo = process.env.REPO_NAME;
const issueNumber = parseInt(process.env.ISSUE_NUMBER, 10);
const isPrComment = process.env.IS_PR_COMMENT === 'true';
const commentId = parseInt(process.env.COMMENT_ID, 10);
const actor = process.env.ACTOR;
@@ -218,22 +216,11 @@ jobs:
const prTitle = 'chore(ct): sync ' + slugValue + ' defaults with PocketBase';
const prBody =
'## ✍️ Description\n\n' +
'Sync of the default CT variables for `' + slugValue + '` after a `/pocketbase` update by @' + actor + '.\n\n' +
'Updated: `' + updateResult.updatedVars.join('`, `') + '`\n\n' +
'## 🔗 Related Issue\n\n' +
(isPrComment ? 'Triggered from #' : 'Fixes #') + issueNumber + '\n\n' +
'## ✅ Prerequisites (**X** in brackets)\n\n' +
'- [x] **Self-review completed** – Code follows project standards.\n' +
'- [ ] **Tested thoroughly** – Changes work as expected.\n' +
'- [x] **No security risks** – No hardcoded secrets, unnecessary privilege escalations, or permission issues.\n\n' +
'**Tested on:** not tested — generated from the PocketBase record, only `var_` defaults changed.\n\n' +
'---\n\n' +
'## 🤖 AI Assistance (**X** in brackets)\n\n' +
'- [x] **No AI used** – Scripts were written without AI assistance.\n\n' +
'---\n\n' +
'## 🛠️ Type of Change (**X** in brackets)\n\n' +
'- [x] 🐞 **Bug fix** – Resolves an issue without breaking functionality.\n';
'## Summary\n' +
'- Sync default CT variables for `' + slugValue + '` after `/pocketbase` update.\n' +
'- Updated vars: `' + updateResult.updatedVars.join('`, `') + '`.\n\n' +
'## Source\n' +
'- Triggered by @' + actor + ' via PocketBase bot.\n';
const createPrRes = await ghRequest('/repos/' + owner + '/' + repo + '/pulls', 'POST', {
title: prTitle,
body: prBody,
@@ -348,10 +335,7 @@ jobs:
'`architectures` (amd64,arm64) `platforms` (pve,incus) ' +
'`execute_in` (pve,lxc,pbs,vm,pmg,pdm) `categories` (names or ids) ' +
'`type` (ct, vm, addon, …) ' +
'`is_disabled` `disable_message` `is_deleted` `deleted_message` ' +
'`pin_reason` `last_update_commit`\n\n' +
'The `var_` names from the ct scripts work too: `var_cpu` `var_ram` `var_disk`\n' +
'`var_os` `var_version` `var_port` `var_tags` `var_unprivileged`\n\n' +
'`is_disabled` `disable_message` `is_deleted` `deleted_message`\n\n' +
'**Screenshots:**\n' +
'```\n' +
'/pocketbase <slug> screenshot https://example.com/one.png https://example.com/two.png\n' +
@@ -415,14 +399,6 @@ jobs:
// ── Shared helpers ─────────────────────────────────────────────────
// The ct scripts name these var_cpu/var_ram/var_disk, and that is what
// people type. Accept them for the PocketBase keys.
const KEY_ALIASES = {
var_cpu: 'cpu', var_ram: 'ram', var_disk: 'hdd', var_hdd: 'hdd',
var_os: 'os', var_version: 'version', var_unprivileged: 'unprivileged',
var_port: 'port', var_tags: 'tags', disk: 'hdd', memory: 'ram',
};
// Key=value parser: handles unquoted and "quoted" values
function parseKVPairs(str) {
const fields = {};
@@ -450,7 +426,7 @@ jobs:
while (pos < str.length && !/\s/.test(str[pos])) pos++;
value = str.substring(valStart, pos);
}
fields[KEY_ALIASES[key.toLowerCase()] || key] = value;
fields[key] = value;
}
return fields;
}
@@ -1006,8 +982,6 @@ jobs:
disable_message: 'string',
is_deleted: 'boolean',
deleted_message: 'string',
pin_reason: 'string',
last_update_commit: 'string',
};
const parsedFields = parseKVPairs(rest);
+1 -3
View File
@@ -22,9 +22,7 @@ generate_headers() {
for script in "${file_list[@]}"; do
[[ -f "$script" ]] || continue
# -m1: a script that sets APP twice (the second carrying ${var_version})
# otherwise yields both lines, and the filename gets a newline in it.
app_name=$(grep -m1 -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
if [[ -n "$app_name" ]]; then
# core.func/vm-core.func look the header up as "${APP,,}" without spaces,
# so the generated file has to be named after APP - not after the script.
+146 -244
View File
@@ -104,9 +104,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
@@ -120,7 +117,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
<details>
<summary><h4>September (19 entries)</h4></summary>
<summary><h4>September (12 entries)</h4></summary>
[View September 2026 Changelog](.github/changelogs/2026/09.md)
@@ -546,245 +543,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-09-25
### 🚀 Updated Scripts
- #### 🔧 Refactor
- Docker-LXC: remove Portainer installation from install [@MickLesk](https://github.com/MickLesk) ([#17493](https://github.com/community-scripts/ProxmoxVE/pull/17493))
### 💾 Core
- incus: do not let an install script block on an invisible prompt [@MickLesk](https://github.com/MickLesk) ([core#71](https://github.com/community-scripts/core/pull/71))
- tel: report progress from installs only, not updates [@MickLesk](https://github.com/MickLesk) ([core#72](https://github.com/community-scripts/core/pull/72))
## 2026-09-24
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Declare the RomM filesystem structure required since 5.3.0 [@MickLesk](https://github.com/MickLesk) ([#17480](https://github.com/community-scripts/ProxmoxVE/pull/17480))
- general: use apt_update_safe instead of aborting on a failed apt update [@MickLesk](https://github.com/MickLesk) ([#17462](https://github.com/community-scripts/ProxmoxVE/pull/17462))
- #### 🔧 Refactor
- Journiv: Serve Node Frontend and add HTTP Auth .env [@MickLesk](https://github.com/MickLesk) ([#17479](https://github.com/community-scripts/ProxmoxVE/pull/17479))
### 💾 Core
- core: accept an off-subnet gateway for /31 and /32 [@MickLesk](https://github.com/MickLesk) ([core#70](https://github.com/community-scripts/core/pull/70))
## 2026-09-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix(signoz): install the histogramQuantile ClickHouse function [@maksimtech](https://github.com/maksimtech) ([#17386](https://github.com/community-scripts/ProxmoxVE/pull/17386))
- omniroute: bump to 4 GB for the npm install [@MickLesk](https://github.com/MickLesk) ([#17461](https://github.com/community-scripts/ProxmoxVE/pull/17461))
- Run Borg-UI with a single gunicorn worker [@MickLesk](https://github.com/MickLesk) ([#17445](https://github.com/community-scripts/ProxmoxVE/pull/17445))
- immich: keep geodata linked and the build deps present on update [@MickLesk](https://github.com/MickLesk) ([#17438](https://github.com/community-scripts/ProxmoxVE/pull/17438))
- #### 🔧 Refactor
- Refactor: Scanopy [@MickLesk](https://github.com/MickLesk) ([#16797](https://github.com/community-scripts/ProxmoxVE/pull/16797))
### 💾 Core
- stop a partial find from aborting the caller under pipefail [@MickLesk](https://github.com/MickLesk) ([core#68](https://github.com/community-scripts/core/pull/68))
- core: give RHEL-family containers an ostype PVE accepts [@MickLesk](https://github.com/MickLesk) ([core#67](https://github.com/community-scripts/core/pull/67))
- core: do not abort on a failed apt update [@MickLesk](https://github.com/MickLesk) ([core#66](https://github.com/community-scripts/core/pull/66))
- VM's: report a finished VM as done, not aborted [@MickLesk](https://github.com/MickLesk) ([core#65](https://github.com/community-scripts/core/pull/65))
- VM-Core: decide console autologin from the image, not USE_CLOUD_INIT [@MickLesk](https://github.com/MickLesk) ([core#63](https://github.com/community-scripts/core/pull/63))
- VM-Core: report failed image steps and restore tty1 autologin without cloud-init [@MickLesk](https://github.com/MickLesk) ([core#62](https://github.com/community-scripts/core/pull/62))
- tools: raise pnpm/yarn fetch timeout and lower network concurrency [@MickLesk](https://github.com/MickLesk) ([core#59](https://github.com/community-scripts/core/pull/59))
- VM-Core: stop discarding cloud-init error messages [@MickLesk](https://github.com/MickLesk) ([core#60](https://github.com/community-scripts/core/pull/60))
## 2026-09-22
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix(invoiceshelf): re-link storage during update [@owenvoke](https://github.com/owenvoke) ([#17431](https://github.com/community-scripts/ProxmoxVE/pull/17431))
- fix(alpine-it-tools): write the version file after a successful update [@Houtek](https://github.com/Houtek) ([#17421](https://github.com/community-scripts/ProxmoxVE/pull/17421))
- Umami: Align pnpm with engines.pnpm on update [@ReneNulschDE](https://github.com/ReneNulschDE) ([#17404](https://github.com/community-scripts/ProxmoxVE/pull/17404))
- #### 🔧 Refactor
- several scripts: let uv see the project before syncing it | refactor some scripts that use uv [@MickLesk](https://github.com/MickLesk) ([#17436](https://github.com/community-scripts/ProxmoxVE/pull/17436))
### 💾 Core
- setup_uv: honour a project's required-version pin [@MickLesk](https://github.com/MickLesk) ([core#58](https://github.com/community-scripts/core/pull/58))
- fix(motd): repair legacy 00_lxc-details.sh header and dead color placeholders [@BadFlo](https://github.com/BadFlo) ([core#53](https://github.com/community-scripts/core/pull/53))
- meilisearch: take the raw binary, not the .deb [@MickLesk](https://github.com/MickLesk) ([core#57](https://github.com/community-scripts/core/pull/57))
### 📚 Documentation
- github: Stop generating header filenames with a newline in them [@MickLesk](https://github.com/MickLesk) ([#17435](https://github.com/community-scripts/ProxmoxVE/pull/17435))
### ❔ Uncategorized
- chore(ct): sync cloudflare-ddns defaults with PocketBase [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17446](https://github.com/community-scripts/ProxmoxVE/pull/17446))
## 2026-09-21
### 🆕 New Scripts
- AudioMuse-AI ([#17415](https://github.com/community-scripts/ProxmoxVE/pull/17415))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix(portabase): meet the default admin password rules [@maksimtech](https://github.com/maksimtech) ([#17384](https://github.com/community-scripts/ProxmoxVE/pull/17384))
- truenas-vm: strip the G before the storage allocation [@MickLesk](https://github.com/MickLesk) ([#17407](https://github.com/community-scripts/ProxmoxVE/pull/17407))
- Librenms - Fix local snmpd community string setup [@dopch](https://github.com/dopch) ([#17363](https://github.com/community-scripts/ProxmoxVE/pull/17363))
- fix(iventoy): preserve release data and migrate legacy service launchers [@Msprg](https://github.com/Msprg) ([#17161](https://github.com/community-scripts/ProxmoxVE/pull/17161))
- xyops: bump Node.js from 22 to 24 [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17398](https://github.com/community-scripts/ProxmoxVE/pull/17398))
### 💾 Core
- Generate app headers [@github-actions[bot]](https://github.com/github-actions[bot]) ([core#56](https://github.com/community-scripts/core/pull/56))
- github-api: take the release the maintainer marked as latest [@MickLesk](https://github.com/MickLesk) ([core#55](https://github.com/community-scripts/core/pull/55))
- general: prune old Rust toolchains [@MickLesk](https://github.com/MickLesk) ([core#52](https://github.com/community-scripts/core/pull/52))
- Ask when the preselected storage cannot hold the content [@MickLesk](https://github.com/MickLesk) ([core#51](https://github.com/community-scripts/core/pull/51))
## 2026-09-20
### 🆕 New Scripts
- Your-Spotify ([#17376](https://github.com/community-scripts/ProxmoxVE/pull/17376))
## 2026-09-19
### 🆕 New Scripts
- qBit-Manage ([#17377](https://github.com/community-scripts/ProxmoxVE/pull/17377))
- Ubuntu-VM: AIO | new core | performance | remove old wrappers [@MickLesk](https://github.com/MickLesk) ([#17354](https://github.com/community-scripts/ProxmoxVE/pull/17354))
### 💾 Core
- Fall back to the unversioned banner slug [@MickLesk](https://github.com/MickLesk) ([core#48](https://github.com/community-scripts/core/pull/48))
### ❔ Uncategorized
- chore(ct): sync immichframe defaults with PocketBase [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17373](https://github.com/community-scripts/ProxmoxVE/pull/17373))
## 2026-09-18
### 🆕 New Scripts
- Almalinux-VM ([#17349](https://github.com/community-scripts/ProxmoxVE/pull/17349))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- update authentik to 2026.8.3 [@thieneret](https://github.com/thieneret) ([#17366](https://github.com/community-scripts/ProxmoxVE/pull/17366))
- crafty-controller: chown after restore_backup so restored data keeps ownership [@MickLesk](https://github.com/MickLesk) ([#17348](https://github.com/community-scripts/ProxmoxVE/pull/17348))
- databasus, domain-monitor, poznote: chown after restore_backup so restored data keeps its owner [@MickLesk](https://github.com/MickLesk) ([#17350](https://github.com/community-scripts/ProxmoxVE/pull/17350))
- alpine-vm: ask for the Cloud-Init credentials [@MickLesk](https://github.com/MickLesk) ([#17355](https://github.com/community-scripts/ProxmoxVE/pull/17355))
- suggestarr: keep the data where the app actually reads it [@MickLesk](https://github.com/MickLesk) ([#17317](https://github.com/community-scripts/ProxmoxVE/pull/17317))
- immichframe: set the admin password the new admin UI requires [@MickLesk](https://github.com/MickLesk) ([#17315](https://github.com/community-scripts/ProxmoxVE/pull/17315))
- #### ✨ New Features
- pangolin: Bump to 1.23.0 [@MickLesk](https://github.com/MickLesk) ([#17343](https://github.com/community-scripts/ProxmoxVE/pull/17343))
- #### 🔧 Refactor
- Refactor: Oxicloud [@MickLesk](https://github.com/MickLesk) ([#17338](https://github.com/community-scripts/ProxmoxVE/pull/17338))
### 💾 Core
- Stop a modified conffile from aborting the whole update [@MickLesk](https://github.com/MickLesk) ([core#47](https://github.com/community-scripts/core/pull/47))
- Generate app headers [@github-actions[bot]](https://github.com/github-actions[bot]) ([core#46](https://github.com/community-scripts/core/pull/46))
- github api: retry a 200 that is not a usable release payload [@MickLesk](https://github.com/MickLesk) ([core#45](https://github.com/community-scripts/core/pull/45))
### 📚 Documentation
- chore: fix PR template help [@CrazyWolf13](https://github.com/CrazyWolf13) ([#17364](https://github.com/community-scripts/ProxmoxVE/pull/17364))
## 2026-09-17
### 🆕 New Scripts
- Alpine-VM ([#17324](https://github.com/community-scripts/ProxmoxVE/pull/17324))
- Allstarlink ([#17321](https://github.com/community-scripts/ProxmoxVE/pull/17321))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- changedetection: update: various fixes [@CrazyWolf13](https://github.com/CrazyWolf13) ([#17331](https://github.com/community-scripts/ProxmoxVE/pull/17331))
- sparkyfitness: run the Better Auth migration during the update [@MickLesk](https://github.com/MickLesk) ([#17318](https://github.com/community-scripts/ProxmoxVE/pull/17318))
- poznote: follow init.sh into docker/ [@MickLesk](https://github.com/MickLesk) ([#17316](https://github.com/community-scripts/ProxmoxVE/pull/17316))
- #### ✨ New Features
- romm: make the library paths follow ROMM_BASE_PATH [@MickLesk](https://github.com/MickLesk) ([#17279](https://github.com/community-scripts/ProxmoxVE/pull/17279))
- Debian-VM: Refactor | Support Debian 11, 12, 13 [@MickLesk](https://github.com/MickLesk) ([#17325](https://github.com/community-scripts/ProxmoxVE/pull/17325))
### 💾 Core
- Ask before replacing a cached image that no longer matches [@MickLesk](https://github.com/MickLesk) ([core#44](https://github.com/community-scripts/core/pull/44))
## 2026-09-16
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: Pin to v3.2.2 [@vhsdream](https://github.com/vhsdream) ([#17307](https://github.com/community-scripts/ProxmoxVE/pull/17307))
- Dispatcharr: Bump to 4G RAM [@github-actions[bot]](https://github.com/github-actions[bot]) ([#17302](https://github.com/community-scripts/ProxmoxVE/pull/17302))
- navidrome: repair root-owned data folders left by 0.61.x [@MickLesk](https://github.com/MickLesk) ([#17275](https://github.com/community-scripts/ProxmoxVE/pull/17275))
- tor-snowflake: read the Go version from the module root [@MickLesk](https://github.com/MickLesk) ([#17276](https://github.com/community-scripts/ProxmoxVE/pull/17276))
- docmost: stop corepack asking for confirmation during the build [@MickLesk](https://github.com/MickLesk) ([#17282](https://github.com/community-scripts/ProxmoxVE/pull/17282))
- #### ✨ New Features
- Refactor: TrueNAS VM (core / improve functions / performance) [@MickLesk](https://github.com/MickLesk) ([#17277](https://github.com/community-scripts/ProxmoxVE/pull/17277))
- Frigate: Bump to 0.18.0 [@MickLesk](https://github.com/MickLesk) ([#17273](https://github.com/community-scripts/ProxmoxVE/pull/17273))
- Refactor: HomeAssistant-OS (core / improve functions / performance) [@MickLesk](https://github.com/MickLesk) ([#17281](https://github.com/community-scripts/ProxmoxVE/pull/17281))
### 💾 Core
- Read the IGC version compute-runtime pins, instead of taking the newest [@MickLesk](https://github.com/MickLesk) ([core#43](https://github.com/community-scripts/core/pull/43))
- Install the Intel driver dependency before the .deb that needs it [@MickLesk](https://github.com/MickLesk) ([core#42](https://github.com/community-scripts/core/pull/42))
### 📚 Documentation
- pocketbase-bot: accept the var_ names and two missing fields [@MickLesk](https://github.com/MickLesk) ([#17305](https://github.com/community-scripts/ProxmoxVE/pull/17305))
## 2026-09-15
### 🆕 New Scripts
- valhalla ([#17231](https://github.com/community-scripts/ProxmoxVE/pull/17231))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- borg-ui: missing dependency `sshpass` [@christian-forgacs](https://github.com/christian-forgacs) ([#17286](https://github.com/community-scripts/ProxmoxVE/pull/17286))
- tracearr: copy packages/emails into the deploy tree [@connorgallopo](https://github.com/connorgallopo) ([#17268](https://github.com/community-scripts/ProxmoxVE/pull/17268))
- Immich: Pin to v3.2.1 [@vhsdream](https://github.com/vhsdream) ([#17264](https://github.com/community-scripts/ProxmoxVE/pull/17264))
### 💾 Core
- Add vm_extract_image, which two VM scripts already call [@MickLesk](https://github.com/MickLesk) ([core#40](https://github.com/community-scripts/core/pull/40))
- Releases: rank releases on their numbers, not on sort -V over the raw tag [@MickLesk](https://github.com/MickLesk) ([core#39](https://github.com/community-scripts/core/pull/39))
### 🧰 Tools
- #### 🔧 Refactor
- Refactor: monitor-all (decide on flag values, not on key presence) [@MickLesk](https://github.com/MickLesk) ([#17261](https://github.com/community-scripts/ProxmoxVE/pull/17261))
## 2026-09-14
### 🆕 New Scripts
@@ -1313,4 +1071,148 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- bookorbit: bump default RAM to prevent tsc OOM segfault during nest build [@MickLesk](https://github.com/MickLesk) ([#16649](https://github.com/community-scripts/ProxmoxVE/pull/16649))
- immich: split jpegli into its own build step, resolve library revisions dynamically [@MickLesk](https://github.com/MickLesk) ([#16656](https://github.com/community-scripts/ProxmoxVE/pull/16656))
- tdarr: make unzip non-interactive to prevent hang [@MickLesk](https://github.com/MickLesk) ([#16648](https://github.com/community-scripts/ProxmoxVE/pull/16648))
- immich: fix jpegli patch path after upstream base-images split jpegli from libjxl [@MickLesk](https://github.com/MickLesk) ([#16647](https://github.com/community-scripts/ProxmoxVE/pull/16647))
- immich: fix jpegli patch path after upstream base-images split jpegli from libjxl [@MickLesk](https://github.com/MickLesk) ([#16647](https://github.com/community-scripts/ProxmoxVE/pull/16647))
## 2026-08-20
### 🆕 New Scripts
- Umbraco ([#16621](https://github.com/community-scripts/ProxmoxVE/pull/16621))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- storyteller: fix build paths for upstream applications/web/ monorepo restructure [@MickLesk](https://github.com/MickLesk) ([#16627](https://github.com/community-scripts/ProxmoxVE/pull/16627))
- tubearchivist: add bgutil POT provider and update yt-dlp to nightly [@CrazyWolf13](https://github.com/CrazyWolf13) ([#16622](https://github.com/community-scripts/ProxmoxVE/pull/16622))
- networkoptimizer: preseed iperf3 debconf question to prevent hang install [@MickLesk](https://github.com/MickLesk) ([#16626](https://github.com/community-scripts/ProxmoxVE/pull/16626))
- scanopy: limit cargo build parallelism to prevent OOM kill [@MickLesk](https://github.com/MickLesk) ([#16623](https://github.com/community-scripts/ProxmoxVE/pull/16623))
- baikal: fall back to composer update when lock doesn't match [@MickLesk](https://github.com/MickLesk) ([#16625](https://github.com/community-scripts/ProxmoxVE/pull/16625))
- #### 💥 Breaking Changes
- update: various script to debian 13 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#16525](https://github.com/community-scripts/ProxmoxVE/pull/16525))
### 🧰 Tools
- #### 🔧 Refactor
- copyparty: use fetch_and_deploy_gh_release for version tracking [@MickLesk](https://github.com/MickLesk) ([#16624](https://github.com/community-scripts/ProxmoxVE/pull/16624))
## 2026-08-19
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix: clean yarn cache after mealie frontend build to prevent disk growth [@bferd](https://github.com/bferd) ([#16609](https://github.com/community-scripts/ProxmoxVE/pull/16609))
- VictoriaMetrics: use github_api_call for release lookups so GITHUB_TOKEN is honored [@angusmaul](https://github.com/angusmaul) ([#16607](https://github.com/community-scripts/ProxmoxVE/pull/16607))
- Increase default RAM allocation for Gatus [@rmpratt1](https://github.com/rmpratt1) ([#16601](https://github.com/community-scripts/ProxmoxVE/pull/16601))
## 2026-08-18
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- romm: add missing /decode and /cache Angie locations for multi-file downloads [@MickLesk](https://github.com/MickLesk) ([#16589](https://github.com/community-scripts/ProxmoxVE/pull/16589))
- odoo: use patched wkhtmltopdf build [@MickLesk](https://github.com/MickLesk) ([#16590](https://github.com/community-scripts/ProxmoxVE/pull/16590))
- #### 💥 Breaking Changes
- Breaking Change: Migrate all "Alpine" Scripts to Normal CT's [@MickLesk](https://github.com/MickLesk) ([#16587](https://github.com/community-scripts/ProxmoxVE/pull/16587))
## 2026-08-17
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- keycloak: remove invalid ExecStop, kc.sh has no stop subcommand [@MickLesk](https://github.com/MickLesk) ([#16563](https://github.com/community-scripts/ProxmoxVE/pull/16563))
- Pin ownfoil release to version 2.3.0 [@MickLesk](https://github.com/MickLesk) ([#16574](https://github.com/community-scripts/ProxmoxVE/pull/16574))
- kometa: add git, needed by requirements.txt's git dependency [@MickLesk](https://github.com/MickLesk) ([#16562](https://github.com/community-scripts/ProxmoxVE/pull/16562))
- fix romm: deploy EmulatorJS and Ruffle after the frontend build [@angusmaul](https://github.com/angusmaul) ([#16571](https://github.com/community-scripts/ProxmoxVE/pull/16571))
- #### 🔧 Refactor
- patchmon: fetch only SCAP datastream XMLs [@MickLesk](https://github.com/MickLesk) ([#16565](https://github.com/community-scripts/ProxmoxVE/pull/16565))
- teslamate: use precompiled Elixir [@MickLesk](https://github.com/MickLesk) ([#16561](https://github.com/community-scripts/ProxmoxVE/pull/16561))
## 2026-08-16
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- [FIX] Shelfmark: internal bypasser never starts under the gevent worker [@robbiet480](https://github.com/robbiet480) ([#16495](https://github.com/community-scripts/ProxmoxVE/pull/16495))
- tubearchivist: fix: enhance update script [@CrazyWolf13](https://github.com/CrazyWolf13) ([#16521](https://github.com/community-scripts/ProxmoxVE/pull/16521))
- tracktor: build with pnpm using upstream's frozen lockfile [@MickLesk](https://github.com/MickLesk) ([#16530](https://github.com/community-scripts/ProxmoxVE/pull/16530))
- wallos: run db migration after apache reload on update [@MickLesk](https://github.com/MickLesk) ([#16528](https://github.com/community-scripts/ProxmoxVE/pull/16528))
- #### 🔧 Refactor
- networkoptimizer: also build uwnspeedtest binary for server arch [@MickLesk](https://github.com/MickLesk) ([#16531](https://github.com/community-scripts/ProxmoxVE/pull/16531))
### 🗑️ Deleted Scripts
- Remove: Jeedom [@MickLesk](https://github.com/MickLesk) ([#16536](https://github.com/community-scripts/ProxmoxVE/pull/16536))
- Remove: Swizzin [@MickLesk](https://github.com/MickLesk) ([#16535](https://github.com/community-scripts/ProxmoxVE/pull/16535))
- Remove: NocoDB [@MickLesk](https://github.com/MickLesk) ([#16533](https://github.com/community-scripts/ProxmoxVE/pull/16533))
### 💾 Core
- #### 🔧 Refactor
- core: skip mount points during backup and clean installs [@MickLesk](https://github.com/MickLesk) ([#16532](https://github.com/community-scripts/ProxmoxVE/pull/16532))
### 🧰 Tools
- #### 🐞 Bug Fixes
- cronmaster: back up scripts, data and snippets folders on update [@MickLesk](https://github.com/MickLesk) ([#16529](https://github.com/community-scripts/ProxmoxVE/pull/16529))
## 2026-08-15
### 🆕 New Scripts
- Securo ([#16518](https://github.com/community-scripts/ProxmoxVE/pull/16518))
- ntopng ([#16387](https://github.com/community-scripts/ProxmoxVE/pull/16387))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- AdventureLog: remove pnpm build-allowlist override causing pnpm 10.33 conflict [@MickLesk](https://github.com/MickLesk) ([#16478](https://github.com/community-scripts/ProxmoxVE/pull/16478))
- #### ✨ New Features
- PatchMon: add ssg-content [@MickLesk](https://github.com/MickLesk) ([#16481](https://github.com/community-scripts/ProxmoxVE/pull/16481))
## 2026-08-14
### 🆕 New Scripts
- RSS-Bridge ([#16471](https://github.com/community-scripts/ProxmoxVE/pull/16471))
- GoDoxy ([#16470](https://github.com/community-scripts/ProxmoxVE/pull/16470))
- Mumble ([#16474](https://github.com/community-scripts/ProxmoxVE/pull/16474))
- Fleet ([#16472](https://github.com/community-scripts/ProxmoxVE/pull/16472))
- Newt ([#16473](https://github.com/community-scripts/ProxmoxVE/pull/16473))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- calibre-web: install as package for 0.6.27's src-layout restructure [@MickLesk](https://github.com/MickLesk) ([#16480](https://github.com/community-scripts/ProxmoxVE/pull/16480))
- Wanderer: Refactor of Services / Installation / Paths [@johanngrobe](https://github.com/johanngrobe) ([#16487](https://github.com/community-scripts/ProxmoxVE/pull/16487))
- pelican-panel: set APP_URL to container IP [@MickLesk](https://github.com/MickLesk) ([#16488](https://github.com/community-scripts/ProxmoxVE/pull/16488))
- fix(ampache): update to PHP 8.5 asset, auto-upgrade PHP on update [@CervezaStallone](https://github.com/CervezaStallone) ([#16484](https://github.com/community-scripts/ProxmoxVE/pull/16484))
- #### ✨ New Features
- projectsend: rewrite for 2.0.0 (Laravel, nginx, MariaDB) [@MickLesk](https://github.com/MickLesk) ([#16477](https://github.com/community-scripts/ProxmoxVE/pull/16477))
- Homepage v2.0 [@vhsdream](https://github.com/vhsdream) ([#16500](https://github.com/community-scripts/ProxmoxVE/pull/16500))
- #### 🔧 Refactor
- Refactor: PowerDNS move poweradmin database outside the web root [@MickLesk](https://github.com/MickLesk) ([#16476](https://github.com/community-scripts/ProxmoxVE/pull/16476))
- paperless-ngx: run services with uv --no-sync to avoid startup network dependency [@MickLesk](https://github.com/MickLesk) ([#16479](https://github.com/community-scripts/ProxmoxVE/pull/16479))
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
fi
setup_mariadb
if check_for_gh_release "2fauth" "Bubka/2FAuth"; then
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_info "Creating Backup"
-1
View File
@@ -40,7 +40,6 @@ function update_script() {
cp -r /tmp/dist/* /usr/share/nginx/html
rm -rf /tmp/dist
rm -f it-tools.zip
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated successfully!"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating Apache Cassandra"
apt_update_safe
$STD apt update
$STD apt install -y --only-upgrade cassandra cassandra-tools
msg_ok "Updated Apache Cassandra"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating Apache CouchDB"
apt_update_safe
$STD apt-get update
$STD apt-get install -y --only-upgrade couchdb
msg_ok "Updated Apache CouchDB"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating Apt-Cacher-NG"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated Apt-Cacher-NG"
msg_ok "Updated successfully!"
+11 -48
View File
@@ -13,7 +13,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_version="${var_version:-12}"
var_arm64="${var_arm64:-yes}"
var_unprivileged="${var_unprivileged:-1}"
@@ -31,61 +31,24 @@ function update_script() {
exit
fi
NODE_VERSION="22" setup_nodejs
setup_uv
NODE_VERSION="22" NODE_MODULE="@postlight/parser@latest,single-file-cli@latest" setup_nodejs
PYTHON_VERSION="3.13" setup_uv
ensure_dependencies chromium ripgrep tesseract-ocr tesseract-ocr-eng imagemagick ffmpeg unzip wget
ensure_dependencies chromium
msg_info "Stopping Service"
systemctl stop archivebox
msg_ok "Stopped Service"
# Earlier installs used python3.11, which caps ArchiveBox at 0.7.4.
if [[ ! -x /opt/archivebox/venv/bin/archivebox ]]; then
msg_info "Moving ArchiveBox to its own Python 3.13 environment"
# The distro interpreter first: a uv-managed one lands where the service user cannot exec it.
local py="/usr/bin/python3.13"
if [[ ! -x "$py" ]]; then
ensure_dependencies python3.13 || true
fi
if [[ ! -x "$py" ]]; then
$STD uv python install --install-dir /opt/archivebox/python 3.13
py="$(UV_PYTHON_INSTALL_DIR=/opt/archivebox/python uv python find 3.13)"
fi
$STD uv venv --python "$py" /opt/archivebox/venv
# Keep whatever port this container already answers on, or a reverse proxy in front
# of it would silently stop resolving.
local port
port="$(awk -F: '/^ExecStart=/ {print $NF}' /etc/systemd/system/archivebox.service 2>/dev/null)"
[[ "$port" =~ ^[0-9]+$ ]] || port=5797
cat <<EOF >/etc/systemd/system/archivebox.service
[Unit]
Description=ArchiveBox Server
After=network.target
[Service]
User=archivebox
WorkingDirectory=/opt/archivebox/data
ExecStart=/opt/archivebox/venv/bin/archivebox server 0.0.0.0:${port}
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
msg_ok "Moved ArchiveBox to its own Python 3.13 environment (port ${port})"
fi
msg_info "Upgrading Playwright"
$STD uv pip install playwright --system --break-system-packages
$STD playwright install-deps chromium
msg_ok "Upgraded Playwright"
msg_info "Updating ArchiveBox"
$STD uv pip install --python /opt/archivebox/venv/bin/python --upgrade archivebox
chown -R archivebox:archivebox /opt/archivebox
# Without this a shell still reaches the old 0.7.4 entry point against a 0.9 collection.
ln -sf /opt/archivebox/venv/bin/archivebox /usr/local/bin/archivebox
cd /opt/archivebox/data
$STD sudo -u archivebox /opt/archivebox/venv/bin/archivebox init
# npm refuses the git dependency behind @postlight/parser, so treat extractors as optional.
$STD sudo -u archivebox /opt/archivebox/venv/bin/archivebox install ||
msg_warn "Some extractors stayed unavailable - ArchiveBox runs without them"
$STD uv pip install --system --break-system-packages --upgrade --no-reinstall archivebox
sudo -u archivebox archivebox init
msg_ok "Updated ArchiveBox"
msg_info "Starting Service"
@@ -102,4 +65,4 @@ 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 "${GATEWAY}${BGN}http://${IP}:5797/admin/${CL}"
echo -e "${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating Aria2"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated Aria2"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
fi
msg_info "Updating AudiobookShelf"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated AudiobookShelf"
msg_ok "Updated successfully!"
-81
View File
@@ -1,81 +0,0 @@
#!/usr/bin/env bash
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/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/NeptuneHub/AudioMuse-AI
APP="AudioMuse-AI"
var_tags="${var_tags:-music;ai}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-8192}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
#var_arm64="${var_arm64:-no}"
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/audiomuse-ai ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "audiomuse-ai" "NeptuneHub/AudioMuse-AI"; then
msg_info "Stopping Services"
systemctl stop audiomuse-ai audiomuse-ai-worker audiomuse-ai-worker-high audiomuse-ai-janitor audiomuse-ai-control
msg_ok "Stopped Services"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "audiomuse-ai" "NeptuneHub/AudioMuse-AI" "tarball"
AUDIOMUSE_BACKEND="$(cat /opt/audiomuse-ai_data/.backend 2>/dev/null || echo cpu)"
REQ_COMMON="common.txt"
case "$AUDIOMUSE_BACKEND" in
gpu)
REQ_ACCEL="gpu.txt"
[[ "$(uname -m)" == "aarch64" ]] && REQ_ACCEL="gpu-arm64.txt"
;;
cpu-noavx2)
REQ_COMMON="common-noavx2.txt"
REQ_ACCEL="cpu-noavx2.txt"
;;
*)
REQ_ACCEL="cpu.txt"
;;
esac
msg_info "Updating Python Environment (${AUDIOMUSE_BACKEND})"
cd /opt/audiomuse-ai
$STD uv venv --seed --python 3.12 /opt/audiomuse-ai/.venv
$STD uv pip install --python /opt/audiomuse-ai/.venv \
-r "/opt/audiomuse-ai/requirements/${REQ_COMMON}" \
-r "/opt/audiomuse-ai/requirements/${REQ_ACCEL}"
msg_ok "Updated Python Environment (${AUDIOMUSE_BACKEND})"
msg_info "Starting Services"
systemctl start audiomuse-ai audiomuse-ai-worker audiomuse-ai-worker-high audiomuse-ai-janitor audiomuse-ai-control
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 "${GATEWAY}${BGN}http://${IP}:8000${CL}"
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
fi
if check_for_gh_release "authelia" "authelia/authelia"; then
apt_update_safe
$STD apt update
$STD apt -y upgrade
fetch_and_deploy_gh_release "authelia" "authelia/authelia" "binary"
msg_ok "Updated successfully!"
+4 -4
View File
@@ -43,12 +43,13 @@ function update_script() {
ensure_dependencies crossbuild-essential-$(arch_resolve) gcc-$(arch_resolve "x86-64" "aarch64")-linux-gnu cmake clang libunwind-18-dev
msg_ok "Update dependencies"
NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs
NODE_VERSION="26" NODE_MODULE=pnpm@11 setup_nodejs
$STD uv cache clean
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" setup_uv
RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust
setup_yq
AUTHENTIK_VERSION="version/2026.8.3"
AUTHENTIK_VERSION="version/2026.8.2"
# Source: https://github.com/goauthentik/fips/blob/main/Makefile#L26
XMLSEC_VERSION="1.3.12"
@@ -94,7 +95,6 @@ function update_script() {
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik"
UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" UV_PROJECT_DIR="/opt/authentik" setup_uv
GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go
msg_info "Configuring rust"
@@ -106,7 +106,7 @@ function update_script() {
msg_info "Updating web"
export NODE_ENV="production"
cd /opt/authentik
$STD node ./scripts/node/lint-runtime.ts ./web
$STD node ./scripts/node/lint-runtime.mjs ./web
cd /opt/authentik/web
$STD pnpm install --frozen-lockfile
$STD pnpm run build
+2 -1
View File
@@ -31,6 +31,8 @@ function update_script() {
exit
fi
setup_uv
RELEASE=$(get_latest_codeberg_release "gelbphoenix/autocaliweb")
if check_for_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb"; then
msg_info "Stopping Services"
@@ -41,7 +43,6 @@ function update_script() {
export VIRTUAL_ENV="${INSTALL_DIR}/venv"
$STD tar -cf ~/autocaliweb_bkp.tar "$INSTALL_DIR"/{metadata_change_logs,dirs.json,.env,scripts/ingest_watcher.sh,scripts/auto_zipper_wrapper.sh,scripts/metadata_change_detector_wrapper.sh}
fetch_and_deploy_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
setup_uv $INSTALL_DIR
msg_info "Updating Autocaliweb"
cd "$INSTALL_DIR"
-1
View File
@@ -39,7 +39,6 @@ function update_script() {
create_backup /opt/baserow/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball"
UV_PROJECT_DIR="/opt/baserow/backend" setup_uv
restore_backup
msg_info "Configuring Baserow"
-1
View File
@@ -40,7 +40,6 @@ function update_script() {
create_backup /opt/beaverhabits/.user
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/beaverhabits" setup_uv
msg_info "Syncing Dependencies"
cd /opt/beaverhabits
-8
View File
@@ -32,14 +32,6 @@ function update_script() {
exit
fi
if grep -q -- '--workers 2' /etc/systemd/system/borg-ui.service 2>/dev/null; then
msg_info "Reducing Service to a single worker"
sed -i 's/--workers 2/--workers 1/' /etc/systemd/system/borg-ui.service
systemctl daemon-reload
systemctl try-restart borg-ui
msg_ok "Reduced Service to a single worker"
fi
if check_for_gh_release "borg-ui" "karanhudia/borg-ui"; then
msg_info "Stopping Service"
systemctl stop borg-ui
+1 -1
View File
@@ -39,7 +39,7 @@ Package: bunkerweb
Pin: version ${RELEASE}
Pin-Priority: 1001
EOF
apt_update_safe
$STD apt update
$STD apt-mark unhold bunkerweb nginx
$STD apt install -y --allow-downgrades bunkerweb="${RELEASE}"
msg_ok "Updated BunkerWeb"
-1
View File
@@ -37,7 +37,6 @@ function update_script() {
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest"
UV_PROJECT_DIR="/opt/Byparr" setup_uv
if ! dpkg -l | grep -q ffmpeg; then
msg_info "Installing dependencies"
+1 -1
View File
@@ -40,7 +40,7 @@ update_deb_based() {
fi
msg_info "Updating Caddy LXC"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated Caddy LXC"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated ${APP} LXC"
msg_ok "Updated successfully!"
+1 -12
View File
@@ -32,18 +32,7 @@ function update_script() {
exit
fi
ensure_dependencies libjpeg-dev poppler-utils file locales
msg_info "Generating Locales"
for l in cs_CZ de_DE en_GB en_US es_ES fr_FR id_ID it_IT ja_JP ko_KR \
pl_PL pt_BR ru_RU tr_TR uk_UA zh_CN zh_TW; do
sed -i "s/^# *${l}.UTF-8 UTF-8/${l}.UTF-8 UTF-8/" /etc/locale.gen
done
$STD locale-gen
if ! grep -q "^LC_ALL=" /opt/changedetection/.env 2>/dev/null; then
echo "LC_ALL=en_US.UTF-8" >>/opt/changedetection/.env
fi
msg_ok "Generated Locales"
ensure_dependencies libjpeg-dev
NODE_VERSION="24" setup_nodejs
+2 -2
View File
@@ -9,8 +9,8 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
APP="Cloudflare-DDNS"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-3}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating $APP LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated $APP LXC"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
fi
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated ${APP} LXC"
+1 -1
View File
@@ -46,8 +46,8 @@ function update_script() {
CLEAN_INSTALL=1 fetch_and_deploy_gl_release "Crafty-Controller" "crafty-controller/crafty-4" "tarball" "latest" "/opt/crafty-controller/crafty/crafty-4"
restore_backup
chown -R crafty:crafty /opt/crafty-controller
restore_backup
msg_info "Updating TemurinJDK"
setup_java
+1 -1
View File
@@ -87,10 +87,10 @@ function update_script() {
mkdir -p /opt/databasus/ui/build
cp -r /opt/databasus/frontend/dist/* /opt/databasus/ui/build/
cp -r /opt/databasus/backend/migrations /opt/databasus/
chown -R postgres:postgres /opt/databasus
msg_ok "Updated Databasus"
restore_backup
chown -R postgres:postgres /opt/databasus
if ! grep -q "EnvironmentFile=/.env" /etc/systemd/system/databasus.service; then
msg_info "Updating Service"
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
fi
msg_info "Updating ddclient"
apt_update_safe
$STD apt update
$STD apt install --only-upgrade -y ddclient
$STD systemctl restart ddclient
msg_ok "Updated ddclient"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating $APP LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated $APP LXC"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating deCONZ"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated deCONZ"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
fi
msg_info "Updating Defguard"
apt_update_safe
$STD apt update
$STD apt install -y defguard defguard-proxy
msg_ok "Updated Defguard"
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
fi
msg_info "Updating Deluge"
ensure_dependencies python3-setuptools
apt_update_safe
$STD apt update
$STD pip3 install deluge[all] "pyopenssl<25" --upgrade
msg_ok "Updated Deluge"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
exit
fi
msg_info "Updating Devuan LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated Devuan LXC"
exit
+2 -2
View File
@@ -10,7 +10,7 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
APP="Dispatcharr"
var_tags="${var_tags:-media;arr}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
@@ -32,6 +32,7 @@ function update_script() {
exit
fi
setup_uv
NODE_VERSION="24" setup_nodejs
if [[ -f "/etc/nginx/sites-available/dispatcharr.conf" ]] && ! grep -q "real_forwarded_proto" "/etc/nginx/sites-available/dispatcharr.conf"; then
msg_info "Migrating Nginx Configuration"
@@ -145,7 +146,6 @@ EOF
msg_ok "Backup created: $BACKUP_FILE"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball"
UV_PROJECT_DIR="/opt/dispatcharr" setup_uv
restore_backup
+3 -1
View File
@@ -36,7 +36,7 @@ catch_errors
update_deb_based() {
msg_info "Updating base system"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Base system updated"
@@ -73,3 +73,5 @@ description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Portainer is available as a separate addon. Install it with:${CL}"
echo -e "${GATEWAY}${BGN}bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/addon/portainer.sh)\"${CL}"
-1
View File
@@ -57,7 +57,6 @@ function update_script() {
msg_info "Configuring Docmost"
cd /opt/docmost
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD pnpm install --force
$STD pnpm build
msg_ok "Configured Docmost"
+1 -1
View File
@@ -53,10 +53,10 @@ function update_script() {
msg_info "Updating Domain Monitor"
cd /opt/domain-monitor
$STD composer install
chown -R www-data:www-data /opt/domain-monitor
msg_ok "Updated Domain Monitor"
restore_backup
chown -R www-data:www-data /opt/domain-monitor
msg_info "Restarting Services"
systemctl start apache2
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated successfully!"
exit
+1 -1
View File
@@ -37,7 +37,7 @@ function update_script() {
msg_ok "Service stopped"
msg_info "Updating Debian LXC"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated Debian LXC"
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
fi
msg_info "Updating ${APP}"
apt_update_safe
$STD apt update
$STD apt install -y elasticsearch
msg_ok "Updated ${APP}"
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
msg_info "Updating LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated LXC"
+1 -1
View File
@@ -40,7 +40,7 @@ function update_script() {
"main"
fi
msg_info "Updating evcc LXC"
apt_update_safe
$STD apt update
$STD apt --only-upgrade install -y evcc
msg_ok "Updated successfully!"
exit
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
fi
msg_info "Updating FHEM"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated FHEM"
msg_ok "Updated successfully!"
-1
View File
@@ -39,7 +39,6 @@ function update_script() {
create_backup /opt/fireshare/fireshare.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
UV_PROJECT_DIR="/opt/fireshare" setup_uv
restore_backup
rm -f /usr/local/bin/fireshare
+1 -1
View File
@@ -38,10 +38,10 @@ function update_script() {
create_backup /opt/flatnotes/.env /opt/flatnotes/data
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" setup_nodejs
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball"
PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/flatnotes" setup_uv
restore_backup
+2 -2
View File
@@ -10,8 +10,8 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
APP="Frigate"
var_tags="${var_tags:-nvr}"
var_cpu="${var_cpu:-8}"
var_ram="${var_ram:-6144}"
var_disk="${var_disk:-25}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_arm64="${var_arm64:-no}"
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
fi
msg_info "Updating GitLab (Patience)"
apt_update_safe
$STD apt update
$STD apt install -y gitlab-ce
msg_ok "Updated GitLab"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
fi
msg_info "Updating $APP LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated $APP LXC"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -49,7 +49,7 @@ update_deb_based() {
fi
msg_info "Updating Grafana LXC"
apt_update_safe
$STD apt update
$STD apt --only-upgrade install -y grafana
msg_ok "Updated successfully!"
}
+3 -3
View File
@@ -43,17 +43,17 @@ function update_script() {
MONGO_VERSION="8.2" setup_mongodb
msg_info "Updating Graylog"
apt_update_safe
$STD apt update
$STD apt upgrade -y
curl -fsSL "https://packages.graylog2.org/repo/packages/graylog-7.0-repository_latest.deb" -o "graylog-7.0-repository_latest.deb"
$STD dpkg -i graylog-7.0-repository_latest.deb
apt_update_safe
$STD apt update
ensure_dependencies graylog-server graylog-datanode
rm -f graylog-7.0-repository_latest.deb
msg_ok "Updated Graylog"
elif dpkg --compare-versions "$CURRENT_VERSION" ge "7.0"; then
msg_info "Updating Graylog"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated Graylog"
fi
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
fi
msg_info "Updating ${APP}"
apt_update_safe
$STD apt update
$STD apt install -y haproxy
msg_ok "Updated ${APP}"
-6
View File
@@ -1,6 +0,0 @@
___ ___ __ ___ ___ ____
/ | __ ______/ (_)___ / |/ /_ __________ / | / _/
/ /| |/ / / / __ / / __ \/ /|_/ / / / / ___/ _ \______/ /| | / /
/ ___ / /_/ / /_/ / / /_/ / / / / /_/ (__ ) __/_____/ ___ |_/ /
/_/ |_\__,_/\__,_/_/\____/_/ /_/\__,_/____/\___/ /_/ |_/___/
-6
View File
@@ -1,6 +0,0 @@
____ _ __ __ ___
____ _/ __ )(_) /_ / |/ /___ _____ ____ _____ ____
/ __ `/ __ / / __/_____/ /|_/ / __ `/ __ \/ __ `/ __ `/ _ \
/ /_/ / /_/ / / /_/_____/ / / / /_/ / / / / /_/ / /_/ / __/
\__, /_____/_/\__/ /_/ /_/\__,_/_/ /_/\__,_/\__, /\___/
/_/ /____/
-6
View File
@@ -1,6 +0,0 @@
_ __ ____ ____
| | / /___ _/ / /_ ____ _/ / /___ _
| | / / __ `/ / __ \/ __ `/ / / __ `/
| |/ / /_/ / / / / / /_/ / / / /_/ /
|___/\__,_/_/_/ /_/\__,_/_/_/\__,_/
-6
View File
@@ -1,6 +0,0 @@
__ __ _____ __ _ ____
\ \/ /___ __ _______ / ___/____ ____ / /_(_) __/_ __
\ / __ \/ / / / ___/_____\__ \/ __ \/ __ \/ __/ / /_/ / / /
/ / /_/ / /_/ / / /_____/__/ / /_/ / /_/ / /_/ / __/ /_/ /
/_/\____/\__,_/_/ /____/ .___/\____/\__/_/_/ \__, /
/_/ /____/
+1 -1
View File
@@ -63,7 +63,7 @@ EOF
fi
msg_info "Updating Nodejs"
apt_update_safe
$STD apt update
$STD apt upgrade nodejs -y
msg_ok "Updated Nodejs"
+1 -1
View File
@@ -63,7 +63,7 @@ function update_script() {
fi
if [ "$UPD" == "3" ]; then
msg_info "Installing Home Assistant Community Store (HACS)"
apt_update_safe
$STD apt update
cd /var/lib/docker/volumes/hass_config/_data
$STD bash <(curl -fsSL https://get.hacs.xyz)
msg_ok "Installed Home Assistant Community Store (HACS)"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt install -y homebridge
msg_ok "Updated successfully!"
exit
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
exit
fi
msg_info "Updating $APP LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated $APP LXC"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
exit
fi
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt install -y hyperion
msg_ok "Updated successfully!"
exit
+3 -4
View File
@@ -56,7 +56,7 @@ Pin:release a=testing
Pin-Priority: 450
EOF
[[ -f /etc/apt/preferences.d/immich ]] && rm /etc/apt/preferences.d/immich
apt_update_safe
$STD apt update
msg_ok "Added Debian Testing repo"
fi
@@ -105,7 +105,6 @@ EOF
libraries=("libjxl" "jpegli" "libheif" "libraw" "imagemagick" "libvips")
cd "$BASE_DIR"
msg_warn "Checking for updates to custom image-processing libraries (recompile time: 2-15min per library)"
ensure_dependencies liblcms2-dev libjpeg62-turbo-dev libspng-dev libexif-dev
$STD git pull
for library in "${libraries[@]}"; do
compile_"$library"
@@ -113,7 +112,7 @@ EOF
msg_ok "Image-processing libraries up to date"
fi
RELEASE="v3.2.2"
RELEASE="v3.2.0"
if check_for_gh_release "Immich" "immich-app/immich" "${RELEASE}" "each release is tested individually before the version is updated. Please do not open issues for this"; then
if [[ $(cat ~/.immich) > "2.5.1" ]]; then
msg_info "Enabling Maintenance Mode"
@@ -323,7 +322,7 @@ EOF
[[ ! -f "$GEO_DIR/countryInfo.txt" ]] && curl_with_retry "https://download.geonames.org/export/dump/countryInfo.txt" "countryInfo.txt"
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
ln -sfn "$GEO_DIR" "$APP_DIR/geodata"
ln -s "$GEO_DIR" "$APP_DIR"
[[ ! -f /usr/bin/immich ]] && ln -sf "$APP_DIR"/cli/bin/immich /usr/bin/immich
[[ ! -f /usr/bin/immich-admin ]] && ln -sf "$APP_DIR"/bin/immich-admin /usr/bin/immich-admin
+1 -12
View File
@@ -10,7 +10,7 @@ source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_
APP="ImmichFrame"
var_tags="${var_tags:-photos;slideshow}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
@@ -79,17 +79,6 @@ function update_script() {
restore_backup
chown -R immichframe:immichframe /opt/immichframe
if ! grep -q '^Environment=IMMICHFRAME_ADMIN_PASSWORD=' /etc/systemd/system/immichframe.service; then
msg_info "Setting Admin Password"
ADMIN_PASSWORD=$(openssl rand -hex 16)
sed -i "/^Environment=DOTNET_CONTENTROOT=/a Environment=IMMICHFRAME_ADMIN_PASSWORD=${ADMIN_PASSWORD}" /etc/systemd/system/immichframe.service
cat <<EOF >>~/immichframe.creds
ImmichFrame Admin User: admin
ImmichFrame Admin Password: $ADMIN_PASSWORD
EOF
systemctl daemon-reload
msg_ok "Set Admin Password (see ~/immichframe.creds)"
fi
msg_info "Starting Service"
systemctl start immichframe
+1 -1
View File
@@ -42,7 +42,7 @@ function update_script() {
msg_ok "Created backup"
msg_info "Updating Infisical"
apt_update_safe
$STD apt update
$STD apt install -y infisical-core
$STD infisical-ctl reconfigure
msg_ok "Updated Infisical"
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
fi
msg_info "Updating InfluxDB"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated InfluxDB"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -38,7 +38,7 @@ function update_script() {
fi
msg_info "Updating InvenTree"
apt_update_safe
$STD apt update
$STD apt install --only-upgrade inventree -y
msg_ok "Updated InvenTree"
msg_ok "Updated successfully!"
-1
View File
@@ -54,7 +54,6 @@ function update_script() {
$STD pnpm run build
fi
$STD php artisan migrate --force
$STD php artisan storage:link
$STD php artisan optimize:clear
chown -R www-data:www-data /opt/invoiceshelf
msg_ok "Updated Application"
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
NODE_VERSION="24" NPM_VERSION="11" setup_nodejs
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated successfully!"
exit
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
setup_mariadb
msg_info "Updating ITSM-NG"
apt_update_safe
$STD apt update
$STD apt -y upgrade
chown -R www-data:www-data /var/lib/itsm-ng
mkdir -p /usr/share/itsm-ng/css/palettes
+3 -31
View File
@@ -33,43 +33,15 @@ function update_script() {
if check_for_gh_release "iventoy" "ventoy/PXE"; then
msg_info "Stopping iVentoy"
systemctl stop iventoy
$STD /opt/iventoy/iventoy.sh stop
msg_ok "Stopped iVentoy"
# Only preserve user state; data/iventoy.dat must match the new executable.
create_backup /opt/iventoy/data/config.dat /opt/iventoy/iso /opt/iventoy/user
create_backup /opt/iventoy/data /opt/iventoy/iso
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "iventoy" "ventoy/PXE" "prebuild" "latest" "/opt/iventoy" "iventoy-*-linux-$(arch_resolve x86_64-free arm64-trial).tar.gz"
restore_backup
# Migrate existing services that invoke the Bash launcher with sh.
mkdir -p /etc/systemd/system/iventoy.service.d
cat <<EOF >/etc/systemd/system/iventoy.service.d/launcher.conf
[Service]
ExecStart=
ExecStart=/bin/bash /opt/iventoy/iventoy.sh -R start
ExecStop=
ExecStop=/bin/bash /opt/iventoy/iventoy.sh stop
PIDFile=/run/iventoy.pid
RestartSec=5
EOF
systemctl daemon-reload
msg_info "Starting iVentoy"
systemctl reset-failed iventoy
systemctl start iventoy
# The launcher can return success before the daemon fails initialization.
local i ready=0
for ((i = 0; i < 90; i++)); do
if systemctl is-active --quiet iventoy && curl -fsS --max-time 2 "${IVENTOY_HEALTH_URL:-http://127.0.0.1:26000/}" >/dev/null 2>&1; then
ready=1
break
fi
sleep 2
done
if [[ "$ready" -ne 1 ]]; then
msg_error "iVentoy did not become ready; check journalctl -u iventoy and /opt/iventoy/log/log.txt"
exit 1
fi
$STD /opt/iventoy/iventoy.sh -R start
msg_ok "Started iVentoy"
msg_ok "Updated Successfully"
fi
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
fi
msg_info "Updating Container OS"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated Container OS"
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
JAVA_VERSION="21" setup_java
msg_info "Updating Jenkins"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated Jenkins"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -41,7 +41,7 @@ function update_script() {
fi
msg_info "Updating Jitsi Meet"
apt_update_safe
$STD apt update
$STD apt install -y --only-upgrade \
jitsi-meet \
jicofo \
-12
View File
@@ -38,24 +38,12 @@ function update_script() {
msg_ok "Stopped Services"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball"
UV_PROJECT_DIR="/opt/journiv" setup_uv
msg_info "Updating Python Environment"
cd /opt/journiv
$STD uv sync --locked --no-editable --no-install-project
msg_ok "Updated Python Environment"
NODE_VERSION="24" setup_nodejs
msg_info "Building Frontend"
cd /opt/journiv/frontend
$STD npm ci
$STD npm run build
cd /opt/journiv
msg_ok "Built Frontend"
grep -q '^ALLOW_INSECURE_COOKIE_AUTH_OVER_HTTP=' /opt/journiv.env ||
echo 'ALLOW_INSECURE_COOKIE_AUTH_OVER_HTTP=true' >>/opt/journiv.env
msg_info "Running Database Migrations"
set -a
source /opt/journiv.env
+1 -1
View File
@@ -44,7 +44,7 @@ function update_script() {
msg_ok "Stopped Service"
msg_info "Updating packages"
apt_update_safe
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated packages"
-1
View File
@@ -42,7 +42,6 @@ function update_script() {
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl"
rm -rf /opt/kitchenowl/web
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz"
PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/kitchenowl/backend" setup_uv
restore_backup
sed -i 's/default=True/default=False/' /opt/kitchenowl/backend/wsgi.py
+1 -1
View File
@@ -35,7 +35,7 @@ function update_script() {
CURRENT=$(dpkg-query -W -f='${Version}' kiwix-tools 2>/dev/null)
msg_info "Updating Package Index"
apt_update_safe
$STD apt update
msg_ok "Updated Package Index"
CANDIDATE=$(apt-cache policy kiwix-tools | awk '/Candidate:/{print $2}')
-1
View File
@@ -40,7 +40,6 @@ function update_script() {
create_backup /opt/linkding/data /opt/linkding/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
UV_PROJECT_DIR="/opt/linkding" setup_uv
restore_backup
ln -sf /usr/lib/$(arch_resolve "x86_64-linux-gnu" "aarch64-linux-gnu")/mod_icu.so /opt/linkding/libicu.so
+1 -1
View File
@@ -38,7 +38,7 @@ function update_script() {
msg_info "Stopped Service"
msg_info "Updating Container"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated Container"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating lldap"
apt_update_safe
$STD apt update
$STD apt upgrade -y lldap
msg_ok "Updated lldap"
msg_ok "Updated successfully!"
+1 -1
View File
@@ -51,7 +51,7 @@ update_deb_based() {
msg_ok "Stopped Loki"
msg_info "Updating Loki"
apt_update_safe
$STD apt update
$STD apt install -y --only-upgrade loki
msg_ok "Updated Loki"
+1 -1
View File
@@ -40,7 +40,7 @@ update_deb_based() {
fi
setup_mariadb
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated successfully!"
}
+1 -1
View File
@@ -30,7 +30,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
apt_update_safe
$STD apt update
$STD apt upgrade -y
NODE_VERSION="24" NODE_MODULE="matterbridge" setup_nodejs
msg_ok "Updated successfully!"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated successfully!"
exit
+1 -1
View File
@@ -32,6 +32,7 @@ function update_script() {
exit
fi
if check_for_gh_release "mealie" "mealie-recipes/mealie"; then
PYTHON_VERSION="3.12" setup_uv
msg_info "Stopping Service"
systemctl stop mealie
@@ -43,7 +44,6 @@ function update_script() {
msg_ok "Backup completed"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball"
PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/mealie" setup_uv
msg_info "Restoring Configuration"
mv -f /opt/mealie.env /opt/mealie/mealie.env
+2 -1
View File
@@ -31,13 +31,14 @@ function update_script() {
exit
fi
setup_uv
if check_for_gh_release "mediamanager" "maxdorninger/MediaManager"; then
msg_info "Stopping Service"
systemctl stop mediamanager
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager"
UV_PROJECT_DIR="/opt/mediamanager" setup_uv
msg_info "Updating MediaManager"
MM_DIR="/opt/mm"
export CONFIG_DIR="${MM_DIR}/config"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated successfully!"
exit
-1
View File
@@ -53,7 +53,6 @@ function update_script() {
create_backup /opt/metube/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
UV_PROJECT_DIR="/opt/metube" setup_uv
restore_backup
+1 -1
View File
@@ -37,7 +37,7 @@ function update_script() {
msg_ok "Stopped Service"
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated ${APP} LXC"
+1 -1
View File
@@ -32,7 +32,7 @@ function update_script() {
fi
msg_info "Updating MongoDB LXC"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated successfully!"
exit
+1 -1
View File
@@ -41,7 +41,7 @@ function update_script() {
fi
msg_info "Updating MQTT"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated successfully!"
exit
+1 -1
View File
@@ -40,7 +40,7 @@ function update_script() {
create_backup /etc/mumble/mumble-server.ini /var/lib/mumble-server/mumble-server.sqlite
msg_info "Updating Mumble"
apt_update_safe
$STD apt update
$STD apt install -y mumble-server
cat <<EOF >~/.mumble
$(get_latest_github_release "mumble-voip/mumble")
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
exit
fi
msg_info "Updating ${APP} LXC"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated successfully!"
exit
+8 -2
View File
@@ -38,8 +38,14 @@ function update_script() {
fetch_and_deploy_gh_release "navidrome" "navidrome/navidrome" "binary"
find /var/lib/navidrome/cache /var/lib/navidrome/artwork /var/lib/navidrome/plugins \
-maxdepth 0 -type d -user root -exec chown -h navidrome:navidrome {} + 2>/dev/null || true
# The upstream postinstall only chowns the cache directory itself, and only
# on the very first install, so root-owned subdirectories survive upgrades
# and the service can no longer write its artwork there.
if id -u navidrome >/dev/null 2>&1; then
msg_info "Fixing Data Folder Ownership"
chown -R navidrome:navidrome /var/lib/navidrome
msg_ok "Fixed Data Folder Ownership"
fi
msg_info "Starting Services"
systemctl start navidrome
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
JAVA_VERSION="21" setup_java
msg_info "Updating ${APP}"
apt_update_safe
$STD apt update
$STD apt -y upgrade
msg_ok "Updated successfully!"
exit
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
fi
msg_info "Updating Netbird"
apt_update_safe
$STD apt update
$STD apt upgrade -y
msg_ok "Updated successfully!"
exit

Some files were not shown because too many files have changed in this diff Show More