Compare commits

...

97 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
4e52111ca0 switch returns 2026-02-25 16:37:36 +01:00
CanbiZ (MickLesk)
375dccacb1 tools.func: Improve GitHub/Codeberg API error handling and error output
Enhance API call robustness and user feedback in misc/tools.func: add explicit handling for HTTP 401 (authentication) and 000/no-response cases, provide clearer error messages and actionable guidance (e.g. export GITHUB_TOKEN, check network/DNS), and preserve retry/backoff logic. Adjusted curl invocation/error capture to avoid echoing sentinel values and updated messages for 403/404/other HTTP errors. Changes touch github_api_call, codeberg_api_call, get_latest_gh_tag, check_for_gh_release, and fetch_and_deploy_gh_release to fail earlier and clean up temp files on errors.
2026-02-25 16:28:21 +01:00
community-scripts-pr-app[bot]
1c463369c7 Update .app files (#12325)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-25 16:18:48 +01:00
community-scripts-pr-app[bot]
1a1e707db3 Update CHANGELOG.md (#12326)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 15:16:59 +00:00
push-app-to-main[bot]
95a63e66a8 Zerobyte (#12321)
* Add zerobyte (ct)

* Refactor zerobyte.sh to streamline Node.js setup

Removed redundant NODE_VERSION setup for Node.js during the build process.

* Update note to include FUSE pre-configuration detail

* Update date_created from 2026-02-18 to 2026-02-25

* Update zerobyte-install.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-02-25 16:16:23 +01:00
CanbiZ (MickLesk)
b09f2db2a9 Handle job-control signals and clear tostop
Prevent terminal job-control signals from suspending the script during recovery by trapping TSTP, TTIN and TTOU (instead of only TSTP) and restoring them on exit. Also clear the terminal 'tostop' flag in stop_spinner() with `stty -tostop` to avoid background spinner I/O from stopping the process group.
2026-02-25 14:45:11 +01:00
CanbiZ (MickLesk)
340d999b2b force gitea sync 2026-02-25 14:25:37 +01:00
community-scripts-pr-app[bot]
8c9874c4aa Update CHANGELOG.md (#12318)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 13:08:50 +00:00
community-scripts-pr-app[bot]
e9b98c2ab0 Update CHANGELOG.md (#12317)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 13:08:28 +00:00
CanbiZ (MickLesk)
dd46dd2d87 core: remove duplicate traps, consolidate error handling and harden signal traps (#12316)
* fix(zammad): configure Elasticsearch for LXC container startup

- Set discovery.type: single-node (required for single-node ES)
- Set xpack.security.enabled: false (not needed in local LXC)
- Set bootstrap.memory_lock: false (fails in unprivileged LXC)
- Add startup wait loop (up to 60s) to ensure ES is ready before
  Zammad installation continues

Fixes #12301-related recurring Elasticsearch startup failures

* refactor(api): eliminate duplicate traps, harden error handling & telemetry

Phase 1 - Structural:
- Remove api_exit_script() and 5 inline traps from build.func
- error_handler.func is now the sole trap owner via catch_errors()
- Update api.func comment reference (api_exit_script -> on_exit)

Phase 2 - Quality:
- Add stop_spinner() + cursor restore to error_handler(), on_interrupt(),
  on_terminate(), on_hangup() to prevent spinner/cursor artifacts
- Enhance _send_abort_telemetry() with error text (last 20 log lines),
  duration calculation, and 2 retry attempts (was fire-and-forget)
- Harden json_escape() to also strip DEL (0x7F) character

* fix(build): show spinner during post_update_to_api to prevent Ctrl+Z abort

post_update_to_api can take up to 33 seconds worst-case (3 curl attempts
x 10s timeout + sleep delays). Without any terminal output during this
time, users think the script is stuck and press Ctrl+Z, which prevents
the recovery menu from ever appearing.

Add msg_info spinner before both post_update_to_api calls in the failure
path (initial report + final force retry after recovery menu).

* fix(build): prevent SIGTSTP from killing recovery dialog

- Replace msg_info/stop_spinner with plain echo for telemetry reporting
  The background spinner process in non-interactive shells (bash -c)
  can trigger SIGTSTP, stopping the entire process group before the
  recovery dialog appears. Plain echo avoids this.

- Add trap '' TSTP at failure path entry to ignore suspension signals
  Prevents Ctrl+Z or terminal-related SIGTSTP from interrupting the
  recovery menu. Restored with trap - TSTP before exit.

- Root cause: msg_info starts a background process (spinner &) that
  is not properly detached in non-interactive shells where job control
  (set -m) is OFF. The disown builtin has no effect without job
  control, leaving the spinner in the same process group. This can
  cause terminal I/O conflicts during the 33-second post_update_to_api
  retry window, resulting in [2]+ Stopped.

* fix(test): initialize colors and remove illegal local in test harness

- Call load_functions() after sourcing core.func to initialize
  color/formatting/icon variables (RD, GN, YW, CL, TAB, etc.)
- Remove 'local' keyword from top-level scope (not inside function)
- Default REPO_SOURCE to ref_api instead of main

* chore: remove test-recovery-dialog.sh from branch

* Revert "fix(zammad): configure Elasticsearch for LXC container startup"

This reverts commit 10e450b72f.

* fix(build): show telemetry status only in verbose mode

Telemetry reporting is an implementation detail that doesn't help
the user during failure recovery. Wrap echo statements with
VERBOSE check so they only appear when verbose mode is enabled.
2026-02-25 14:08:24 +01:00
Slaviša Arežina
719761de6c Update Nginx client_max_body_size for Passbolt (#12313) 2026-02-25 14:08:02 +01:00
community-scripts-pr-app[bot]
765cd6d123 Update CHANGELOG.md (#12315)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 12:55:32 +00:00
CanbiZ (MickLesk)
26915e3979 Zammad: configure Elasticsearch before zammad start (#12308)
* fix(zammad): configure Elasticsearch for LXC container startup

- Set discovery.type: single-node (required for single-node ES)
- Set xpack.security.enabled: false (not needed in local LXC)
- Set bootstrap.memory_lock: false (fails in unprivileged LXC)
- Add startup wait loop (up to 60s) to ensure ES is ready before
  Zammad installation continues

Fixes #12301-related recurring Elasticsearch startup failures

* Update install/zammad-install.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2026-02-25 13:55:07 +01:00
community-scripts-pr-app[bot]
34343bc61c chore: update github-versions.json (#12314)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 12:15:02 +00:00
community-scripts-pr-app[bot]
7484c58175 Update CHANGELOG.md (#12311)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 10:28:24 +00:00
CanbiZ (MickLesk)
dd4a15fff1 github: improvements for node drift wf (#12309)
* fix(workflow): improve Node.js version drift detection accuracy

1. Fix source URL regex: now captures 'Github: https://github.com/...'
   pattern (pipe-separated), not just '# Source: https://github.com/...'
   This was causing ~50 scripts to show 'No GitHub source'

2. Fix semver comparison: engines.node constraints like '>=18.0.0'
   no longer flag version 22 as drift. >= and ^ constraints are now
   properly evaluated (our_version >= min_major = satisfied)

3. Add fallback detection: when no Dockerfile or engines.node is found,
   check .nvmrc and .node-version files for Node version hints

4. Add subdirectory search: Dockerfile and package.json are now found
   via GitHub API tree search, not just in repo root

5. Use GitHub API to detect default branch instead of guessing
   main/master/dev with multiple HEAD requests

* fix typos in node_version

* runs on vps
2026-02-25 11:27:47 +01:00
community-scripts-pr-app[bot]
6df91f54af Update CHANGELOG.md (#12307)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 07:23:34 +00:00
Tempest
8c0016c0a7 Fix detection of ssh keys (#12230) 2026-02-25 08:23:14 +01:00
community-scripts-pr-app[bot]
a94bf79869 Update CHANGELOG.md (#12306)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 07:23:13 +00:00
Slaviša Arežina
191539b28b OpenProject: Various fixes (#12246)
* Updates

* Add jemalloc

* Better engrish
2026-02-25 08:22:48 +01:00
community-scripts-pr-app[bot]
31f410c3e5 chore: update github-versions.json (#12305)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 06:25:17 +00:00
community-scripts-pr-app[bot]
efdfe127a7 Update CHANGELOG.md (#12304)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 00:23:45 +00:00
community-scripts-pr-app[bot]
007ecc3c14 chore: update github-versions.json (#12303)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-25 00:23:24 +00:00
community-scripts-pr-app[bot]
db95b776b7 Update CHANGELOG.md (#12299)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 22:00:59 +00:00
Tobias
1560a7fb97 fix: wealthfolio for v3 (#11765)
* wealthfolio-v3

* fix: remove duplicate

* fix: remove duplicate

* Update frontend build command in wealthfolio.sh

* Update frontend build command in install script
2026-02-24 23:00:30 +01:00
community-scripts-pr-app[bot]
8fc5b83b57 Update CHANGELOG.md (#12298)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 21:33:56 +00:00
CanbiZ (MickLesk)
33fd68b97f Databasus: add mariadb path for mysql/mariadb backups | add mongodb database tools (#12259)
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2026-02-24 22:33:27 +01:00
community-scripts-pr-app[bot]
7e37d23c5e Update CHANGELOG.md (#12297)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 20:58:16 +00:00
Chris
cc034b57ff [Fix] PatchMon: remove VITE_API_URL from frontend env (#12294) 2026-02-24 21:57:47 +01:00
CanbiZ (MickLesk)
98792e9394 typo qf 2026-02-24 19:54:21 +01:00
community-scripts-pr-app[bot]
87b7918779 chore: update github-versions.json (#12291)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 18:21:56 +00:00
community-scripts-pr-app[bot]
aa6e2b57fb Update CHANGELOG.md (#12285)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 14:16:01 +00:00
Mark
b3eb937d55 fix(searxng): remove orphaned fi causing syntax error (#12283) 2026-02-24 15:15:34 +01:00
community-scripts-pr-app[bot]
af24e42919 Update CHANGELOG.md (#12284)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 14:12:18 +00:00
CanbiZ (MickLesk)
dbdd891a99 several scripts: add additional github link in source (#12282)
* fix(error-handler): prevent silent() from re-enabling error handling during recovery

Root cause: silent() (core.func) unconditionally calls set -Eeuo pipefail
and trap 'error_handler' ERR after every command. When build_container()
intentionally disables error handling for its recovery section, any
intermediate call through silent()/ re-enables it. This causes the
grep/sed pipeline for missing_cmd extraction to trigger error_handler
(grep returns exit code 1 on no match + pipefail = fatal).

Fixes:
1. silent(): Save errexit state before disabling, only restore if it was
   active. Callers that intentionally disabled error handling (e.g.
   build_container recovery) are no longer silently re-enabled.

2. build.func: Add || true to missing_cmd grep pipeline as defense-in-depth
   against pipeline failure propagation.

3. build.func: Add explicit set +Eeuo pipefail / trap - ERR after
   post_update_to_api() call, before error classification grep/sed section.

4. build.func: Remove stale global combined_log variable from variables()
   that used a different path format (/tmp/install-SESSION-combined.log)
   than the actual local variable (/tmp/NSAPP-CTID-SESSION.log). The global
   was never written to and caused confusion when error_handler displayed it.

* Update build.func

* chore(install): add Github source links to all setup_nodejs scripts

52 install scripts had a project website in '# Source:' but no GitHub
link. Merged the GitHub repo URL into the Source header as:
  # Source: https://website.com/ | Github: https://github.com/OWNER/REPO

Repos sourced from fetch_and_deploy_gh_release calls, get_latest_github_release
calls, or known project repos for npm/pip installed apps.

Two scripts (fumadocs, pve-scripts-local) had no Source line at all —
added one. Shinobi skipped (GitLab-only, no GitHub repo).

* chore(install): add Github source links to all fetch_and_deploy scripts

77 additional install scripts had fetch_and_deploy_gh_release calls but
no GitHub link in the Source header. Merged the primary app repo into
the Source header as:
  # Source: https://website.com/ | Github: https://github.com/OWNER/REPO

Where multiple fetch_and_deploy calls existed (app + dependency), the
primary app repo was selected:
- ersatztv: ErsatzTV/ErsatzTV (not ffmpeg)
- firefly: firefly-iii/firefly-iii (not data-importer)
- komga: gotson/komga (not kepubify dep)
- sabnzbd: sabnzbd/sabnzbd (not par2cmdline-turbo dep)
- signoz: SigNoz/signoz (not otel-collector)
- tunarr: chrisbenincasa/tunarr (not ffmpeg dep)

Also fixed cosmos-install.sh double https:// in Source URL.

Skipped: autocaliweb (source already on codeberg, GitHub repos are deps only)

* revert: restore misc/build.func and misc/core.func to main state

These error-handler fixes belong to fix/error-handler-recovery, not to
this sources-only branch.

* chore(ct,tools): sync Source headers with install/ and add Github links to addon scripts
2026-02-24 15:11:53 +01:00
community-scripts-pr-app[bot]
1a066e88a9 Update CHANGELOG.md (#12281)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 13:22:35 +00:00
CanbiZ (MickLesk)
0e364adb54 core: fix broken "command not found" after err_trap (#12280) 2026-02-24 14:22:07 +01:00
community-scripts-pr-app[bot]
73fd1dd11b chore: update github-versions.json (#12278)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 12:15:56 +00:00
community-scripts-pr-app[bot]
efcdd65c67 Update CHANGELOG.md (#12274)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 11:10:36 +00:00
CanbiZ (MickLesk)
8b15af7499 ci: add weekly Node.js version drift check workflow (#12267)
Scans all install scripts using setup_nodejs and compares our
NODE_VERSION with upstream Dockerfile and package.json values.

Features:
- Detects FROM node:XX, nodesource/setup_XX, FROM alpine:X.Y
- Resolves Alpine package registry for nodejs version when
  upstream uses alpine base images
- Caches Alpine version lookups to minimize requests
- Creates individual GitHub issues per script with investigation
  checklist when drift is detected
- Rate-limited to avoid GitHub API throttling
- Runs weekly on Monday at 06:00 UTC + manual dispatch
2026-02-24 12:10:11 +01:00
community-scripts-pr-app[bot]
13daffdeed Update .app files (#12271)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-24 12:01:46 +01:00
community-scripts-pr-app[bot]
fd82f5b496 Update CHANGELOG.md (#12273)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 10:54:29 +00:00
CanbiZ (MickLesk)
83f03d617e Refactor n8n (#12264) 2026-02-24 11:54:02 +01:00
community-scripts-pr-app[bot]
4c5d5b2030 Update CHANGELOG.md (#12272)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 10:38:42 +00:00
CanbiZ (MickLesk)
4e1ade4c28 bump various scripts from Node 22 to 24 (#12265)
* bump(node): Node 22 to 24 for Tier 1 projects

Bump Node.js from 22 to 24 in install and ct update scripts for projects
where upstream already uses Node 24 in their Dockerfile/package.json:

- Cross-seed (engines >=24, Dockerfile node:24-alpine)
- Matterbridge (engines >=24.0.0, Dockerfile node:24-trixie-slim)
- Manyfold (volta.node 24.13.0)
- Pangolin (Dockerfile node:24-alpine)
- ROMM (engines 24, nvm install 24)
- SnowShare (Dockerfile node:24-alpine)
- Verdaccio (engines >=18, Dockerfile node:24-alpine)

Also adds missing NODE_VERSION setup_nodejs calls to ct update scripts
for cross-seed, pangolin, romm, snowshare, and manyfold.

* formatting

* fix: pin NODE_VERSION for nodecast-tv and wealthfolio

nodecast-tv: NODE_VERSION=20 (upstream Dockerfile uses nodesource/setup_20.x)
wealthfolio: NODE_VERSION=20 (upstream Dockerfile uses node:20-alpine)

* ci: add weekly Node.js version drift check workflow

Scans all install scripts using setup_nodejs, fetches upstream
package.json (engines.node) and Dockerfile (FROM node:XX),
compares with our NODE_VERSION and opens/updates a GitHub issue
on mismatch. Runs weekly on Monday at 06:00 UTC.

* remove wf - seperate branch
2026-02-24 11:38:15 +01:00
community-scripts-pr-app[bot]
e5073d1a4f Update CHANGELOG.md (#12270)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 10:35:32 +00:00
community-scripts-pr-app[bot]
01e956bdf8 Update CHANGELOG.md (#12269)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 10:35:01 +00:00
community-scripts-pr-app[bot]
0cc049edb6 Update date in json (#12268)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-24 10:34:55 +00:00
push-app-to-main[bot]
ffa1a26b5e Arcane (#12263)
* Add arcane (addon)

* Update tools/addon/arcane.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2026-02-24 11:34:33 +01:00
community-scripts-pr-app[bot]
59ca9c26c9 Update CHANGELOG.md (#12266)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 10:08:03 +00:00
CanbiZ (MickLesk)
56de2d1e39 feat(tools): add get_latest_gh_tag helper function (#12261)
Adds a reusable function to fetch the latest tag from a GitHub repo.
Useful for projects that only use tags, not full releases (e.g.
mongodb/mongo-tools).

Features:
- Optional prefix filter (e.g. '100.' or 'v')
- Optional prefix stripping for clean version output
- Skips pre-release tags (rc, alpha, beta, dev, test)
- Sorts by version (sort -V) to find the latest
- Respects GITHUB_TOKEN for rate limiting
2026-02-24 11:07:40 +01:00
community-scripts-pr-app[bot]
72eb8b9575 Update CHANGELOG.md (#12262)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 08:41:34 +00:00
Tobias
65a67347bd Create stale_pr_close.yml (#12243) 2026-02-24 09:41:06 +01:00
community-scripts-pr-app[bot]
25d54ff69a Update CHANGELOG.md (#12260)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 08:25:15 +00:00
D12R
5c85c5098e adds further documentation during the installation script. (#12248) 2026-02-24 09:24:44 +01:00
community-scripts-pr-app[bot]
7b8080438d Update CHANGELOG.md (#12258)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 08:09:46 +00:00
community-scripts-pr-app[bot]
2041371a04 Update CHANGELOG.md (#12257)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 08:09:19 +00:00
Stefan Tomas
b172301e0f Fix/make searxng updateable (#12207)
* Made update script useable

* Added info messages

* Use $STD prefix for all update commands

* Update ct/searxng.sh

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>

* Update searxng.sh

---------

Co-authored-by: Stefan Tomas <stefan.tomas@proton.me>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2026-02-24 09:08:56 +01:00
community-scripts-pr-app[bot]
4b6cb1601b Update CHANGELOG.md (#12256)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 07:32:38 +00:00
Slaviša Arežina
d9f766cca6 PHP bump (#12247) 2026-02-24 08:32:11 +01:00
community-scripts-pr-app[bot]
a4973fa3b7 chore: update github-versions.json (#12254)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 06:23:48 +00:00
community-scripts-pr-app[bot]
dcbb8490f1 Update CHANGELOG.md (#12252)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 00:23:06 +00:00
community-scripts-pr-app[bot]
3aa5431302 chore: update github-versions.json (#12251)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-24 00:22:45 +00:00
community-scripts-pr-app[bot]
2e753578cd Update .app files (#12239)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 22:44:05 +01:00
community-scripts-pr-app[bot]
483ead9a8b Update CHANGELOG.md (#12242)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 21:42:28 +00:00
community-scripts-pr-app[bot]
53ee9403cd Update CHANGELOG.md (#12241)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 21:42:04 +00:00
community-scripts-pr-app[bot]
ed7e71f8c3 Update date in json (#12240)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 21:42:00 +00:00
push-app-to-main[bot]
97d4b3ffc2 SeaweedFS (#12220)
* Add seaweedfs (ct)

* Update seaweedfs.sh

* Add var_fuse variable with default value 'yes'

* Formatting

* Update seaweedfs-install.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: tremor021 <arezina.slavisa@gmail.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2026-02-23 22:41:29 +01:00
community-scripts-pr-app[bot]
e226386c9d Update .app files (#12233)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 19:43:54 +01:00
community-scripts-pr-app[bot]
4e7e348322 Update CHANGELOG.md (#12237)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:26:44 +00:00
community-scripts-pr-app[bot]
0920d56218 chore: update github-versions.json (#12236)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:26:16 +00:00
community-scripts-pr-app[bot]
071420c39a Update CHANGELOG.md (#12235)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:22:14 +00:00
community-scripts-pr-app[bot]
6a7bc481a4 Update CHANGELOG.md (#12234)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:22:00 +00:00
community-scripts-pr-app[bot]
11fb4743cc Update date in json (#12232)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 18:21:45 +00:00
push-app-to-main[bot]
b2a710e673 Sonobarr (#12221)
* Add sonobarr (ct)

* Update script source URL for build function

* Change default var_tags from 'storage' to 'music;discovery'

* Formatting

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Chris <punk.sand7393@fastmail.com>
Co-authored-by: tremor021 <arezina.slavisa@gmail.com>
2026-02-23 19:21:26 +01:00
community-scripts-pr-app[bot]
49f1f16cba Update CHANGELOG.md (#12229)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 17:38:17 +00:00
CanbiZ (MickLesk)
8005ddd74f memos: unpin version due new release artifacts (#12224) 2026-02-23 18:37:27 +01:00
community-scripts-pr-app[bot]
2fead98966 Update CHANGELOG.md (#12228)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 17:26:00 +00:00
Michel Roegl-Brunner
09de4e9ca9 Remove huntarr (#12226)
* huntarr.sh

* huntarr-install.sh löschen

* Delete frontend/public/json/huntarr.json

* Delete ct/headers/huntarr

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2026-02-23 18:25:24 +01:00
community-scripts-pr-app[bot]
e1815642b2 Update CHANGELOG.md (#12227)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 17:25:00 +00:00
CanbiZ (MickLesk)
75da6920d5 booklore v2: embed frontend, bump Java to 25, remove nginx (#12223) 2026-02-23 18:24:33 +01:00
CanbiZ (MickLesk)
5f13d29c57 fix(telemetry): prevent sporadic stuck 'configuring' status on success
Root cause: post_update_to_api set POST_UPDATE_DONE=true even after
all 3 retry attempts failed (curl timeout, API error). This prevented
the EXIT trap (api_exit_script) from retrying with fresh attempts.

Changes:
- Only set POST_UPDATE_DONE=true on actual HTTP 2xx success
- If all 3 attempts fail, EXIT trap gets 3 more fresh attempts
- Increase timeout from 5s to 10s for final status updates (STATUS_TIMEOUT)
  Progress pings keep 5s (TELEMETRY_TIMEOUT) since they're lightweight
- post_update_to_api_extended: add proper retry logic + HTTP code check
  (was fire-and-forget with no retry)
2026-02-23 17:24:06 +01:00
CanbiZ (MickLesk)
3c83654666 fix(telemetry): move 'configuring' transition to right after container creation
Validation status was persisting through container start, network check,
and OS customization. Now transitions to 'configuring' immediately after
create_lxc_container returns. Validation only covers storage/template/cluster
checks as intended.
2026-02-23 17:11:14 +01:00
CanbiZ (MickLesk)
ae3a249854 Capture lxc-attach output to host log
Pipe lxc-attach output through tee into /tmp/.install-capture-${SESSION_ID}.log and use PIPESTATUS[0] to get the real lxc-attach exit code. Prefer a pulled container-side INSTALL_LOG when it exists and is >100 bytes; otherwise fall back to the host-captured terminal log (stripping ANSI codes) and append it to the combined log so get_full_log() can find it. Apply the same capture behavior to the retry path and remove temporary capture files on completion. This makes install output reliable when container-side logging is missing (DNS errors, early crashes, or missing silent() usage).
2026-02-23 17:08:38 +01:00
CanbiZ (MickLesk)
a8a1cbcf3e feat(telemetry): add 'validation' status, fix status transitions, show 20 log lines
Status flow is now: installing → validation → configuring → success/failed

Changes:
- post_progress_to_api() accepts optional status parameter (default: configuring)
- build.func: Send 'validation' before storage/template/cluster checks
- build.func: Send 'configuring' just before lxc-attach (app install)
- build.func: Remove redundant progress pings during container start/network
- install.func + alpine-install.func: Accept status parameter in container-side
  post_progress_to_api()
- core.func + vm-core.func: silent() now shows last 20 lines on error (was 10)
2026-02-23 17:01:18 +01:00
CanbiZ (MickLesk)
60f9622998 fix(core): keep host-side logging on BUILD_LOG after INSTALL_LOG export
After 'export INSTALL_LOG' in build.func, get_active_logfile() returned
the container's INSTALL_LOG path for all host-side logging, causing
msg_info/msg_ok/msg_error on the host to write to /root/.install-SESSION.log
(the host file, not the container's) instead of BUILD_LOG. This made
BUILD_LOG incomplete and get_full_log() unable to send full traces.

Fix: Add _HOST_LOGFILE (not exported, invisible to container) so the host
always logs to BUILD_LOG. Container still uses INSTALL_LOG as before.
2026-02-23 16:07:13 +01:00
community-scripts-pr-app[bot]
552f3ab1d4 Update CHANGELOG.md (#12219)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 13:53:28 +00:00
JohnFII
aa54640798 chore: update Frigate documentation and website URLs (#12218) 2026-02-23 14:52:59 +01:00
community-scripts-pr-app[bot]
e1a8dfa8a2 Update CHANGELOG.md (#12217)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 13:31:19 +00:00
CanbiZ (MickLesk)
691cec80ab core: Enhance signal handling, reported "status" and logs (#12216)
* Enhance telemetry, signal handling, and logs

Improve failure telemetry and signal handling across the installer: add get_full_log() to collect/strip/truncate install logs and include them in API payloads with a truncated retry; add CONTAINER_INSTALLING flag around lxc-attach and stop containers on abort to avoid orphaned "installing/configuring" records; introduce _send_abort_telemetry() (curl fallback for container context) and _stop_container_if_installing() helpers; centralize and simplify EXIT/ERR/INT/TERM/HUP traps and handlers (including a new on_hangup handler) and update VM scripts to report numeric exit codes. Also ensure best-effort log collection is performed and tweak error categorization for certain signals.

* Include full log in error telemetry

Use get_full_log (up to 120KB) to populate the error telemetry field so the API receives the full installation trace; fall back to get_error_text (last ~20 lines) if the full log is empty. Removed collection and inclusion of a separate install_log field from the JSON payloads and simplified the retry payloads/comments accordingly. The change ensures error reports contain the complete trace while avoiding duplicate large log fields and keeps graceful failure handling (get_full_log || true).

* Anonymize IP addresses in get_full_log

Mask IPv4 addresses in logs when collecting full log output: added a sed step that replaces the last two octets with "x.x" to avoid exposing full IPs (GDPR). Also updated the comment to reflect anonymization; existing steps that strip carriage returns and ANSI escape sequences remain in place before truncating with head -c.
2026-02-23 14:30:48 +01:00
community-scripts-pr-app[bot]
c1ec478269 Update .app files (#12213)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 13:42:31 +01:00
community-scripts-pr-app[bot]
0e8f9c1237 Update CHANGELOG.md (#12215)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 12:38:40 +00:00
community-scripts-pr-app[bot]
620db1901c Update CHANGELOG.md (#12214)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 12:38:19 +00:00
community-scripts-pr-app[bot]
d5ce186aa3 Update date in json (#12212)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-02-23 12:38:11 +00:00
push-app-to-main[bot]
68fbed63a5 SparkyFitness (#12185)
* Add sparkyfitness (ct)

* Fix URL and improve backup commands in script

* Fix path formatting in installation script

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-02-23 13:37:54 +01:00
community-scripts-pr-app[bot]
973970ee1a Update CHANGELOG.md (#12211)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-23 12:37:37 +00:00
Kenny Laevaert
b30e86aa2f Update default credentials (#12201)
Updated default credentials.
2026-02-23 13:37:14 +01:00
373 changed files with 3028 additions and 882 deletions

456
.github/workflows/check-node-versions.yml generated vendored Normal file
View File

@@ -0,0 +1,456 @@
name: Check Node.js Version Drift
on:
workflow_dispatch:
schedule:
# Runs weekly on Monday at 06:00 UTC
- cron: "0 6 * * 1"
permissions:
contents: read
issues: write
jobs:
check-node-versions:
if: github.repository == 'community-scripts/ProxmoxVE'
runs-on: coolify-runner
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: main
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq jq curl > /dev/null 2>&1
- name: Check upstream Node.js versions
id: check
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
echo "================================================"
echo " Checking Node.js version drift in install scripts"
echo "================================================"
# Alpine version -> Node major cache (populated on demand)
declare -A ALPINE_NODE_CACHE
# Resolve Node.js major version from Alpine package registry
# Usage: resolve_alpine_node "3.21" => sets REPLY to major version (e.g. "22")
resolve_alpine_node() {
local alpine_ver="$1"
if [[ -n "${ALPINE_NODE_CACHE[$alpine_ver]+x}" ]]; then
REPLY="${ALPINE_NODE_CACHE[$alpine_ver]}"
return
fi
local url="https://pkgs.alpinelinux.org/package/v${alpine_ver}/main/x86_64/nodejs"
local page
page=$(curl -sf "$url" 2>/dev/null || echo "")
local full_ver=""
if [[ -n "$page" ]]; then
# Parse: "Version | 24.13.0-r1" or similar table row
full_ver=$(echo "$page" | grep -oP 'Version\s*\|\s*\K[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "")
if [[ -z "$full_ver" ]]; then
# Fallback: look for version pattern after "Version"
full_ver=$(echo "$page" | grep -oP '(?<=Version</td><td>)[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "")
fi
fi
local major=""
if [[ -n "$full_ver" ]]; then
major="${full_ver%%.*}"
fi
ALPINE_NODE_CACHE[$alpine_ver]="$major"
REPLY="$major"
}
# Extract Node major from a Dockerfile content
# Sets: DF_NODE_MAJOR, DF_SOURCE (description of where we found it)
extract_dockerfile_node() {
local content="$1"
DF_NODE_MAJOR=""
DF_SOURCE=""
# 1) FROM node:XX (e.g. node:24-alpine, node:22.9.0-bookworm-slim, node:20)
local node_from
node_from=$(echo "$content" | grep -oP '(?i)FROM\s+(--platform=[^\s]+\s+)?node:\K[0-9]+' | head -1 || echo "")
if [[ -n "$node_from" ]]; then
DF_NODE_MAJOR="$node_from"
DF_SOURCE="FROM node:${node_from}"
return
fi
# 2) nodesource/setup_XX.x
local nodesource
nodesource=$(echo "$content" | grep -oP 'nodesource/setup_\K[0-9]+' | head -1 || echo "")
if [[ -n "$nodesource" ]]; then
DF_NODE_MAJOR="$nodesource"
DF_SOURCE="nodesource/setup_${nodesource}.x"
return
fi
# 3) FROM alpine:X.Y — resolve via Alpine packages
local alpine_ver
alpine_ver=$(echo "$content" | grep -oP '(?i)FROM\s+(--platform=[^\s]+\s+)?alpine:\K[0-9]+\.[0-9]+' | head -1 || echo "")
if [[ -n "$alpine_ver" ]]; then
resolve_alpine_node "$alpine_ver"
if [[ -n "$REPLY" ]]; then
DF_NODE_MAJOR="$REPLY"
DF_SOURCE="alpine:${alpine_ver} (pkg: nodejs ${DF_NODE_MAJOR})"
return
fi
fi
}
# Extract Node major from engines.node in package.json
# Sets: ENGINES_NODE_RAW (raw string), ENGINES_MIN_MAJOR, ENGINES_IS_MINIMUM
extract_engines_node() {
local content="$1"
ENGINES_NODE_RAW=""
ENGINES_MIN_MAJOR=""
ENGINES_IS_MINIMUM="false"
ENGINES_NODE_RAW=$(echo "$content" | jq -r '.engines.node // empty' 2>/dev/null || echo "")
if [[ -z "$ENGINES_NODE_RAW" ]]; then
return
fi
# Detect if constraint is a minimum (>=, ^) vs exact pinning
if [[ "$ENGINES_NODE_RAW" =~ ^(\>=|\^|\~) ]]; then
ENGINES_IS_MINIMUM="true"
fi
# Extract the first number (major) from the constraint
# Handles: ">=24.13.1", "^22", ">=18.0.0", ">=18.15.0 <19 || ^20", etc.
ENGINES_MIN_MAJOR=$(echo "$ENGINES_NODE_RAW" | grep -oP '\d+' | head -1 || echo "")
}
# Check if our_version satisfies an engines.node constraint
# Returns 0 if satisfied, 1 if not
# Usage: version_satisfies_engines "22" ">=18.0.0" "true"
version_satisfies_engines() {
local our="$1"
local min_major="$2"
local is_minimum="$3"
if [[ -z "$min_major" || -z "$our" ]]; then
return 1
fi
if [[ "$is_minimum" == "true" ]]; then
# >= or ^ constraint: our version must be >= min_major
if [[ "$our" -ge "$min_major" ]]; then
return 0
fi
fi
return 1
}
# Search for files in subdirectories via GitHub API tree
# Usage: find_repo_file "owner/repo" "branch" "filename" => sets REPLY to raw URL or empty
find_repo_file() {
local repo="$1"
local branch="$2"
local filename="$3"
REPLY=""
# Try root first (fast)
local root_url="https://raw.githubusercontent.com/${repo}/${branch}/${filename}"
if curl -sfI "$root_url" >/dev/null 2>&1; then
REPLY="$root_url"
return
fi
# Search via GitHub API tree (recursive)
local tree_url="https://api.github.com/repos/${repo}/git/trees/${branch}?recursive=1"
local tree_json
tree_json=$(curl -sf -H "Authorization: token $GH_TOKEN" "$tree_url" 2>/dev/null || echo "")
if [[ -z "$tree_json" ]]; then
return
fi
# Find first matching path (prefer shorter/root-level paths)
local match_path
match_path=$(echo "$tree_json" | jq -r --arg fn "$filename" \
'.tree[]? | select(.path | endswith("/" + $fn) or . == $fn) | .path' 2>/dev/null \
| sort | head -1 || echo "")
if [[ -n "$match_path" ]]; then
REPLY="https://raw.githubusercontent.com/${repo}/${branch}/${match_path}"
fi
}
# Extract Node major from .nvmrc or .node-version
# Sets: NVMRC_NODE_MAJOR
extract_nvmrc_node() {
local content="$1"
NVMRC_NODE_MAJOR=""
# .nvmrc/.node-version typically has: "v22.9.0", "22", "lts/iron", etc.
local ver
ver=$(echo "$content" | tr -d '[:space:]' | grep -oP '^v?\K[0-9]+' | head -1 || echo "")
NVMRC_NODE_MAJOR="$ver"
}
# Collect results
declare -a issue_scripts=()
declare -a report_lines=()
total=0
checked=0
drift_count=0
for script in install/*-install.sh; do
[[ ! -f "$script" ]] && continue
if ! grep -q 'setup_nodejs' "$script"; then
continue
fi
total=$((total + 1))
slug=$(basename "$script" | sed 's/-install\.sh$//')
# Extract Source URL (GitHub only)
# Supports both:
# # Source: https://github.com/owner/repo
# # Source: https://example.com | Github: https://github.com/owner/repo
source_url=$(head -20 "$script" | grep -oP 'https://github\.com/[^\s|]+' | head -1 || echo "")
if [[ -z "$source_url" ]]; then
report_lines+=("| \`$slug\` | — | — | — | — | ⏭️ No GitHub source |")
continue
fi
repo=$(echo "$source_url" | sed -E 's|https://github\.com/||; s|/$||; s|\.git$||')
if [[ -z "$repo" || "$repo" != */* ]]; then
report_lines+=("| \`$slug\` | — | — | — | — | ⏭️ Invalid repo |")
continue
fi
checked=$((checked + 1))
# Extract our NODE_VERSION
our_version=$(grep -oP 'NODE_VERSION="(\d+)"' "$script" | head -1 | grep -oP '\d+' || echo "")
if [[ -z "$our_version" ]]; then
if grep -q 'NODE_VERSION=\$(' "$script"; then
our_version="dynamic"
else
our_version="unset"
fi
fi
# Determine default branch via GitHub API (fast, single call)
detected_branch=""
api_default=$(curl -sf -H "Authorization: token $GH_TOKEN" \
"https://api.github.com/repos/${repo}" 2>/dev/null \
| jq -r '.default_branch // empty' 2>/dev/null || echo "")
if [[ -n "$api_default" ]]; then
detected_branch="$api_default"
else
detected_branch="main"
fi
# Fetch upstream Dockerfile (root + subdirectories)
df_content=""
find_repo_file "$repo" "$detected_branch" "Dockerfile"
if [[ -n "$REPLY" ]]; then
df_content=$(curl -sf "$REPLY" 2>/dev/null || echo "")
fi
DF_NODE_MAJOR=""
DF_SOURCE=""
if [[ -n "$df_content" ]]; then
extract_dockerfile_node "$df_content"
fi
# Fetch upstream package.json (root + subdirectories)
pkg_content=""
find_repo_file "$repo" "$detected_branch" "package.json"
if [[ -n "$REPLY" ]]; then
pkg_content=$(curl -sf "$REPLY" 2>/dev/null || echo "")
fi
ENGINES_NODE_RAW=""
ENGINES_MIN_MAJOR=""
ENGINES_IS_MINIMUM="false"
if [[ -n "$pkg_content" ]]; then
extract_engines_node "$pkg_content"
fi
# Fallback: check .nvmrc or .node-version
NVMRC_NODE_MAJOR=""
if [[ -z "$DF_NODE_MAJOR" && -z "$ENGINES_MIN_MAJOR" ]]; then
for nvmfile in .nvmrc .node-version; do
find_repo_file "$repo" "$detected_branch" "$nvmfile"
if [[ -n "$REPLY" ]]; then
nvmrc_content=$(curl -sf "$REPLY" 2>/dev/null || echo "")
if [[ -n "$nvmrc_content" ]]; then
extract_nvmrc_node "$nvmrc_content"
[[ -n "$NVMRC_NODE_MAJOR" ]] && break
fi
fi
done
fi
# Determine upstream recommended major version
upstream_major=""
upstream_hint=""
if [[ -n "$DF_NODE_MAJOR" ]]; then
upstream_major="$DF_NODE_MAJOR"
upstream_hint="$DF_SOURCE"
elif [[ -n "$ENGINES_MIN_MAJOR" ]]; then
upstream_major="$ENGINES_MIN_MAJOR"
upstream_hint="engines: $ENGINES_NODE_RAW"
elif [[ -n "$NVMRC_NODE_MAJOR" ]]; then
upstream_major="$NVMRC_NODE_MAJOR"
upstream_hint=".nvmrc/.node-version"
fi
# Build display values
engines_display="${ENGINES_NODE_RAW:-—}"
dockerfile_display="${DF_SOURCE:-—}"
# Compare
status="✅"
if [[ "$our_version" == "dynamic" ]]; then
status="🔄 Dynamic"
elif [[ "$our_version" == "unset" ]]; then
if [[ -n "$upstream_major" ]]; then
status="⚠️ NODE_VERSION not set (upstream=$upstream_major via $upstream_hint)"
else
status="⚠️ NODE_VERSION not set (no upstream info found)"
fi
issue_scripts+=("$slug|$our_version|$upstream_major|$upstream_hint|$repo")
drift_count=$((drift_count + 1))
elif [[ -n "$upstream_major" && "$our_version" != "$upstream_major" ]]; then
# Check if engines.node is a minimum constraint that our version satisfies
if [[ -z "$DF_NODE_MAJOR" && "$ENGINES_IS_MINIMUM" == "true" ]] && \
version_satisfies_engines "$our_version" "$ENGINES_MIN_MAJOR" "$ENGINES_IS_MINIMUM"; then
status="✅ (engines: $ENGINES_NODE_RAW — ours: $our_version satisfies)"
else
status="🔸 Drift → upstream=$upstream_major ($upstream_hint)"
issue_scripts+=("$slug|$our_version|$upstream_major|$upstream_hint|$repo")
drift_count=$((drift_count + 1))
fi
fi
report_lines+=("| \`$slug\` | $our_version | $engines_display | $dockerfile_display | [$repo](https://github.com/$repo) | $status |")
# Rate-limit to avoid GitHub secondary rate limits
sleep 0.3
done
# Print summary
echo ""
echo "========================================="
echo " Total scripts with setup_nodejs: $total"
echo " Checked (with GitHub source): $checked"
echo " Version drift detected: $drift_count"
echo "========================================="
# Export
{
echo "drift_count=$drift_count"
echo "total=$total"
echo "checked=$checked"
} >> "$GITHUB_OUTPUT"
# Save issue details for next step
printf '%s\n' "${issue_scripts[@]}" > /tmp/drift_scripts.txt 2>/dev/null || touch /tmp/drift_scripts.txt
# Save full report
{
echo "## Node.js Version Drift Report"
echo ""
echo "**Generated:** $(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo "**Scripts checked:** $total | **With GitHub source:** $checked | **Drift detected:** $drift_count"
echo ""
echo "| Script | Our Version | engines.node | Dockerfile | Upstream Repo | Status |"
echo "|--------|-------------|-------------|------------|---------------|--------|"
printf '%s\n' "${report_lines[@]}" | sort
} > /tmp/drift_report.md
cat /tmp/drift_report.md
- name: Create or update summary issue
if: steps.check.outputs.drift_count != '0'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
TITLE="[Automated] Node.js Version Drift Report"
DATE=$(date -u +%Y-%m-%d)
DRIFT_COUNT="${{ steps.check.outputs.drift_count }}"
TOTAL="${{ steps.check.outputs.total }}"
CHECKED="${{ steps.check.outputs.checked }}"
# Build checklist from drift data
CHECKLIST=""
while IFS='|' read -r slug our_version upstream_major upstream_hint repo; do
[[ -z "$slug" ]] && continue
CHECKLIST+="- [ ] **\`${slug}\`** — ours: \`${our_version}\` → upstream: \`${upstream_major}\` (${upstream_hint}) — [repo](https://github.com/${repo})"$'\n'
done < /tmp/drift_scripts.txt
# Build full report table
REPORT=$(cat /tmp/drift_report.md)
BODY=$(cat <<ISSUE_EOF
## Node.js Version Drift Report — ${DATE}
**${DRIFT_COUNT}** script(s) with version drift detected (out of ${CHECKED} checked / ${TOTAL} total).
### Scripts requiring investigation
${CHECKLIST}
### How to resolve
1. Check upstream Dockerfile / package.json to confirm the required Node.js version
2. Test the script with the new Node version
3. Update \`NODE_VERSION\` in \`install/<slug>-install.sh\`
4. Update \`NODE_VERSION\` in \`ct/<slug>.sh\` (update section) if applicable
5. Check off the item above once done
<details>
<summary>Full report</summary>
${REPORT}
</details>
---
*This issue is automatically created/updated weekly by the Node.js version drift check workflow.*
*Last updated: ${DATE}*
ISSUE_EOF
)
# Check if a matching open issue already exists
EXISTING=$(gh issue list --state open --label "automated,dependencies" --search "\"[Automated] Node.js Version Drift Report\"" --json number --jq '.[0].number // empty' 2>/dev/null || echo "")
if [[ -n "$EXISTING" ]]; then
gh issue edit "$EXISTING" --body "$BODY"
echo "Updated existing issue #$EXISTING"
else
gh issue create \
--title "$TITLE" \
--body "$BODY" \
--label "automated,dependencies"
echo "Created new summary issue"
fi
- name: Close issue if no drift
if: steps.check.outputs.drift_count == '0'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
EXISTING=$(gh issue list --state open --label "automated,dependencies" --search "\"[Automated] Node.js Version Drift Report\"" --json number --jq '.[0].number // empty' 2>/dev/null || echo "")
if [[ -n "$EXISTING" ]]; then
gh issue close "$EXISTING" --comment "All Node.js versions are in sync with upstream. Closing automatically."
echo "Closed issue #$EXISTING"
fi

111
.github/workflows/stale_pr_close.yml generated vendored Normal file
View File

@@ -0,0 +1,111 @@
name: Stale PR Management
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
pull_request_target:
types:
- labeled
jobs:
stale-prs:
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
contents: read
steps:
- name: Handle stale PRs
uses: actions/github-script@v7
with:
script: |
const now = new Date();
const owner = context.repo.owner;
const repo = context.repo.repo;
// --- When stale label is added, comment immediately ---
if (context.eventName === "pull_request_target" && context.payload.action === "labeled") {
const label = context.payload.label?.name;
if (label === "stale") {
const author = context.payload.pull_request.user.login;
await github.rest.issues.createComment({
owner,
repo,
issue_number: context.payload.pull_request.number,
body: `@${author} This PR has been marked as stale. It will be closed if no new commits are added in 7 days.`
});
}
return;
}
// --- Scheduled run: check all stale PRs ---
const { data: prs } = await github.rest.pulls.list({
owner,
repo,
state: "open",
per_page: 100
});
for (const pr of prs) {
const hasStale = pr.labels.some(l => l.name === "stale");
if (!hasStale) continue;
// Get timeline events to find when stale label was added
const { data: events } = await github.rest.issues.listEvents({
owner,
repo,
issue_number: pr.number,
per_page: 100
});
// Find the most recent time the stale label was added
const staleLabelEvents = events
.filter(e => e.event === "labeled" && e.label?.name === "stale")
.sort((a, b) => new Date(b.created_at) - new Date(a.created_at));
if (staleLabelEvents.length === 0) continue;
const staleLabelDate = new Date(staleLabelEvents[0].created_at);
const daysSinceStale = (now - staleLabelDate) / (1000 * 60 * 60 * 24);
// Check for new commits since stale label was added
const { data: commits } = await github.rest.pulls.listCommits({
owner,
repo,
pull_number: pr.number
});
const lastCommitDate = new Date(commits[commits.length - 1].commit.author.date);
const author = pr.user.login;
// If there are new commits after the stale label, remove it
if (lastCommitDate > staleLabelDate) {
await github.rest.issues.removeLabel({
owner,
repo,
issue_number: pr.number,
name: "stale"
});
await github.rest.issues.createComment({
owner,
repo,
issue_number: pr.number,
body: `@${author} Recent activity detected. Removing stale label.`
});
}
// If 7 days have passed since stale label, close the PR
else if (daysSinceStale > 7) {
await github.rest.pulls.update({
owner,
repo,
pull_number: pr.number,
state: "closed"
});
await github.rest.issues.createComment({
owner,
repo,
issue_number: pr.number,
body: `@${author} Closing stale PR due to inactivity (no commits for 7 days after stale label).`
});
}
}

View File

@@ -407,11 +407,106 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-02-25
### 🆕 New Scripts
- Zerobyte ([#12321](https://github.com/community-scripts/ProxmoxVE/pull/12321))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Passbolt: Update Nginx config `client_max_body_size` [@tremor021](https://github.com/tremor021) ([#12313](https://github.com/community-scripts/ProxmoxVE/pull/12313))
- Zammad: configure Elasticsearch before zammad start [@MickLesk](https://github.com/MickLesk) ([#12308](https://github.com/community-scripts/ProxmoxVE/pull/12308))
- #### 🔧 Refactor
- OpenProject: Various fixes [@tremor021](https://github.com/tremor021) ([#12246](https://github.com/community-scripts/ProxmoxVE/pull/12246))
### 💾 Core
- #### 🐞 Bug Fixes
- Fix detection of ssh keys [@1-tempest](https://github.com/1-tempest) ([#12230](https://github.com/community-scripts/ProxmoxVE/pull/12230))
- #### 🔧 Refactor
- core: remove duplicate traps, consolidate error handling and harden signal traps [@MickLesk](https://github.com/MickLesk) ([#12316](https://github.com/community-scripts/ProxmoxVE/pull/12316))
### 📂 Github
- github: improvements for node drift wf [@MickLesk](https://github.com/MickLesk) ([#12309](https://github.com/community-scripts/ProxmoxVE/pull/12309))
## 2026-02-24
### 🚀 Updated Scripts
- several scripts: add additional github link in source [@MickLesk](https://github.com/MickLesk) ([#12282](https://github.com/community-scripts/ProxmoxVE/pull/12282))
- adds further documentation during the installation script. [@d12rio](https://github.com/d12rio) ([#12248](https://github.com/community-scripts/ProxmoxVE/pull/12248))
- #### 🐞 Bug Fixes
- [Fix] PatchMon: remove VITE_API_URL from frontend env [@vhsdream](https://github.com/vhsdream) ([#12294](https://github.com/community-scripts/ProxmoxVE/pull/12294))
- fix(searxng): remove orphaned fi causing syntax error [@mark-jeffrey](https://github.com/mark-jeffrey) ([#12283](https://github.com/community-scripts/ProxmoxVE/pull/12283))
- Refactor n8n [@MickLesk](https://github.com/MickLesk) ([#12264](https://github.com/community-scripts/ProxmoxVE/pull/12264))
- Firefly: PHP bump [@tremor021](https://github.com/tremor021) ([#12247](https://github.com/community-scripts/ProxmoxVE/pull/12247))
- #### ✨ New Features
- Databasus: add mariadb path for mysql/mariadb backups | add mongodb database tools [@MickLesk](https://github.com/MickLesk) ([#12259](https://github.com/community-scripts/ProxmoxVE/pull/12259))
- make searxng updateable [@shtefko](https://github.com/shtefko) ([#12207](https://github.com/community-scripts/ProxmoxVE/pull/12207))
- #### 💥 Breaking Changes
- fix: wealthfolio for v3 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11765](https://github.com/community-scripts/ProxmoxVE/pull/11765))
- #### 🔧 Refactor
- bump various scripts from Node 22 to 24 [@MickLesk](https://github.com/MickLesk) ([#12265](https://github.com/community-scripts/ProxmoxVE/pull/12265))
### 💾 Core
- #### 🐞 Bug Fixes
- core: fix broken "command not found" after err_trap [@MickLesk](https://github.com/MickLesk) ([#12280](https://github.com/community-scripts/ProxmoxVE/pull/12280))
- #### ✨ New Features
- tools.func: add get_latest_gh_tag helper function [@MickLesk](https://github.com/MickLesk) ([#12261](https://github.com/community-scripts/ProxmoxVE/pull/12261))
### 🧰 Tools
- Arcane ([#12263](https://github.com/community-scripts/ProxmoxVE/pull/12263))
### 📂 Github
- github: add weekly Node.js version drift check workflow [@MickLesk](https://github.com/MickLesk) ([#12267](https://github.com/community-scripts/ProxmoxVE/pull/12267))
- add: workflow to close stale PRs [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12243](https://github.com/community-scripts/ProxmoxVE/pull/12243))
## 2026-02-23
### 🆕 New Scripts
- Frigate v16.4 [@MickLesk](https://github.com/MickLesk) ([#11887](https://github.com/community-scripts/ProxmoxVE/pull/11887))
- SeaweedFS ([#12220](https://github.com/community-scripts/ProxmoxVE/pull/12220))
- Sonobarr ([#12221](https://github.com/community-scripts/ProxmoxVE/pull/12221))
- SparkyFitness ([#12185](https://github.com/community-scripts/ProxmoxVE/pull/12185))
- Frigate v16.4 [@MickLesk](https://github.com/MickLesk) ([#11887](https://github.com/community-scripts/ProxmoxVE/pull/11887))
### 🚀 Updated Scripts
- #### ✨ New Features
- memos: unpin version due new release artifacts [@MickLesk](https://github.com/MickLesk) ([#12224](https://github.com/community-scripts/ProxmoxVE/pull/12224))
- core: Enhance signal handling, reported "status" and logs [@MickLesk](https://github.com/MickLesk) ([#12216](https://github.com/community-scripts/ProxmoxVE/pull/12216))
- #### 🔧 Refactor
- booklore v2: embed frontend, bump Java to 25, remove nginx [@MickLesk](https://github.com/MickLesk) ([#12223](https://github.com/community-scripts/ProxmoxVE/pull/12223))
### 🗑️ Deleted Scripts
- Remove: Huntarr (deprecated & Security) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12226](https://github.com/community-scripts/ProxmoxVE/pull/12226))
### 💾 Core
@@ -419,6 +514,16 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- core: Improve error handling and logging for LXC builds [@MickLesk](https://github.com/MickLesk) ([#12208](https://github.com/community-scripts/ProxmoxVE/pull/12208))
### 🌐 Website
- #### 🐞 Bug Fixes
- calibre-web: update default credentials [@LaevaertK](https://github.com/LaevaertK) ([#12201](https://github.com/community-scripts/ProxmoxVE/pull/12201))
- #### 📝 Script Information
- chore: update Frigate documentation and website URLs [@JohnICB](https://github.com/JohnICB) ([#12218](https://github.com/community-scripts/ProxmoxVE/pull/12218))
## 2026-02-22
### 🆕 New Scripts

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: jkrgr0
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://docs.2fauth.app/
# Source: https://docs.2fauth.app/ | Github: https://github.com/Bubka/2FAuth
APP="2FAuth"
var_tags="${var_tags:-2fa;authenticator}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://actualbudget.org/
# Source: https://actualbudget.org/ | Github: https://github.com/actualbudget/actual
APP="Actual Budget"
var_tags="${var_tags:-finance}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://adguard.com/
# Source: https://adguard.com/ | Github: https://github.com/AdguardTeam/AdGuardHome
APP="Adguard"
var_tags="${var_tags:-adblock}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://adventurelog.app/
# Source: https://github.com/seanmorley15/AdventureLog
APP="AdventureLog"
var_tags="${var_tags:-traveling}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gitea.io
# Source: https://gitea.io/
APP="Alpine-Gitea"
var_tags="${var_tags:-alpine;git}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://komo.do
# Source: https://komo.do/
APP="Alpine-Komodo"
var_tags="${var_tags:-docker;alpine}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://mariadb.org
# Source: https://mariadb.org/
APP="Alpine-MariaDB"
var_tags="${var_tags:-alpine;database}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nodered.org
# Source: https://nodered.org/
APP="Alpine-Node-RED"
var_tags="${var_tags:-alpine;automation}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://postgresql.org/
# Source: https://www.postgresql.org/
APP="Alpine-PostgreSQL"
var_tags="${var_tags:-alpine;database}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://archivebox.io/
# Source: https://archivebox.io/ | Github: https://github.com/ArchiveBox/ArchiveBox
APP="ArchiveBox"
var_tags="${var_tags:-archive;bookmark}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://release-argus.io/
# Source: https://release-argus.io/ | Github: https://github.com/release-argus/Argus
APP="Argus"
var_tags="${var_tags:-watcher}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://aria2.github.io/
# Source: https://aria2.github.io/ | Github: https://github.com/aria2/aria2
APP="Aria2"
var_tags="${var_tags:-download-utility}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://asterisk.org/
# Source: https://asterisk.org
APP="Asterisk"
var_tags="${var_tags:-telephone;pbx}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: thost96 (thost96)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.authelia.com/
# Source: https://www.authelia.com/ | Github: https://github.com/authelia/authelia
APP="Authelia"
var_tags="${var_tags:-authenticator}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://autobrr.com/
# Source: https://autobrr.com/ | Github: https://github.com/autobrr/autobrr
APP="Autobrr"
var_tags="${var_tags:-arr;}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: ksad (enirys31)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://garethgeorge.github.io/backrest/
# Source: https://garethgeorge.github.io/backrest/ | Github: https://github.com/garethgeorge/backrest
APP="Backrest"
var_tags="${var_tags:-backup}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://sabre.io/baikal/
# Source: https://sabre.io/baikal/ | Github: https://github.com/sabre-io/Baikal
APP="Baikal"
var_tags="${var_tags:-Dav}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.bazarr.media/
# Source: https://www.bazarr.media/ | Github: https://github.com/morpheus65535/bazarr
APP="Bazarr"
var_tags="${var_tags:-arr}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Michelle Zitzerman (Sinofage)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://beszel.dev/
# Source: https://beszel.dev/ | Github: https://github.com/henrygd/beszel
APP="Beszel"
var_tags="${var_tags:-monitoring}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# 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/bitmagnet/bitmagnet
# Source: https://github.com/bitmagnet-io/bitmagnet
APP="Bitmagnet"
var_tags="${var_tags:-os}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://0xerr0r.github.io/blocky
# Source: https://0xerr0r.github.io/blocky | Github: https://github.com/0xERR0R/blocky
APP="Blocky"
var_tags="${var_tags:-adblock}"

View File

@@ -30,7 +30,7 @@ function update_script() {
fi
if check_for_gh_release "booklore" "booklore-app/BookLore"; then
JAVA_VERSION="21" setup_java
JAVA_VERSION="25" setup_java
NODE_VERSION="22" setup_nodejs
setup_mariadb
setup_yq
@@ -60,11 +60,16 @@ function update_script() {
$STD npm run build --configuration=production
msg_ok "Built Frontend"
msg_info "Embedding Frontend into Backend"
mkdir -p /opt/booklore/booklore-api/src/main/resources/static
cp -r /opt/booklore/booklore-ui/dist/booklore/browser/* /opt/booklore/booklore-api/src/main/resources/static/
msg_ok "Embedded Frontend into Backend"
msg_info "Building Backend"
cd /opt/booklore/booklore-api
APP_VERSION=$(get_latest_github_release "booklore-app/BookLore")
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
$STD ./gradlew clean build --no-daemon
$STD ./gradlew clean build -x test --no-daemon
mkdir -p /opt/booklore/dist
JAR_PATH=$(find /opt/booklore/booklore-api/build/libs -maxdepth 1 -type f -name "booklore-api-*.jar" ! -name "*plain*" | head -n1)
if [[ -z "$JAR_PATH" ]]; then
@@ -74,9 +79,22 @@ function update_script() {
cp "$JAR_PATH" /opt/booklore/dist/app.jar
msg_ok "Built Backend"
if systemctl is-active --quiet nginx 2>/dev/null; then
msg_info "Removing Nginx (no longer needed)"
systemctl disable --now nginx
$STD apt-get purge -y nginx nginx-common
msg_ok "Removed Nginx"
fi
if ! grep -q "^SERVER_PORT=" /opt/booklore_storage/.env 2>/dev/null; then
echo "SERVER_PORT=6060" >>/opt/booklore_storage/.env
fi
sed -i 's|ExecStart=/usr/bin/java -jar|ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -jar|' /etc/systemd/system/booklore.service
systemctl daemon-reload
msg_info "Starting Service"
systemctl start booklore
systemctl reload nginx
rm -rf /opt/booklore_bak
msg_ok "Started Service"
msg_ok "Updated successfully!"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://caddyserver.com/
# Source: https://caddyserver.com/ | Github: https://github.com/caddyserver/caddy
APP="Caddy"
var_tags="${var_tags:-webserver}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://changedetection.io/
# Source: https://changedetection.io/ | Github: https://github.com/dgtlmoon/changedetection.io
APP="Change Detection"
var_tags="${var_tags:-monitoring;crawler}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cloudreve.org/
# Source: https://cloudreve.org/ | Github: https://github.com/cloudreve/cloudreve
APP="Cloudreve"
var_tags="${var_tags:-cloud}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck | Co-Author: havardthom
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cockpit-project.org/
# Source: https://github.com/cockpit-project/cockpit
APP="Cockpit"
var_tags="${var_tags:-monitoring;network}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.commafeed.com/#/welcome
# Source: https://www.commafeed.com/#/welcome | Github: https://github.com/Athou/commafeed
APP="CommaFeed"
var_tags="${var_tags:-rss-reader}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Michel Roegl-Brunner (michelroegl-brunner)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://https://cosmos-cloud.io/
# Source: https://cosmos-cloud.io/ | Github: https://github.com/azukaar/Cosmos-Server
APP="Cosmos"
var_tags="${var_tags:-cloud;docker}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gitlab.com/crafty-controller/crafty-4
# Source: https://docs.craftycontrol.com/pages/getting-started/installation/linux/
APP="Crafty-Controller"
var_tags="${var_tags:-gaming}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cronicle.net/
# Source: https://cronicle.net/ | Github: https://github.com/jhuckaby/Cronicle
APP="Cronicle"
var_tags="${var_tags:-task-scheduler}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Jakub Matraszek (jmatraszek)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.cross-seed.org
# Source: https://www.cross-seed.org | Github: https://github.com/cross-seed/cross-seed
APP="cross-seed"
var_tags="${var_tags:-arr}"
@@ -20,26 +20,28 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
if command -v cross-seed &>/dev/null; then
current_version=$(cross-seed --version)
latest_version=$(npm show cross-seed version)
if [ "$current_version" != "$latest_version" ]; then
msg_info "Updating cross-seed from version v${current_version} to v${latest_version}"
$STD npm install -g cross-seed@latest
systemctl restart cross-seed
msg_ok "Updated successfully!"
else
msg_ok "cross-seed is already at v${current_version}"
fi
NODE_VERSION="24" setup_nodejs
if command -v cross-seed &>/dev/null; then
current_version=$(cross-seed --version)
latest_version=$(npm show cross-seed version)
if [ "$current_version" != "$latest_version" ]; then
msg_info "Updating cross-seed from version v${current_version} to v${latest_version}"
$STD npm install -g cross-seed@latest
systemctl restart cross-seed
msg_ok "Updated successfully!"
else
msg_error "No cross-seed Installation Found!"
exit
msg_ok "cross-seed is already at v${current_version}"
fi
else
msg_error "No cross-seed Installation Found!"
exit
fi
exit
}
start

View File

@@ -38,6 +38,31 @@ function update_script() {
cp /opt/databasus/.env /opt/databasus.env.bak
msg_ok "Backed up Configuration"
msg_info "Ensuring Database Clients"
# Create PostgreSQL version symlinks for compatibility
for v in 12 13 14 15 16 18; do
ln -sf /usr/lib/postgresql/17 /usr/lib/postgresql/$v
done
# Install MongoDB Database Tools via direct .deb (no APT repo for Debian 13)
if ! command -v mongodump &>/dev/null; then
[[ "$(get_os_info id)" == "ubuntu" ]] && MONGO_DIST="ubuntu2204" || MONGO_DIST="debian12"
fetch_and_deploy_from_url "https://fastdl.mongodb.org/tools/db/mongodb-database-tools-${MONGO_DIST}-x86_64-100.14.1.deb"
fi
[[ -f /usr/bin/mongodump ]] && ln -sf /usr/bin/mongodump /usr/local/mongodb-database-tools/bin/mongodump
[[ -f /usr/bin/mongorestore ]] && ln -sf /usr/bin/mongorestore /usr/local/mongodb-database-tools/bin/mongorestore
# Create MariaDB and MySQL client symlinks for compatibility
ensure_dependencies mariadb-client
mkdir -p /usr/local/mariadb-{10.6,12.1}/bin /usr/local/mysql-{5.7,8.0,8.4,9}/bin /usr/local/mongodb-database-tools/bin
for dir in /usr/local/mariadb-{10.6,12.1}/bin; do
ln -sf /usr/bin/mariadb-dump "$dir/mariadb-dump"
ln -sf /usr/bin/mariadb "$dir/mariadb"
done
for dir in /usr/local/mysql-{5.7,8.0,8.4,9}/bin; do
ln -sf /usr/bin/mariadb-dump "$dir/mysqldump"
ln -sf /usr/bin/mariadb "$dir/mysql"
done
msg_ok "Ensured Database Clients"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "databasus" "databasus/databasus" "tarball" "latest" "/opt/databasus"
msg_info "Updating Databasus"
@@ -49,6 +74,7 @@ function update_script() {
$STD /root/go/bin/swag init -g cmd/main.go -o swagger
$STD env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o databasus ./cmd/main.go
mv /opt/databasus/backend/databasus /opt/databasus/databasus
mkdir -p /opt/databasus/ui/build
cp -r /opt/databasus/frontend/dist/* /opt/databasus/ui/build/
cp -r /opt/databasus/backend/migrations /opt/databasus/
chown -R postgres:postgres /opt/databasus

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: DragoQC
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://discopanel.app/
# Source: https://discopanel.app/ | Github: https://github.com/nickheyer/discopanel
APP="DiscoPanel"
var_tags="${var_tags:-gaming}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://docmost.com/
# Source: https://docmost.com/ | Github: https://github.com/docmost/docmost
APP="Docmost"
var_tags="${var_tags:-documents}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# 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://www.drawio.com/
# Source: https://www.drawio.com/ | Github: https://github.com/jgraph/drawio
APP="DrawIO"
var_tags="${var_tags:-diagrams}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://emby.media/
# Source: https://emby.media/ | Github: https://github.com/MediaBrowser/Emby.Releases
APP="Emby"
var_tags="${var_tags:-media}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ersatztv.org/
# Source: https://ersatztv.org/ | Github: https://github.com/ErsatzTV/ErsatzTV
APP="ErsatzTV"
var_tags="${var_tags:-iptv}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://evcc.io/en/
# Source: https://github.com/evcc-io/evcc
APP="evcc"
var_tags="${var_tags:-solar;ev;automation}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: quantumryuu | Co-Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://firefly-iii.org/
# Source: https://firefly-iii.org/ | Github: https://github.com/firefly-iii/firefly-iii
APP="Firefly"
var_tags="${var_tags:-finance}"
@@ -28,7 +28,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
setup_mariadb
PHP_VERSION="8.5" PHP_APACHE="YES" setup_php
if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
systemctl stop apache2
cp /opt/firefly/.env /opt/.env

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://flowiseai.com/
# Source: https://flowiseai.com/ | Github: https://github.com/FlowiseAI/Flowise
APP="FlowiseAI"
var_tags="${var_tags:-low-code}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fluidcalendar.com
# Source: https://github.com/dotnetfactory/fluid-calendar
APP="fluid-calendar"
var_tags="${var_tags:-calendar;tasks}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Authors: MickLesk (CanbiZ) | Co-Author: remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://frigate.video/
# Source: https://frigate.video/ | Github: https://github.com/blakeblackshear/frigate
APP="Frigate"
var_tags="${var_tags:-nvr}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# 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/fuma-nama/fumadoc
# Source: https://fumadocs.vercel.app/ | Github: https://github.com/fuma-nama/fumadocs
APP="Fumadocs"
var_tags="${var_tags:-documentation}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: fabrice1236
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ghost.org/
# Source: https://ghost.org/ | Github: https://github.com/TryGhost/Ghost
APP="Ghost"
var_tags="${var_tags:-cms;blog}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: lucasfell
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ghostfol.io/
# Source: https://ghostfol.io/ | Github: https://github.com/ghostfolio/ghostfolio
APP="Ghostfolio"
var_tags="${var_tags:-finance;investment}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster) | Co-Author: Rogue-King
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://about.gitea.com/
# Source: https://about.gitea.com/ | Github: https://github.com/go-gitea/gitea
APP="Gitea"
var_tags="${var_tags:-git}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gotify.net/
# Source: https://gotify.net/ | Github: https://github.com/gotify/server
APP="Gotify"
var_tags="${var_tags:-notification}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.grampsweb.org/
# Source: https://www.grampsweb.org/ | Github: https://github.com/gramps-project/gramps-web
APP="gramps-web"
var_tags="${var_tags:-genealogy;family;collaboration}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://grocy.info/
# Source: https://grocy.info/ | Github: https://github.com/grocy/grocy
APP="grocy"
var_tags="${var_tags:-grocery;household}"

View File

@@ -1,6 +0,0 @@
__ __
/ /_ __ ______ / /_____ ___________
/ __ \/ / / / __ \/ __/ __ `/ ___/ ___/
/ / / / /_/ / / / / /_/ /_/ / / / /
/_/ /_/\__,_/_/ /_/\__/\__,_/_/ /_/

6
ct/headers/seaweedfs Normal file
View File

@@ -0,0 +1,6 @@
_____ _____________
/ ___/___ ____ __ _____ ___ ____/ / ____/ ___/
\__ \/ _ \/ __ `/ | /| / / _ \/ _ \/ __ / /_ \__ \
___/ / __/ /_/ /| |/ |/ / __/ __/ /_/ / __/ ___/ /
/____/\___/\__,_/ |__/|__/\___/\___/\__,_/_/ /____/

6
ct/headers/sonobarr Normal file
View File

@@ -0,0 +1,6 @@
__
_________ ____ ____ / /_ ____ ___________
/ ___/ __ \/ __ \/ __ \/ __ \/ __ `/ ___/ ___/
(__ ) /_/ / / / / /_/ / /_/ / /_/ / / / /
/____/\____/_/ /_/\____/_.___/\__,_/_/ /_/

6
ct/headers/sparkyfitness Normal file
View File

@@ -0,0 +1,6 @@
_____ __ _______ __
/ ___/____ ____ ______/ /____ __/ ____(_) /_____ ___ __________
\__ \/ __ \/ __ `/ ___/ //_/ / / / /_ / / __/ __ \/ _ \/ ___/ ___/
___/ / /_/ / /_/ / / / ,< / /_/ / __/ / / /_/ / / / __(__ |__ )
/____/ .___/\__,_/_/ /_/|_|\__, /_/ /_/\__/_/ /_/\___/____/____/
/_/ /____/

6
ct/headers/zerobyte Normal file
View File

@@ -0,0 +1,6 @@
_____ __ __
/__ / ___ _________ / /_ __ __/ /____
/ / / _ \/ ___/ __ \/ __ \/ / / / __/ _ \
/ /__/ __/ / / /_/ / /_/ / /_/ / /_/ __/
/____/\___/_/ \____/_.___/\__, /\__/\___/
/____/

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://healthchecks.io/
# Source: https://healthchecks.io/ | Github: https://github.com/healthchecks/healthchecks
APP="healthchecks"
var_tags="${var_tags:-monitoring}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://heimdall.site/
# Source: https://heimdall.site/ | Github: https://github.com/linuxserver/Heimdall
APP="Heimdall-Dashboard"
var_tags="${var_tags:-dashboard}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.hivemq.com/
# Source: https://www.hivemq.com/ | Github: https://github.com/hivemq/hivemq-community-edition
APP="HiveMQ"
var_tags="${var_tags:-mqtt}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://homarr.dev/
# Source: https://github.com/homarr-labs/homarr
APP="homarr"
var_tags="${var_tags:-arr;dashboard}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck | Co-Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://homebox.software/en/
# Source: https://github.com/sysadminsmedia/homebox
APP="HomeBox"
var_tags="${var_tags:-inventory;household}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gethomepage.dev/
# Source: https://gethomepage.dev/ | Github: https://github.com/gethomepage/homepage
APP="Homepage"
var_tags="${var_tags:-dashboard}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://immich.app
# Source: https://immich.app | Github: https://github.com/immich-app/immich
APP="immich"
var_tags="${var_tags:-photos}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: kristocopani
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.inspircd.org/
# Source: https://www.inspircd.org/ | Github: https://github.com/inspircd/inspircd
APP="InspIRCd"
var_tags="${var_tags:-IRC}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://invoiceninja.com/
# Source: https://invoiceninja.com/ | Github: https://github.com/invoiceninja/invoiceninja
APP="InvoiceNinja"
var_tags="${var_tags:-invoicing;business}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.iobroker.net/#en/intro
# Source: https://www.iobroker.net/#en/intro | Github: https://github.com/ioBroker/ioBroker.js-controller
APP="ioBroker"
var_tags="${var_tags:-automtation}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# 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://joplinapp.org/
# Source: https://joplinapp.org/ | Github: https://github.com/laurent22/joplin
APP="Joplin-Server"
var_tags="${var_tags:-notes}"
@@ -28,7 +28,7 @@ function update_script() {
exit
fi
NODE_VERSION=24 NODE_MODULE="yarn,npm,pm2" setup_nodejs
NODE_VERSION="24" NODE_MODULE="yarn,npm,pm2" setup_nodejs
if check_for_gh_release "joplin-server" "laurent22/joplin"; then
msg_info "Stopping Services"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: MickLesk (Canbiz) & vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://karakeep.app/
# Source: https://karakeep.app/ | Github: https://github.com/karakeep-app/karakeep
APP="karakeep"
var_tags="${var_tags:-bookmark}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.kavitareader.com/
# Source: https://www.kavitareader.com/ | Github: https://github.com/Kareadita/Kavita
APP="Kavita"
var_tags="${var_tags:-reader}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster) | Co-Author: remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.keycloak.org/
# Source: https://github.com/keycloak/keycloak
APP="Keycloak"
var_tags="${var_tags:-access-management}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.kimai.org/
# Source: https://www.kimai.org/ | Github: https://github.com/kimai/kimai
APP="Kimai"
var_tags="${var_tags:-time-tracking}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://koel.dev/
# Source: https://koel.dev/ | Github: https://github.com/koel/koel
APP="Koel"
var_tags="${var_tags:-music;streaming}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://koillection.github.io/
# Source: https://koillection.github.io/ | Github: https://github.com/benjaminjonard/koillection
APP="Koillection"
var_tags="${var_tags:-network}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: madelyn (DysfunctionalProgramming)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://komga.org/
# Source: https://komga.org/ | Github: https://github.com/gotson/komga
APP="Komga"
var_tags="${var_tags:-media;eBook;comic}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://komo.do
# Source: https://komo.do/
APP="Komodo"
var_tags="${var_tags:-docker}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Stroopwafe1
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://leantime.io
# Source: https://leantime.io | Github: https://github.com/Leantime/leantime
APP="Leantime"
var_tags="${var_tags:-productivity}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://librenms.org
# Source: https://www.librenms.org/ | Github: https://github.com/librenms/librenms
APP="LibreNMS"
var_tags="${var_tags:-monitoring}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://lidarr.audio/
# Source: https://lidarr.audio/ | Github: https://github.com/Lidarr/Lidarr
APP="Lidarr"
var_tags="${var_tags:-arr;torrent;usenet}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (MickLesk)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://linkding.link/
# Source: https://linkding.link/ | Github: https://github.com/sissbruecker/linkding
APP="linkding"
var_tags="${var_tags:-bookmarks;management}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Omar Minaya | MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://linkstack.org/
# Source: https://linkstack.org/ | Github: https://github.com/linkstackorg/linkstack
APP="LinkStack"
var_tags="${var_tags:-os}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://linkwarden.app/
# Source: https://linkwarden.app/ | Github: https://github.com/linkwarden/linkwarden
APP="Linkwarden"
var_tags="${var_tags:-bookmark}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://listmonk.app/
# Source: https://listmonk.app/ | Github: https://github.com/knadh/listmonk
APP="listmonk"
var_tags="${var_tags:-newsletter}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: kristocopani
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://lubelogger.com/
# Source: https://lubelogger.com/ | Github: https://github.com/hargata/lubelog
APP="LubeLogger"
var_tags="${var_tags:-vehicle;car}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://mafl.hywax.space/
# Source: https://mafl.hywax.space/ | Github: https://github.com/hywax/mafl
APP="Mafl"
var_tags="${var_tags:-dashboard}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster) | Co-Author Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://magicmirror.builders/
# Source: https://magicmirror.builders/ | Github: https://github.com/MagicMirrorOrg/MagicMirror
APP="MagicMirror"
var_tags="${var_tags:-smarthome}"

View File

@@ -28,6 +28,8 @@ function update_script() {
exit
fi
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
if check_for_gh_release "manyfold" "manyfold3d/manyfold"; then
msg_info "Stopping Services"
systemctl stop manyfold.target manyfold-rails.1 manyfold-default_worker.1 manyfold-performance_worker.1

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Luligu/matterbridge
# Source: https://github.com/Luligu/matterbridge/
APP="Matterbridge"
var_tags="${var_tags:-matter;smarthome}"
@@ -29,7 +29,7 @@ function update_script() {
fi
$STD apt update
$STD apt upgrade -y
NODE_VERSION="22" NODE_MODULE="matterbridge" setup_nodejs
NODE_VERSION="24" NODE_MODULE="matterbridge" setup_nodejs
msg_ok "Updated successfully!"
exit
}

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://mealie.io
# Source: https://mealie.io | Github: https://github.com/mealie-recipes/mealie
APP="Mealie"
var_tags="${var_tags:-recipes}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/pymedusa/Medusa.git
# Source: https://github.com/pymedusa/Medusa
APP="Medusa"
var_tags="${var_tags:-media}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.meilisearch.com/
# Source: https://www.meilisearch.com/ | Github: https://github.com/meilisearch/meilisearch
APP="Meilisearch"
var_tags="${var_tags:-full-text-search}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.usememos.com/
# Source: https://github.com/usememos/memos
APP="Memos"
var_tags="${var_tags:-notes}"
@@ -27,12 +27,12 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "memos" "usememos/memos" "v0.25.3"; then
if check_for_gh_release "memos" "usememos/memos"; then
msg_info "Stopping service"
systemctl stop memos
msg_ok "Service stopped"
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "v0.25.3" "/opt/memos" "memos*linux_amd64.tar.gz"
fetch_and_deploy_gh_release "memos" "usememos/memos" "prebuild" "latest" "/opt/memos" "memos*linux_amd64.tar.gz"
msg_info "Starting service"
systemctl start memos

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://meshcentral.com/
# Source: https://meshcentral.com/ | Github: https://github.com/Ylianst/MeshCentral
APP="MeshCentral"
var_tags="${var_tags:-remote-management}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: omernaveedxyz
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://miniflux.app/
# Source: https://miniflux.app/ | Github: https://github.com/miniflux/v2
APP="Miniflux"
var_tags="${var_tags:-media}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.monicahq.com/
# Source: https://www.monicahq.com/ | Github: https://github.com/monicahq/monica
APP="Monica"
var_tags="${var_tags:-network}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# 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://ipcheck.ing/
# Source: https://ipcheck.ing/ | Github: https://github.com/jason5ng32/MyIP
APP="MyIP"
var_tags="${var_tags:-network}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://myspeed.dev/
# Source: https://github.com/gnmyt/myspeed
APP="MySpeed"
var_tags="${var_tags:-tracking}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck | Co-Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.mysql.com/
# Source: https://www.mysql.com/products/community | https://www.phpmyadmin.net
APP="MySQL"
var_tags="${var_tags:-database}"

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://n8n.io/
# Source: https://n8n.io/ | Github: https://github.com/n8n-io/n8n
APP="n8n"
var_tags="${var_tags:-automation}"
@@ -27,7 +27,11 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
ensure_dependencies graphicsmagick
ensure_dependencies graphicsmagick
NODE_VERSION="24" setup_nodejs
msg_info "Updating n8n"
if [ ! -f /opt/n8n.env ]; then
sed -i 's|^Environment="N8N_SECURE_COOKIE=false"$|EnvironmentFile=/opt/n8n.env|' /etc/systemd/system/n8n.service
mkdir -p /opt
@@ -37,14 +41,12 @@ N8N_PORT=5678
N8N_PROTOCOL=http
N8N_HOST=$LOCAL_IP
EOF
systemctl daemon-reload
fi
NODE_VERSION="22" setup_nodejs
msg_info "Updating ${APP} LXC"
rm -rf /usr/lib/node_modules/.n8n-* /usr/lib/node_modules/n8n
$STD npm install -g n8n --force
$STD npm update -g n8n
systemctl restart n8n
msg_ok "Updated n8n"
msg_ok "Updated successfully!"
exit
}

View File

@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
# Copyright (c) 2021-2026 community-scripts ORG
# Author: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://netboxlabs.com/
# Source: https://netboxlabs.com/ | Github: https://github.com/netbox-community/netbox
APP="NetBox"
var_tags="${var_tags:-network}"

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