Compare commits

..

11 Commits

Author SHA1 Message Date
CanbiZ (MickLesk) d108daea0f Remove frontend CODEOWNERS, refine PR template
Remove the explicit /frontend/ entry from .github/CODEOWNERS so frontend changes no longer auto-assign @community-scripts/Frontend-Dev. Update the pull request template's "Website update" checklist item to clarify it refers to script metadata (PocketBase/website data) rather than generic website JSON, improving guidance for contributors.
2026-04-15 15:25:59 +02:00
CanbiZ (MickLesk) 487403be61 Refine .gitattributes and clean .gitignore
Improve language/statistics settings and tidy ignore rules: .gitattributes now marks *.func as detectable, excludes ct/headers/* and markdown docs from language stats, classifies generated/config files (json/lock/yml) as linguist-generated, and enforces text=auto eol=lf. .gitignore was reorganized and simplified: .vscode is explicitly preserved (!.vscode/), obsolete debug/temp entries were removed, and overly broad ignores for compiled artifacts and Git metadata were dropped to avoid accidentally hiding repository files.
2026-04-15 15:23:34 +02:00
CanbiZ (MickLesk) 555338a188 Clean up repo configs and docs formatting
Remove language overrides and simplify .gitattributes, delete editor-specific .vscode/.editorconfig, and move .vscode/.shellcheckrc to repository root (.shellcheckrc). Remove Python- and API-specific entries from .gitignore. Reformat markdown tables and minor whitespace fixes in CONTRIBUTING.md and README.md to improve consistency and readability.
2026-04-15 15:20:45 +02:00
CanbiZ (MickLesk) 8839d72200 Update README.md 2026-04-15 15:17:58 +02:00
CanbiZ (MickLesk) 44745c7e28 Update README.md 2026-04-15 15:16:15 +02:00
CanbiZ (MickLesk) e2e30d65c0 Clarify new-script workflow and PR guidance
Require new scripts to be submitted to ProxmoxVED (testing repo) before promotion to ProxmoxVE. Update CONTRIBUTING.md with a step-by-step workflow for adding and testing new scripts in ProxmoxVED, and clarify that bug fixes, improvements, and features for existing scripts belong in this repository. Add security vulnerability link, tighten PR guidance (small, focused PRs; CI expectations), and update README links and wording to reflect the new process.
2026-04-15 15:08:43 +02:00
CanbiZ (MickLesk) d88036e58b Update CONTRIBUTING.md 2026-04-15 14:58:35 +02:00
CanbiZ (MickLesk) 7f9b0abf04 Create CONTRIBUTING.md 2026-04-15 14:57:08 +02:00
CanbiZ (MickLesk) 11072c854a Update README.md 2026-04-15 14:57:03 +02:00
CanbiZ (MickLesk) b4a21b6f88 First Look Readme 2026-04-15 13:11:39 +02:00
CanbiZ (MickLesk) 750d54f0e5 Remove in-repo docs and update README links
Delete the docs/ tree (many documentation files removed) and update README.md badges/links: the contribution link now points to https://community-scripts.org/docs/contribution/readme and a new "Development - ProxmoxVED" badge/link to the ProxmoxVED repo was added. Keeps the changelog badge unchanged. This change centralizes documentation references and removes the local docs files from the repository.
2026-04-15 13:05:00 +02:00
123 changed files with 585 additions and 4490 deletions
-286
View File
@@ -1,289 +1,3 @@
## 2026-04-25
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- VictoriaMetrics: Stop vmagent/vmalert before update [@irishpadres](https://github.com/irishpadres) ([#14016](https://github.com/community-scripts/ProxmoxVE/pull/14016))
- Domain-Monitor: start apache2 after stop instead of reload [@omertahaoztop](https://github.com/omertahaoztop) ([#14019](https://github.com/community-scripts/ProxmoxVE/pull/14019))
- Transmute: Fix ffmpeg detection [@tremor021](https://github.com/tremor021) ([#14008](https://github.com/community-scripts/ProxmoxVE/pull/14008))
- #### 🔧 Refactor
- Refactor: Technitium DNS [@tremor021](https://github.com/tremor021) ([#14013](https://github.com/community-scripts/ProxmoxVE/pull/14013))
## 2026-04-24
### 🆕 New Scripts
- Apprise-API ([#13934](https://github.com/community-scripts/ProxmoxVE/pull/13934))
- fireshare ([#13995](https://github.com/community-scripts/ProxmoxVE/pull/13995))
- Transmute ([#13935](https://github.com/community-scripts/ProxmoxVE/pull/13935))
- Jitsi-Meet ([#13897](https://github.com/community-scripts/ProxmoxVE/pull/13897))
### 🚀 Updated Scripts
- Update wger.sh [@Soppster1029](https://github.com/Soppster1029) ([#13977](https://github.com/community-scripts/ProxmoxVE/pull/13977))
- #### 🔧 Refactor
- Refactor: Ghostfolio [@MickLesk](https://github.com/MickLesk) ([#13990](https://github.com/community-scripts/ProxmoxVE/pull/13990))
## 2026-04-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- mealie: start.sh missing after failed update [@MickLesk](https://github.com/MickLesk) ([#13958](https://github.com/community-scripts/ProxmoxVE/pull/13958))
- twingate-connector: perform real apt upgrade during update flow [@MickLesk](https://github.com/MickLesk) ([#13959](https://github.com/community-scripts/ProxmoxVE/pull/13959))
- #### ✨ New Features
- core: auto-size NODE_OPTIONS heap [@MickLesk](https://github.com/MickLesk) ([#13960](https://github.com/community-scripts/ProxmoxVE/pull/13960))
- #### 🔧 Refactor
- Update scripts to match standard [@tremor021](https://github.com/tremor021) ([#13956](https://github.com/community-scripts/ProxmoxVE/pull/13956))
### 💾 Core
- #### 🐞 Bug Fixes
- tools.func: upgrade Node.js minor/patch on same major version [@MickLesk](https://github.com/MickLesk) ([#13957](https://github.com/community-scripts/ProxmoxVE/pull/13957))
- core: hotfix - prefer silent mode on PHS env conflict [@MickLesk](https://github.com/MickLesk) ([#13951](https://github.com/community-scripts/ProxmoxVE/pull/13951))
- #### 🔧 Refactor
- core: improve system update information / lxc stack upgrade [@MickLesk](https://github.com/MickLesk) ([#13970](https://github.com/community-scripts/ProxmoxVE/pull/13970))
## 2026-04-22
### 🆕 New Scripts
- Dashy ([#13817](https://github.com/community-scripts/ProxmoxVE/pull/13817))
- Mini-QR ([#13902](https://github.com/community-scripts/ProxmoxVE/pull/13902))
- ownfoil ([#13904](https://github.com/community-scripts/ProxmoxVE/pull/13904))
- ERPNext ([#13921](https://github.com/community-scripts/ProxmoxVE/pull/13921))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- add --clear to uv venv in update_script() to prevent interactive prompt [@MickLesk](https://github.com/MickLesk) ([#13926](https://github.com/community-scripts/ProxmoxVE/pull/13926))
### 💾 Core
- #### ✨ New Features
- core: Add PHS_VERBOSE env var to skip verbose mode prompts [@gormanity](https://github.com/gormanity) ([#13797](https://github.com/community-scripts/ProxmoxVE/pull/13797))
## 2026-04-21
### 🆕 New Scripts
- gogs ([#13896](https://github.com/community-scripts/ProxmoxVE/pull/13896))
- anchor ([#13895](https://github.com/community-scripts/ProxmoxVE/pull/13895))
- minthcm ([#13903](https://github.com/community-scripts/ProxmoxVE/pull/13903))
- foldergram ([#13900](https://github.com/community-scripts/ProxmoxVE/pull/13900))
### 🚀 Updated Scripts
- OpenCloud: Pin version to 6.1.0 [@vhsdream](https://github.com/vhsdream) ([#13890](https://github.com/community-scripts/ProxmoxVE/pull/13890))
- #### 🐞 Bug Fixes
- Domain-Locker: Update dependencies [@tremor021](https://github.com/tremor021) ([#13901](https://github.com/community-scripts/ProxmoxVE/pull/13901))
- homelable: fix install failure by correcting password-reset chmod target [@Copilot](https://github.com/Copilot) ([#13894](https://github.com/community-scripts/ProxmoxVE/pull/13894))
- #### ✨ New Features
- FileFlows: Update dependencies [@tremor021](https://github.com/tremor021) ([#13917](https://github.com/community-scripts/ProxmoxVE/pull/13917))
## 2026-04-20
### 🆕 New Scripts
- WhoDB ([#13880](https://github.com/community-scripts/ProxmoxVE/pull/13880))
### 🚀 Updated Scripts
- pangolin: create migration tables before data transfer to prevent role loss [@MickLesk](https://github.com/MickLesk) ([#13874](https://github.com/community-scripts/ProxmoxVE/pull/13874))
- #### 🐞 Bug Fixes
- Pangolin: pre-apply schema migrations to prevent data loss [@MickLesk](https://github.com/MickLesk) ([#13861](https://github.com/community-scripts/ProxmoxVE/pull/13861))
- ActualBudget: change migration messages to warnings [@MickLesk](https://github.com/MickLesk) ([#13860](https://github.com/community-scripts/ProxmoxVE/pull/13860))
- slskd: migrate config keys for 0.25.0 breaking change [@MickLesk](https://github.com/MickLesk) ([#13862](https://github.com/community-scripts/ProxmoxVE/pull/13862))
- #### ✨ New Features
- Wanderer: add pocketbase CLI wrapper with env [@MickLesk](https://github.com/MickLesk) ([#13863](https://github.com/community-scripts/ProxmoxVE/pull/13863))
- feat(homelable): add password reset utility script [@davidsoncabista](https://github.com/davidsoncabista) ([#13798](https://github.com/community-scripts/ProxmoxVE/pull/13798))
- #### 🔧 Refactor
- Several Scripts: Bump NodeJS to align Node.js versions with upstream for 5 scripts [@MickLesk](https://github.com/MickLesk) ([#13875](https://github.com/community-scripts/ProxmoxVE/pull/13875))
- Refactor: PMG Post Install [@MickLesk](https://github.com/MickLesk) ([#13693](https://github.com/community-scripts/ProxmoxVE/pull/13693))
### 💾 Core
- #### 🐞 Bug Fixes
- core: detect Perl breakage after LXC stack upgrade and improve storage validation [@MickLesk](https://github.com/MickLesk) ([#13879](https://github.com/community-scripts/ProxmoxVE/pull/13879))
## 2026-04-19
### 🆕 New Scripts
- nametag ([#13849](https://github.com/community-scripts/ProxmoxVE/pull/13849))
## 2026-04-18
### 🆕 New Scripts
- Dagu ([#13830](https://github.com/community-scripts/ProxmoxVE/pull/13830))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- BabyBuddy: set DJANGO_SETTINGS_MODULE before migrate in update [@MickLesk](https://github.com/MickLesk) ([#13836](https://github.com/community-scripts/ProxmoxVE/pull/13836))
- litellm: add prisma generate and use venv binary directly [@MickLesk](https://github.com/MickLesk) ([#13835](https://github.com/community-scripts/ProxmoxVE/pull/13835))
- yamtrack: add missing nginx.conf sed edits to update script [@MickLesk](https://github.com/MickLesk) ([#13834](https://github.com/community-scripts/ProxmoxVE/pull/13834))
### 🧰 Tools
- #### 🐞 Bug Fixes
- SparkyFitness Garmin Microservice: fix update function [@tomfrenzel](https://github.com/tomfrenzel) ([#13824](https://github.com/community-scripts/ProxmoxVE/pull/13824))
- #### 🔧 Refactor
- Clean-Orphan-LVM: check all cluster nodes for VM/CT configs [@MickLesk](https://github.com/MickLesk) ([#13837](https://github.com/community-scripts/ProxmoxVE/pull/13837))
## 2026-04-17
### 🆕 New Scripts
- step-ca ([#13775](https://github.com/community-scripts/ProxmoxVE/pull/13775))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- core: pin IGC version to compute-runtime compatible tag (Intel GPU) [@MickLesk](https://github.com/MickLesk) ([#13814](https://github.com/community-scripts/ProxmoxVE/pull/13814))
- Fix for bambuddy community script update [@abbasegbeyemi](https://github.com/abbasegbeyemi) ([#13816](https://github.com/community-scripts/ProxmoxVE/pull/13816))
- Umami: Fix update procedure [@tremor021](https://github.com/tremor021) ([#13807](https://github.com/community-scripts/ProxmoxVE/pull/13807))
### 💾 Core
- #### 🐞 Bug Fixes
- core: sanitize mount_fs input — strip spaces and trailing commas [@MickLesk](https://github.com/MickLesk) ([#13806](https://github.com/community-scripts/ProxmoxVE/pull/13806))
- #### 🔧 Refactor
- core: fix some pct create issues (telemetry) + cleanup [@MickLesk](https://github.com/MickLesk) ([#13810](https://github.com/community-scripts/ProxmoxVE/pull/13810))
## 2026-04-16
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Add pnpm as a dependency to ghost-cli install [@YourFavoriteKyle](https://github.com/YourFavoriteKyle) ([#13789](https://github.com/community-scripts/ProxmoxVE/pull/13789))
### 💾 Core
- #### ✨ New Features
- core: wire ENABLE_MKNOD and ALLOW_MOUNT_FS into LXC features [@MickLesk](https://github.com/MickLesk) ([#13796](https://github.com/community-scripts/ProxmoxVE/pull/13796))
## 2026-04-15
### 🆕 New Scripts
- iGotify ([#13773](https://github.com/community-scripts/ProxmoxVE/pull/13773))
- GitHub-Runner ([#13709](https://github.com/community-scripts/ProxmoxVE/pull/13709))
- Revert "Remove low-install-count CT scripts and installers (#13570)" [@CrazyWolf13](https://github.com/CrazyWolf13) ([#13752](https://github.com/community-scripts/ProxmoxVE/pull/13752))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- [alpine-nextcloud] Update Nginx MIME types to support .mjs files [@GuiltyFox](https://github.com/GuiltyFox) ([#13771](https://github.com/community-scripts/ProxmoxVE/pull/13771))
- Domain Monitor: Fix file ownership after update [@tremor021](https://github.com/tremor021) ([#13759](https://github.com/community-scripts/ProxmoxVE/pull/13759))
- #### 💥 Breaking Changes
- Reitti: refactor scripts for v4 - remove RabbitMQ and Photon [@MickLesk](https://github.com/MickLesk) ([#13728](https://github.com/community-scripts/ProxmoxVE/pull/13728))
- #### 🔧 Refactor
- Semaphore: add BoltDB to SQLite migration [@tremor021](https://github.com/tremor021) ([#13779](https://github.com/community-scripts/ProxmoxVE/pull/13779))
### 📚 Documentation
- cleanup: remove docs/, update README & CONTRIBUTING, fix repo config [@MickLesk](https://github.com/MickLesk) ([#13770](https://github.com/community-scripts/ProxmoxVE/pull/13770))
## 2026-04-14
### 🚀 Updated Scripts
- Immich: Pin photo-processing library revisions [@vhsdream](https://github.com/vhsdream) ([#13748](https://github.com/community-scripts/ProxmoxVE/pull/13748))
- #### 🐞 Bug Fixes
- BentoPDF: Nginx fixes [@tremor021](https://github.com/tremor021) ([#13741](https://github.com/community-scripts/ProxmoxVE/pull/13741))
- Zerobyte: add git to dependencies to fix bun install failure [@Copilot](https://github.com/Copilot) ([#13721](https://github.com/community-scripts/ProxmoxVE/pull/13721))
- alpine-nextcloud-install: do not use deprecated nginx config [@AlexanderStein](https://github.com/AlexanderStein) ([#13726](https://github.com/community-scripts/ProxmoxVE/pull/13726))
- #### ✨ New Features
- Mealie: support v3.15+ Nuxt 4 migration [@MickLesk](https://github.com/MickLesk) ([#13731](https://github.com/community-scripts/ProxmoxVE/pull/13731))
- #### 🔧 Refactor
- Lyrion: correct service name and version file in update script [@MickLesk](https://github.com/MickLesk) ([#13734](https://github.com/community-scripts/ProxmoxVE/pull/13734))
- Changedetection: move env vars from service file to .env [@tremor021](https://github.com/tremor021) ([#13732](https://github.com/community-scripts/ProxmoxVE/pull/13732))
## 2026-04-13
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Slskd: Remove stale Soularr lock file on startup and redirect logs to stderr [@MickLesk](https://github.com/MickLesk) ([#13669](https://github.com/community-scripts/ProxmoxVE/pull/13669))
- Bambuddy: preserve database and archive on update [@Copilot](https://github.com/Copilot) ([#13706](https://github.com/community-scripts/ProxmoxVE/pull/13706))
- #### ✨ New Features
- Immich: Pin version to 2.7.5 [@vhsdream](https://github.com/vhsdream) ([#13715](https://github.com/community-scripts/ProxmoxVE/pull/13715))
- Bytestash: auto backup/restore data on update [@MickLesk](https://github.com/MickLesk) ([#13707](https://github.com/community-scripts/ProxmoxVE/pull/13707))
- OpenCloud: pin version to 6.0.0 [@vhsdream](https://github.com/vhsdream) ([#13691](https://github.com/community-scripts/ProxmoxVE/pull/13691))
- #### 💥 Breaking Changes
- Mealie: pin version to v3.14.0 in install and update scripts [@Copilot](https://github.com/Copilot) ([#13724](https://github.com/community-scripts/ProxmoxVE/pull/13724))
- #### 🔧 Refactor
- core: remove unused TEMP_DIR mktemp leak in build_container / clean sonarqube [@MickLesk](https://github.com/MickLesk) ([#13708](https://github.com/community-scripts/ProxmoxVE/pull/13708))
## 2026-04-12
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Alpine-Wakapi: Remove container checks in update_script function [@MickLesk](https://github.com/MickLesk) ([#13694](https://github.com/community-scripts/ProxmoxVE/pull/13694))
- #### 🔧 Refactor
- IronClaw: Install keychain dependencies and launch in a DBus session [@MickLesk](https://github.com/MickLesk) ([#13692](https://github.com/community-scripts/ProxmoxVE/pull/13692))
- MeTube: Allow pnpm build scripts to fix ERR_PNPM_IGNORED_BUILDS [@MickLesk](https://github.com/MickLesk) ([#13668](https://github.com/community-scripts/ProxmoxVE/pull/13668))
## 2026-04-11
### 🚀 Updated Scripts
+6 -6
View File
@@ -337,8 +337,8 @@ jobs:
if (infoMatch) {
// ── INFO SUBCOMMAND ──────────────────────────────────────────────
const notesArr = readJsonBlob(record.notes);
const methodsArr = readJsonBlob(record.install_methods);
const notesArr = readJsonBlob(record.notes_json);
const methodsArr = readJsonBlob(record.install_methods_json);
const out = [];
out.push('️ **PocketBase Bot**: Info for **`' + slug + '`**\n');
@@ -382,13 +382,13 @@ jobs:
// ── NOTE SUBCOMMAND ──────────────────────────────────────────────
const noteAction = noteMatch[1].toLowerCase();
const noteArgsStr = rest.substring(noteMatch[0].length).trim();
let notesArr = readJsonBlob(record.notes);
let notesArr = readJsonBlob(record.notes_json);
async function patchNotes(arr) {
const res = await request(recordsUrl + '/' + record.id, {
method: 'PATCH',
headers: { 'Authorization': token, 'Content-Type': 'application/json' },
body: JSON.stringify({ notes: arr })
body: JSON.stringify({ notes_json: JSON.stringify(arr) })
});
if (!res.ok) {
await addReaction('-1');
@@ -504,7 +504,7 @@ jobs:
// ── METHOD SUBCOMMAND ────────────────────────────────────────────
const methodArgs = rest.replace(/^method\s*/i, '').trim();
const methodListMode = !methodArgs || methodArgs.toLowerCase() === 'list';
let methodsArr = readJsonBlob(record.install_methods);
let methodsArr = readJsonBlob(record.install_methods_json);
// Method field classification
const RESOURCE_KEYS = { cpu: 'number', ram: 'number', hdd: 'number', os: 'string', version: 'string' };
@@ -526,7 +526,7 @@ jobs:
const res = await request(recordsUrl + '/' + record.id, {
method: 'PATCH',
headers: { 'Authorization': token, 'Content-Type': 'application/json' },
body: JSON.stringify({ install_methods: arr })
body: JSON.stringify({ install_methods_json: arr })
});
if (!res.ok) {
await addReaction('-1');
+328 -243
View File
@@ -35,12 +35,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
@@ -57,7 +51,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
<details>
<summary><h4>April (25 entries)</h4></summary>
<summary><h4>April (11 entries)</h4></summary>
[View April 2026 Changelog](.github/changelogs/2026/04.md)
@@ -448,256 +442,22 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-04-26
### 🆕 New Scripts
- TREK ([#14017](https://github.com/community-scripts/ProxmoxVE/pull/14017))
### 🚀 Updated Scripts
- fix(2fauth): handle stale backup directory on update [@omertahaoztop](https://github.com/omertahaoztop) ([#14018](https://github.com/community-scripts/ProxmoxVE/pull/14018))
- #### 🐞 Bug Fixes
- Increase Frigate default CPU cores from 4 to 8 [@MickLesk](https://github.com/MickLesk) ([#14039](https://github.com/community-scripts/ProxmoxVE/pull/14039))
- Technitium DNS: Ensure directories exist before running service [@tremor021](https://github.com/tremor021) ([#14030](https://github.com/community-scripts/ProxmoxVE/pull/14030))
### 💾 Core
- #### 🐞 Bug Fixes
- core: Correct deb822 repository flat path detection [@MickLesk](https://github.com/MickLesk) ([#14037](https://github.com/community-scripts/ProxmoxVE/pull/14037))
## 2026-04-25
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- VictoriaMetrics: Stop vmagent/vmalert before update [@irishpadres](https://github.com/irishpadres) ([#14016](https://github.com/community-scripts/ProxmoxVE/pull/14016))
- Domain-Monitor: start apache2 after stop instead of reload [@omertahaoztop](https://github.com/omertahaoztop) ([#14019](https://github.com/community-scripts/ProxmoxVE/pull/14019))
- Transmute: Fix ffmpeg detection [@tremor021](https://github.com/tremor021) ([#14008](https://github.com/community-scripts/ProxmoxVE/pull/14008))
- #### 🔧 Refactor
- Refactor: Technitium DNS [@tremor021](https://github.com/tremor021) ([#14013](https://github.com/community-scripts/ProxmoxVE/pull/14013))
## 2026-04-24
### 🆕 New Scripts
- Apprise-API ([#13934](https://github.com/community-scripts/ProxmoxVE/pull/13934))
- fireshare ([#13995](https://github.com/community-scripts/ProxmoxVE/pull/13995))
- Transmute ([#13935](https://github.com/community-scripts/ProxmoxVE/pull/13935))
- Jitsi-Meet ([#13897](https://github.com/community-scripts/ProxmoxVE/pull/13897))
### 🚀 Updated Scripts
- Update wger.sh [@Soppster1029](https://github.com/Soppster1029) ([#13977](https://github.com/community-scripts/ProxmoxVE/pull/13977))
- #### 🔧 Refactor
- Refactor: Ghostfolio [@MickLesk](https://github.com/MickLesk) ([#13990](https://github.com/community-scripts/ProxmoxVE/pull/13990))
## 2026-04-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- mealie: start.sh missing after failed update [@MickLesk](https://github.com/MickLesk) ([#13958](https://github.com/community-scripts/ProxmoxVE/pull/13958))
- twingate-connector: perform real apt upgrade during update flow [@MickLesk](https://github.com/MickLesk) ([#13959](https://github.com/community-scripts/ProxmoxVE/pull/13959))
- #### ✨ New Features
- core: auto-size NODE_OPTIONS heap [@MickLesk](https://github.com/MickLesk) ([#13960](https://github.com/community-scripts/ProxmoxVE/pull/13960))
- #### 🔧 Refactor
- Update scripts to match standard [@tremor021](https://github.com/tremor021) ([#13956](https://github.com/community-scripts/ProxmoxVE/pull/13956))
### 💾 Core
- #### 🐞 Bug Fixes
- tools.func: upgrade Node.js minor/patch on same major version [@MickLesk](https://github.com/MickLesk) ([#13957](https://github.com/community-scripts/ProxmoxVE/pull/13957))
- core: hotfix - prefer silent mode on PHS env conflict [@MickLesk](https://github.com/MickLesk) ([#13951](https://github.com/community-scripts/ProxmoxVE/pull/13951))
- #### 🔧 Refactor
- core: improve system update information / lxc stack upgrade [@MickLesk](https://github.com/MickLesk) ([#13970](https://github.com/community-scripts/ProxmoxVE/pull/13970))
## 2026-04-22
### 🆕 New Scripts
- Dashy ([#13817](https://github.com/community-scripts/ProxmoxVE/pull/13817))
- Mini-QR ([#13902](https://github.com/community-scripts/ProxmoxVE/pull/13902))
- ownfoil ([#13904](https://github.com/community-scripts/ProxmoxVE/pull/13904))
- ERPNext ([#13921](https://github.com/community-scripts/ProxmoxVE/pull/13921))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- add --clear to uv venv in update_script() to prevent interactive prompt [@MickLesk](https://github.com/MickLesk) ([#13926](https://github.com/community-scripts/ProxmoxVE/pull/13926))
### 💾 Core
- #### ✨ New Features
- core: Add PHS_VERBOSE env var to skip verbose mode prompts [@gormanity](https://github.com/gormanity) ([#13797](https://github.com/community-scripts/ProxmoxVE/pull/13797))
## 2026-04-21
### 🆕 New Scripts
- gogs ([#13896](https://github.com/community-scripts/ProxmoxVE/pull/13896))
- anchor ([#13895](https://github.com/community-scripts/ProxmoxVE/pull/13895))
- minthcm ([#13903](https://github.com/community-scripts/ProxmoxVE/pull/13903))
- foldergram ([#13900](https://github.com/community-scripts/ProxmoxVE/pull/13900))
### 🚀 Updated Scripts
- OpenCloud: Pin version to 6.1.0 [@vhsdream](https://github.com/vhsdream) ([#13890](https://github.com/community-scripts/ProxmoxVE/pull/13890))
- #### 🐞 Bug Fixes
- Domain-Locker: Update dependencies [@tremor021](https://github.com/tremor021) ([#13901](https://github.com/community-scripts/ProxmoxVE/pull/13901))
- homelable: fix install failure by correcting password-reset chmod target [@Copilot](https://github.com/Copilot) ([#13894](https://github.com/community-scripts/ProxmoxVE/pull/13894))
- #### ✨ New Features
- FileFlows: Update dependencies [@tremor021](https://github.com/tremor021) ([#13917](https://github.com/community-scripts/ProxmoxVE/pull/13917))
## 2026-04-20
### 🆕 New Scripts
- WhoDB ([#13880](https://github.com/community-scripts/ProxmoxVE/pull/13880))
### 🚀 Updated Scripts
- pangolin: create migration tables before data transfer to prevent role loss [@MickLesk](https://github.com/MickLesk) ([#13874](https://github.com/community-scripts/ProxmoxVE/pull/13874))
- #### 🐞 Bug Fixes
- Pangolin: pre-apply schema migrations to prevent data loss [@MickLesk](https://github.com/MickLesk) ([#13861](https://github.com/community-scripts/ProxmoxVE/pull/13861))
- ActualBudget: change migration messages to warnings [@MickLesk](https://github.com/MickLesk) ([#13860](https://github.com/community-scripts/ProxmoxVE/pull/13860))
- slskd: migrate config keys for 0.25.0 breaking change [@MickLesk](https://github.com/MickLesk) ([#13862](https://github.com/community-scripts/ProxmoxVE/pull/13862))
- #### ✨ New Features
- Wanderer: add pocketbase CLI wrapper with env [@MickLesk](https://github.com/MickLesk) ([#13863](https://github.com/community-scripts/ProxmoxVE/pull/13863))
- feat(homelable): add password reset utility script [@davidsoncabista](https://github.com/davidsoncabista) ([#13798](https://github.com/community-scripts/ProxmoxVE/pull/13798))
- #### 🔧 Refactor
- Several Scripts: Bump NodeJS to align Node.js versions with upstream for 5 scripts [@MickLesk](https://github.com/MickLesk) ([#13875](https://github.com/community-scripts/ProxmoxVE/pull/13875))
- Refactor: PMG Post Install [@MickLesk](https://github.com/MickLesk) ([#13693](https://github.com/community-scripts/ProxmoxVE/pull/13693))
### 💾 Core
- #### 🐞 Bug Fixes
- core: detect Perl breakage after LXC stack upgrade and improve storage validation [@MickLesk](https://github.com/MickLesk) ([#13879](https://github.com/community-scripts/ProxmoxVE/pull/13879))
## 2026-04-19
### 🆕 New Scripts
- nametag ([#13849](https://github.com/community-scripts/ProxmoxVE/pull/13849))
## 2026-04-18
### 🆕 New Scripts
- Dagu ([#13830](https://github.com/community-scripts/ProxmoxVE/pull/13830))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- BabyBuddy: set DJANGO_SETTINGS_MODULE before migrate in update [@MickLesk](https://github.com/MickLesk) ([#13836](https://github.com/community-scripts/ProxmoxVE/pull/13836))
- litellm: add prisma generate and use venv binary directly [@MickLesk](https://github.com/MickLesk) ([#13835](https://github.com/community-scripts/ProxmoxVE/pull/13835))
- yamtrack: add missing nginx.conf sed edits to update script [@MickLesk](https://github.com/MickLesk) ([#13834](https://github.com/community-scripts/ProxmoxVE/pull/13834))
### 🧰 Tools
- #### 🐞 Bug Fixes
- SparkyFitness Garmin Microservice: fix update function [@tomfrenzel](https://github.com/tomfrenzel) ([#13824](https://github.com/community-scripts/ProxmoxVE/pull/13824))
- #### 🔧 Refactor
- Clean-Orphan-LVM: check all cluster nodes for VM/CT configs [@MickLesk](https://github.com/MickLesk) ([#13837](https://github.com/community-scripts/ProxmoxVE/pull/13837))
## 2026-04-17
### 🆕 New Scripts
- step-ca ([#13775](https://github.com/community-scripts/ProxmoxVE/pull/13775))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- core: pin IGC version to compute-runtime compatible tag (Intel GPU) [@MickLesk](https://github.com/MickLesk) ([#13814](https://github.com/community-scripts/ProxmoxVE/pull/13814))
- Fix for bambuddy community script update [@abbasegbeyemi](https://github.com/abbasegbeyemi) ([#13816](https://github.com/community-scripts/ProxmoxVE/pull/13816))
- Umami: Fix update procedure [@tremor021](https://github.com/tremor021) ([#13807](https://github.com/community-scripts/ProxmoxVE/pull/13807))
### 💾 Core
- #### 🐞 Bug Fixes
- core: sanitize mount_fs input — strip spaces and trailing commas [@MickLesk](https://github.com/MickLesk) ([#13806](https://github.com/community-scripts/ProxmoxVE/pull/13806))
- #### 🔧 Refactor
- core: fix some pct create issues (telemetry) + cleanup [@MickLesk](https://github.com/MickLesk) ([#13810](https://github.com/community-scripts/ProxmoxVE/pull/13810))
## 2026-04-16
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Add pnpm as a dependency to ghost-cli install [@YourFavoriteKyle](https://github.com/YourFavoriteKyle) ([#13789](https://github.com/community-scripts/ProxmoxVE/pull/13789))
### 💾 Core
- #### ✨ New Features
- core: wire ENABLE_MKNOD and ALLOW_MOUNT_FS into LXC features [@MickLesk](https://github.com/MickLesk) ([#13796](https://github.com/community-scripts/ProxmoxVE/pull/13796))
## 2026-04-15
### 🆕 New Scripts
- iGotify ([#13773](https://github.com/community-scripts/ProxmoxVE/pull/13773))
- GitHub-Runner ([#13709](https://github.com/community-scripts/ProxmoxVE/pull/13709))
- Revert "Remove low-install-count CT scripts and installers (#13570)" [@CrazyWolf13](https://github.com/CrazyWolf13) ([#13752](https://github.com/community-scripts/ProxmoxVE/pull/13752))
- Revert "Remove low-install-count CT scripts and installers (#13570)" [@CrazyWolf13](https://github.com/CrazyWolf13) ([#13752](https://github.com/community-scripts/ProxmoxVE/pull/13752))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- [alpine-nextcloud] Update Nginx MIME types to support .mjs files [@GuiltyFox](https://github.com/GuiltyFox) ([#13771](https://github.com/community-scripts/ProxmoxVE/pull/13771))
- Domain Monitor: Fix file ownership after update [@tremor021](https://github.com/tremor021) ([#13759](https://github.com/community-scripts/ProxmoxVE/pull/13759))
- #### 💥 Breaking Changes
- Reitti: refactor scripts for v4 - remove RabbitMQ and Photon [@MickLesk](https://github.com/MickLesk) ([#13728](https://github.com/community-scripts/ProxmoxVE/pull/13728))
- #### 🔧 Refactor
- Semaphore: add BoltDB to SQLite migration [@tremor021](https://github.com/tremor021) ([#13779](https://github.com/community-scripts/ProxmoxVE/pull/13779))
### 📚 Documentation
- cleanup: remove docs/, update README & CONTRIBUTING, fix repo config [@MickLesk](https://github.com/MickLesk) ([#13770](https://github.com/community-scripts/ProxmoxVE/pull/13770))
## 2026-04-14
### 🚀 Updated Scripts
@@ -1031,4 +791,329 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- #### ✨ New Features
- Refactor/Feature-Bump/Security: Update-Cron-LXCs (Now Local Mode!) [@MickLesk](https://github.com/MickLesk) ([#13339](https://github.com/community-scripts/ProxmoxVE/pull/13339))
- Refactor/Feature-Bump/Security: Update-Cron-LXCs (Now Local Mode!) [@MickLesk](https://github.com/MickLesk) ([#13339](https://github.com/community-scripts/ProxmoxVE/pull/13339))
## 2026-03-26
### 🆕 New Scripts
- BirdNET ([#13313](https://github.com/community-scripts/ProxmoxVE/pull/13313))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: Bump to 2.6.2 | use start.sh in service, ensure DB_HOSTNAME in .env | Fix Rights Issue with ZFS Shares [@MickLesk](https://github.com/MickLesk) ([#13199](https://github.com/community-scripts/ProxmoxVE/pull/13199))
- #### ✨ New Features
- SparkyFitness: add garmin microservice as addon [@tomfrenzel](https://github.com/tomfrenzel) ([#12642](https://github.com/community-scripts/ProxmoxVE/pull/12642))
- Frigate: bump to v0.17.1 & change build order [@MickLesk](https://github.com/MickLesk) ([#13304](https://github.com/community-scripts/ProxmoxVE/pull/13304))
### 💾 Core
- #### 🐞 Bug Fixes
- tools.func: pin npm to 11.11.0 to work around Node.js 22.22.2 regression [@MickLesk](https://github.com/MickLesk) ([#13296](https://github.com/community-scripts/ProxmoxVE/pull/13296))
- #### ✨ New Features
- core: APT/APK Mirror Fallback for CDN Failures [@MickLesk](https://github.com/MickLesk) ([#13316](https://github.com/community-scripts/ProxmoxVE/pull/13316))
- core/tools: replace generic return 1 exit_codes with more specific exit_codes [@MickLesk](https://github.com/MickLesk) ([#13311](https://github.com/community-scripts/ProxmoxVE/pull/13311))
- #### 🔧 Refactor
- core: use /usr/bin/install to prevent function shadowing [@MickLesk](https://github.com/MickLesk) ([#13299](https://github.com/community-scripts/ProxmoxVE/pull/13299))
### 🧰 Tools
- #### 🐞 Bug Fixes
- SparkyFitness-Garmin: fix app name [@tomfrenzel](https://github.com/tomfrenzel) ([#13325](https://github.com/community-scripts/ProxmoxVE/pull/13325))
## 2026-03-25
### 🚀 Updated Scripts
- #### ✨ New Features
- Komodo v2: migrate env vars to v2 and update source [@MickLesk](https://github.com/MickLesk) ([#13262](https://github.com/community-scripts/ProxmoxVE/pull/13262))
### 💾 Core
- #### 🔧 Refactor
- core: make shell command substitutions safe with || true [@MickLesk](https://github.com/MickLesk) ([#13279](https://github.com/community-scripts/ProxmoxVE/pull/13279))
## 2026-03-24
### 🆕 New Scripts
- Homebrew (Addon) ([#13249](https://github.com/community-scripts/ProxmoxVE/pull/13249))
- NextExplorer ([#13252](https://github.com/community-scripts/ProxmoxVE/pull/13252))
### 🚀 Updated Scripts
- #### ✨ New Features
- Turnkey: modernize turnkey.sh with shared libraries [@MickLesk](https://github.com/MickLesk) ([#13242](https://github.com/community-scripts/ProxmoxVE/pull/13242))
- #### 🔧 Refactor
- chore: replace helper-scripts.com with community-scripts.com [@MickLesk](https://github.com/MickLesk) ([#13244](https://github.com/community-scripts/ProxmoxVE/pull/13244))
### 🗑️ Deleted Scripts
- Remove: Booklore [@MickLesk](https://github.com/MickLesk) ([#13265](https://github.com/community-scripts/ProxmoxVE/pull/13265))
## 2026-03-23
### 🚀 Updated Scripts
- #### 🔧 Refactor
- core: harden shell scripts against injection and insecure permissions [@MickLesk](https://github.com/MickLesk) ([#13239](https://github.com/community-scripts/ProxmoxVE/pull/13239))
## 2026-03-22
### 🆕 New Scripts
- versitygw ([#13180](https://github.com/community-scripts/ProxmoxVE/pull/13180))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Adventurelog: pin DRF <3.15 to fix coreapi module removal [@MickLesk](https://github.com/MickLesk) ([#13194](https://github.com/community-scripts/ProxmoxVE/pull/13194))
- #### ✨ New Features
- ConvertX: add libreoffice-writer for ODT/document conversions [@MickLesk](https://github.com/MickLesk) ([#13196](https://github.com/community-scripts/ProxmoxVE/pull/13196))
- #### 🔧 Refactor
- iSponsorblockTV: add AVX CPU check before installation [@MickLesk](https://github.com/MickLesk) ([#13197](https://github.com/community-scripts/ProxmoxVE/pull/13197))
### 💾 Core
- #### 🐞 Bug Fixes
- core: guard against empty IPv6 address in static mode [@MickLesk](https://github.com/MickLesk) ([#13195](https://github.com/community-scripts/ProxmoxVE/pull/13195))
## 2026-03-21
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Anytype-server: wait for MongoDB readiness before rs.initiate() [@MickLesk](https://github.com/MickLesk) ([#13165](https://github.com/community-scripts/ProxmoxVE/pull/13165))
- Frigate: use correct CPU model fallback path [@MickLesk](https://github.com/MickLesk) ([#13164](https://github.com/community-scripts/ProxmoxVE/pull/13164))
- iSponsorBlockTV: Fix release fetching [@tremor021](https://github.com/tremor021) ([#13157](https://github.com/community-scripts/ProxmoxVE/pull/13157))
- Isponsorblocktv: use quoted heredoc to prevent unbound variable error during CLI wrapper creation [@Copilot](https://github.com/Copilot) ([#13146](https://github.com/community-scripts/ProxmoxVE/pull/13146))
- #### ✨ New Features
- Headscale: Enable TUN [@tremor021](https://github.com/tremor021) ([#13158](https://github.com/community-scripts/ProxmoxVE/pull/13158))
### 💾 Core
- #### 🐞 Bug Fixes
- core: add missing -searchdomain/-nameserver prefix in base_settings [@MickLesk](https://github.com/MickLesk) ([#13166](https://github.com/community-scripts/ProxmoxVE/pull/13166))
## 2026-03-20
### 🆕 New Scripts
- iSponsorBlockTV ([#13123](https://github.com/community-scripts/ProxmoxVE/pull/13123))
- Alpine-Wakapi ([#13119](https://github.com/community-scripts/ProxmoxVE/pull/13119))
- teleport ([#13086](https://github.com/community-scripts/ProxmoxVE/pull/13086))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Reactive-Resume: add git dependency for v5.0.13+ [@MickLesk](https://github.com/MickLesk) ([#13133](https://github.com/community-scripts/ProxmoxVE/pull/13133))
- Scanopy: increase default CPU, RAM, and HDD to prevent OOM during Rust build [@Copilot](https://github.com/Copilot) ([#13130](https://github.com/community-scripts/ProxmoxVE/pull/13130))
- #### ✨ New Features
- Immich: v2.6.1 [@vhsdream](https://github.com/vhsdream) ([#13111](https://github.com/community-scripts/ProxmoxVE/pull/13111))
- VM's: add input validation and hostname sanitization to all VM scripts [@MickLesk](https://github.com/MickLesk) ([#12973](https://github.com/community-scripts/ProxmoxVE/pull/12973))
### 🧰 Tools
- #### 🔧 Refactor
- Harden code-server addon install script [@MickLesk](https://github.com/MickLesk) ([#13116](https://github.com/community-scripts/ProxmoxVE/pull/13116))
## 2026-03-19
### 🚀 Updated Scripts
- Owncast: increase default disk size from 2GB to 10GB [@Copilot](https://github.com/Copilot) ([#13079](https://github.com/community-scripts/ProxmoxVE/pull/13079))
- #### 🐞 Bug Fixes
- fix: remove extra backslash to match single quoted here-doc [@Zelnes](https://github.com/Zelnes) ([#13108](https://github.com/community-scripts/ProxmoxVE/pull/13108))
- Reactive-Resume: Upgrade Node to 24 and enable Corepack [@MickLesk](https://github.com/MickLesk) ([#13093](https://github.com/community-scripts/ProxmoxVE/pull/13093))
- Increase Tracearr RAM; derive APP_VERSION [@MickLesk](https://github.com/MickLesk) ([#13087](https://github.com/community-scripts/ProxmoxVE/pull/13087))
- ProjectSend: Update application access URL [@tremor021](https://github.com/tremor021) ([#13078](https://github.com/community-scripts/ProxmoxVE/pull/13078))
- Dispatcharr: use npm install --no-audit --progress=false [@MickLesk](https://github.com/MickLesk) ([#13074](https://github.com/community-scripts/ProxmoxVE/pull/13074))
- core: reorder hwaccel setup and adjust GPU group usermod [@MickLesk](https://github.com/MickLesk) ([#13072](https://github.com/community-scripts/ProxmoxVE/pull/13072))
- #### ✨ New Features
- tools.func: display pin reason in release-check messages [@MickLesk](https://github.com/MickLesk) ([#13095](https://github.com/community-scripts/ProxmoxVE/pull/13095))
- NocoDB: Unpin Version to latest [@MickLesk](https://github.com/MickLesk) ([#13094](https://github.com/community-scripts/ProxmoxVE/pull/13094))
### 💾 Core
- #### 🐞 Bug Fixes
- tools.func: use dpkg-query for reliable JDK version detection [@MickLesk](https://github.com/MickLesk) ([#13101](https://github.com/community-scripts/ProxmoxVE/pull/13101))
### 📚 Documentation
- Update link from helper-scripts.com to community-scripts.org [@adnanvaldes](https://github.com/adnanvaldes) ([#13098](https://github.com/community-scripts/ProxmoxVE/pull/13098))
- github: add PocketBase bot workflow [@MickLesk](https://github.com/MickLesk) ([#13075](https://github.com/community-scripts/ProxmoxVE/pull/13075))
## 2026-03-18
### 🆕 New Scripts
- Alpine-Ntfy [@MickLesk](https://github.com/MickLesk) ([#13048](https://github.com/community-scripts/ProxmoxVE/pull/13048))
- Split-Pro ([#12975](https://github.com/community-scripts/ProxmoxVE/pull/12975))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Tdarr: use curl_with_retry and correct exit code [@MickLesk](https://github.com/MickLesk) ([#13060](https://github.com/community-scripts/ProxmoxVE/pull/13060))
- reitti: fix: v4 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#13039](https://github.com/community-scripts/ProxmoxVE/pull/13039))
- Paperless-NGX: increase default RAM to 3GB [@MickLesk](https://github.com/MickLesk) ([#13018](https://github.com/community-scripts/ProxmoxVE/pull/13018))
- Plex: restart service after update to apply new version [@MickLesk](https://github.com/MickLesk) ([#13017](https://github.com/community-scripts/ProxmoxVE/pull/13017))
- #### ✨ New Features
- tools: centralize GPU group setup via setup_hwaccel [@MickLesk](https://github.com/MickLesk) ([#13044](https://github.com/community-scripts/ProxmoxVE/pull/13044))
- Termix: add guacd build and systemd integration [@MickLesk](https://github.com/MickLesk) ([#12999](https://github.com/community-scripts/ProxmoxVE/pull/12999))
- #### 🔧 Refactor
- Podman: replace deprecated commands with Quadlets [@MickLesk](https://github.com/MickLesk) ([#13052](https://github.com/community-scripts/ProxmoxVE/pull/13052))
- Refactor: Jellyfin repo, ffmpeg package and symlinks [@MickLesk](https://github.com/MickLesk) ([#13045](https://github.com/community-scripts/ProxmoxVE/pull/13045))
- pve-scripts-local: Increase default disk size from 4GB to 10GB [@MickLesk](https://github.com/MickLesk) ([#13009](https://github.com/community-scripts/ProxmoxVE/pull/13009))
### 💾 Core
- #### ✨ New Features
- tools.func Implement pg_cron setup for setup_postgresql [@MickLesk](https://github.com/MickLesk) ([#13053](https://github.com/community-scripts/ProxmoxVE/pull/13053))
- tools.func: Implement check_for_gh_tag function [@MickLesk](https://github.com/MickLesk) ([#12998](https://github.com/community-scripts/ProxmoxVE/pull/12998))
- tools.func: Implement fetch_and_deploy_gh_tag function [@MickLesk](https://github.com/MickLesk) ([#13000](https://github.com/community-scripts/ProxmoxVE/pull/13000))
## 2026-03-17
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Gluetun: add OpenVPN process user and cleanup stale config [@MickLesk](https://github.com/MickLesk) ([#13016](https://github.com/community-scripts/ProxmoxVE/pull/13016))
- Frigate: check OpenVino model files exist before configuring detector and use curl_with_retry instead of default wget [@MickLesk](https://github.com/MickLesk) ([#13019](https://github.com/community-scripts/ProxmoxVE/pull/13019))
### 💾 Core
- #### 🔧 Refactor
- tools.func: Update `create_self_signed_cert()` [@tremor021](https://github.com/tremor021) ([#13008](https://github.com/community-scripts/ProxmoxVE/pull/13008))
## 2026-03-16
### 🆕 New Scripts
- Gluetun ([#12976](https://github.com/community-scripts/ProxmoxVE/pull/12976))
- Anytype-Server ([#12974](https://github.com/community-scripts/ProxmoxVE/pull/12974))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: use gcc-13 for compilation & add uv python pre-install with retry logic [@MickLesk](https://github.com/MickLesk) ([#12935](https://github.com/community-scripts/ProxmoxVE/pull/12935))
- Tautulli: add setuptools<81 constraint to update script [@MickLesk](https://github.com/MickLesk) ([#12959](https://github.com/community-scripts/ProxmoxVE/pull/12959))
- Seerr: add missing build deps [@MickLesk](https://github.com/MickLesk) ([#12960](https://github.com/community-scripts/ProxmoxVE/pull/12960))
- fix: yubal update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12961](https://github.com/community-scripts/ProxmoxVE/pull/12961))
### 💾 Core
- #### 🐞 Bug Fixes
- hwaccel: remove ROCm install from AMD APU setup [@MickLesk](https://github.com/MickLesk) ([#12958](https://github.com/community-scripts/ProxmoxVE/pull/12958))
## 2026-03-15
### 🆕 New Scripts
- Yamtrack ([#12936](https://github.com/community-scripts/ProxmoxVE/pull/12936))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Wishlist: use --frozen-lockfile for pnpm install [@MickLesk](https://github.com/MickLesk) ([#12892](https://github.com/community-scripts/ProxmoxVE/pull/12892))
- SparkyFitness: use --legacy-peer-deps for npm install [@MickLesk](https://github.com/MickLesk) ([#12888](https://github.com/community-scripts/ProxmoxVE/pull/12888))
- Frigate: add fallback for OpenVino labelmap file [@MickLesk](https://github.com/MickLesk) ([#12889](https://github.com/community-scripts/ProxmoxVE/pull/12889))
- #### 🔧 Refactor
- Refactor: ITSM-NG [@MickLesk](https://github.com/MickLesk) ([#12918](https://github.com/community-scripts/ProxmoxVE/pull/12918))
- core: unify RELEASE variable for check_for_gh_release and fetch_and_deploy [@MickLesk](https://github.com/MickLesk) ([#12917](https://github.com/community-scripts/ProxmoxVE/pull/12917))
- Standardize NSAPP names across VM scripts [@MickLesk](https://github.com/MickLesk) ([#12924](https://github.com/community-scripts/ProxmoxVE/pull/12924))
### 💾 Core
- #### ✨ New Features
- core: retry downloads with exponential backoff [@MickLesk](https://github.com/MickLesk) ([#12896](https://github.com/community-scripts/ProxmoxVE/pull/12896))
### ❔ Uncategorized
- [go2rtc] Add ffmpeg dependency to install script [@Copilot](https://github.com/Copilot) ([#12944](https://github.com/community-scripts/ProxmoxVE/pull/12944))
## 2026-03-14
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Patchmon: remove v prefix from pinned version [@MickLesk](https://github.com/MickLesk) ([#12891](https://github.com/community-scripts/ProxmoxVE/pull/12891))
### 💾 Core
- #### 🐞 Bug Fixes
- tools.func: don't abort on AMD repo apt update failure [@MickLesk](https://github.com/MickLesk) ([#12890](https://github.com/community-scripts/ProxmoxVE/pull/12890))
## 2026-03-13
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Hotfix: Removed clean install usage from original script. [@nickheyer](https://github.com/nickheyer) ([#12870](https://github.com/community-scripts/ProxmoxVE/pull/12870))
- #### 🔧 Refactor
- Discopanel: V2 Support + Script rewrite [@nickheyer](https://github.com/nickheyer) ([#12763](https://github.com/community-scripts/ProxmoxVE/pull/12763))
### 🧰 Tools
- update-apps: fix restore path, add PBS support and improve restore messages [@omertahaoztop](https://github.com/omertahaoztop) ([#12528](https://github.com/community-scripts/ProxmoxVE/pull/12528))
- #### 🐞 Bug Fixes
- fix(pve-privilege-converter): handle already stopped container in manage_states [@liuqitoday](https://github.com/liuqitoday) ([#12765](https://github.com/community-scripts/ProxmoxVE/pull/12765))
### 📚 Documentation
- Update: Docs/website metadata workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12858](https://github.com/community-scripts/ProxmoxVE/pull/12858))
+7 -10
View File
@@ -24,7 +24,7 @@ function update_script() {
check_container_storage
check_container_resources
if [[ ! -d /opt/2fauth ]]; then
if [[ ! -d "/opt/2fauth" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
@@ -34,8 +34,7 @@ function update_script() {
$STD apt -y upgrade
msg_info "Creating Backup"
rm -rf /opt/2fauth-backup
mv /opt/2fauth /opt/2fauth-backup
mv "/opt/2fauth" "/opt/2fauth-backup"
if ! dpkg -l | grep -q 'php8.4'; then
cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
fi
@@ -47,17 +46,15 @@ function update_script() {
fi
fetch_and_deploy_gh_release "2fauth" "Bubka/2FAuth" "tarball"
setup_composer
cp /opt/2fauth-backup/.env /opt/2fauth/.env
cp -r /opt/2fauth-backup/storage /opt/2fauth/storage
cd /opt/2fauth || return
mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
cd "/opt/2fauth" || return
chown -R www-data: "/opt/2fauth"
chmod -R 755 "/opt/2fauth"
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer install --no-dev --prefer-dist
php artisan 2fauth:install
chown -R www-data: /opt/2fauth
chmod -R 755 /opt/2fauth
$STD systemctl restart php8.4-fpm
$STD systemctl restart nginx
rm -rf /opt/2fauth-backup
msg_ok "Updated successfully!"
fi
exit
+3 -3
View File
@@ -48,9 +48,9 @@ function update_script() {
msg_ok "Updated successfully!"
fi
else
msg_warn "Old Installation Found, you need to migrate your data and recreate to a new container"
msg_warn "Please follow the instructions on the Actual Budget website to migrate your data"
msg_warn "https://actualbudget.org/docs/backup-restore/backup"
msg_info "Old Installation Found, you need to migrate your data and recreate to a new container"
msg_info "Please follow the instructions on the Actual Budget website to migrate your data"
msg_info "https://actualbudget.org/docs/backup-restore/backup"
exit
fi
exit
-83
View File
@@ -1,83 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ZhFahim/anchor
APP="Anchor"
var_tags="${var_tags:-notes;productivity;sync}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f ~/.anchor ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "anchor" "ZhFahim/anchor"; then
msg_info "Stopping Services"
systemctl stop anchor-web anchor-server
msg_ok "Stopped Services"
msg_info "Backing up Configuration"
cp /opt/anchor/.env /opt/anchor.env.bak
msg_ok "Backed up Configuration"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "anchor" "ZhFahim/anchor" "tarball"
msg_info "Building Server"
cd /opt/anchor/server
$STD pnpm install --frozen-lockfile
$STD pnpm prisma generate
$STD pnpm build
[[ -d src/generated ]] && mkdir -p dist/src && cp -R src/generated dist/src/
msg_ok "Built Server"
msg_info "Building Web Interface"
cd /opt/anchor/web
$STD pnpm install --frozen-lockfile
SERVER_URL=http://127.0.0.1:3001 $STD pnpm build
cp -r .next/static .next/standalone/.next/static
cp -r public .next/standalone/public
msg_ok "Built Web Interface"
cp /opt/anchor.env.bak /opt/anchor/.env
rm -f /opt/anchor.env.bak
msg_info "Running Database Migrations"
cd /opt/anchor/server
set -a && source /opt/anchor/.env && set +a
$STD pnpm prisma migrate deploy
msg_ok "Ran Database Migrations"
msg_info "Starting Services"
systemctl start anchor-server anchor-web
msg_ok "Started Services"
msg_ok "Updated ${APP}"
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}"
-75
View File
@@ -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: SystemIdleProcess
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/caronc/apprise-api
APP="Apprise-API"
var_tags="${var_tags:-notification}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
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/apprise" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "apprise" "caronc/apprise-api"; then
msg_info "Stopping Service"
systemctl stop apprise-api
msg_ok "Stopped Service"
PYTHON_VERSION="3.12" setup_uv
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "apprise" "caronc/apprise-api" "tarball"
msg_info "Updating Apprise-API"
cd /opt/apprise
cp ./requirements.txt /etc/requirements.txt
$STD apt install -y nginx git
$STD uv pip install -r requirements.txt gunicorn supervisor --system
cp -fr apprise_api/static /usr/share/nginx/html/s/
mv apprise_api/ webapp
touch /etc/nginx/server-override.conf
touch /etc/nginx/location-override.conf
mkdir -p /config/store /attach /plugin /tmp/apprise /opt/apprise/logs
chmod 1777 /tmp/apprise && chmod 777 /config /config/store /attach /plugin /opt/apprise/logs
sed -i \
-e '/[[]program:nginx]/,/^[[]/ s|stdout_logfile=/dev/stdout|stdout_logfile=/opt/apprise/logs/nginx.log|' \
-e '/[[]program:nginx]/,/^[[]/ s|stderr_logfile=/dev/stderr|stderr_logfile=/opt/apprise/logs/nginx_error.log|' \
-e '/[[]program:gunicorn]/,/^[[]/ s|stdout_logfile=/dev/stdout|stdout_logfile=/opt/apprise/logs/gunicorn.log|' \
-e '/[[]program:gunicorn]/,/^[[]/ s|stderr_logfile=/dev/stderr|stderr_logfile=/opt/apprise/logs/gunicorn_error.log|' \
-e '/[[]supervisord]/,/^[[]/ s|logfile=/dev/null|logfile=/opt/apprise/logs/supervisor.log|' \
-e 's|_maxbytes=0|_maxbytes=10485760|g' \
/opt/apprise/webapp/etc/supervisord.conf
msg_ok "Updated Apprise-API"
msg_info "Starting Service"
systemctl start apprise-api
msg_ok "Started Service"
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}:8000${CL}"
-1
View File
@@ -48,7 +48,6 @@ function update_script() {
mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
source .venv/bin/activate
$STD uv pip install -r requirements.txt
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
$STD python manage.py migrate
msg_ok "Updated ${APP}"
+1 -1
View File
@@ -48,7 +48,7 @@ function update_script() {
msg_info "Updating Python Dependencies"
cd /opt/bambuddy
$STD uv venv --clear
$STD uv venv
$STD uv pip install -r requirements.txt
msg_ok "Updated Python Dependencies"
+1 -1
View File
@@ -44,7 +44,7 @@ function update_script() {
msg_info "Installing Dependencies"
cd /opt/calibre-web
$STD uv venv --clear /opt/calibre-web/.venv
$STD uv venv
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir --upgrade pip setuptools wheel
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir -r requirements.txt
msg_ok "Installed Dependencies"
+1 -1
View File
@@ -39,7 +39,7 @@ function update_script() {
[ -f /opt/checkmate/client/.env.local ] && cp /opt/checkmate/client/.env.local /opt/checkmate_client.env.local.bak
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate" "tarball"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate"
msg_info "Updating Checkmate Server"
cd /opt/checkmate/server
-64
View File
@@ -1,64 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dagu.sh/
APP="Dagu"
var_tags="${var_tags:-automation;workflow;scheduler}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/dagu/dagu ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "dagu" "dagucloud/dagu"; then
msg_info "Stopping Service"
systemctl stop dagu
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/dagu/data /opt/dagu_data_backup
msg_ok "Backed up Data"
fetch_and_deploy_gh_release "dagu" "dagucloud/dagu" "prebuild" "latest" "/opt/dagu" "dagu_*_linux_amd64.tar.gz"
msg_info "Restoring Data"
mkdir -p /opt/dagu/data
cp -r /opt/dagu_data_backup/. /opt/dagu/data
rm -rf /opt/dagu_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start dagu
msg_ok "Started Service"
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}:8080${CL}"
-73
View File
@@ -1,73 +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: tteck (tteckster) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dashy.to/
APP="Dashy"
var_tags="${var_tags:-dashboard}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
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/dashy/public/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "dashy" "Lissy93/dashy"; then
msg_info "Stopping Service"
systemctl stop dashy
msg_ok "Stopped Service"
msg_info "Backing up conf.yml"
if [[ -f /opt/dashy/public/conf.yml ]]; then
cp -R /opt/dashy/public/conf.yml /opt/dashy_conf_backup.yml
else
cp -R /opt/dashy/user-data/conf.yml /opt/dashy_conf_backup.yml
fi
msg_ok "Backed up conf.yml"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dashy" "Lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
msg_info "Updating Dashy"
cd /opt/dashy
$STD yarn install --ignore-engines --network-timeout 300000
msg_ok "Updated Dashy"
msg_info "Restoring conf.yml"
cp -R /opt/dashy_conf_backup.yml /opt/dashy/user-data
msg_ok "Restored conf.yml"
msg_info "Cleaning"
rm -rf /opt/dashy_conf_backup.yml /opt/dashy/public/conf.yml
msg_ok "Cleaned"
msg_info "Starting Dashy"
systemctl start dashy
msg_ok "Started Dashy"
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}:4000${CL}"
+34 -36
View File
@@ -20,43 +20,41 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/domain-locker ]]; then
msg_error "No ${APP} Installation Found!"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/domain-locker ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "domain-locker" "Lissy93/domain-locker"; then
msg_info "Stopping Service"
systemctl stop domain-locker
msg_info "Service stopped"
PG_VERSION="17" setup_postgresql
NODE_VERSION="22" setup_nodejs
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "domain-locker" "Lissy93/domain-locker" "tarball"
msg_info "Installing Modules (patience)"
cd /opt/domain-locker
$STD npm install
msg_ok "Installed Modules"
msg_info "Building Domain-Locker (a lot of patience)"
set -a
source /opt/domain-locker.env
set +a
$STD npm run build
msg_info "Built Domain-Locker"
msg_info "Restarting Services"
systemctl start domain-locker
msg_ok "Restarted Services"
msg_ok "Updated successfully!"
fi
exit
fi
ensure_dependencies whois
if check_for_gh_release "domain-locker" "Lissy93/domain-locker"; then
msg_info "Stopping Service"
systemctl stop domain-locker
msg_info "Service stopped"
PG_VERSION="17" setup_postgresql
NODE_VERSION="22" setup_nodejs
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "domain-locker" "Lissy93/domain-locker" "tarball"
msg_info "Installing Modules (patience)"
cd /opt/domain-locker
$STD npm install
msg_ok "Installed Modules"
msg_info "Building Domain-Locker (a lot of patience)"
set -a
source /opt/domain-locker.env
set +a
$STD npm run build
msg_info "Built Domain-Locker"
msg_info "Restarting Services"
systemctl start domain-locker
msg_ok "Restarted Services"
msg_ok "Updated successfully!"
fi
exit
}
start
+1 -1
View File
@@ -60,7 +60,7 @@ function update_script() {
msg_ok "Restored backup"
msg_info "Restarting Services"
systemctl start apache2
systemctl reload apache2
msg_ok "Restarted Services"
msg_ok "Updated successfully!"
fi
-47
View File
@@ -1,47 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/frappe/erpnext
APP="ERPNext"
var_tags="${var_tags:-erp;business;accounting}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
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/frappe-bench ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ERPNext"
$STD sudo -u frappe bash -c 'export PATH="$HOME/.local/bin:$PATH"; cd /opt/frappe-bench && bench update --reset'
msg_ok "Updated ERPNext"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
echo -e "${INFO}${YW} Credentials:${CL}"
echo -e "${TAB}${BGN}Username: Administrator${CL}"
echo -e "${TAB}${BGN}Password: see ~/erpnext.creds${CL}"
-74
View File
@@ -1,74 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ShaneIsrael/fireshare
APP="Fireshare"
var_tags="${var_tags:-sharing;video}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/fireshare ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "fireshare" "ShaneIsrael/fireshare"; then
msg_info "Stopping Service"
systemctl stop fireshare
msg_ok "Stopped Service"
mv /opt/fireshare/fireshare.env /opt
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
mv /opt/fireshare.env /opt/fireshare
rm -f /usr/local/bin/fireshare
msg_info "Updating Fireshare"
cd /opt/fireshare
$STD uv venv --clear
$STD .venv/bin/python -m ensurepip --upgrade
$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip
$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server
cp .venv/bin/fireshare /usr/local/bin/fireshare
export FLASK_APP="/opt/fireshare/app/server/fireshare:create_app()"
export DATA_DIRECTORY=/opt/fireshare-data
export IMAGE_DIRECTORY=/opt/fireshare-images
export VIDEO_DIRECTORY=/opt/fireshare-videos
export PROCESSED_DIRECTORY=/opt/fireshare-processed
$STD uv run flask db upgrade
msg_ok "Updated Fireshare"
msg_info "Starting Service"
systemctl start fireshare
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
cleanup_lxc
exit
}
start
build_container
description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
+1 -1
View File
@@ -38,7 +38,7 @@ function update_script() {
cp -r /opt/flatnotes/data /opt/flatnotes_data_backup
msg_ok "Backed up Configuration and Data"
fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball"
fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes"
msg_info "Updating Flatnotes"
cd /opt/flatnotes/client
-61
View File
@@ -1,61 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/foldergram/foldergram
APP="Foldergram"
var_tags="${var_tags:-photos}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/foldergram ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "foldergram" "foldergram/foldergram"; then
msg_info "Stopping Service"
systemctl stop foldergram
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "foldergram" "foldergram/foldergram" "tarball"
msg_info "Installing Foldergram"
cd /opt/foldergram
$STD pnpm install --frozen-lockfile
$STD pnpm run build
msg_ok "Installed Foldergram"
msg_info "Starting Service"
systemctl start foldergram
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
cleanup_lxc
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}:4141${CL}"
+1 -1
View File
@@ -7,7 +7,7 @@ source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxV
APP="Frigate"
var_tags="${var_tags:-nvr}"
var_cpu="${var_cpu:-8}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
+1 -1
View File
@@ -25,7 +25,7 @@ function update_script() {
check_container_resources
setup_mariadb
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
NODE_VERSION="22" setup_nodejs
ensure_dependencies git
msg_info "Updating Ghost"
-1
View File
@@ -47,7 +47,6 @@ function update_script() {
msg_info "Updating Ghostfolio"
mv /opt/env.backup /opt/ghostfolio/.env
sed -i -E '/^DATABASE_URL=/ s/[?&]sslmode=prefer//g' /opt/ghostfolio/.env
cd /opt/ghostfolio
$STD npm ci
$STD npm run build:production
-71
View File
@@ -1,71 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/actions/runner
APP="GitHub-Runner"
var_tags="${var_tags:-ci}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
var_nesting="${var_nesting:-1}"
var_keyctl="${var_keyctl:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/actions-runner/run.sh ]]; then
msg_error "No ${APP} Installation Found!"
exit 1
fi
if check_for_gh_release "actions-runner" "actions/runner"; then
msg_info "Stopping Service"
systemctl stop actions-runner
msg_ok "Stopped Service"
msg_info "Backing up runner configuration"
BACKUP_DIR="/opt/actions-runner.backup"
mkdir -p "$BACKUP_DIR"
for f in .runner .credentials .credentials_rsaparams .env .path; do
[[ -f /opt/actions-runner/$f ]] && cp -a /opt/actions-runner/$f "$BACKUP_DIR/"
done
msg_ok "Backed up configuration"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "actions-runner" "actions/runner" "prebuild" "latest" "/opt/actions-runner" "actions-runner-linux-x64-*.tar.gz"
msg_info "Restoring runner configuration"
for f in .runner .credentials .credentials_rsaparams .env .path; do
[[ -f "$BACKUP_DIR/$f" ]] && cp -a "$BACKUP_DIR/$f" /opt/actions-runner/
done
rm -rf "$BACKUP_DIR"
msg_ok "Restored configuration"
msg_info "Starting Service"
systemctl start actions-runner
msg_ok "Started Service"
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} After first boot, run config.sh with your token and start the service.${CL}"
-65
View File
@@ -1,65 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gogs.io/
APP="Gogs"
var_tags="${var_tags:-git;code;devops}"
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_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/gogs/gogs ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "gogs" "gogs/gogs"; then
msg_info "Stopping Service"
systemctl stop gogs
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/gogs/custom /opt/gogs_custom_backup
cp -r /opt/gogs/data /opt/gogs_data_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "gogs" "gogs/gogs" "prebuild" "latest" "/opt/gogs" "gogs_*_linux_amd64.tar.gz"
msg_info "Restoring Data"
cp -r /opt/gogs_custom_backup/. /opt/gogs/custom
cp -r /opt/gogs_data_backup/. /opt/gogs/data
rm -rf /opt/gogs_custom_backup /opt/gogs_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start gogs
msg_ok "Started Service"
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}"
-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 @@
____ __
/ __ \____ ______/ /_ __ __
/ / / / __ `/ ___/ __ \/ / / /
/ /_/ / /_/ (__ ) / / / /_/ /
/_____/\__,_/____/_/ /_/\__, /
/____/
-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 @@
_______ __ __ __ __ ____
/ ____(_) /_/ / / /_ __/ /_ / __ \__ ______ ____ ___ _____
/ / __/ / __/ /_/ / / / / __ \______/ /_/ / / / / __ \/ __ \/ _ \/ ___/
/ /_/ / / /_/ __ / /_/ / /_/ /_____/ _, _/ /_/ / / / / / / / __/ /
\____/_/\__/_/ /_/\__,_/_.___/ /_/ |_|\__,_/_/ /_/_/ /_/\___/_/
-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 @@
__ ____ _ ____ ____
/ |/ (_)___ (_) / __ \ / __ \
/ /|_/ / / __ \/ /_____/ / / / / /_/ /
/ / / / / / / / /_____/ /_/ / / _, _/
/_/ /_/_/_/ /_/_/ \___\_\/_/ |_|
-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 @@
__
_____/ /____ ____ _________ _
/ ___/ __/ _ \/ __ \______/ ___/ __ `/
(__ ) /_/ __/ /_/ /_____/ /__/ /_/ /
/____/\__/\___/ .___/ \___/\__,_/
/_/
-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
@@ -43,7 +43,7 @@ function update_script() {
msg_info "Updating Python Dependencies"
cd /opt/homelable/backend
$STD uv venv --clear /opt/homelable/backend/.venv
$STD uv venv /opt/homelable/backend/.venv
$STD uv pip install --python /opt/homelable/backend/.venv/bin/python -r requirements.txt
msg_ok "Updated Python Dependencies"
-63
View File
@@ -1,63 +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: pfassina
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/androidseb25/iGotify-Notification-Assistent
APP="iGotify"
var_tags="${var_tags:-notifications;gotify}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/igotify ]]; then
msg_error "No iGotify Installation Found!"
exit
fi
if check_for_gh_release "igotify" "androidseb25/iGotify-Notification-Assistent"; then
msg_info "Stopping Service"
systemctl stop igotify
msg_ok "Stopped Service"
msg_info "Backing up Configuration"
cp /opt/igotify/.env /opt/igotify.env.bak
msg_ok "Backed up Configuration"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "igotify" "androidseb25/iGotify-Notification-Assistent" "prebuild" "latest" "/opt/igotify" "iGotify-Notification-Service-amd64-v*.zip"
msg_info "Restoring Configuration"
cp /opt/igotify.env.bak /opt/igotify/.env
rm -f /opt/igotify.env.bak
msg_ok "Restored Configuration"
msg_info "Starting Service"
systemctl start igotify
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
-3
View File
@@ -27,9 +27,6 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
NODE_VERSION="24" setup_nodejs
msg_info "Updating ${APP} LXC"
$STD apt update
$STD apt -y upgrade
+2 -8
View File
@@ -32,16 +32,10 @@ function update_script() {
if ! grep -qEi 'ubuntu' /etc/os-release; then
msg_info "Updating Intel Dependencies"
rm -f ~/.intel-* || true
# Fetch compute-runtime first so /tmp/gh_rel.json is populated for IGC tag resolution
fetch_and_deploy_gh_release "intel-igc-core-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-core-2_*_amd64.deb"
fetch_and_deploy_gh_release "intel-igc-opencl-2" "intel/intel-graphics-compiler" "binary" "latest" "" "intel-igc-opencl-2_*_amd64.deb"
fetch_and_deploy_gh_release "intel-libgdgmm12" "intel/compute-runtime" "binary" "latest" "" "libigdgmm12_*_amd64.deb"
fetch_and_deploy_gh_release "intel-opencl-icd" "intel/compute-runtime" "binary" "latest" "" "intel-opencl-icd_*_amd64.deb"
local igc_tag
_resolve_igc_tag igc_tag
fetch_and_deploy_gh_release "intel-igc-core-2" "intel/intel-graphics-compiler" "binary" "$igc_tag" "" "intel-igc-core-2_*_amd64.deb"
fetch_and_deploy_gh_release "intel-igc-opencl-2" "intel/intel-graphics-compiler" "binary" "$igc_tag" "" "intel-igc-opencl-2_*_amd64.deb"
msg_ok "Updated Intel Dependencies"
fi
-50
View File
@@ -1,50 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://jitsi.org/
APP="Jitsi-Meet"
var_tags="${var_tags:-video;conference;communication}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-12}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
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 /etc/jitsi ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating Jitsi Meet"
$STD apt update
$STD apt install -y --only-upgrade \
jitsi-meet \
jicofo \
jitsi-videobridge2 \
prosody
msg_ok "Updated Jitsi Meet"
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}https://${IP}${CL}"
-2
View File
@@ -29,8 +29,6 @@ function update_script() {
exit
fi
NODE_VERSION="22" setup_nodejs
if check_for_gh_release "kima-hub" "Chevron7Locked/kima-hub"; then
msg_info "Stopping Services"
systemctl stop kima-frontend kima-backend kima-analyzer kima-analyzer-clap
+1 -1
View File
@@ -39,7 +39,7 @@ function update_script() {
cp /opt/linkding/.env /opt/linkding_env_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding"
msg_info "Restoring Data"
cp -r /opt/linkding_data_backup/. /opt/linkding/data
+1 -7
View File
@@ -38,18 +38,12 @@ function update_script() {
msg_info "Updating LiteLLM"
$STD "$VENV_PATH/bin/python" -m pip install --upgrade litellm[proxy] prisma
$STD "$VENV_PATH/bin/prisma" generate
msg_ok "LiteLLM updated"
msg_info "Updating DB Schema"
$STD /opt/litellm/.venv/bin/litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
$STD uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
msg_ok "DB Schema Updated"
msg_info "Updating Service"
sed -i 's|ExecStart=uv --directory=/opt/litellm run litellm|ExecStart=/opt/litellm/.venv/bin/litellm|' /etc/systemd/system/litellm.service
systemctl daemon-reload
msg_ok "Updated Service"
msg_info "Starting Service"
systemctl start litellm
msg_ok "Started Service"
+12 -17
View File
@@ -38,27 +38,10 @@ function update_script() {
msg_info "Backing up Configuration"
cp -f /opt/mealie/mealie.env /opt/mealie.env
[[ -f /opt/mealie/start.sh ]] && cp -f /opt/mealie/start.sh /opt/mealie.start.sh
msg_ok "Backup completed"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball"
msg_info "Restoring Configuration"
mv -f /opt/mealie.env /opt/mealie/mealie.env
if [[ -f /opt/mealie.start.sh ]]; then
mv -f /opt/mealie.start.sh /opt/mealie/start.sh
else
cat <<'STARTEOF' >/opt/mealie/start.sh
#!/bin/bash
set -a
source /opt/mealie/mealie.env
set +a
exec uv run mealie
STARTEOF
fi
chmod +x /opt/mealie/start.sh
msg_ok "Configuration restored"
msg_info "Installing Python Dependencies with uv"
cd /opt/mealie
$STD uv sync --frozen --extra pgsql
@@ -87,6 +70,18 @@ STARTEOF
$STD uv run python -m nltk.downloader -d /nltk_data averaged_perceptron_tagger_eng
msg_ok "Updated NLTK Data"
msg_info "Restoring Configuration"
mv -f /opt/mealie.env /opt/mealie/mealie.env
cat <<'STARTEOF' >/opt/mealie/start.sh
#!/bin/bash
set -a
source /opt/mealie/mealie.env
set +a
exec uv run mealie
STARTEOF
chmod +x /opt/mealie/start.sh
msg_ok "Configuration restored"
msg_info "Starting Service"
systemctl start mealie
msg_ok "Started Service"
-63
View File
@@ -1,63 +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: doge0420
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/lyqht/mini-qr
APP="Mini-QR"
var_tags="${var_tags:-QRcode;}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
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/mini-qr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "mini-qr" "lyqht/mini-qr"; then
msg_info "Stopping Service"
systemctl stop caddy
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball"
msg_info "Installing Dependencies"
cd /opt/mini-qr
$STD npm install
msg_ok "Installed Dependencies"
msg_info "Building MiniQR"
$STD npm run build
msg_ok "Built MiniQR"
msg_info "Starting Service"
systemctl start caddy
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
-41
View File
@@ -1,41 +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: MintHCM
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/minthcm/minthcm
APP="MintHCM"
var_tags="${var_tags:-hcm}"
var_disk="${var_disk:-20}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
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 /var/www/MintHCM ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_custom "🚀" "${GN}" "The app offers a built-in updater. Please use it."
exit
}
start
build_container
description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
-2
View File
@@ -28,8 +28,6 @@ function update_script() {
exit
fi
NODE_VERSION="24" setup_nodejs
if check_for_gh_release "myip" "jason5ng32/MyIP"; then
msg_info "Stopping Services"
systemctl stop myip
-83
View File
@@ -1,83 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/mattogodoy/nametag
APP="Nametag"
var_tags="${var_tags:-contacts;crm}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
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/nametag ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "nametag" "mattogodoy/nametag"; then
msg_info "Stopping Service"
systemctl stop nametag
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp /opt/nametag/.env /opt/nametag.env.bak
cp -r /opt/nametag/data /opt/nametag_data_bak
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nametag" "mattogodoy/nametag" "tarball" "latest" "/opt/nametag"
msg_info "Rebuilding Application"
cd /opt/nametag
$STD npm ci
set -a
source /opt/nametag/.env
set +a
$STD npx prisma generate
$STD npm run build
cp -r /opt/nametag/.next/static /opt/nametag/.next/standalone/.next/static
cp -r /opt/nametag/public /opt/nametag/.next/standalone/public
msg_ok "Rebuilt Application"
msg_info "Restoring Data"
cp /opt/nametag.env.bak /opt/nametag/.env
cp -r /opt/nametag_data_bak/. /opt/nametag/data/
rm -f /opt/nametag.env.bak
rm -rf /opt/nametag_data_bak
msg_ok "Restored Data"
msg_info "Running Migrations"
cd /opt/nametag
$STD npx prisma migrate deploy
msg_ok "Ran Migrations"
msg_info "Starting Service"
systemctl start nametag
msg_ok "Started Service"
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}"
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
systemctl stop nodecast-tv
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "nodecast-tv" "technomancer702/nodecast-tv" "tarball"
fetch_and_deploy_gh_release "nodecast-tv" "technomancer702/nodecast-tv"
msg_info "Updating Modules"
cd /opt/nodecast-tv
+1 -1
View File
@@ -29,7 +29,7 @@ function update_script() {
exit
fi
RELEASE="v6.1.0"
RELEASE="v6.0.0"
if check_for_gh_release "OpenCloud" "opencloud-eu/opencloud" "${RELEASE}" "each release is tested individually before the version is updated. Please do not open issues for this"; then
msg_info "Stopping services"
systemctl stop opencloud opencloud-wopi
+1 -1
View File
@@ -28,7 +28,7 @@ function update_script() {
exit
fi
NODE_VERSION="24" setup_nodejs
NODE_VERSION="22" setup_nodejs
if check_for_gh_release "outline" "outline/outline"; then
msg_info "Stopping Services"
-69
View File
@@ -1,69 +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: pajjski
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/a1ex4/ownfoil
APP="ownfoil"
var_tags="${var_tags:-gaming}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/ownfoil ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "ownfoil" "a1ex4/ownfoil"; then
msg_info "Stopping Service"
systemctl stop ownfoil
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/ownfoil/app/config /opt/ownfoil_data_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball"
msg_info "Installing Dependencies"
cd /opt/ownfoil
$STD source .venv/bin/activate
$STD uv pip install -r requirements.txt
msg_ok "Installed Dependencies"
msg_info "Restoring Data"
cp -r /opt/ownfoil_data_backup /opt/ownfoil/app/config
rm -rf /opt/ownfoil_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start ownfoil
msg_ok "Started Service"
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}:8465${CL}"
+1 -27
View File
@@ -69,33 +69,7 @@ function update_script() {
msg_info "Running database migrations"
cd /opt/pangolin
# Pre-apply potentially destructive schema changes safely so drizzle-kit
# does not recreate tables (which would delete all rows).
local DB="/opt/pangolin/config/db/db.sqlite"
if [[ -f "$DB" ]]; then
sqlite3 "$DB" "ALTER TABLE 'orgs' ADD COLUMN 'settingsLogRetentionDaysConnection' integer DEFAULT 0 NOT NULL;" 2>/dev/null || true
sqlite3 "$DB" "ALTER TABLE 'clientSitesAssociationsCache' ADD COLUMN 'isJitMode' integer DEFAULT 0 NOT NULL;" 2>/dev/null || true
# Create new role-mapping tables and migrate data before drizzle-kit
# drops the roleId columns from userOrgs and userInvites.
sqlite3 "$DB" "CREATE TABLE IF NOT EXISTS 'userOrgRoles' (
'userId' text NOT NULL REFERENCES 'user'('id') ON DELETE CASCADE,
'orgId' text NOT NULL REFERENCES 'orgs'('orgId') ON DELETE CASCADE,
'roleId' integer NOT NULL REFERENCES 'roles'('roleId') ON DELETE CASCADE,
UNIQUE('userId', 'orgId', 'roleId')
);" 2>/dev/null || true
sqlite3 "$DB" "INSERT OR IGNORE INTO 'userOrgRoles' (userId, orgId, roleId) SELECT userId, orgId, roleId FROM 'userOrgs' WHERE roleId IS NOT NULL;" 2>/dev/null || true
sqlite3 "$DB" "CREATE TABLE IF NOT EXISTS 'userInviteRoles' (
'inviteId' text NOT NULL REFERENCES 'userInvites'('inviteId') ON DELETE CASCADE,
'roleId' integer NOT NULL REFERENCES 'roles'('roleId') ON DELETE CASCADE,
PRIMARY KEY('inviteId', 'roleId')
);" 2>/dev/null || true
sqlite3 "$DB" "INSERT OR IGNORE INTO 'userInviteRoles' (inviteId, roleId) SELECT inviteId, roleId FROM 'userInvites' WHERE roleId IS NOT NULL;" 2>/dev/null || true
fi
ENVIRONMENT=prod $STD npx drizzle-kit push --force --config drizzle.sqlite.config.ts
ENVIRONMENT=prod $STD npx drizzle-kit push --config drizzle.sqlite.config.ts
msg_ok "Ran database migrations"
msg_info "Updating Badger plugin version"
+1 -1
View File
@@ -44,7 +44,7 @@ function update_script() {
msg_info "Installing Python Dependencies"
cd /opt/profilarr/backend
$STD uv venv --clear /opt/profilarr/backend/.venv
$STD uv venv /opt/profilarr/backend/.venv
sed 's/==/>=/g' requirements.txt >requirements-relaxed.txt
$STD uv pip install --python /opt/profilarr/backend/.venv/bin/python -r requirements-relaxed.txt
rm -f requirements-relaxed.txt
+27 -25
View File
@@ -29,38 +29,40 @@ function update_script() {
exit
fi
if check_for_gh_release "semaphore" "semaphoreui/semaphore"; then
if [[ -f /opt/semaphore/semaphore_db.bolt ]]; then
msg_warn "WARNING: Due to bugs with BoltDB database, update script will move your application"
msg_warn "to use SQLite database instead. Make sure you have a backup of your data!"
echo ""
read -r -p "${TAB3}Do you want to continue? (y/N): " CONFIRM
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
exit 0
else
msg_info "Moving from BoltDB to SQLite"
sed -i \
-e 's|"bolt": {|"sqlite": {|' \
-e 's|/semaphore_db.bolt"|/database.sqlite"|' \
-e '/semaphore_db.bolt/d' \
-e '/"dialect"/d' \
-e '/^ },$/a\ "dialect": "sqlite",' \
/opt/semaphore/config.json
msg_ok "Moved from BoltDB to SQLite"
fi
fi
if [[ -f /opt/semaphore/semaphore_db.bolt ]]; then
msg_warn "WARNING: Due to bugs with BoltDB database, update script will move your application"
msg_warn "to use SQLite database instead. Unfortunately, this will reset your application and make it a fresh"
msg_warn "installation. All your data will be lost!"
echo ""
read -r -p "${TAB3}Do you want to continue? (y/N): " CONFIRM
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
exit 0
else
msg_info "Moving from BoltDB to SQLite"
systemctl stop semaphore
rm -rf /opt/semaphore/semaphore_db.bolt
sed -i \
-e 's|"bolt": {|"sqlite": {|' \
-e 's|/semaphore_db.bolt"|/database.sqlite"|' \
-e '/semaphore_db.bolt/d' \
-e '/"dialect"/d' \
-e '/^ },$/a\ "dialect": "sqlite",' \
/opt/semaphore/config.json
SEM_PW=$(cat ~/semaphore.creds)
systemctl start semaphore
$STD semaphore user add --admin --login admin --email admin@community-scripts.org --name Administrator --password "${SEM_PW}" --config /opt/semaphore/config.json
msg_ok "Moved from BoltDB to SQLite"
fi
fi
if check_for_gh_release "semaphore" "semaphoreui/semaphore"; then
msg_info "Stopping Service"
systemctl stop semaphore
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "semaphore" "semaphoreui/semaphore" "binary" "latest" "/opt/semaphore" "semaphore_*_linux_amd64.deb"
if [[ -f /opt/semaphore/semaphore_db.bolt ]]; then
$STD semaphore migrate --from-boltdb /opt/semaphore/semaphore_db.bolt --config /opt/semaphore/config.json
rm -f /opt/semaphore/semaphore_db.bolt
fi
msg_info "Starting Service"
systemctl start semaphore
msg_ok "Started Service"
+1 -1
View File
@@ -29,7 +29,7 @@ function update_script() {
exit
fi
NODE_VERSION="24" setup_nodejs
NODE_VERSION="22" setup_nodejs
PYTHON_VERSION="3.12" setup_uv
if check_for_gh_release "shelfmark" "calibrain/shelfmark"; then
-4
View File
@@ -43,10 +43,6 @@ function update_script() {
msg_info "Restoring config"
mv /opt/slskd.yml.bak /opt/slskd/config/slskd.yml
# Migrate 0.25.0 breaking config key renames
sed -i 's/^global:/transfers:/' /opt/slskd/config/slskd.yml
sed -i 's/^integration:/integrations:/' /opt/slskd/config/slskd.yml
msg_ok "Restored config"
msg_info "Starting Service(s)"
-50
View File
@@ -1,50 +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: Joerg Heinemann (heinemannj)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/smallstep/certificates
APP="step-ca"
var_tags="${var_tags:-certificate-authority;pki;acme-server}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
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 [[ ! -f /etc/apt/sources.list.d/smallstep.sources ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating step-ca and step-cli"
$STD apt update
$STD apt upgrade -y step-ca step-cli
$STD systemctl restart step-ca
msg_ok "Updated step-ca and step-cli"
if check_for_gh_release "step-badger" "lukasz-lobocki/step-badger"; then
fetch_and_deploy_gh_release "step-badger" "lukasz-lobocki/step-badger" "prebuild" "latest" "/opt/step-badger" "step-badger_Linux_x86_64.tar.gz"
msg_ok "Updated step-badger"
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}https://${IP}/provisioners${CL}"
+10 -7
View File
@@ -32,8 +32,8 @@ function update_script() {
systemctl daemon-reload
systemctl enable -q --now technitium
fi
if ! is_package_installed "aspnetcore-runtime-10.0"; then
$STD apt remove -y aspnetcore-runtime-8.0 aspnetcore-runtime-9.0 2>/dev/null || true
if is_package_installed "aspnetcore-runtime-8.0"; then
$STD apt remove -y aspnetcore-runtime-8.0
[ -f /etc/apt/sources.list.d/microsoft-prod.list ] && rm -f /etc/apt/sources.list.d/microsoft-prod.list
[ -f /usr/share/keyrings/microsoft-prod.gpg ] && rm -f /usr/share/keyrings/microsoft-prod.gpg
setup_deb822_repo \
@@ -42,15 +42,18 @@ function update_script() {
"https://packages.microsoft.com/debian/13/prod/" \
"trixie" \
"main"
$STD apt install -y aspnetcore-runtime-10.0
$STD apt install -y aspnetcore-runtime-9.0
fi
RELEASE=$(curl -fsSL https://technitium.com/dns/ | grep -oP 'Version \K[\d.]+')
if [[ ! -f ~/.technitium || ${RELEASE} != "$(cat ~/.technitium 2>/dev/null)" ]]; then
systemctl stop technitium
fetch_and_deploy_from_url "https://download.technitium.com/dns/DnsServerPortable.tar.gz" /opt/technitium/dns
if [[ ! -f ~/.technitium || ${RELEASE} != "$(cat ~/.technitium)" ]]; then
msg_info "Updating Technitium DNS"
curl -fsSL "https://download.technitium.com/dns/DnsServerPortable.tar.gz" -o /opt/DnsServerPortable.tar.gz
$STD tar zxvf /opt/DnsServerPortable.tar.gz -C /opt/technitium/dns/
rm -f /opt/DnsServerPortable.tar.gz
echo "${RELEASE}" >~/.technitium
systemctl start technitium
systemctl restart technitium
msg_ok "Updated Technitium DNS"
msg_ok "Updated successfully!"
else
msg_ok "No update required. Technitium DNS is already at v${RELEASE}."
+1 -3
View File
@@ -145,7 +145,7 @@ EOF
cp -r /opt/termix/uploads /opt/termix_uploads_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "termix" "Termix-SSH/Termix" "tarball"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "termix" "Termix-SSH/Termix"
msg_info "Recreating Directories"
mkdir -p /opt/termix/html \
@@ -155,8 +155,6 @@ EOF
/opt/termix/nginx/client_body
msg_ok "Recreated Directories"
NODE_VERSION="24" setup_nodejs
msg_info "Building Frontend"
cd /opt/termix
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
-83
View File
@@ -1,83 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/transmute-app/transmute
APP="Transmute"
var_tags="${var_tags:-files;converter}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-16}"
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/transmute ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
fetch_and_deploy_gh_release "calibre" "kovidgoyal/calibre" "prebuild" "latest" "/opt/calibre" "calibre-*-x86_64.txz"
ln -sf /opt/calibre/ebook-convert /usr/bin/ebook-convert
fetch_and_deploy_gh_release "drawio" "jgraph/drawio-desktop" "binary" "latest" "" "drawio-amd64-*.deb"
fetch_and_deploy_gh_release "pandoc" "jgm/pandoc" "binary" "latest" "" "pandoc-*-amd64.deb"
if check_for_gh_release "transmute" "transmute-app/transmute"; then
msg_info "Stopping Service"
systemctl stop transmute
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp /opt/transmute/backend/.env /opt/transmute.env.bak
cp -r /opt/transmute/data /opt/transmute_data_bak
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "transmute" "transmute-app/transmute" "tarball"
msg_info "Updating Python Dependencies"
cd /opt/transmute
$STD uv venv --clear /opt/transmute/.venv
$STD uv pip install --python /opt/transmute/.venv/bin/python -r requirements.txt
msg_ok "Updated Python Dependencies"
msg_info "Rebuilding Frontend"
cd /opt/transmute/frontend
$STD npm ci
$STD npm run build
msg_ok "Rebuilt Frontend"
msg_info "Restoring Data"
cp /opt/transmute.env.bak /opt/transmute/backend/.env
cp -r /opt/transmute_data_bak/. /opt/transmute/data/
rm -f /opt/transmute.env.bak
rm -rf /opt/transmute_data_bak
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start transmute
msg_ok "Started Service"
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}:3313${CL}"
-84
View File
@@ -1,84 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/mauriceboe/TREK
APP="TREK"
var_tags="${var_tags:-travel;planning;collaboration}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
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/trek ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "trek" "mauriceboe/TREK"; then
msg_info "Stopping Service"
systemctl stop trek
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp /opt/trek/server/.env /opt/trek.env.bak
mv /opt/trek/data /opt/trek-data.bak
mv /opt/trek/uploads /opt/trek-uploads.bak
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "trek" "mauriceboe/TREK" "tarball"
msg_info "Building Client"
cd /opt/trek/client
$STD npm ci
$STD npm run build
mkdir -p /opt/trek/server/public
cp -r /opt/trek/client/dist/* /opt/trek/server/public/
cp -r /opt/trek/client/public/fonts /opt/trek/server/public/fonts 2>/dev/null || true
msg_ok "Built Client"
msg_info "Installing Server Dependencies"
cd /opt/trek/server
$STD npm ci
msg_ok "Installed Server Dependencies"
msg_info "Restoring Data"
mv /opt/trek-data.bak /opt/trek/data
mv /opt/trek-uploads.bak /opt/trek/uploads
rm -rf /opt/trek/server/data /opt/trek/server/uploads
ln -s /opt/trek/data /opt/trek/server/data
ln -s /opt/trek/uploads /opt/trek/server/uploads
cp /opt/trek.env.bak /opt/trek/server/.env
rm -f /opt/trek.env.bak
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start trek
msg_ok "Started Service"
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}"
+2 -3
View File
@@ -29,9 +29,8 @@ function update_script() {
exit
fi
msg_info "Updating Twingate Connector"
$STD apt update
$STD apt install -y --only-upgrade twingate-connector
msg_info "Updating ${APP}"
ensure_dependencies twingate-connector
$STD systemctl restart twingate-connector
msg_ok "Updated successfully!"
exit
+1 -3
View File
@@ -33,9 +33,7 @@ function update_script() {
systemctl stop umami
msg_ok "Stopped Service"
mv /opt/umami/.env /opt/.env.bak
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "umami" "umami-software/umami" "tarball"
mv /opt/.env.bak /opt/umami/.env
fetch_and_deploy_gh_release "umami" "umami-software/umami" "tarball"
msg_info "Updating Umami"
cd /opt/umami
-4
View File
@@ -32,8 +32,6 @@ function update_script() {
msg_info "Stopping Service"
systemctl stop victoriametrics
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl stop victoriametrics-logs
[[ -f /etc/systemd/system/vmagent.service ]] && systemctl stop vmagent
[[ -f /etc/systemd/system/vmalert.service ]] && systemctl stop vmalert
msg_ok "Stopped Service"
victoriametrics_release=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases" |
@@ -64,8 +62,6 @@ function update_script() {
msg_info "Starting Service"
systemctl start victoriametrics
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl start victoriametrics-logs
[[ -f /etc/systemd/system/vmagent.service ]] && systemctl start vmagent
[[ -f /etc/systemd/system/vmalert.service ]] && systemctl start vmalert
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
-2
View File
@@ -53,8 +53,6 @@ function update_script() {
set -a && source /opt/wger/.env && set +a
export DJANGO_SETTINGS_MODULE=settings.main
$STD uv pip install .
$STD npm install
$STD npm run build:css:sass
$STD uv run python manage.py migrate
$STD uv run python manage.py collectstatic --no-input
msg_ok "Updated wger"
-54
View File
@@ -1,54 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://whodb.com/
APP="WhoDB"
var_tags="${var_tags:-database;management;gui}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
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 [[ ! -f /opt/whodb/whodb ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "whodb" "clidey/whodb"; then
msg_info "Stopping Service"
systemctl stop whodb
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "whodb" "clidey/whodb" "singlefile" "latest" "/opt/whodb" "whodb-*-linux-amd64"
msg_info "Starting Service"
systemctl start whodb
msg_ok "Started Service"
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}:8080${CL}"
+1 -4
View File
@@ -43,7 +43,7 @@ function update_script() {
msg_info "Installing Python Dependencies"
cd /opt/yamtrack
$STD uv venv --clear .venv
$STD uv venv .venv
$STD uv pip install --no-cache-dir -r requirements.txt
msg_ok "Installed Python Dependencies"
@@ -61,10 +61,7 @@ function update_script() {
msg_info "Updating Nginx Configuration"
cp /opt/yamtrack/nginx.conf /etc/nginx/nginx.conf
sed -i 's|user abc;|user www-data;|' /etc/nginx/nginx.conf
sed -i 's|pid /tmp/nginx.pid;|pid /run/nginx.pid;|' /etc/nginx/nginx.conf
sed -i 's|/yamtrack/staticfiles/|/opt/yamtrack/src/staticfiles/|' /etc/nginx/nginx.conf
sed -i 's|error_log /dev/stderr|error_log /var/log/nginx/error.log|' /etc/nginx/nginx.conf
sed -i 's|access_log /dev/stdout|access_log /var/log/nginx/access.log|' /etc/nginx/nginx.conf
$STD systemctl reload nginx
msg_ok "Updated Nginx Configuration"
-1
View File
@@ -137,7 +137,6 @@ EOF
sed -i -e 's|memory_limit = 128M|memory_limit = 512M|; $aapc.enable_cli=1' /etc/php83/php.ini
sed -i -e 's|upload_max_file_size = 2M|upload_max_file_size = 16G|' /etc/php83/php.ini
sed -i -E '/^php_admin_(flag|value)\[opcache/s/^/;/' /etc/php83/php-fpm.d/nextcloud.conf
sed -i -e 's| js;| mjs js;|' /etc/nginx/mime.types
msg_ok "Installed Nextcloud"
msg_info "Adding Additional Nextcloud Packages"
-99
View File
@@ -1,99 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ZhFahim/anchor
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
PG_VERSION="17" setup_postgresql
PG_DB_NAME="anchor" PG_DB_USER="anchor" setup_postgresql_db
fetch_and_deploy_gh_release "anchor" "ZhFahim/anchor" "tarball"
msg_info "Building Server"
cd /opt/anchor/server
$STD pnpm install --frozen-lockfile
$STD pnpm prisma generate
$STD pnpm build
[[ -d src/generated ]] && mkdir -p dist/src && cp -R src/generated dist/src/
msg_ok "Built Server"
msg_info "Building Web Interface"
cd /opt/anchor/web
$STD pnpm install --frozen-lockfile
SERVER_URL=http://127.0.0.1:3001 $STD pnpm build
cp -r .next/static .next/standalone/.next/static
cp -r public .next/standalone/public
msg_ok "Built Web Interface"
msg_info "Configuring Application"
JWT_SECRET=$(openssl rand -base64 32)
cat <<EOF >/opt/anchor/.env
APP_URL=http://${LOCAL_IP}:3000
JWT_SECRET=${JWT_SECRET}
DATABASE_URL=postgresql://anchor:${PG_DB_PASS}@localhost:5432/anchor
PG_HOST=localhost
PG_USER=anchor
PG_PASSWORD=${PG_DB_PASS}
PG_DATABASE=anchor
PG_PORT=5432
EOF
msg_ok "Configured Application"
msg_info "Running Database Migrations"
cd /opt/anchor/server
set -a && source /opt/anchor/.env && set +a
$STD pnpm prisma migrate deploy
msg_ok "Ran Database Migrations"
msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/anchor-server.service
[Unit]
Description=Anchor API Server
After=network.target postgresql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/anchor/server
EnvironmentFile=/opt/anchor/.env
ExecStart=/usr/bin/node dist/src/main.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/anchor-web.service
[Unit]
Description=Anchor Web Interface
After=network.target anchor-server.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/anchor/web/.next/standalone
EnvironmentFile=/opt/anchor/.env
Environment=PORT=3000 HOSTNAME=0.0.0.0 NODE_ENV=production
ExecStart=/usr/bin/node server.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now anchor-server anchor-web
msg_ok "Created Services"
motd_ssh
customize
cleanup_lxc
-66
View File
@@ -1,66 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: SystemIdleProcess
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/caronc/apprise-api
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
nginx \
git
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv
fetch_and_deploy_gh_release "apprise" "caronc/apprise-api" "tarball"
msg_info "Setup Apprise-API"
cd /opt/apprise
cp ./requirements.txt /etc/requirements.txt
$STD uv pip install -r requirements.txt gunicorn supervisor --system
cp -fr apprise_api/static /usr/share/nginx/html/s/
mv apprise_api/ webapp
touch /etc/nginx/server-override.conf
touch /etc/nginx/location-override.conf
mkdir -p /config/store /attach /plugin /tmp/apprise /opt/apprise/logs
chmod 1777 /tmp/apprise && chmod 777 /config /config/store /attach /plugin /opt/apprise/logs
sed -i \
-e '/[[]program:nginx]/,/^[[]/ s|stdout_logfile=/dev/stdout|stdout_logfile=/opt/apprise/logs/nginx.log|' \
-e '/[[]program:nginx]/,/^[[]/ s|stderr_logfile=/dev/stderr|stderr_logfile=/opt/apprise/logs/nginx_error.log|' \
-e '/[[]program:gunicorn]/,/^[[]/ s|stdout_logfile=/dev/stdout|stdout_logfile=/opt/apprise/logs/gunicorn.log|' \
-e '/[[]program:gunicorn]/,/^[[]/ s|stderr_logfile=/dev/stderr|stderr_logfile=/opt/apprise/logs/gunicorn_error.log|' \
-e '/[[]supervisord]/,/^[[]/ s|logfile=/dev/null|logfile=/opt/apprise/logs/supervisor.log|' \
-e 's|_maxbytes=0|_maxbytes=10485760|g' \
/opt/apprise/webapp/etc/supervisord.conf
msg_ok "Setup Apprise-API"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/apprise-api.service
[Unit]
Description=Apprise-API Service
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/apprise
ExecStart=/opt/apprise/webapp/supervisord-startup
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now apprise-api
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
+1 -1
View File
@@ -22,7 +22,7 @@ msg_ok "Installed Dependencies"
MONGO_VERSION="8.0" setup_mongodb
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate" "tarball"
fetch_and_deploy_gh_release "checkmate" "bluewave-labs/Checkmate"
msg_info "Configuring Checkmate"
JWT_SECRET="$(openssl rand -hex 32)"
-47
View File
@@ -1,47 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dagu.sh/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "dagu" "dagucloud/dagu" "prebuild" "latest" "/opt/dagu" "dagu_*_linux_amd64.tar.gz"
msg_info "Setting up Dagu"
mkdir -p /opt/dagu/data
msg_ok "Set up Dagu"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/dagu.service
[Unit]
Description=Dagu Workflow Engine
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/dagu
Environment=DAGU_HOME=/opt/dagu/data
Environment=DAGU_HOST=0.0.0.0
Environment=DAGU_PORT=8080
ExecStart=/opt/dagu/dagu start-all
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now dagu
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-42
View File
@@ -1,42 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: tteck (tteckster) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dashy.to/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
fetch_and_deploy_gh_release "dashy" "Lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
msg_info "Installing Dashy"
cd /opt/dashy
$STD yarn install --ignore-engines --network-timeout 300000
msg_ok "Installed Dashy"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/dashy.service
[Unit]
Description=dashy
[Service]
Type=simple
WorkingDirectory=/opt/dashy
Environment=NODE_OPTIONS=--openssl-legacy-provider
ExecStart=/usr/bin/node server.js
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now dashy
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-4
View File
@@ -13,10 +13,6 @@ setting_up_container
network_check
update_os
msg_info "Installing dependencies"
$STD apt install -y whois
msg_ok "Installed dependencies"
PG_VERSION="17" setup_postgresql
PG_DB_NAME="domainlocker_db" PG_DB_USER="domainlocker" setup_postgresql_db
NODE_VERSION="22" setup_nodejs
-106
View File
@@ -1,106 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/frappe/erpnext
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
git \
build-essential \
python3-dev \
libffi-dev \
libssl-dev \
redis-server \
nginx \
supervisor \
fail2ban \
xvfb \
libfontconfig1 \
libxrender1 \
fontconfig \
libjpeg-dev \
libmariadb-dev \
python3-pip
msg_ok "Installed Dependencies"
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
UV_PYTHON="3.13" setup_uv
setup_mariadb
msg_info "Configuring MariaDB for ERPNext"
cat <<EOF >/etc/mysql/mariadb.conf.d/50-erpnext.cnf
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
EOF
$STD systemctl restart mariadb
msg_ok "Configured MariaDB for ERPNext"
msg_info "Installing wkhtmltopdf"
WKHTMLTOPDF_URL="https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb"
$STD curl -fsSL -o /tmp/wkhtmltox.deb "$WKHTMLTOPDF_URL"
$STD apt install -y /tmp/wkhtmltox.deb
rm -f /tmp/wkhtmltox.deb
msg_ok "Installed wkhtmltopdf"
msg_info "Installing Frappe Bench"
useradd -m -s /bin/bash frappe
chown frappe:frappe /opt
echo "frappe ALL=(ALL) NOPASSWD:ALL" >/etc/sudoers.d/frappe
$STD sudo -u frappe bash -c 'export PATH="$HOME/.local/bin:$PATH"; uv tool install frappe-bench'
msg_ok "Installed Frappe Bench"
msg_info "Initializing Frappe Bench"
ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
DB_ROOT_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${DB_ROOT_PASS}'; FLUSH PRIVILEGES;"
$STD sudo -u frappe bash -c 'export PATH="$HOME/.local/bin:$PATH"; cd /opt && bench init --frappe-branch version-15 frappe-bench'
$STD sudo -u frappe bash -c 'export PATH="$HOME/.local/bin:$PATH"; cd /opt/frappe-bench && bench get-app erpnext --branch version-15'
$STD sudo -u frappe bash -c "export PATH=\"\$HOME/.local/bin:\$PATH\"; cd /opt/frappe-bench && bench new-site site1.local --db-root-username root --db-root-password \"$DB_ROOT_PASS\" --admin-password \"$ADMIN_PASS\" --install-app erpnext --set-default"
msg_ok "Initialized Frappe Bench"
msg_info "Configuring ERPNext"
cat <<EOF >/opt/frappe-bench/.env
ADMIN_PASSWORD=${ADMIN_PASS}
DB_ROOT_PASSWORD=${DB_ROOT_PASS}
SITE_NAME=site1.local
EOF
{
echo "ERPNext Credentials"
echo "=================="
echo "Admin Username: Administrator"
echo "Admin Password: ${ADMIN_PASS}"
echo "DB Root Password: ${DB_ROOT_PASS}"
echo "Site Name: site1.local"
} >~/erpnext.creds
$STD systemctl enable --now redis-server
msg_ok "Configured ERPNext"
msg_info "Setting up Production"
BENCH_PY="/home/frappe/.local/share/uv/tools/frappe-bench/bin/python"
$STD sudo -u frappe bash -c "curl -fsSL https://bootstrap.pypa.io/get-pip.py | \"${BENCH_PY}\""
$STD sudo -u frappe bash -c 'export PATH="$HOME/.local/bin:$PATH"; uv tool install ansible'
ln -sf /home/frappe/.local/bin/ansible* /usr/local/bin/
$STD bash -c 'export PATH="/home/frappe/.local/bin:$PATH"; cd /opt/frappe-bench && bench setup production frappe --yes'
ln -sf /opt/frappe-bench/config/supervisor.conf /etc/supervisor/conf.d/frappe-bench.conf
$STD supervisorctl reread
$STD supervisorctl update
$STD systemctl enable --now supervisor
msg_ok "Set up Production"
motd_ssh
customize
cleanup_lxc
+1 -2
View File
@@ -5,6 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fileflows.com/
# Import Functions und Setup
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
@@ -16,7 +17,6 @@ update_os
msg_info "Installing Dependencies"
$STD apt install -y \
ffmpeg \
pciutils \
imagemagick
msg_ok "Installed Dependencies"
@@ -35,7 +35,6 @@ fetch_and_deploy_from_url "https://fileflows.com/downloads/zip" "/opt/fileflows"
$STD ln -svf /usr/bin/ffmpeg /usr/local/bin/ffmpeg
$STD ln -svf /usr/bin/ffprobe /usr/local/bin/ffprobe
$STD rm -rf /opt/fileflows/Server/runtimes/win-*
read -r -p "${TAB3}Do you want to install FileFlows Server or Node? (S/N): " install_server
-174
View File
@@ -1,174 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/ShaneIsrael/fireshare
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
setup_hwaccel
msg_info "Installing Dependencies"
$STD apt install -y \
git \
build-essential \
cmake \
pkg-config \
yasm \
nasm \
libx264-dev \
libx265-dev \
libvpx-dev \
libaom-dev \
libopus-dev \
libvorbis-dev \
libass-dev \
libfreetype6-dev \
libmp3lame-dev \
nginx-extras \
supervisor \
libldap2-dev \
libsasl2-dev \
libssl-dev \
libffi-dev \
libc-dev
msg_ok "Installed Dependencies"
NODE_VERSION=24 setup_nodejs
PYTHON_VERSION=3.14 setup_uv
fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball"
msg_info "Compiling SVT-AV1 (Patience)"
cd /tmp
$STD git clone --depth 1 --branch v1.8.0 https://gitlab.com/AOMediaCodec/SVT-AV1.git
cd SVT-AV1/Build
$STD cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
$STD make -j$(nproc)
$STD make install
msg_ok "Compiled SVT-AV1"
msg_info "Installing NVDEC headers"
cd /tmp
$STD git clone --depth 1 --branch n12.1.14.0 https://github.com/FFmpeg/nv-codec-headers.git
cd nv-codec-headers
$STD make install
$STD ldconfig
msg_ok "Installed NVDEC headers"
msg_info "Compiling ffmpeg (Patience)"
cd /tmp
curl -fsSL https://ffmpeg.org/releases/ffmpeg-6.1.tar.xz -o "ffmpeg-6.1.tar.xz"
$STD tar -xf ffmpeg-6.1.tar.xz
cd ffmpeg-6.1
$STD ./configure \
--prefix=/usr/local \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--enable-ffnvcodec \
--enable-libx264 \
--enable-libx265 \
--enable-libvpx \
--enable-libaom \
--enable-libopus \
--enable-libvorbis \
--enable-libmp3lame \
--enable-libass \
--enable-libfreetype \
--enable-libsvtav1 \
--disable-debug \
--disable-doc
$STD make -j$(nproc)
$STD make install
$STD ldconfig
msg_ok "Compiled ffmpeg"
msg_info "Configuring Fireshare (Patience)"
ADMIN_PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
SECRET=$(openssl rand -base64 48)
mkdir -p /opt/fireshare-{data,videos,images,processed}
cd /opt/fireshare
$STD uv venv
$STD .venv/bin/python -m ensurepip --upgrade
$STD .venv/bin/python -m pip install --upgrade --break-system-packages pip
ln -sf /usr/local/bin/ffmpeg /usr/bin/ffmpeg
ln -sf /usr/local/bin/ffprobe /usr/bin/ffprobe
echo "/usr/local/lib" >/etc/ld.so.conf.d/usr-local.conf
echo "/usr/local/cuda/lib64" >>/etc/ld.so.conf.d/usr-local.conf
echo "/usr/local/nvidia/lib" >>/etc/ld.so.conf.d/nvidia.conf
echo "/usr/local/nvidia/lib64" >>/etc/ld.so.conf.d/nvidia.conf
ldconfig
$STD .venv/bin/python -m pip install --no-cache-dir --break-system-packages --ignore-installed app/server
cp .venv/bin/fireshare /usr/local/bin/fireshare
export FLASK_APP="/opt/fireshare/app/server/fireshare:create_app()"
export DATA_DIRECTORY=/opt/fireshare-data
export IMAGE_DIRECTORY=/opt/fireshare-images
export VIDEO_DIRECTORY=/opt/fireshare-videos
export PROCESSED_DIRECTORY=/opt/fireshare-processed
$STD uv run flask db upgrade
cat <<EOF >/opt/fireshare/fireshare.env
FLASK_APP="/opt/fireshare/app/server/fireshare:create_app()"
DOMAIN=
ENVIRONMENT=production
DATA_DIRECTORY=/opt/fireshare-data
IMAGE_DIRECTORY=/opt/fireshare-images
VIDEO_DIRECTORY=/opt/fireshare-videos
PROCESSED_DIRECTORY=/opt/fireshare-processed
TEMPLATE_PATH=/opt/fireshare/app/server/fireshare/templates
SECRET_KEY=${SECRET}
ADMIN_PASSWORD=${ADMIN_PASSWORD}
TZ=UTC
LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/lib:/usr/local/cuda/lib64:\$LD_LIBRARY_PATH
PATH=/usr/local/bin:$PATH
ENABLE_TRANSCODING=
TRANSCODE_GPU=
NVIDIA_DRIVER_CAPABILITIES=
EOF
cd /opt/fireshare/app/client
$STD npm install
$STD npm run build
systemctl stop nginx
cp /opt/fireshare/app/nginx/prod.conf /etc/nginx/nginx.conf
sed -i 's|root /processed/|root /opt/fireshare-processed/|g' /etc/nginx/nginx.conf
sed -i 's/^user[[:space:]]\+nginx;/user root;/' /etc/nginx/nginx.conf
sed -i 's|root[[:space:]]\+/app/build;|root /opt/fireshare/app/client/build;|' /etc/nginx/nginx.conf
systemctl start nginx
cat <<EOF >~/fireshare.creds
Fireshare Admin Credentials
========================
Username: admin
Password: ${ADMIN_PASSWORD}
EOF
msg_ok "Configured Fireshare"
msg_info "Creating services"
cat <<EOF >/etc/systemd/system/fireshare.service
[Unit]
Description=Fireshare Service
After=network.target
[Service]
WorkingDirectory=/opt/fireshare/app/server
ExecStart=/opt/fireshare/.venv/bin/gunicorn --bind=127.0.0.1:5000 "fireshare:create_app(init_schedule=True)" --workers 3 --threads 3 --preload
Restart=always
EnvironmentFile=/opt/fireshare/fireshare.env
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now fireshare
msg_ok "Created services"
motd_ssh
customize
cleanup_lxc
-65
View File
@@ -1,65 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/foldergram/foldergram
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y --no-install-recommends ffmpeg
msg_ok "Installed Dependencies"
NODE_VERSION=25 NODE_MODULE="corepack" setup_nodejs
fetch_and_deploy_gh_release "foldergram" "foldergram/foldergram" "tarball"
msg_info "Configuring Foldergram"
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
$STD corepack enable
cd /opt/foldergram
$STD pnpm install
$STD pnpm run build
mkdir -p /opt/foldergram_media
cat <<EOF >/opt/foldergram_media/foldergram.env
NODE_ENV=production
SERVER_PORT=4141
DATA_ROOT=/opt/foldergram_media
GALLERY_ROOT=/opt/foldergram_media/gallery
DB_DIR=/opt/foldergram_media/db
THUMBNAILS_DIR=/opt/foldergram_media/thumbnails
PREVIEWS_DIR=/opt/foldergram_media/previews
IMAGE_DETAIL_SOURCE=preview
DERIVATIVE_MODE=eager
GALLERY_EXCLUDED_FOLDERS=
EOF
msg_ok "Configured Foldergram"
msg_info "Creating services"
cat <<EOF >/etc/systemd/system/foldergram.service
[Unit]
Description=Foldergram Service
After=network.target
[Service]
WorkingDirectory=/opt/foldergram
ExecStart=/usr/bin/pnpm start
Restart=always
EnvironmentFile=/opt/foldergram_media/foldergram.env
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now foldergram
msg_ok "Created services"
motd_ssh
customize
cleanup_lxc
+1 -1
View File
@@ -23,7 +23,7 @@ msg_ok "Installed Dependencies"
setup_mariadb
MARIADB_DB_NAME="ghost" MARIADB_DB_USER="ghostuser" setup_mariadb_db
NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs
NODE_VERSION="22" setup_nodejs
msg_info "Installing Ghost CLI"
$STD npm install ghost-cli@latest -g
+15 -2
View File
@@ -25,12 +25,25 @@ PG_VERSION="17" setup_postgresql
NODE_VERSION="24" setup_nodejs
msg_info "Setting up Database"
PG_DB_NAME="ghostfolio" PG_DB_USER="ghostfolio" PG_DB_SCHEMA_PERMS="true" setup_postgresql_db
DB_NAME=ghostfolio
DB_USER=ghostfolio
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
REDIS_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
ACCESS_TOKEN_SALT=$(openssl rand -base64 32)
JWT_SECRET_KEY=$(openssl rand -base64 32)
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME;"
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH ENCRYPTED PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER USER $DB_USER CREATEDB;"
$STD sudo -u postgres psql -d $DB_NAME -c "GRANT ALL ON SCHEMA public TO $DB_USER;"
$STD sudo -u postgres psql -d $DB_NAME -c "GRANT CREATE ON SCHEMA public TO $DB_USER;"
$STD sudo -u postgres psql -d $DB_NAME -c "ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO $DB_USER;"
$STD sudo -u postgres psql -d $DB_NAME -c "ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO $DB_USER;"
{
echo "Ghostfolio Credentials"
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
echo "Database Name: $DB_NAME"
echo "Redis Password: $REDIS_PASS"
echo "Access Token Salt: $ACCESS_TOKEN_SALT"
echo "JWT Secret Key: $JWT_SECRET_KEY"
@@ -56,7 +69,7 @@ read -rp "${TAB3}CoinGecko Pro API key (press Enter to skip): " COINGECKO_PRO_KE
msg_info "Setting up Environment"
cat <<EOF >/opt/ghostfolio/.env
DATABASE_URL=postgresql://$PG_DB_USER:$PG_DB_PASS@localhost:5432/$PG_DB_NAME?connect_timeout=300
DATABASE_URL=postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME?connect_timeout=300&sslmode=prefer
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=$REDIS_PASS
-58
View File
@@ -1,58 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://docs.github.com/en/actions/hosting-your-own-runners
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
git \
gh
msg_ok "Installed Dependencies"
NODE_VERSION="24" setup_nodejs
msg_info "Creating runner user (no sudo)"
useradd -m -s /bin/bash runner
msg_ok "Runner user ready"
fetch_and_deploy_gh_release "actions-runner" "actions/runner" "prebuild" "latest" "/opt/actions-runner" "actions-runner-linux-x64-*.tar.gz"
msg_info "Setting ownership for runner user"
chown -R runner:runner /opt/actions-runner
msg_ok "Ownership set"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/actions-runner.service
[Unit]
Description=GitHub Actions self-hosted runner
Documentation=https://docs.github.com/en/actions/hosting-your-own-runners
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=runner
WorkingDirectory=/opt/actions-runner
ExecStart=/opt/actions-runner/run.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q actions-runner
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-50
View File
@@ -1,50 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gogs.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y git
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "gogs" "gogs/gogs" "prebuild" "latest" "/opt/gogs" "gogs_*_linux_amd64.tar.gz"
msg_info "Setting up Gogs"
mkdir -p /opt/gogs/{custom/conf,data,log}
msg_ok "Set up Gogs"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/gogs.service
[Unit]
Description=Gogs Git Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/gogs
ExecStart=/opt/gogs/gogs web
Restart=on-failure
RestartSec=5
Environment=USER=root
Environment=HOME=/root
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now gogs
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
-24
View File
@@ -45,30 +45,6 @@ STATUS_CHECKER_INTERVAL=60
EOF
msg_ok "Configured Homelable"
msg_info "Creating Password Reset Utility"
cat <<'EOF' >/root/change_password.sh
#!/usr/bin/env bash
NEW_PASS=""
while [[ -z "$NEW_PASS" ]]; do
read -s -p "Enter new password: " NEW_PASS
echo ""
if [[ -z "$NEW_PASS" ]]; then
echo "Error: Password cannot be blank. Try again."
fi
done
HASH=$(/opt/homelable/backend/.venv/bin/python -c "from passlib.context import CryptContext; print(CryptContext(schemes=['bcrypt']).hash('${NEW_PASS}'))")
sed -i "s|^AUTH_PASSWORD_HASH=.*|AUTH_PASSWORD_HASH='${HASH}'|" /opt/homelable/backend/.env
systemctl restart homelable
echo "Password updated and service restarted successfully!"
EOF
chmod +x /root/change_password.sh
msg_ok "Created Password Reset Utility"
msg_info "Building Frontend"
cd /opt/homelable/frontend
$STD npm ci
-59
View File
@@ -1,59 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: pfassina
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/androidseb25/iGotify-Notification-Assistent
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
setup_deb822_repo \
"microsoft" \
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
"https://packages.microsoft.com/debian/13/prod/" \
"trixie" \
"main"
$STD apt install -y aspnetcore-runtime-10.0
msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "igotify" "androidseb25/iGotify-Notification-Assistent" "prebuild" "latest" "/opt/igotify" "iGotify-Notification-Service-amd64-v*.zip"
msg_info "Creating Service"
cat <<EOF >/opt/igotify/.env
ASPNETCORE_URLS=http://0.0.0.0:80
ASPNETCORE_ENVIRONMENT=Production
GOTIFY_DEFAULTUSER_PASS=
GOTIFY_URLS=
GOTIFY_CLIENT_TOKENS=
SECNTFY_TOKENS=
EOF
cat <<EOF >/etc/systemd/system/igotify.service
[Unit]
Description=iGotify Notification Service
After=network.target
[Service]
EnvironmentFile=/opt/igotify/.env
WorkingDirectory=/opt/igotify
ExecStart=/usr/bin/dotnet "/opt/igotify/iGotify Notification Assist.dll"
Restart=always
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now igotify
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc
+1 -1
View File
@@ -28,7 +28,7 @@ if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
exit 10
fi
NODE_VERSION="24" setup_nodejs
NODE_VERSION="22" setup_nodejs
msg_info "Installing ioBroker (Patience)"
$STD bash <(curl -fsSL https://iobroker.net/install.sh)
-35
View File
@@ -1,35 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://jitsi.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y nginx
msg_ok "Installed Dependencies"
source /etc/os-release
setup_deb822_repo "jitsi" \
"https://download.jitsi.org/jitsi-key.gpg.key" \
"https://download.jitsi.org" \
"stable/" \
""
msg_info "Installing Jitsi Meet"
echo "jitsi-videobridge2 jitsi-videobridge/jvb-hostname string ${LOCAL_IP}" | debconf-set-selections
echo "jitsi-meet-web-config jitsi-meet/cert-choice select Generate a new self-signed certificate" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive $STD apt install -y jitsi-meet
msg_ok "Installed Jitsi Meet"
motd_ssh
customize
cleanup_lxc
+1 -1
View File
@@ -28,7 +28,7 @@ msg_ok "Installed Dependencies"
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
PG_DB_NAME="kima" PG_DB_USER="kima" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db
NODE_VERSION="22" setup_nodejs
NODE_VERSION="20" setup_nodejs
msg_info "Configuring Redis"
systemctl enable -q --now redis-server
+1 -1
View File
@@ -27,7 +27,7 @@ msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs
setup_uv
fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball"
fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding"
msg_info "Building Frontend"
cd /opt/linkding
+2 -3
View File
@@ -30,7 +30,6 @@ $STD uv venv --clear /opt/litellm/.venv
$STD /opt/litellm/.venv/bin/python -m ensurepip --upgrade
$STD /opt/litellm/.venv/bin/python -m pip install --upgrade pip
$STD /opt/litellm/.venv/bin/python -m pip install litellm[proxy] prisma
$STD /opt/litellm/.venv/bin/prisma generate
msg_ok "Installed LiteLLM"
msg_info "Configuring LiteLLM"
@@ -41,7 +40,7 @@ general_settings:
database_url: postgresql://$PG_DB_USER:$PG_DB_PASS@127.0.0.1:5432/$PG_DB_NAME
store_model_in_db: true
EOF
$STD /opt/litellm/.venv/bin/litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
msg_ok "Configured LiteLLM"
msg_info "Creating Service"
@@ -51,7 +50,7 @@ Description=LiteLLM
[Service]
Type=simple
ExecStart=/opt/litellm/.venv/bin/litellm --config /opt/litellm/litellm.yaml
ExecStart=uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml
Restart=always
[Install]
-60
View File
@@ -1,60 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: doge0420
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/lyqht/mini-qr
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
libharfbuzz0b \
caddy \
fontconfig
msg_ok "Installed Dependencies"
NODE_VERSION="20" setup_nodejs
fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball"
msg_info "Building MiniQR"
cd /opt/mini-qr
$STD npm install
$STD npm run build
msg_ok "Built MiniQR"
msg_info "Configuring Caddy"
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/mini-qr/dist
file_server
# Handle client-side routing
try_files {path} /index.html
# Cache static assets
@assets {
path /assets/*
}
header @assets Cache-Control "public, immutable, max-age=31536000"
# Correct MIME types for JS modules
@jsmodules {
path *.js *.mjs
}
header @jsmodules Content-Type "application/javascript"
}
EOF
systemctl enable -q --now caddy
systemctl reload caddy
msg_ok "Configured Caddy"
motd_ssh
customize
cleanup_lxc
-83
View File
@@ -1,83 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MintHCM
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/minthcm/minthcm
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
PHP_VERSION="8.2"
PHP_APACHE="YES" PHP_MODULE="mysql,redis" PHP_FPM="YES" setup_php
setup_composer
setup_mariadb
$STD mariadb -u root -e "SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'"
fetch_and_deploy_gh_release "MintHCM" "minthcm/minthcm" "tarball" "latest" "/var/www/MintHCM"
msg_info "Configuring MintHCM"
mkdir -p /etc/php/${PHP_VERSION}/mods-available
cp /var/www/MintHCM/docker/config/000-default.conf /etc/apache2/sites-available/000-default.conf
cp /var/www/MintHCM/docker/config/php-minthcm.ini /etc/php/${PHP_VERSION}/mods-available/php-minthcm.ini
mkdir -p "/etc/php/${PHP_VERSION}/cli/conf.d" "/etc/php/${PHP_VERSION}/apache2/conf.d"
ln -s "/etc/php/${PHP_VERSION}/mods-available/php-minthcm.ini" "/etc/php/${PHP_VERSION}/cli/conf.d/20-minthcm.ini"
ln -s "/etc/php/${PHP_VERSION}/mods-available/php-minthcm.ini" "/etc/php/${PHP_VERSION}/apache2/conf.d/20-minthcm.ini"
chown -R www-data:www-data /var/www/MintHCM
find /var/www/MintHCM -type d -exec chmod 755 {} \;
find /var/www/MintHCM -type f -exec chmod 644 {} \;
mkdir -p /var/www/script
cp /var/www/MintHCM/docker/script/generate_config.php /var/www/script/generate_config.php
cp /var/www/MintHCM/docker/.env /var/www/script/.env
chown -R www-data:www-data /var/www/script
$STD a2enmod rewrite
$STD a2enmod headers
$STD systemctl restart apache2
msg_ok "Configured MintHCM"
msg_info "Setting up Elasticsearch"
setup_deb822_repo \
"elasticsearch" \
"https://artifacts.elastic.co/GPG-KEY-elasticsearch" \
"https://artifacts.elastic.co/packages/7.x/apt" \
"stable"
$STD apt install -y elasticsearch
echo "-Xms2g" >>/etc/elasticsearch/jvm.options
echo "-Xmx2g" >>/etc/elasticsearch/jvm.options
$STD /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment -b
systemctl enable -q --now elasticsearch
msg_ok "Set up Elasticsearch"
msg_info "Configuring Database"
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mariadb -u root -e "CREATE USER 'minthcm'@'localhost' IDENTIFIED BY '${DB_PASS}';"
$STD mariadb -u root -e "GRANT ALL ON *.* TO 'minthcm'@'localhost'; FLUSH PRIVILEGES;"
sed -i "s/^DB_HOST=.*/DB_HOST=localhost/" /var/www/script/.env
sed -i "s/^DB_USER=.*/DB_USER=minthcm/" /var/www/script/.env
sed -i "s/^DB_PASS=.*/DB_PASS=$DB_PASS/" /var/www/script/.env
sed -i "s/^ELASTICSEARCH_HOST=.*/ELASTICSEARCH_HOST=localhost/" /var/www/script/.env
msg_ok "Configured Database"
msg_info "Generating configuration file"
set -a
source /var/www/script/.env
set +a
$STD php /var/www/script/generate_config.php
msg_ok "Generated configuration file"
msg_info "Installing MintHCM"
cd /var/www/MintHCM
$STD sudo -u www-data php MintCLI install </var/www/MintHCM/configMint4
printf "* * * * * cd /var/www/MintHCM/legacy; php -f cron.php > /dev/null 2>&1\n" >/var/spool/cron/crontabs/www-data
service cron start
rm -f /var/www/MintHCM/configMint4
msg_ok "Installed MintHCM"
motd_ssh
customize
cleanup_lxc

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