Compare commits

..

108 Commits

Author SHA1 Message Date
Michel Roegl-Brunner
cea197fc3e fix(workflow): only flag node drift when local is behind upstream
Update the node version drift check to count drift only when our script version is lower than upstream, so newer local versions no longer create false-positive drift issues.
2026-06-02 09:00:53 +02:00
community-scripts-pr-app[bot]
cd8a6f1de0 Update CHANGELOG.md (#14867)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 19:39:38 +00:00
Michel Roegl-Brunner
da64475612 fix(dispatcharr): forward nginx port for M3U URLs on new installs (#14862)
Dispatcharr builds absolute proxy URLs from reverse-proxy headers. Without X-Forwarded-Port, downloaded M3U playlists omit :9191.

Fixes #14839

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 21:39:10 +02:00
community-scripts-pr-app[bot]
a2aea34aa7 Update CHANGELOG.md (#14866)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 19:38:33 +00:00
SystemIdleProcess
839fba1e0c Set environment paths in service for apprise-api-install.sh (#14805) 2026-06-01 21:38:02 +02:00
community-scripts-pr-app[bot]
83398645ca Update CHANGELOG.md (#14861)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 14:00:34 +00:00
Michel Roegl-Brunner
06cf2ec50d Fix Kan build failure (TS7016 nodemailer) (#14856)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 16:00:00 +02:00
community-scripts-pr-app[bot]
bdc968e86d Update CHANGELOG.md (#14860)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 13:59:36 +00:00
community-scripts-pr-app[bot]
0b7d64b240 Update CHANGELOG.md (#14859)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 13:59:08 +00:00
Michel Roegl-Brunner
e013403db1 fix(fireshare): rebuild client on update to fix nginx 500 (#14848)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 15:59:05 +02:00
Michel Roegl-Brunner
465996653a fix(firefly): set Data Importer APP_URL for subdirectory install (#14847)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 15:58:32 +02:00
community-scripts-pr-app[bot]
6a7391f430 Update CHANGELOG.md (#14857)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 13:42:08 +00:00
CanbiZ (MickLesk)
aed34659c9 Kometa: also update Quickstart in update_script (#14529)
* Kometa: also update Quickstart in update_script

* Kometa: also update Quickstart in update_script
2026-06-01 15:41:36 +02:00
MickLesk
cd4a3e854e Update tsconfig path in installation scripts to support multiple locations 2026-06-01 13:39:23 +02:00
MickLesk
be46da731a Refactor kan installation script to ignore scripts during pnpm install and update tsconfig path 2026-06-01 13:13:03 +02:00
CanbiZ (MickLesk)
58179050a8 Fix indentation in kan.sh for clarity 2026-06-01 12:11:55 +02:00
CanbiZ (MickLesk)
955cb97a3b Update kan-install.sh 2026-06-01 12:11:34 +02:00
CanbiZ (MickLesk)
04e618798e Update fetch_and_deploy_gh_tag to use 'latest' tag 2026-06-01 12:02:12 +02:00
community-scripts-pr-app[bot]
4c358450d8 Update CHANGELOG.md (#14854)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 09:45:00 +00:00
CanbiZ (MickLesk)
fa238ddbdd kan: extend fetch_and_deploy_gh_tag to use 'latest' tag (#14853) 2026-06-01 11:44:28 +02:00
community-scripts-pr-app[bot]
0fe653f8de Update CHANGELOG.md (#14850)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 08:22:51 +00:00
community-scripts-pr-app[bot]
278e8315f3 Update CHANGELOG.md (#14849)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 08:22:40 +00:00
Michel Roegl-Brunner
ded4bba04d fix(glance): preserve glance.yml across updates (#14845)
CLEAN_INSTALL wipes /opt/glance without restoring user config; back up and restore glance.yml around the prebuild deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-01 10:22:20 +02:00
CanbiZ (MickLesk)
5b6f8e2674 NginxProxymanager: set Certbot version in npm.service environment variable (2.15.0) (#14843) 2026-06-01 10:22:10 +02:00
community-scripts-pr-app[bot]
162cb9b887 Update CHANGELOG.md (#14844)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 08:01:45 +00:00
Adrián Musante
5776f3fef5 Fix FileFlows service handling by using systemctl --all with quoted glob (#14838) 2026-06-01 10:01:17 +02:00
community-scripts-pr-app[bot]
26377b7a7f Update CHANGELOG.md (#14841)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-01 05:53:17 +00:00
CanbiZ (MickLesk)
151cd6581f Fix Caddy configuration message placement 2026-06-01 07:52:49 +02:00
community-scripts-pr-app[bot]
69641d322d Update CHANGELOG.md (#14835)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-31 20:05:20 +00:00
community-scripts-pr-app[bot]
6608deeb92 Update CHANGELOG.md (#14834)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-31 20:05:07 +00:00
CanbiZ (MickLesk)
de7c00e285 Manyfold: regenerate Rails credentials on update to fix encryption mimatch (#14817) 2026-05-31 22:04:55 +02:00
community-scripts-pr-app[bot]
eb74ba2edb Update CHANGELOG.md (#14833)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-31 20:04:40 +00:00
CanbiZ (MickLesk)
203131d042 PBS4-Upgrade: update current PBS3 packages before switching to Trixie repos (#14815) 2026-05-31 22:04:14 +02:00
community-scripts-pr-app[bot]
44db73c58d Update CHANGELOG.md (#14831)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-31 12:11:21 +00:00
Tom Frenzel
d074d3f292 fix(openthread-br): use correct ipv6 configuration (#14829) 2026-05-31 14:10:55 +02:00
community-scripts-pr-app[bot]
65f3a23cff Update CHANGELOG.md (#14828)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-31 10:54:56 +00:00
CanbiZ (MickLesk)
4da4a47eb7 Webtrees: use PHP CLI for initial setup instead of curl to setup wizard (#14818) 2026-05-31 12:54:34 +02:00
community-scripts-pr-app[bot]
cf3d8f902c Update CHANGELOG.md (#14827)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-31 10:54:18 +00:00
CanbiZ (MickLesk)
8c0333151b Kima-Hub: use curl_with_retry for ML model downloads to fix timeout issues (#14816) 2026-05-31 12:53:56 +02:00
community-scripts-pr-app[bot]
dc355d07bf Update CHANGELOG.md (#14823)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-31 00:22:53 +00:00
community-scripts-pr-app[bot]
4e51373669 Archive old changelog entries (#14822)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-31 00:22:31 +00:00
community-scripts-pr-app[bot]
256020b847 Update CHANGELOG.md (#14821)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-30 21:48:55 +00:00
CanbiZ (MickLesk)
19cd2b3dad Flatnotes: fix empty package name in pyproject.toml (#14814)
* Flatnotes: fix empty package name in pyproject.toml

* Flatnotes: fix empty package name in update script too
2026-05-30 23:48:30 +02:00
community-scripts-pr-app[bot]
9c06910526 Update CHANGELOG.md (#14803)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-29 21:49:58 +00:00
Slaviša Arežina
d3feeb4900 small fixes (#14801) 2026-05-29 23:49:34 +02:00
community-scripts-pr-app[bot]
4926d426a8 Update CHANGELOG.md (#14799)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-29 16:07:55 +00:00
CanbiZ (MickLesk)
7fea6cc9eb karakeep: add more hdd space (#14797) 2026-05-29 18:07:14 +02:00
community-scripts-pr-app[bot]
b59ab46000 Update CHANGELOG.md (#14794)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-29 11:55:35 +00:00
Danny Meier
d41fd37f1a Fix lobehub docker path (#14793)
* Fix docker.cjs path in lobehub.sh

* Update lobehub.sh

* Update lobehub.sh

* Update lobehub.sh

* Update lobehub.sh
2026-05-29 13:55:05 +02:00
community-scripts-pr-app[bot]
b065c5e081 Update CHANGELOG.md (#14790)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-29 09:05:23 +00:00
push-app-to-main[bot]
1f9c670648 Kan (#14776)
* Add kan (ct)

* add: tarball mode

* Update kan-install.sh

* Update install/kan-install.sh

Co-authored-by: Tobias <96661824+CrazyWolf13@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: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-05-29 11:04:49 +02:00
community-scripts-pr-app[bot]
fdfb603930 Update CHANGELOG.md (#14788)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-29 08:41:48 +00:00
push-app-to-main[bot]
9a05da0b60 Add dynacat (ct) (#14777)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-05-29 10:41:19 +02:00
community-scripts-pr-app[bot]
38a14454c4 Update CHANGELOG.md (#14785)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-29 06:30:02 +00:00
Slaviša Arežina
c3294436b5 Revert installation of EE (#14784) 2026-05-29 08:29:33 +02:00
community-scripts-pr-app[bot]
44a4c97a4c Update CHANGELOG.md (#14773)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-28 09:13:22 +00:00
github-actions[bot]
8c9477506c chore(ct): sync adventurelog defaults with PocketBase (#14772) 2026-05-28 11:12:52 +02:00
MickLesk
f7224f3db8 minor fix 2026-05-28 10:07:01 +02:00
community-scripts-pr-app[bot]
03dd5e7e88 Update CHANGELOG.md (#14770)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-28 06:33:41 +00:00
community-scripts-pr-app[bot]
7b5e2f9656 Update CHANGELOG.md (#14769)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-28 06:33:29 +00:00
CanbiZ (MickLesk)
7703edf4b6 RomM: remove nginx default.conf during installation (#14766) 2026-05-28 08:33:16 +02:00
CanbiZ (MickLesk)
32f1956023 Yamtrack: migrate to uv (#14767) 2026-05-28 08:33:02 +02:00
community-scripts-pr-app[bot]
49817d14f8 Update CHANGELOG.md (#14768)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-28 06:31:38 +00:00
CanbiZ (MickLesk)
d64b9f6878 Open-Archiver: replace pnpm approve-builds --yes with --all (#14765) 2026-05-28 08:31:12 +02:00
community-scripts-pr-app[bot]
1fde72e141 Update CHANGELOG.md (#14764)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-28 05:05:26 +00:00
Stephen Chin
ceb50e3528 fix(hermesagent): set npm_config_yes=true to suppress interactive prompts during install (#14763) 2026-05-28 07:04:54 +02:00
community-scripts-pr-app[bot]
287c60bc08 Update CHANGELOG.md (#14760)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-27 19:02:18 +00:00
Paul Fitzpatrick
9764462f06 fix(grist): restore install:ee step (#14759)
Re-applies the install:ee step removed in #13526. The step was removed
when a transition from a repo to a tarball looked like the ee material
had been removed. Verified against grist-core v1.7.13.

See: https://github.com/community-scripts/ProxmoxVE/discussions/11203
2026-05-27 21:01:43 +02:00
community-scripts-pr-app[bot]
dc7ea8f526 Update CHANGELOG.md (#14753)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-27 09:07:59 +00:00
push-app-to-main[bot]
0c8c11f6b4 MusicSeerr (#14746)
* Add musicseerr (ct)

* musicseerr-install.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
2026-05-27 11:07:29 +02:00
community-scripts-pr-app[bot]
b2bcffbb05 Update CHANGELOG.md (#14752)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-27 08:06:48 +00:00
push-app-to-main[bot]
6a91a57cb2 Add hermesagent (ct) (#14751)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2026-05-27 10:06:21 +02:00
community-scripts-pr-app[bot]
7e5f7a329e Update CHANGELOG.md (#14750)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-27 06:14:43 +00:00
Slaviša Arežina
80a73c0ec0 Format LATEST_VERSION_DOTTED from LATEST_VERSION (#14745)
Change LATEST_VERSION_DOTTED assignment to format version correctly.
2026-05-27 08:14:17 +02:00
community-scripts-pr-app[bot]
d9f88aba7f Update CHANGELOG.md (#14744)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 18:59:10 +00:00
Ryan Sullivan
8ed57f08bf Add directory creation to Profilarr update script (#14740) 2026-05-26 20:58:45 +02:00
community-scripts-pr-app[bot]
c6dcd986ce Update CHANGELOG.md (#14732)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 07:20:48 +00:00
Michael Peleshenko
a36b2c9be7 fix(profilarr): Fix ARCH assignment in profilarr.sh to support Profilarr build usage (#14709) 2026-05-26 09:20:21 +02:00
community-scripts-pr-app[bot]
e04a9dc13e Update CHANGELOG.md (#14731)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 07:19:43 +00:00
Michel Roegl-Brunner
c6f2c2b7d0 Jackett: Remove quotes in Service File (#14729) 2026-05-26 09:19:18 +02:00
community-scripts-pr-app[bot]
f78c2be766 Update CHANGELOG.md (#14728)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 06:06:32 +00:00
CanbiZ (MickLesk)
edfa7c8c45 tools.func: better error diagnostics, consistent OS detection, setup function ordering (#14692)
* fix(tools): improve error diagnostics and actionable hints across install functions

- Add _diagnose_deb_failure() helper: extracts package metadata from failed .deb installs,
  detects PostgreSQL version conflicts (e.g., postgresql-16-vchord with PG17 active),
  lists unmet dependencies, and provides specific actionable hints
- Replace all 4 generic 'Both apt and dpkg installation failed' messages in
  fetch_and_deploy_{codeberg,gh,gl}_release and fetch_and_deploy_from_url with
  _diagnose_deb_failure() for targeted diagnostics
- install_packages_with_retry: on failure, check which packages are missing from
  configured repos and name them with a distribution-specific hint
- upgrade_packages_with_retry: add hint about held-back packages / apt-cache policy
- setup_postgresql: when PGDG repo is unavailable for trixie/forky/sid, show which
  distro PG version will be installed and warn that extension packages must match
- setup_deb822_repo: include GPG key URL and firewall hint in download failure message
- curl_download: add network/DNS hint to the failure message
- error_handler: add log-pattern analysis block after Node.js OOM detection that
  scans the last 60 log lines for 5 common failure patterns and emits msg_warn hints:
    * APT/dpkg dependency conflict (generic + PostgreSQL version mismatch)
    * APT GPG/signature verification failure (sqv, KEYEXPIRED, NO_PUBKEY)
    * Network/DNS failure (Could not resolve, Failed to fetch)
    * APT lock held by another process
    * Disk space exhaustion (ENOSPC)

* fix(tools): consolidate OS detection, add error hints, sort setup functions

- Replace all 13 manual /etc/os-release reads with get_os_info() across
  prepare_repository_setup, setup_hwaccel, setup_java, setup_mysql,
  setup_php, setup_postgresql, setup_clickhouse, install_packages_with_retry
- Add actionable Hint messages to 16 download/network failure paths:
  adminer, composer, ffmpeg (x2), go, ghostscript, imagemagick, rbenv,
  ruby-build, meilisearch-config, uv, yq, rust, apt-lock timeout,
  mongodb GPG, php keyring
- Replace 6 silent 'apt install || true' with msg_warn for optional packages:
  3x postgresql modules, ruby build deps, ssl-cert, docker-compose
- Sort all 'function setup_*' declarations into alphabetical order:
  clickhouse moved to after adminer, docker moved to after composer,
  meilisearch moved to after mariadb_db

* style(tools): unify all function declarations to name() { style

Remove 'function' keyword from 30 declarations to match the project convention
used in core.func, error_handler.func, and all other .func files (POSIX-compatible name() { syntax)
2026-05-26 08:06:08 +02:00
community-scripts-pr-app[bot]
f378e76329 Update CHANGELOG.md (#14727)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 06:04:49 +00:00
community-scripts-pr-app[bot]
faf073d3b5 Update CHANGELOG.md (#14726)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 06:04:36 +00:00
community-scripts-pr-app[bot]
43fc5c27e1 Update CHANGELOG.md (#14725)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 06:04:20 +00:00
CanbiZ (MickLesk)
37649c1e0a fix(open-archiver): approve pnpm build scripts before build:oss (#14711) 2026-05-26 08:04:15 +02:00
community-scripts-pr-app[bot]
bb5f531761 Update CHANGELOG.md (#14724)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 06:04:08 +00:00
CanbiZ (MickLesk)
48b34d4c2e fix(add-iptag): use qm set for VM tags to handle snapshot sections correctly (#14713) 2026-05-26 08:03:57 +02:00
community-scripts-pr-app[bot]
54e13bca94 Update CHANGELOG.md (#14723)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 06:03:48 +00:00
CanbiZ (MickLesk)
9aa76e8ea4 fix(netdata): extend PVE version support to 9.x (#14714) 2026-05-26 08:03:43 +02:00
community-scripts-pr-app[bot]
219c4e80b0 Update CHANGELOG.md (#14722)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-26 06:03:22 +00:00
CanbiZ (MickLesk)
35cd953ed7 fix(docuseal): read Ruby version from Gemfile, upgrade on update if needed (#14715) 2026-05-26 08:03:20 +02:00
CanbiZ (MickLesk)
f9f21c1b79 fix(birdnet-go): install libonnxruntime.so from release tarball (#14716) 2026-05-26 08:02:55 +02:00
community-scripts-pr-app[bot]
62a6122fa6 Update CHANGELOG.md (#14704)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-25 10:05:47 +00:00
Tobias
45953e857a karakeep: fix: pip config (#14703)
* fix: pip config

* Create pip.conf if not present
2026-05-25 12:05:16 +02:00
community-scripts-pr-app[bot]
d984a5828d Update CHANGELOG.md (#14698)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-25 06:50:26 +00:00
community-scripts-pr-app[bot]
8492ca5805 Update CHANGELOG.md (#14697)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-25 06:50:14 +00:00
CanbiZ (MickLesk)
9ec0864d32 fix(tools): replace raw GitHub API curl calls with get_latest_github_release (#14690) 2026-05-25 08:50:00 +02:00
community-scripts-pr-app[bot]
6a9081726f Update CHANGELOG.md (#14696)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-25 06:49:47 +00:00
CanbiZ (MickLesk)
514fece0df Kernel-Clean: detect meta-packages and fix silent removal failures (#14674) 2026-05-25 08:49:25 +02:00
community-scripts-pr-app[bot]
9c1f80e3c9 Update CHANGELOG.md (#14685)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-24 10:46:34 +00:00
CanbiZ (MickLesk)
4dc5dfb366 Add installation steps for Nginx mod_zip module (#14678) 2026-05-24 12:46:13 +02:00
community-scripts-pr-app[bot]
4b2cacf78f Update CHANGELOG.md (#14684)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-24 10:27:59 +00:00
Slaviša Arežina
e5c66aa4d2 Refactor (#14673) 2026-05-24 12:27:38 +02:00
community-scripts-pr-app[bot]
b00ae8c350 Update CHANGELOG.md (#14683)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-24 10:26:40 +00:00
CanbiZ (MickLesk)
7cfa47d138 fix(isponsorblocktv): detect CPU capabilities to select compatible binary (#14677)
Instead of hard-failing when AVX is not present, detect whether the host
CPU supports AVX + AVX2 + MOVBE (x86-64-v3 microarchitecture level) and
select the appropriate upstream binary accordingly:

- iSponsorBlockTV-x86_64-linux     → modern CPUs (AVX/AVX2/MOVBE)
- iSponsorBlockTV-x86_64-linux-v1  → any x86_64 CPU (fallback)

The same detection logic is applied in update_script() so updates
stay consistent with the initially installed binary type.

Fixes: https://github.com/community-scripts/ProxmoxVE/issues/14660
Upstream: dmunozv04/iSponsorBlockTV#463
2026-05-24 12:26:18 +02:00
community-scripts-pr-app[bot]
639dc9efc4 Update CHANGELOG.md (#14682)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-24 00:20:44 +00:00
community-scripts-pr-app[bot]
5bf9cfb800 Archive old changelog entries (#14681)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-05-24 00:20:15 +00:00
58 changed files with 2302 additions and 1140 deletions

264
.github/changelogs/2026/05.md generated vendored
View File

@@ -1,3 +1,267 @@
## 2026-05-30
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Flatnotes: fix empty package name in pyproject.toml [@MickLesk](https://github.com/MickLesk) ([#14814](https://github.com/community-scripts/ProxmoxVE/pull/14814))
## 2026-05-29
### 🆕 New Scripts
- Kan ([#14776](https://github.com/community-scripts/ProxmoxVE/pull/14776))
- Dynacat ([#14777](https://github.com/community-scripts/ProxmoxVE/pull/14777))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Fix lobehub docker path [@dannyyy](https://github.com/dannyyy) ([#14793](https://github.com/community-scripts/ProxmoxVE/pull/14793))
- karakeep: add more hdd space [@MickLesk](https://github.com/MickLesk) ([#14797](https://github.com/community-scripts/ProxmoxVE/pull/14797))
- Grist: Revert installation of EE [@tremor021](https://github.com/tremor021) ([#14784](https://github.com/community-scripts/ProxmoxVE/pull/14784))
- #### 🔧 Refactor
- Sure: Remove `$STD` for `systemctl enable -q` [@tremor021](https://github.com/tremor021) ([#14801](https://github.com/community-scripts/ProxmoxVE/pull/14801))
## 2026-05-28
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- RomM: remove nginx default.conf during installation [@MickLesk](https://github.com/MickLesk) ([#14766](https://github.com/community-scripts/ProxmoxVE/pull/14766))
- Open-Archiver: replace pnpm approve-builds --yes with --all [@MickLesk](https://github.com/MickLesk) ([#14765](https://github.com/community-scripts/ProxmoxVE/pull/14765))
- fix(hermesagent): set npm_config_yes=true to suppress interactive pro… [@steveonjava](https://github.com/steveonjava) ([#14763](https://github.com/community-scripts/ProxmoxVE/pull/14763))
- #### 🔧 Refactor
- Yamtrack: migrate to uv [@MickLesk](https://github.com/MickLesk) ([#14767](https://github.com/community-scripts/ProxmoxVE/pull/14767))
### ❔ Uncategorized
- chore(ct): sync adventurelog defaults with PocketBase [@github-actions[bot]](https://github.com/github-actions[bot]) ([#14772](https://github.com/community-scripts/ProxmoxVE/pull/14772))
## 2026-05-27
### 🆕 New Scripts
- MusicSeerr ([#14746](https://github.com/community-scripts/ProxmoxVE/pull/14746))
- Hermes Agent ([#14751](https://github.com/community-scripts/ProxmoxVE/pull/14751))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- grist: restore install:ee step [@paulfitz](https://github.com/paulfitz) ([#14759](https://github.com/community-scripts/ProxmoxVE/pull/14759))
### 💾 Core
- #### 🐞 Bug Fixes
- [tools.func]: `setup_gs()` fix getting dotted release format [@tremor021](https://github.com/tremor021) ([#14745](https://github.com/community-scripts/ProxmoxVE/pull/14745))
## 2026-05-26
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Add directory creation to Profilarr update script [@ryansully](https://github.com/ryansully) ([#14740](https://github.com/community-scripts/ProxmoxVE/pull/14740))
- profilarr: Fix ARCH assignment in profilarr.sh to support Profilarr build usage [@mpeleshenko](https://github.com/mpeleshenko) ([#14709](https://github.com/community-scripts/ProxmoxVE/pull/14709))
- Jackett: Remove quotes in Service File [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14729](https://github.com/community-scripts/ProxmoxVE/pull/14729))
- Open-archiver: approve pnpm build scripts and run build:oss without subshell [@MickLesk](https://github.com/MickLesk) ([#14711](https://github.com/community-scripts/ProxmoxVE/pull/14711))
- Docuseal: read Ruby version from Gemfile, upgrade on update if needed [@MickLesk](https://github.com/MickLesk) ([#14715](https://github.com/community-scripts/ProxmoxVE/pull/14715))
- #### ✨ New Features
- Birdnet-GO: install libonnxruntime.so from release tarball [@MickLesk](https://github.com/MickLesk) ([#14716](https://github.com/community-scripts/ProxmoxVE/pull/14716))
### 💾 Core
- #### ✨ New Features
- tools.func: better error diagnostics, consistent OS detection, setup function ordering [@MickLesk](https://github.com/MickLesk) ([#14692](https://github.com/community-scripts/ProxmoxVE/pull/14692))
### 🧰 Tools
- #### 🐞 Bug Fixes
- IPTag-Tool: use qm set for VM tags to handle snapshot sections crrectly [@MickLesk](https://github.com/MickLesk) ([#14713](https://github.com/community-scripts/ProxmoxVE/pull/14713))
- #### ✨ New Features
- Netdata: extend PVE version support to 9.x [@MickLesk](https://github.com/MickLesk) ([#14714](https://github.com/community-scripts/ProxmoxVE/pull/14714))
## 2026-05-25
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- karakeep: fix: pip config [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14703](https://github.com/community-scripts/ProxmoxVE/pull/14703))
### 💾 Core
- #### ✨ New Features
- tools.func: replace raw GitHub API curl calls with get_latest_github_release [@MickLesk](https://github.com/MickLesk) ([#14690](https://github.com/community-scripts/ProxmoxVE/pull/14690))
### 🧰 Tools
- #### 🔧 Refactor
- Kernel-Clean: detect meta-packages and fix silent removal failures [@MickLesk](https://github.com/MickLesk) ([#14674](https://github.com/community-scripts/ProxmoxVE/pull/14674))
## 2026-05-24
### 🚀 Updated Scripts
- #### ✨ New Features
- RomM: add installation steps for Nginx mod_zip module [@MickLesk](https://github.com/MickLesk) ([#14678](https://github.com/community-scripts/ProxmoxVE/pull/14678))
- ISponsorblockTV: detect CPU capabilities to select compatible binary [@MickLesk](https://github.com/MickLesk) ([#14677](https://github.com/community-scripts/ProxmoxVE/pull/14677))
- #### 🔧 Refactor
- Refactor: MQTT [@tremor021](https://github.com/tremor021) ([#14673](https://github.com/community-scripts/ProxmoxVE/pull/14673))
## 2026-05-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- IronClaw: Extra configuration during install to ensure Web Gateway can run [@SystemIdleProcess](https://github.com/SystemIdleProcess) ([#14635](https://github.com/community-scripts/ProxmoxVE/pull/14635))
- Tunarr: fix path to backup during update [@SystemIdleProcess](https://github.com/SystemIdleProcess) ([#14655](https://github.com/community-scripts/ProxmoxVE/pull/14655))
- #### ✨ New Features
- wealthfolio: add: prebuild [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14658](https://github.com/community-scripts/ProxmoxVE/pull/14658))
### 🧰 Tools
- #### ✨ New Features
- kernel-clean: support range syntax in selection prompt [@djhojd](https://github.com/djhojd) ([#14656](https://github.com/community-scripts/ProxmoxVE/pull/14656))
## 2026-05-22
### 🆕 New Scripts
- bitfocus-companion ([#14603](https://github.com/community-scripts/ProxmoxVE/pull/14603))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix(the-lounge): install Node.js 22 before deb package [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14648](https://github.com/community-scripts/ProxmoxVE/pull/14648))
- Docmost: Fix duplicate STORAGE_DRIVER [@MickLesk](https://github.com/MickLesk) ([#14645](https://github.com/community-scripts/ProxmoxVE/pull/14645))
- Profilarr: pin Deno version to v2.7.5 [@MickLesk](https://github.com/MickLesk) ([#14632](https://github.com/community-scripts/ProxmoxVE/pull/14632))
- #### ✨ New Features
- add: karakeep cli wrapper [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14618](https://github.com/community-scripts/ProxmoxVE/pull/14618))
- #### 💥 Breaking Changes
- OpenCloud: v7.0.0 changes [@vhsdream](https://github.com/vhsdream) ([#14650](https://github.com/community-scripts/ProxmoxVE/pull/14650))
- #### 🔧 Refactor
- workflows: update workflows, templates to support arm64. [@asylumexp](https://github.com/asylumexp) ([#14653](https://github.com/community-scripts/ProxmoxVE/pull/14653))
- SoulSync: setup Node v22 and build WebUI [@MickLesk](https://github.com/MickLesk) ([#14639](https://github.com/community-scripts/ProxmoxVE/pull/14639))
- Refactor: Dispatcharr [@MickLesk](https://github.com/MickLesk) ([#14313](https://github.com/community-scripts/ProxmoxVE/pull/14313))
### 💾 Core
- #### 🐞 Bug Fixes
- fix: make LXC banner OS detection dynamic via /etc/os-release [@atahan99](https://github.com/atahan99) ([#14269](https://github.com/community-scripts/ProxmoxVE/pull/14269))
- #### 🔧 Refactor
- core: suppress MOTD for non-interactive shells [@MickLesk](https://github.com/MickLesk) ([#14638](https://github.com/community-scripts/ProxmoxVE/pull/14638))
## 2026-05-21
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- snowshare: use mv instead of cp for uploads backup to prevent disk fill [@TuroYT](https://github.com/TuroYT) ([#14558](https://github.com/community-scripts/ProxmoxVE/pull/14558))
- Technitium DNS: download release before stopping the service on update [@w-gitops](https://github.com/w-gitops) ([#14616](https://github.com/community-scripts/ProxmoxVE/pull/14616))
- #### ✨ New Features
- Proxmox VE 9.2 support [@MickLesk](https://github.com/MickLesk) ([#14624](https://github.com/community-scripts/ProxmoxVE/pull/14624))
## 2026-05-20
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Update mylar3 to point to new Repo [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14606](https://github.com/community-scripts/ProxmoxVE/pull/14606))
- Ollama: Fix for latest version [@tremor021](https://github.com/tremor021) ([#14596](https://github.com/community-scripts/ProxmoxVE/pull/14596))
- #### ✨ New Features
- Profilarr v2: Update and Refactor whole Script [@MickLesk](https://github.com/MickLesk) ([#14584](https://github.com/community-scripts/ProxmoxVE/pull/14584))
## 2026-05-19
### 🆕 New Scripts
- LobeHub ([#14441](https://github.com/community-scripts/ProxmoxVE/pull/14441))
### 🚀 Updated Scripts
- Update nodejs Versions [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14582](https://github.com/community-scripts/ProxmoxVE/pull/14582))
- #### 🐞 Bug Fixes
- ESPConnect: Fix paths to SSL certificates [@tremor021](https://github.com/tremor021) ([#14591](https://github.com/community-scripts/ProxmoxVE/pull/14591))
- ReactiveResume: set correct WorkingDirectory for systemd service [@MickLesk](https://github.com/MickLesk) ([#14579](https://github.com/community-scripts/ProxmoxVE/pull/14579))
- Sparkyfitness: add missing nginx template variable substitutions [@MickLesk](https://github.com/MickLesk) ([#14578](https://github.com/community-scripts/ProxmoxVE/pull/14578))
- Wanderer: include dev dependencies during build [@MickLesk](https://github.com/MickLesk) ([#14577](https://github.com/community-scripts/ProxmoxVE/pull/14577))
- Whisparr: switch from nightly to stable GitHub release [@MickLesk](https://github.com/MickLesk) ([#14581](https://github.com/community-scripts/ProxmoxVE/pull/14581))
- #### 🔧 Refactor
- Refactor: SonarQube [@tremor021](https://github.com/tremor021) ([#14594](https://github.com/community-scripts/ProxmoxVE/pull/14594))
## 2026-05-18
### 🆕 New Scripts
- ESPconnect ([#14444](https://github.com/community-scripts/ProxmoxVE/pull/14444))
- degoog ([#14533](https://github.com/community-scripts/ProxmoxVE/pull/14533))
- Webtrees ([#14532](https://github.com/community-scripts/ProxmoxVE/pull/14532))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Bichon: Support v1 migration [@tomfrenzel](https://github.com/tomfrenzel) ([#14524](https://github.com/community-scripts/ProxmoxVE/pull/14524))
- #### ✨ New Features
- Pangolin: bump to 1.18.4, fix missing statusHistory migration [@MickLesk](https://github.com/MickLesk) ([#14566](https://github.com/community-scripts/ProxmoxVE/pull/14566))
## 2026-05-17
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- dashy: fix yarn-missing on update and back up full user-data [@lissy93](https://github.com/lissy93) ([#14548](https://github.com/community-scripts/ProxmoxVE/pull/14548))
- #### ✨ New Features
- tools.func: replace max-time with speed-limit stall detection in curl_download [@MickLesk](https://github.com/MickLesk) ([#14545](https://github.com/community-scripts/ProxmoxVE/pull/14545))
## 2026-05-16 ## 2026-05-16
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -336,14 +336,18 @@ jobs:
issue_scripts+=("$slug|$our_version|$upstream_major|$upstream_hint|$repo") issue_scripts+=("$slug|$our_version|$upstream_major|$upstream_hint|$repo")
drift_count=$((drift_count + 1)) drift_count=$((drift_count + 1))
elif [[ -n "$upstream_major" && "$our_version" != "$upstream_major" ]]; then elif [[ -n "$upstream_major" && "$our_version" != "$upstream_major" ]]; then
# Check if engines.node is a minimum constraint that our version satisfies if (( our_version < upstream_major )); then
if [[ -z "$DF_NODE_MAJOR" && "$ENGINES_IS_MINIMUM" == "true" ]] && \ # Check if engines.node is a minimum constraint that our version satisfies
version_satisfies_engines "$our_version" "$ENGINES_MIN_MAJOR" "$ENGINES_IS_MINIMUM"; then if [[ -z "$DF_NODE_MAJOR" && "$ENGINES_IS_MINIMUM" == "true" ]] && \
status="✅ (engines: $ENGINES_NODE_RAW — ours: $our_version satisfies)" 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
else else
status="🔸 Drift → upstream=$upstream_major ($upstream_hint)" status="✅ Ahead of upstream ($upstream_major via $upstream_hint)"
issue_scripts+=("$slug|$our_version|$upstream_major|$upstream_hint|$repo")
drift_count=$((drift_count + 1))
fi fi
fi fi

View File

@@ -50,6 +50,12 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
@@ -66,7 +72,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
<details> <details>
<summary><h4>May (16 entries)</h4></summary> <summary><h4>May (30 entries)</h4></summary>
[View May 2026 Changelog](.github/changelogs/2026/05.md) [View May 2026 Changelog](.github/changelogs/2026/05.md)
@@ -464,6 +470,175 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details> </details>
## 2026-06-01
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix(dispatcharr): forward nginx port for M3U URLs on new installs [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14862](https://github.com/community-scripts/ProxmoxVE/pull/14862))
- Set environment paths in service for apprise-api-install.sh [@SystemIdleProcess](https://github.com/SystemIdleProcess) ([#14805](https://github.com/community-scripts/ProxmoxVE/pull/14805))
- fix(fireshare): rebuild client on update to fix nginx 500 [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14848](https://github.com/community-scripts/ProxmoxVE/pull/14848))
- Fix Kan build failure (TS7016 nodemailer) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14856](https://github.com/community-scripts/ProxmoxVE/pull/14856))
- fix(firefly): set Data Importer APP_URL for subdirectory install [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14847](https://github.com/community-scripts/ProxmoxVE/pull/14847))
- kan: extend fetch_and_deploy_gh_tag to use 'latest' tag [@MickLesk](https://github.com/MickLesk) ([#14853](https://github.com/community-scripts/ProxmoxVE/pull/14853))
- Glance: preserve glance.yml across updates [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14845](https://github.com/community-scripts/ProxmoxVE/pull/14845))
- NginxProxymanager: set Certbot version in npm.service environment variable (2.15.0) [@MickLesk](https://github.com/MickLesk) ([#14843](https://github.com/community-scripts/ProxmoxVE/pull/14843))
- [FileFlows] Fix service handling by using systemctl --all with quoted glob [@adrianmusante](https://github.com/adrianmusante) ([#14838](https://github.com/community-scripts/ProxmoxVE/pull/14838))
- #### ✨ New Features
- Kometa: also update Quickstart in update_script [@MickLesk](https://github.com/MickLesk) ([#14529](https://github.com/community-scripts/ProxmoxVE/pull/14529))
## 2026-05-31
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Manyfold: regenerate Rails credentials on update to fix encryption mimatch [@MickLesk](https://github.com/MickLesk) ([#14817](https://github.com/community-scripts/ProxmoxVE/pull/14817))
- OpenThread-BR: use correct ipv6 configuration [@tomfrenzel](https://github.com/tomfrenzel) ([#14829](https://github.com/community-scripts/ProxmoxVE/pull/14829))
- #### 🔧 Refactor
- Webtrees: use PHP CLI for initial setup instead of curl to setup wizard [@MickLesk](https://github.com/MickLesk) ([#14818](https://github.com/community-scripts/ProxmoxVE/pull/14818))
- Kima-Hub: use curl_with_retry for ML model downloads to fix possible timeout issues [@MickLesk](https://github.com/MickLesk) ([#14816](https://github.com/community-scripts/ProxmoxVE/pull/14816))
### 🧰 Tools
- #### 🔧 Refactor
- PBS4-Upgrade: update current PBS3 packages before switching to Trixie repos [@MickLesk](https://github.com/MickLesk) ([#14815](https://github.com/community-scripts/ProxmoxVE/pull/14815))
## 2026-05-30
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Flatnotes: fix empty package name in pyproject.toml [@MickLesk](https://github.com/MickLesk) ([#14814](https://github.com/community-scripts/ProxmoxVE/pull/14814))
## 2026-05-29
### 🆕 New Scripts
- Kan ([#14776](https://github.com/community-scripts/ProxmoxVE/pull/14776))
- Dynacat ([#14777](https://github.com/community-scripts/ProxmoxVE/pull/14777))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Fix lobehub docker path [@dannyyy](https://github.com/dannyyy) ([#14793](https://github.com/community-scripts/ProxmoxVE/pull/14793))
- karakeep: add more hdd space [@MickLesk](https://github.com/MickLesk) ([#14797](https://github.com/community-scripts/ProxmoxVE/pull/14797))
- Grist: Revert installation of EE [@tremor021](https://github.com/tremor021) ([#14784](https://github.com/community-scripts/ProxmoxVE/pull/14784))
- #### 🔧 Refactor
- Sure: Remove `$STD` for `systemctl enable -q` [@tremor021](https://github.com/tremor021) ([#14801](https://github.com/community-scripts/ProxmoxVE/pull/14801))
## 2026-05-28
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- RomM: remove nginx default.conf during installation [@MickLesk](https://github.com/MickLesk) ([#14766](https://github.com/community-scripts/ProxmoxVE/pull/14766))
- Open-Archiver: replace pnpm approve-builds --yes with --all [@MickLesk](https://github.com/MickLesk) ([#14765](https://github.com/community-scripts/ProxmoxVE/pull/14765))
- fix(hermesagent): set npm_config_yes=true to suppress interactive pro… [@steveonjava](https://github.com/steveonjava) ([#14763](https://github.com/community-scripts/ProxmoxVE/pull/14763))
- #### 🔧 Refactor
- Yamtrack: migrate to uv [@MickLesk](https://github.com/MickLesk) ([#14767](https://github.com/community-scripts/ProxmoxVE/pull/14767))
### ❔ Uncategorized
- chore(ct): sync adventurelog defaults with PocketBase [@github-actions[bot]](https://github.com/github-actions[bot]) ([#14772](https://github.com/community-scripts/ProxmoxVE/pull/14772))
## 2026-05-27
### 🆕 New Scripts
- MusicSeerr ([#14746](https://github.com/community-scripts/ProxmoxVE/pull/14746))
- Hermes Agent ([#14751](https://github.com/community-scripts/ProxmoxVE/pull/14751))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- grist: restore install:ee step [@paulfitz](https://github.com/paulfitz) ([#14759](https://github.com/community-scripts/ProxmoxVE/pull/14759))
### 💾 Core
- #### 🐞 Bug Fixes
- [tools.func]: `setup_gs()` fix getting dotted release format [@tremor021](https://github.com/tremor021) ([#14745](https://github.com/community-scripts/ProxmoxVE/pull/14745))
## 2026-05-26
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Add directory creation to Profilarr update script [@ryansully](https://github.com/ryansully) ([#14740](https://github.com/community-scripts/ProxmoxVE/pull/14740))
- profilarr: Fix ARCH assignment in profilarr.sh to support Profilarr build usage [@mpeleshenko](https://github.com/mpeleshenko) ([#14709](https://github.com/community-scripts/ProxmoxVE/pull/14709))
- Jackett: Remove quotes in Service File [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14729](https://github.com/community-scripts/ProxmoxVE/pull/14729))
- Open-archiver: approve pnpm build scripts and run build:oss without subshell [@MickLesk](https://github.com/MickLesk) ([#14711](https://github.com/community-scripts/ProxmoxVE/pull/14711))
- Docuseal: read Ruby version from Gemfile, upgrade on update if needed [@MickLesk](https://github.com/MickLesk) ([#14715](https://github.com/community-scripts/ProxmoxVE/pull/14715))
- #### ✨ New Features
- Birdnet-GO: install libonnxruntime.so from release tarball [@MickLesk](https://github.com/MickLesk) ([#14716](https://github.com/community-scripts/ProxmoxVE/pull/14716))
### 💾 Core
- #### ✨ New Features
- tools.func: better error diagnostics, consistent OS detection, setup function ordering [@MickLesk](https://github.com/MickLesk) ([#14692](https://github.com/community-scripts/ProxmoxVE/pull/14692))
### 🧰 Tools
- #### 🐞 Bug Fixes
- IPTag-Tool: use qm set for VM tags to handle snapshot sections crrectly [@MickLesk](https://github.com/MickLesk) ([#14713](https://github.com/community-scripts/ProxmoxVE/pull/14713))
- #### ✨ New Features
- Netdata: extend PVE version support to 9.x [@MickLesk](https://github.com/MickLesk) ([#14714](https://github.com/community-scripts/ProxmoxVE/pull/14714))
## 2026-05-25
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- karakeep: fix: pip config [@CrazyWolf13](https://github.com/CrazyWolf13) ([#14703](https://github.com/community-scripts/ProxmoxVE/pull/14703))
### 💾 Core
- #### ✨ New Features
- tools.func: replace raw GitHub API curl calls with get_latest_github_release [@MickLesk](https://github.com/MickLesk) ([#14690](https://github.com/community-scripts/ProxmoxVE/pull/14690))
### 🧰 Tools
- #### 🔧 Refactor
- Kernel-Clean: detect meta-packages and fix silent removal failures [@MickLesk](https://github.com/MickLesk) ([#14674](https://github.com/community-scripts/ProxmoxVE/pull/14674))
## 2026-05-24
### 🚀 Updated Scripts
- #### ✨ New Features
- RomM: add installation steps for Nginx mod_zip module [@MickLesk](https://github.com/MickLesk) ([#14678](https://github.com/community-scripts/ProxmoxVE/pull/14678))
- ISponsorblockTV: detect CPU capabilities to select compatible binary [@MickLesk](https://github.com/MickLesk) ([#14677](https://github.com/community-scripts/ProxmoxVE/pull/14677))
- #### 🔧 Refactor
- Refactor: MQTT [@tremor021](https://github.com/tremor021) ([#14673](https://github.com/community-scripts/ProxmoxVE/pull/14673))
## 2026-05-23 ## 2026-05-23
### 🚀 Updated Scripts ### 🚀 Updated Scripts
@@ -896,299 +1071,4 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- #### 🔧 Refactor - #### 🔧 Refactor
- Mail-Archiver: update dependencies [@tremor021](https://github.com/tremor021) ([#14152](https://github.com/community-scripts/ProxmoxVE/pull/14152)) - Mail-Archiver: update dependencies [@tremor021](https://github.com/tremor021) ([#14152](https://github.com/community-scripts/ProxmoxVE/pull/14152))
## 2026-04-30
### 🆕 New Scripts
- Nagios ([#14126](https://github.com/community-scripts/ProxmoxVE/pull/14126))
- Neko ([#14121](https://github.com/community-scripts/ProxmoxVE/pull/14121))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- alpine-docker: install openssl as core dependency | alpine-komodo: check & install openssl if missing [@MickLesk](https://github.com/MickLesk) ([#14134](https://github.com/community-scripts/ProxmoxVE/pull/14134))
- endurain: update source references to Codeberg [@MickLesk](https://github.com/MickLesk) ([#14128](https://github.com/community-scripts/ProxmoxVE/pull/14128))
### 💾 Core
- #### 🔧 Refactor
- tools.func: Manage minor versions for MongoDB 8.x [@tremor021](https://github.com/tremor021) ([#14131](https://github.com/community-scripts/ProxmoxVE/pull/14131))
## 2026-04-29
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- GrayLog: MongoDB update to 8.2.x [@tremor021](https://github.com/tremor021) ([#14114](https://github.com/community-scripts/ProxmoxVE/pull/14114))
- Graylog: Better information in the log file [@tremor021](https://github.com/tremor021) ([#14110](https://github.com/community-scripts/ProxmoxVE/pull/14110))
- #### 🔧 Refactor
- Refactor: checkMK [@MickLesk](https://github.com/MickLesk) ([#14105](https://github.com/community-scripts/ProxmoxVE/pull/14105))
- PatchMon: Unpin release [@tremor021](https://github.com/tremor021) ([#14097](https://github.com/community-scripts/ProxmoxVE/pull/14097))
### 💾 Core
- #### 🔧 Refactor
- core: add guidance when storage lacks rootdir support [@MickLesk](https://github.com/MickLesk) ([#14108](https://github.com/community-scripts/ProxmoxVE/pull/14108))
## 2026-04-28
### 🆕 New Scripts
- StoryBook ([#14081](https://github.com/community-scripts/ProxmoxVE/pull/14081))
- CoreDNS ([#14082](https://github.com/community-scripts/ProxmoxVE/pull/14082))
### 🚀 Updated Scripts
- Fix Dawarich Install/Update [@Jerry1098](https://github.com/Jerry1098) ([#14078](https://github.com/community-scripts/ProxmoxVE/pull/14078))
- #### ✨ New Features
- PatchMon Version 2.0.2 Script update [@9technologygroup](https://github.com/9technologygroup) ([#14095](https://github.com/community-scripts/ProxmoxVE/pull/14095))
## 2026-04-27
### 🚀 Updated Scripts
- Add pamUsername column to userOrgs table [@JVKeller](https://github.com/JVKeller) ([#14075](https://github.com/community-scripts/ProxmoxVE/pull/14075))
- #### 🐞 Bug Fixes
- Dawarich: run db:migrate before assets:precompile [@MickLesk](https://github.com/MickLesk) ([#14051](https://github.com/community-scripts/ProxmoxVE/pull/14051))
- TechnitiumDNS: always install .NET 10 if not already present [@MickLesk](https://github.com/MickLesk) ([#14049](https://github.com/community-scripts/ProxmoxVE/pull/14049))
- #### 💥 Breaking Changes
- PatchMon: v2.0.0 migration [@vhsdream](https://github.com/vhsdream) ([#14015](https://github.com/community-scripts/ProxmoxVE/pull/14015))
### 💾 Core
- #### 🔧 Refactor
- Update build.func - fixed spelling mistake [@m1ckywill](https://github.com/m1ckywill) ([#14047](https://github.com/community-scripts/ProxmoxVE/pull/14047))
### 🧰 Tools
- #### 🐞 Bug Fixes
- update-lxcs/apps: avoid pct exec on containers mid-shutdown [@MickLesk](https://github.com/MickLesk) ([#14050](https://github.com/community-scripts/ProxmoxVE/pull/14050))
- #### ✨ New Features
- Add patchmon-agent report execution in update script [@heinemannj](https://github.com/heinemannj) ([#14054](https://github.com/community-scripts/ProxmoxVE/pull/14054))
## 2026-04-26
### 🆕 New Scripts
- TREK ([#14017](https://github.com/community-scripts/ProxmoxVE/pull/14017))
### 🚀 Updated Scripts
- fix(2fauth): handle stale backup directory on update [@omertahaoztop](https://github.com/omertahaoztop) ([#14018](https://github.com/community-scripts/ProxmoxVE/pull/14018))
- #### 🐞 Bug Fixes
- Increase Frigate default CPU cores from 4 to 8 [@MickLesk](https://github.com/MickLesk) ([#14039](https://github.com/community-scripts/ProxmoxVE/pull/14039))
- Technitium DNS: Ensure directories exist before running service [@tremor021](https://github.com/tremor021) ([#14030](https://github.com/community-scripts/ProxmoxVE/pull/14030))
### 💾 Core
- #### 🐞 Bug Fixes
- core: Correct deb822 repository flat path detection [@MickLesk](https://github.com/MickLesk) ([#14037](https://github.com/community-scripts/ProxmoxVE/pull/14037))
## 2026-04-25
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- VictoriaMetrics: Stop vmagent/vmalert before update [@irishpadres](https://github.com/irishpadres) ([#14016](https://github.com/community-scripts/ProxmoxVE/pull/14016))
- Domain-Monitor: start apache2 after stop instead of reload [@omertahaoztop](https://github.com/omertahaoztop) ([#14019](https://github.com/community-scripts/ProxmoxVE/pull/14019))
- Transmute: Fix ffmpeg detection [@tremor021](https://github.com/tremor021) ([#14008](https://github.com/community-scripts/ProxmoxVE/pull/14008))
- #### 🔧 Refactor
- Refactor: Technitium DNS [@tremor021](https://github.com/tremor021) ([#14013](https://github.com/community-scripts/ProxmoxVE/pull/14013))
## 2026-04-24
### 🆕 New Scripts
- Apprise-API ([#13934](https://github.com/community-scripts/ProxmoxVE/pull/13934))
- fireshare ([#13995](https://github.com/community-scripts/ProxmoxVE/pull/13995))
- Transmute ([#13935](https://github.com/community-scripts/ProxmoxVE/pull/13935))
- Jitsi-Meet ([#13897](https://github.com/community-scripts/ProxmoxVE/pull/13897))
### 🚀 Updated Scripts
- Update wger.sh [@Soppster1029](https://github.com/Soppster1029) ([#13977](https://github.com/community-scripts/ProxmoxVE/pull/13977))
- #### 🔧 Refactor
- Refactor: Ghostfolio [@MickLesk](https://github.com/MickLesk) ([#13990](https://github.com/community-scripts/ProxmoxVE/pull/13990))
## 2026-04-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- mealie: start.sh missing after failed update [@MickLesk](https://github.com/MickLesk) ([#13958](https://github.com/community-scripts/ProxmoxVE/pull/13958))
- twingate-connector: perform real apt upgrade during update flow [@MickLesk](https://github.com/MickLesk) ([#13959](https://github.com/community-scripts/ProxmoxVE/pull/13959))
- #### ✨ New Features
- core: auto-size NODE_OPTIONS heap [@MickLesk](https://github.com/MickLesk) ([#13960](https://github.com/community-scripts/ProxmoxVE/pull/13960))
- #### 🔧 Refactor
- Update scripts to match standard [@tremor021](https://github.com/tremor021) ([#13956](https://github.com/community-scripts/ProxmoxVE/pull/13956))
### 💾 Core
- #### 🐞 Bug Fixes
- tools.func: upgrade Node.js minor/patch on same major version [@MickLesk](https://github.com/MickLesk) ([#13957](https://github.com/community-scripts/ProxmoxVE/pull/13957))
- core: hotfix - prefer silent mode on PHS env conflict [@MickLesk](https://github.com/MickLesk) ([#13951](https://github.com/community-scripts/ProxmoxVE/pull/13951))
- #### 🔧 Refactor
- core: improve system update information / lxc stack upgrade [@MickLesk](https://github.com/MickLesk) ([#13970](https://github.com/community-scripts/ProxmoxVE/pull/13970))
## 2026-04-22
### 🆕 New Scripts
- Dashy ([#13817](https://github.com/community-scripts/ProxmoxVE/pull/13817))
- Mini-QR ([#13902](https://github.com/community-scripts/ProxmoxVE/pull/13902))
- ownfoil ([#13904](https://github.com/community-scripts/ProxmoxVE/pull/13904))
- ERPNext ([#13921](https://github.com/community-scripts/ProxmoxVE/pull/13921))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- add --clear to uv venv in update_script() to prevent interactive prompt [@MickLesk](https://github.com/MickLesk) ([#13926](https://github.com/community-scripts/ProxmoxVE/pull/13926))
### 💾 Core
- #### ✨ New Features
- core: Add PHS_VERBOSE env var to skip verbose mode prompts [@gormanity](https://github.com/gormanity) ([#13797](https://github.com/community-scripts/ProxmoxVE/pull/13797))
## 2026-04-21
### 🆕 New Scripts
- gogs ([#13896](https://github.com/community-scripts/ProxmoxVE/pull/13896))
- anchor ([#13895](https://github.com/community-scripts/ProxmoxVE/pull/13895))
- minthcm ([#13903](https://github.com/community-scripts/ProxmoxVE/pull/13903))
- foldergram ([#13900](https://github.com/community-scripts/ProxmoxVE/pull/13900))
### 🚀 Updated Scripts
- OpenCloud: Pin version to 6.1.0 [@vhsdream](https://github.com/vhsdream) ([#13890](https://github.com/community-scripts/ProxmoxVE/pull/13890))
- #### 🐞 Bug Fixes
- Domain-Locker: Update dependencies [@tremor021](https://github.com/tremor021) ([#13901](https://github.com/community-scripts/ProxmoxVE/pull/13901))
- homelable: fix install failure by correcting password-reset chmod target [@Copilot](https://github.com/Copilot) ([#13894](https://github.com/community-scripts/ProxmoxVE/pull/13894))
- #### ✨ New Features
- FileFlows: Update dependencies [@tremor021](https://github.com/tremor021) ([#13917](https://github.com/community-scripts/ProxmoxVE/pull/13917))
## 2026-04-20
### 🆕 New Scripts
- WhoDB ([#13880](https://github.com/community-scripts/ProxmoxVE/pull/13880))
### 🚀 Updated Scripts
- pangolin: create migration tables before data transfer to prevent role loss [@MickLesk](https://github.com/MickLesk) ([#13874](https://github.com/community-scripts/ProxmoxVE/pull/13874))
- #### 🐞 Bug Fixes
- Pangolin: pre-apply schema migrations to prevent data loss [@MickLesk](https://github.com/MickLesk) ([#13861](https://github.com/community-scripts/ProxmoxVE/pull/13861))
- ActualBudget: change migration messages to warnings [@MickLesk](https://github.com/MickLesk) ([#13860](https://github.com/community-scripts/ProxmoxVE/pull/13860))
- slskd: migrate config keys for 0.25.0 breaking change [@MickLesk](https://github.com/MickLesk) ([#13862](https://github.com/community-scripts/ProxmoxVE/pull/13862))
- #### ✨ New Features
- Wanderer: add pocketbase CLI wrapper with env [@MickLesk](https://github.com/MickLesk) ([#13863](https://github.com/community-scripts/ProxmoxVE/pull/13863))
- feat(homelable): add password reset utility script [@davidsoncabista](https://github.com/davidsoncabista) ([#13798](https://github.com/community-scripts/ProxmoxVE/pull/13798))
- #### 🔧 Refactor
- Several Scripts: Bump NodeJS to align Node.js versions with upstream for 5 scripts [@MickLesk](https://github.com/MickLesk) ([#13875](https://github.com/community-scripts/ProxmoxVE/pull/13875))
- Refactor: PMG Post Install [@MickLesk](https://github.com/MickLesk) ([#13693](https://github.com/community-scripts/ProxmoxVE/pull/13693))
### 💾 Core
- #### 🐞 Bug Fixes
- core: detect Perl breakage after LXC stack upgrade and improve storage validation [@MickLesk](https://github.com/MickLesk) ([#13879](https://github.com/community-scripts/ProxmoxVE/pull/13879))
## 2026-04-19
### 🆕 New Scripts
- nametag ([#13849](https://github.com/community-scripts/ProxmoxVE/pull/13849))
## 2026-04-18
### 🆕 New Scripts
- Dagu ([#13830](https://github.com/community-scripts/ProxmoxVE/pull/13830))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- BabyBuddy: set DJANGO_SETTINGS_MODULE before migrate in update [@MickLesk](https://github.com/MickLesk) ([#13836](https://github.com/community-scripts/ProxmoxVE/pull/13836))
- litellm: add prisma generate and use venv binary directly [@MickLesk](https://github.com/MickLesk) ([#13835](https://github.com/community-scripts/ProxmoxVE/pull/13835))
- yamtrack: add missing nginx.conf sed edits to update script [@MickLesk](https://github.com/MickLesk) ([#13834](https://github.com/community-scripts/ProxmoxVE/pull/13834))
### 🧰 Tools
- #### 🐞 Bug Fixes
- SparkyFitness Garmin Microservice: fix update function [@tomfrenzel](https://github.com/tomfrenzel) ([#13824](https://github.com/community-scripts/ProxmoxVE/pull/13824))
- #### 🔧 Refactor
- Clean-Orphan-LVM: check all cluster nodes for VM/CT configs [@MickLesk](https://github.com/MickLesk) ([#13837](https://github.com/community-scripts/ProxmoxVE/pull/13837))
## 2026-04-17
### 🆕 New Scripts
- step-ca ([#13775](https://github.com/community-scripts/ProxmoxVE/pull/13775))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- core: pin IGC version to compute-runtime compatible tag (Intel GPU) [@MickLesk](https://github.com/MickLesk) ([#13814](https://github.com/community-scripts/ProxmoxVE/pull/13814))
- Fix for bambuddy community script update [@abbasegbeyemi](https://github.com/abbasegbeyemi) ([#13816](https://github.com/community-scripts/ProxmoxVE/pull/13816))
- Umami: Fix update procedure [@tremor021](https://github.com/tremor021) ([#13807](https://github.com/community-scripts/ProxmoxVE/pull/13807))
### 💾 Core
- #### 🐞 Bug Fixes
- core: sanitize mount_fs input — strip spaces and trailing commas [@MickLesk](https://github.com/MickLesk) ([#13806](https://github.com/community-scripts/ProxmoxVE/pull/13806))
- #### 🔧 Refactor
- core: fix some pct create issues (telemetry) + cleanup [@MickLesk](https://github.com/MickLesk) ([#13810](https://github.com/community-scripts/ProxmoxVE/pull/13810))

View File

@@ -9,7 +9,7 @@ APP="AdventureLog"
var_tags="${var_tags:-traveling}" var_tags="${var_tags:-traveling}"
var_disk="${var_disk:-7}" var_disk="${var_disk:-7}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}" var_ram="${var_ram:-4096}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}" var_arm64="${var_arm64:-no}"

View File

@@ -43,6 +43,7 @@ function update_script() {
cp /opt/birdnet/birdnet-go /usr/local/bin/birdnet-go cp /opt/birdnet/birdnet-go /usr/local/bin/birdnet-go
chmod +x /usr/local/bin/birdnet-go chmod +x /usr/local/bin/birdnet-go
cp -r /opt/birdnet/libtensorflowlite_c.so /usr/local/lib/ || true cp -r /opt/birdnet/libtensorflowlite_c.so /usr/local/lib/ || true
cp -r /opt/birdnet/libonnxruntime.so /usr/local/lib/ || true
ldconfig ldconfig
msg_ok "Deployed Binary" msg_ok "Deployed Binary"

View File

@@ -42,6 +42,13 @@ function update_script() {
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball"
local required_ruby current_ruby
required_ruby=$(grep -m1 '^ruby ' /opt/docuseal/Gemfile | grep -oP '[0-9]+\.[0-9]+\.[0-9]+')
current_ruby=$(PATH="/root/.rbenv/bin:/root/.rbenv/shims:${PATH}" rbenv global 2>/dev/null || true)
if [[ -n "$required_ruby" && "$required_ruby" != "$current_ruby" ]]; then
RUBY_VERSION="${required_ruby}" RUBY_INSTALL_RAILS="false" HOME=/root setup_ruby
fi
msg_info "Restoring Data" msg_info "Restoring Data"
mv /opt/docuseal.env.bak /opt/docuseal/.env mv /opt/docuseal.env.bak /opt/docuseal/.env
[[ -d /opt/docuseal_data.bak ]] && mv /opt/docuseal_data.bak /opt/docuseal/data [[ -d /opt/docuseal_data.bak ]] && mv /opt/docuseal_data.bak /opt/docuseal/data

69
ct/dynacat.sh Normal file
View File

@@ -0,0 +1,69 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Panonim/dynacat
APP="Dynacat"
var_tags="${var_tags:-dashboard;homepage;monitoring}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /opt/dynacat/dynacat ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "dynacat" "Panonim/dynacat"; then
msg_info "Stopping Service"
systemctl stop dynacat
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/dynacat/config /opt/dynacat_config_backup
cp -r /opt/dynacat/assets /opt/dynacat_assets_backup
cp -r /opt/dynacat/data /opt/dynacat_data_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dynacat" "Panonim/dynacat" "prebuild" "latest" "/opt/dynacat" "dynacat-linux-amd64.tar.gz"
msg_info "Restoring Data"
cp -r /opt/dynacat_config_backup/. /opt/dynacat/config
cp -r /opt/dynacat_assets_backup/. /opt/dynacat/assets
cp -r /opt/dynacat_data_backup/. /opt/dynacat/data
rm -rf /opt/dynacat_config_backup /opt/dynacat_assets_backup /opt/dynacat_data_backup
chmod +x /opt/dynacat/dynacat
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start dynacat
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@@ -34,7 +34,7 @@ function update_script() {
update_available=$(curl -fsSL -X 'GET' "http://localhost:19200/api/status/update-available" -H 'accept: application/json' | jq .UpdateAvailable) update_available=$(curl -fsSL -X 'GET' "http://localhost:19200/api/status/update-available" -H 'accept: application/json' | jq .UpdateAvailable)
if [[ "${update_available}" == "true" ]]; then if [[ "${update_available}" == "true" ]]; then
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop fileflows* systemctl --all stop 'fileflows*'
msg_info "Stopped Service" msg_info "Stopped Service"
msg_info "Creating Backup" msg_info "Creating Backup"
@@ -46,7 +46,7 @@ function update_script() {
fetch_and_deploy_from_url "https://fileflows.com/downloads/zip" "/opt/fileflows" fetch_and_deploy_from_url "https://fileflows.com/downloads/zip" "/opt/fileflows"
msg_info "Starting Service" msg_info "Starting Service"
systemctl start fileflows* systemctl --all start 'fileflows*'
msg_ok "Started Service" msg_ok "Started Service"
msg_ok "Updated successfully!" msg_ok "Updated successfully!"
else else

View File

@@ -53,6 +53,12 @@ function update_script() {
export VIDEO_DIRECTORY=/opt/fireshare-videos export VIDEO_DIRECTORY=/opt/fireshare-videos
export PROCESSED_DIRECTORY=/opt/fireshare-processed export PROCESSED_DIRECTORY=/opt/fireshare-processed
$STD uv run flask db upgrade $STD uv run flask db upgrade
msg_info "Building Fireshare Client"
cd /opt/fireshare/app/client
$STD npm install
$STD npm run build
msg_ok "Built Fireshare Client"
msg_ok "Updated Fireshare" msg_ok "Updated Fireshare"
msg_info "Starting Service" msg_info "Starting Service"

View File

@@ -47,6 +47,7 @@ function update_script() {
$STD npm run build $STD npm run build
cd /opt/flatnotes cd /opt/flatnotes
rm -f uv.lock rm -f uv.lock
sed -i 's/^name = ""$/name = "flatnotes"/' pyproject.toml
$STD /usr/local/bin/uvx migrate-to-uv $STD /usr/local/bin/uvx migrate-to-uv
$STD /usr/local/bin/uv sync $STD /usr/local/bin/uv sync
msg_ok "Updated Flatnotes" msg_ok "Updated Flatnotes"

View File

@@ -34,8 +34,20 @@ function update_script() {
systemctl stop glance systemctl stop glance
msg_ok "Stopped Service" msg_ok "Stopped Service"
if [[ -f /opt/glance/glance.yml ]]; then
msg_info "Backing up glance.yml"
cp /opt/glance/glance.yml /tmp/glance.yml.bak
msg_ok "Backed up glance.yml"
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-amd64.tar.gz" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-amd64.tar.gz"
if [[ -f /tmp/glance.yml.bak ]]; then
msg_info "Restoring glance.yml"
mv /tmp/glance.yml.bak /opt/glance/glance.yml
msg_ok "Restored glance.yml"
fi
msg_info "Starting Service" msg_info "Starting Service"
systemctl start glance systemctl start glance
msg_ok "Started Service" msg_ok "Started Service"

6
ct/headers/dynacat Normal file
View File

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

6
ct/headers/hermesagent Normal file
View File

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

6
ct/headers/kan Normal file
View File

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

6
ct/headers/musicseerr Normal file
View File

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

73
ct/hermesagent.sh Normal file
View File

@@ -0,0 +1,73 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Stephen Chin (steveonjava)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://hermes-agent.nousresearch.com/
APP="Hermes Agent"
var_tags="${var_tags:-ai;automation;agent}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -x /home/hermes/.local/bin/hermes ]]; then
msg_error "No Hermes Agent Installation Found!"
exit
fi
msg_warn "WARNING: This script will run an external installer from a third-party source (https://hermes-agent.nousresearch.com/)."
msg_warn "The following code is NOT maintained or audited by our repository."
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ hermes update (https://hermes-agent.nousresearch.com/)"
echo
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
msg_error "Aborted by user. No changes have been made."
exit 10
fi
msg_info "Stopping Services"
systemctl stop hermes-dashboard
msg_ok "Stopped Services"
msg_info "Updating Hermes Agent"
$STD setsid --wait bash -c '
set -a; source /etc/default/hermes; set +a
/home/hermes/.local/bin/hermes update --yes
'
chown -R hermes:hermes /home/hermes
msg_ok "Updated Hermes Agent"
msg_info "Starting Services"
systemctl start hermes-dashboard
msg_ok "Started Services"
msg_ok "Updated successfully!"
exit
}
start
build_container
description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}Hermes Agent setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Configure your model provider and gateway server inside the container:${CL}"
echo -e "${TAB}${BGN}hermes-setup${CL}"
echo -e "${INFO} When prompted to install the gateway service, choose 'user service'.${CL}"
echo -e "${INFO}${YW} Key for Hermes API Server stored in:${CL}"
echo -e "${TAB}${BGN}/home/hermes/.hermes/.env${CL}"

View File

@@ -36,7 +36,11 @@ function update_script() {
systemctl stop isponsorblocktv systemctl stop isponsorblocktv
msg_ok "Stopped Service" msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "isponsorblocktv" "dmunozv04/iSponsorBlockTV" "singlefile" "latest" "/opt/isponsorblocktv" "iSponsorBlockTV-x86_64-linux" ISBTV_BINARY="iSponsorBlockTV-x86_64-linux-v1"
if grep -q ' avx ' /proc/cpuinfo 2>/dev/null && grep -q ' avx2 ' /proc/cpuinfo 2>/dev/null && grep -q ' movbe ' /proc/cpuinfo 2>/dev/null; then
ISBTV_BINARY="iSponsorBlockTV-x86_64-linux"
fi
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "isponsorblocktv" "dmunozv04/iSponsorBlockTV" "singlefile" "latest" "/opt/isponsorblocktv" "${ISBTV_BINARY}"
msg_info "Starting Service" msg_info "Starting Service"
systemctl start isponsorblocktv systemctl start isponsorblocktv

86
ct/kan.sh Normal file
View File

@@ -0,0 +1,86 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/kanbn/kan
APP="Kan"
var_tags="${var_tags:-project-management;kanban}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-12}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/kan ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_tag "kan" "kanbn/kan"; then
msg_info "Stopping Service"
systemctl stop kan
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp /opt/kan/.env /opt/kan.env.bak
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_tag "kan" "kanbn/kan" "latest"
msg_info "Restoring Configuration"
cp /opt/kan.env.bak /opt/kan/.env
rm -f /opt/kan.env.bak
msg_ok "Restored Configuration"
msg_info "Building Application"
cd /opt/kan
set -a && source /opt/kan/.env && set +a
export NEXT_PUBLIC_USE_STANDALONE_OUTPUT=true
$STD pnpm install --ignore-scripts --prod=false
export CI=true
find /opt/kan/packages /opt/kan/apps -name 'tsconfig.json' -exec sed -i 's|"@kan/tsconfig/|"../../tooling/typescript/|g' {} +
$STD pnpm build --filter=@kan/web
unset NEXT_PUBLIC_USE_STANDALONE_OUTPUT CI
msg_ok "Built Application"
msg_info "Setting up Standalone"
mkdir -p /opt/kan/apps/web/.next/standalone/apps/web/.next/static
cp -r /opt/kan/apps/web/.next/static/* /opt/kan/apps/web/.next/standalone/apps/web/.next/static/
cp -r /opt/kan/apps/web/public /opt/kan/apps/web/.next/standalone/apps/web/public
msg_ok "Set up Standalone"
msg_info "Running Database Migrations"
cd /opt/kan/packages/db
$STD pnpm exec drizzle-kit migrate
msg_ok "Ran Database Migrations"
msg_info "Starting Service"
systemctl start kan
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -9,7 +9,7 @@ APP="karakeep"
var_tags="${var_tags:-bookmark}" var_tags="${var_tags:-bookmark}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-10}" var_disk="${var_disk:-15}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-13}" var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}" var_arm64="${var_arm64:-no}"
@@ -46,6 +46,14 @@ function update_script() {
fi fi
msg_ok "Update prepared" msg_ok "Update prepared"
if [ ! -f ~/.config/pip/pip.conf ]; then
mkdir -p ~/.config/pip
cat <<EOF >~/.config/pip/pip.conf
[global]
break-system-packages = true
EOF
fi
if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
systemctl daemon-reload systemctl daemon-reload

View File

@@ -32,6 +32,7 @@ function update_script() {
if check_for_gh_release "kometa" "Kometa-Team/Kometa"; then if check_for_gh_release "kometa" "Kometa-Team/Kometa"; then
msg_info "Stopping Service" msg_info "Stopping Service"
systemctl stop kometa systemctl stop kometa
[[ -d "/opt/kometa-quickstart" ]] && systemctl stop kometa-quickstart
msg_ok "Stopped Service" msg_ok "Stopped Service"
msg_info "Backing up data" msg_info "Backing up data"
@@ -42,7 +43,7 @@ function update_script() {
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa" "tarball" fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa" "tarball"
msg_info "Updating Kometa" msg_info "Updating Kometa"
cd /opt/kometa cd /opt/kometa
$STD uv pip install -r requirements.txt --system $STD uv pip install -r requirements.txt --system
mkdir -p config/assets mkdir -p config/assets
cp /opt/config.yml config/config.yml cp /opt/config.yml config/config.yml
@@ -50,9 +51,28 @@ function update_script() {
msg_info "Starting Service" msg_info "Starting Service"
systemctl start kometa systemctl start kometa
[[ -d "/opt/kometa-quickstart" ]] && systemctl start kometa-quickstart
msg_ok "Started Service" msg_ok "Started Service"
msg_ok "Updated successfully!" msg_ok "Updated successfully!"
fi fi
if [[ -d "/opt/kometa-quickstart" ]] && check_for_gh_release "kometa-quickstart" "Kometa-Team/Quickstart"; then
msg_info "Stopping Quickstart Service"
systemctl stop kometa-quickstart
msg_ok "Stopped Quickstart Service"
fetch_and_deploy_gh_release "kometa-quickstart" "Kometa-Team/Quickstart" "tarball"
msg_info "Updating Kometa Quickstart"
cd /opt/kometa-quickstart
$STD uv pip install -r requirements.txt -p /opt/kometa-quickstart/.venv/bin/python
msg_ok "Updated Kometa Quickstart"
msg_info "Starting Quickstart Service"
systemctl start kometa-quickstart
msg_ok "Started Quickstart Service"
msg_ok "Updated Quickstart successfully!"
fi
exit exit
} }

View File

@@ -54,6 +54,13 @@ function update_script() {
unset NODE_OPTIONS unset NODE_OPTIONS
msg_ok "Built Application" msg_ok "Built Application"
msg_info "Setting Up Standalone"
cp -r /opt/lobehub/.next/static /opt/lobehub/.next/standalone/.next/static
cp -r /opt/lobehub/public /opt/lobehub/.next/standalone/public
cp -r /opt/lobehub/scripts/migrateServerDB/* /opt/lobehub/.next/standalone/
cp -r /opt/lobehub/packages/database/migrations /opt/lobehub/.next/standalone/migrations
msg_ok "Set Up Standalone"
msg_info "Running Database Migrations" msg_info "Running Database Migrations"
cd /opt/lobehub cd /opt/lobehub
set -a && source /opt/lobehub/.env && set +a set -a && source /opt/lobehub/.env && set +a

View File

@@ -40,8 +40,6 @@ function update_script() {
CURRENT_VERSION=$(grep -oP 'APP_VERSION=\K[^ ]+' /opt/manyfold/.env || echo "unknown") CURRENT_VERSION=$(grep -oP 'APP_VERSION=\K[^ ]+' /opt/manyfold/.env || echo "unknown")
cp -r /opt/manyfold/app/storage /opt/manyfold_storage_backup 2>/dev/null || true cp -r /opt/manyfold/app/storage /opt/manyfold_storage_backup 2>/dev/null || true
cp -r /opt/manyfold/app/tmp /opt/manyfold_tmp_backup 2>/dev/null || true cp -r /opt/manyfold/app/tmp /opt/manyfold_tmp_backup 2>/dev/null || true
cp /opt/manyfold/app/config/credentials.yml.enc /opt/manyfold_credentials.yml.enc 2>/dev/null || true
cp /opt/manyfold/app/config/master.key /opt/manyfold_master.key 2>/dev/null || true
$STD tar -czf "/opt/manyfold_${CURRENT_VERSION}_backup.tar.gz" -C /opt/manyfold app $STD tar -czf "/opt/manyfold_${CURRENT_VERSION}_backup.tar.gz" -C /opt/manyfold app
msg_ok "Backed up Data" msg_ok "Backed up Data"
@@ -57,14 +55,12 @@ function update_script() {
RUBY_VERSION=${RUBY_INSTALL_VERSION} RUBY_INSTALL_RAILS="true" HOME=/home/manyfold setup_ruby RUBY_VERSION=${RUBY_INSTALL_VERSION} RUBY_INSTALL_RAILS="true" HOME=/home/manyfold setup_ruby
msg_info "Restoring Data" msg_info "Restoring Data"
rm -rf /opt/manyfold/app/{storage,tmp,config/credentials.yml.enc,config/master.key} rm -rf /opt/manyfold/app/{storage,tmp}
cp -r /opt/manyfold_storage_backup /opt/manyfold/app/storage 2>/dev/null || true cp -r /opt/manyfold_storage_backup /opt/manyfold/app/storage 2>/dev/null || true
cp -r /opt/manyfold_tmp_backup /opt/manyfold/app/tmp 2>/dev/null || true cp -r /opt/manyfold_tmp_backup /opt/manyfold/app/tmp 2>/dev/null || true
cp /opt/manyfold_credentials.yml.enc /opt/manyfold/app/config/credentials.yml.enc 2>/dev/null || true
cp /opt/manyfold_master.key /opt/manyfold/app/config/master.key 2>/dev/null || true
chown -R manyfold:manyfold {/home/manyfold,/opt/manyfold} chown -R manyfold:manyfold {/home/manyfold,/opt/manyfold}
chown -R manyfold:manyfold /opt/manyfold/app/storage /opt/manyfold/app/tmp /opt/manyfold/app/config chown -R manyfold:manyfold /opt/manyfold/app/storage /opt/manyfold/app/tmp /opt/manyfold/app/config
rm -rf /opt/manyfold_storage_backup /opt/manyfold_tmp_backup /opt/manyfold_credentials.yml.enc /opt/manyfold_master.key rm -rf /opt/manyfold_storage_backup /opt/manyfold_tmp_backup
msg_ok "Restored Data" msg_ok "Restored Data"
msg_info "Installing Manyfold" msg_info "Installing Manyfold"
@@ -80,6 +76,8 @@ function update_script() {
bundle install bundle install
corepack prepare '"$YARN_VERSION"' --activate corepack prepare '"$YARN_VERSION"' --activate
corepack use '"$YARN_VERSION"' corepack use '"$YARN_VERSION"'
rm -f config/credentials.yml.enc config/master.key
EDITOR=/bin/true bin/rails credentials:edit
bin/rails db:migrate bin/rails db:migrate
bin/rails assets:precompile bin/rails assets:precompile
' '

View File

@@ -21,18 +21,28 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -f /etc/mosquitto/conf.d/default.conf ]]; then
msg_error "No ${APP} Installation Found!" if [[ ! -f /etc/mosquitto/conf.d/default.conf ]]; then
exit msg_error "No ${APP} Installation Found!"
fi
msg_info "Updating ${APP} LXC"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated successfully!"
exit exit
fi
if [[ ! -f /etc/apt/sources.list.d/mqtt.sources ]]; then
setup_deb822_repo \
"mqtt" \
"https://repo.mosquitto.org/debian/mosquitto-repo.gpg" \
"https://repo.mosquitto.org/debian" \
"trixie"
fi
msg_info "Updating MQTT"
$STD apt update
$STD apt upgrade -y
msg_ok "Updated successfully!"
exit
} }
start start

85
ct/musicseerr.sh Normal file
View File

@@ -0,0 +1,85 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://musicseerr.com/ | Github: https://github.com/HabiRabbu/Musicseerr
APP="MusicSeerr"
var_tags="${var_tags:-arr;media}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_arm64="${var_arm64:-no}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/musicseerr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "musicseerr" "HabiRabbu/Musicseerr"; then
msg_info "Stopping Service"
systemctl stop musicseerr
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -a /opt/musicseerr/backend/config /opt/musicseerr_config_backup
cp -a /opt/musicseerr/backend/cache /opt/musicseerr_cache_backup
msg_ok "Backed up Data"
PYTHON_VERSION="3.13" setup_uv
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "musicseerr" "HabiRabbu/Musicseerr" "tarball"
NODE_VERSION="22" NODE_MODULE="pnpm@10.33.0" setup_nodejs
msg_info "Building Frontend"
cd /opt/musicseerr/frontend
export NODE_OPTIONS="--max-old-space-size=3072"
rm -rf node_modules build
$STD pnpm install --frozen-lockfile
$STD pnpm run build
msg_ok "Built Frontend"
msg_info "Updating Application"
mkdir -p /opt/musicseerr/backend/config /opt/musicseerr/backend/cache
$STD uv venv --clear /opt/musicseerr/venv
$STD uv pip install -r /opt/musicseerr/backend/requirements.txt --python=/opt/musicseerr/venv/bin/python
rm -rf /opt/musicseerr/backend/static
cp -r /opt/musicseerr/frontend/build /opt/musicseerr/backend/static
msg_ok "Updated Application"
msg_info "Restoring Data"
rm -rf /opt/musicseerr/backend/config /opt/musicseerr/backend/cache
cp -a /opt/musicseerr_config_backup/. /opt/musicseerr/backend/config/
cp -a /opt/musicseerr_cache_backup/. /opt/musicseerr/backend/cache/
rm -rf /opt/musicseerr_config_backup /opt/musicseerr_cache_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start musicseerr
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8688${CL}"

View File

@@ -216,6 +216,12 @@ EOF
msg_ok "Initialized Backend" msg_ok "Initialized Backend"
msg_info "Starting Services" msg_info "Starting Services"
CERTBOT_VER=$(/opt/certbot/bin/certbot --version 2>&1 | awk '{print $NF}')
if grep -q "Environment=CERTBOT_VERSION" /lib/systemd/system/npm.service; then
sed -i "s|Environment=CERTBOT_VERSION=.*|Environment=CERTBOT_VERSION=${CERTBOT_VER}|" /lib/systemd/system/npm.service
else
sed -i "/Environment=NODE_ENV=production/a Environment=CERTBOT_VERSION=${CERTBOT_VER}" /lib/systemd/system/npm.service
fi
sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf sed -i 's/user npm/user root/g; s/^pid/#pid/g' /usr/local/openresty/nginx/conf/nginx.conf
sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager sed -r -i 's/^([[:space:]]*)su npm npm/\1#su npm npm/g;' /etc/logrotate.d/nginx-proxy-manager
systemctl daemon-reload systemctl daemon-reload

View File

@@ -43,6 +43,7 @@ function update_script() {
msg_info "Updating Open Archiver" msg_info "Updating Open Archiver"
cd /opt/openarchiver cd /opt/openarchiver
$STD pnpm install --shamefully-hoist --frozen-lockfile --prod=false $STD pnpm install --shamefully-hoist --frozen-lockfile --prod=false
$STD pnpm approve-builds --yes
$STD pnpm run build:oss $STD pnpm run build:oss
$STD pnpm db:migrate $STD pnpm db:migrate
msg_ok "Updated Open Archiver" msg_ok "Updated Open Archiver"

View File

@@ -70,6 +70,27 @@ function update_script() {
$STD ninja install $STD ninja install
msg_ok "Rebuilt OpenThread Border Router" msg_ok "Rebuilt OpenThread Border Router"
if ! grep -q "net.ipv6.conf.all.accept_ra=2" /etc/sysctl.d/99-otbr.conf; then
msg_info "Configuring Network"
cat <<EOF >/etc/sysctl.d/99-otbr.conf
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.all.accept_ra_rtr_pref=1
net.ipv6.conf.all.accept_ra_rt_info_max_plen=64
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.default.accept_ra_rtr_pref=1
net.ipv6.conf.default.accept_ra_rt_info_max_plen=64
net.ipv6.conf.eth0.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.eth0.accept_ra_rtr_pref=1
net.ipv6.conf.eth0.accept_ra_rt_info_max_plen=64
net.ipv4.ip_forward=1
EOF
$STD sysctl -p /etc/sysctl.d/99-otbr.conf
msg_ok "Configured Network"
fi
msg_info "Starting Services" msg_info "Starting Services"
systemctl start otbr-agent systemctl start otbr-agent
systemctl start otbr-web systemctl start otbr-web

View File

@@ -37,8 +37,9 @@ function update_script() {
exit exit
fi fi
ARCH=$(uname -m)
if check_for_gh_release "deno" "denoland/deno" "v2.7.5" "Deno is pinned to 2.7.5 because the known WouldBlock: Resource temporarily unavailable (os error 11) Issue"; then if check_for_gh_release "deno" "denoland/deno" "v2.7.5" "Deno is pinned to 2.7.5 because the known WouldBlock: Resource temporarily unavailable (os error 11) Issue"; then
ARCH=$(uname -m)
fetch_and_deploy_gh_release "deno" "denoland/deno" "v2.7.5" "latest" "/usr/local/bin" "deno-${ARCH}-unknown-linux-gnu.zip" fetch_and_deploy_gh_release "deno" "denoland/deno" "v2.7.5" "latest" "/usr/local/bin" "deno-${ARCH}-unknown-linux-gnu.zip"
fi fi
@@ -90,6 +91,7 @@ EOF
msg_ok "Built Profilarr" msg_ok "Built Profilarr"
msg_info "Updating Profilarr" msg_info "Updating Profilarr"
mkdir -p /opt/profilarr/app
cp dist/build/profilarr /opt/profilarr/app/profilarr cp dist/build/profilarr /opt/profilarr/app/profilarr
cp dist/build/server.js /opt/profilarr/app/server.js cp dist/build/server.js /opt/profilarr/app/server.js
cp -r dist/build/static /opt/profilarr/app/static cp -r dist/build/static /opt/profilarr/app/static

View File

@@ -81,7 +81,7 @@ EOF
msg_ok "Updated Sure" msg_ok "Updated Sure"
msg_info "Starting Services" msg_info "Starting Services"
$STD systemctl start sure sure-worker systemctl start sure sure-worker
msg_ok "Started Services" msg_ok "Started Services"
msg_ok "Updated successfully!" msg_ok "Updated successfully!"
fi fi

View File

@@ -44,8 +44,7 @@ function update_script() {
msg_info "Installing Python Dependencies" msg_info "Installing Python Dependencies"
cd /opt/yamtrack cd /opt/yamtrack
$STD uv venv --clear .venv $STD uv sync --locked
$STD uv pip install --no-cache-dir -r requirements.txt
msg_ok "Installed Python Dependencies" msg_ok "Installed Python Dependencies"
msg_info "Restoring Data" msg_info "Restoring Data"

View File

@@ -52,6 +52,9 @@ After=network-online.target
Type=simple Type=simple
WorkingDirectory=/opt/apprise WorkingDirectory=/opt/apprise
ExecStart=/opt/apprise/webapp/supervisord-startup ExecStart=/opt/apprise/webapp/supervisord-startup
Environment=APPRISE_CONFIG_DIR=/config
Environment=APPRISE_ATTACH_DIR=/attach
Environment=APPRISE_PLUGIN_PATHS=/plugin
Restart=always Restart=always
RestartSec=30 RestartSec=30

View File

@@ -27,6 +27,7 @@ msg_info "Setting up BirdNET-Go"
cp /opt/birdnet/birdnet-go /usr/local/bin/birdnet-go cp /opt/birdnet/birdnet-go /usr/local/bin/birdnet-go
chmod +x /usr/local/bin/birdnet-go chmod +x /usr/local/bin/birdnet-go
cp -r /opt/birdnet/libtensorflowlite_c.so /usr/local/lib/ || true cp -r /opt/birdnet/libtensorflowlite_c.so /usr/local/lib/ || true
cp -r /opt/birdnet/libonnxruntime.so /usr/local/lib/ || true
ldconfig ldconfig
mkdir -p /opt/birdnet/data/clips mkdir -p /opt/birdnet/data/clips
msg_ok "Set up BirdNET-Go" msg_ok "Set up BirdNET-Go"

View File

@@ -121,6 +121,7 @@ server {
# All other requests proxy to uWSGI # All other requests proxy to uWSGI
location / { location / {
include proxy_params; include proxy_params;
proxy_set_header X-Forwarded-Port \$server_port;
proxy_pass http://127.0.0.1:5656; proxy_pass http://127.0.0.1:5656;
} }
} }

View File

@@ -31,7 +31,6 @@ $STD apt install -y \
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
RUBY_VERSION="4.0.1" RUBY_INSTALL_RAILS="false" HOME=/root setup_ruby
PG_VERSION="17" setup_postgresql PG_VERSION="17" setup_postgresql
PG_DB_NAME="docuseal" PG_DB_USER="docuseal" setup_postgresql_db PG_DB_NAME="docuseal" PG_DB_USER="docuseal" setup_postgresql_db
@@ -56,6 +55,9 @@ msg_ok "Downloaded Fonts and PDFium"
fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball" fetch_and_deploy_gh_release "docuseal" "docusealco/docuseal" "tarball"
RUBY_VERSION=$(grep -m1 '^ruby ' /opt/docuseal/Gemfile | grep -oP '[0-9]+\.[0-9]+\.[0-9]+')
RUBY_VERSION="${RUBY_VERSION}" RUBY_INSTALL_RAILS="false" HOME=/root setup_ruby
msg_info "Downloading Field Detection Model" msg_info "Downloading Field Detection Model"
mkdir -p /opt/docuseal/tmp mkdir -p /opt/docuseal/tmp
curl -fsSL -o /opt/docuseal/tmp/model.onnx \ curl -fsSL -o /opt/docuseal/tmp/model.onnx \

View File

@@ -0,0 +1,71 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Panonim/dynacat
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "dynacat" "Panonim/dynacat" "prebuild" "latest" "/opt/dynacat" "dynacat-linux-amd64.tar.gz"
msg_info "Setting up Dynacat"
mkdir -p /opt/dynacat/config /opt/dynacat/assets /opt/dynacat/data
chmod +x /opt/dynacat/dynacat
cat <<EOF >/opt/dynacat/config/dynacat.yml
server:
host: 0.0.0.0
port: 8080
assets-path: /opt/dynacat/assets
db-path: /opt/dynacat/data/dynacat.db
pages:
- name: Home
columns:
- size: small
widgets:
- type: calendar
- type: clock
- size: full
widgets:
- type: search
search-engine: duckduckgo
- type: monitor
title: Services
sites:
- title: Dynacat
url: http://127.0.0.1:8080
update-interval: 5m
EOF
msg_ok "Set up Dynacat"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/dynacat.service
[Unit]
Description=Dynacat Dashboard
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/dynacat
ExecStart=/opt/dynacat/dynacat -config /opt/dynacat/config/dynacat.yml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now dynacat
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -37,7 +37,13 @@ msg_ok "Configured Firefly III"
msg_info "Configuring Data Importer" msg_info "Configuring Data Importer"
cp /opt/firefly/dataimporter/.env.example /opt/firefly/dataimporter/.env cp /opt/firefly/dataimporter/.env.example /opt/firefly/dataimporter/.env
sed -i "s#FIREFLY_III_URL=#FIREFLY_III_URL=http://${LOCAL_IP}#g" /opt/firefly/dataimporter/.env sed -i \
-e "s#FIREFLY_III_URL=#FIREFLY_III_URL=http://${LOCAL_IP}#g" \
-e "s|^APP_URL=.*|APP_URL=http://${LOCAL_IP}/dataimporter|" \
-e "s|^ASSET_URL=.*|ASSET_URL=/dataimporter|" \
/opt/firefly/dataimporter/.env
cd /opt/firefly/dataimporter
$STD php artisan config:clear
chown -R www-data:www-data /opt/firefly chown -R www-data:www-data /opt/firefly
msg_ok "Configured Data Importer" msg_ok "Configured Data Importer"

View File

@@ -19,6 +19,7 @@ NODE_VERSION="22" setup_nodejs
msg_info "Setting up Flatnotes" msg_info "Setting up Flatnotes"
cd /opt/flatnotes cd /opt/flatnotes
sed -i 's/^name = ""$/name = "flatnotes"/' pyproject.toml
$STD /usr/local/bin/uvx migrate-to-uv $STD /usr/local/bin/uvx migrate-to-uv
$STD /usr/local/bin/uv sync $STD /usr/local/bin/uv sync
mkdir -p /opt/flatnotes/data mkdir -p /opt/flatnotes/data

View File

@@ -0,0 +1,124 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: Stephen Chin (steveonjava)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://hermes-agent.nousresearch.com/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y git
msg_ok "Installed Dependencies"
NODE_VERSION="22" setup_nodejs
msg_info "Creating Hermes User"
useradd -m -s /bin/bash hermes
loginctl enable-linger hermes
echo 'export XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"' >>/home/hermes/.profile
msg_ok "Created Hermes User"
msg_info "Configuring Service Environment"
cat <<EOF >/etc/default/hermes
HOME=/home/hermes
PATH=/home/hermes/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NODE_OPTIONS=${NODE_OPTIONS}
EOF
msg_ok "Configured Service Environment"
msg_warn "WARNING: This script will run an external installer from a third-party source (https://hermes-agent.nousresearch.com/)."
msg_warn "The following code is NOT maintained or audited by our repository."
msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:"
msg_custom "${TAB3}${GATEWAY}${BGN}${CL}" "\e[1;34m" "→ https://hermes-agent.nousresearch.com/install.sh"
echo
read -r -p "${TAB3}Do you want to continue? [y/N]: " CONFIRM
if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then
msg_error "Aborted by user. No changes have been made."
exit 10
fi
msg_info "Installing Hermes Agent"
$STD setsid --wait bash -c '
set -a; source /etc/default/hermes; set +a
export npm_config_yes=true
bash <(curl -fsSL https://hermes-agent.nousresearch.com/install.sh) --skip-setup --hermes-home /home/hermes/.hermes --dir /home/hermes/.hermes/hermes-agent
'
chown -R hermes:hermes /home/hermes
chmod 750 /home/hermes
chmod 700 /home/hermes/.hermes
git config --system --add safe.directory /home/hermes/.hermes/hermes-agent 2>/dev/null || true
msg_ok "Installed Hermes Agent"
msg_info "Configuring API Server"
API_SERVER_KEY=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)
mkdir -p /home/hermes/.hermes
cat <<EOF >/home/hermes/.hermes/.env
API_SERVER_ENABLED=true
API_SERVER_HOST=0.0.0.0
API_SERVER_PORT=8642
API_SERVER_KEY=${API_SERVER_KEY}
EOF
chmod 600 /home/hermes/.hermes/.env
msg_ok "Configured API Server"
msg_info "Creating Dashboard Service"
cat <<EOF >/etc/systemd/system/hermes-dashboard.service
[Unit]
Description=Hermes Agent Web Dashboard
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=hermes
Group=hermes
UMask=0077
WorkingDirectory=/home/hermes
ExecStart=/home/hermes/.local/bin/hermes dashboard --host 127.0.0.1 --port 9119 --no-open
EnvironmentFile=/etc/default/hermes
Restart=on-failure
RestartSec=5
ProtectProc=invisible
ProcSubset=pid
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now hermes-dashboard
msg_ok "Created Dashboard Service"
msg_info "Creating Setup Helper"
cat <<'SETUP' >/usr/bin/hermes-setup
#!/usr/bin/env bash
set -a; source /etc/default/hermes; set +a
/home/hermes/.local/bin/hermes setup
chown -R hermes:hermes /home/hermes
chmod 750 /home/hermes
chmod 700 /home/hermes/.hermes
if [[ -f /home/hermes/.config/systemd/user/hermes-gateway.service ]]; then
su - hermes -c 'systemctl --user enable --now hermes-gateway'
fi
echo "Hermes setup complete. File permissions restored."
SETUP
chmod +x /usr/bin/hermes-setup
msg_ok "Created Setup Helper"
msg_info "Configuring Login Hints"
cat <<'HINT' >/etc/profile.d/hermes-hint.sh
if [[ "$(id -u)" -eq 0 ]]; then
echo " Run 'hermes-setup' to configure your model provider and gateway server."
echo " Use 'su - hermes' (with the dash) to switch to the hermes user."
fi
HINT
msg_ok "Configured Login Hints"
motd_ssh
customize
cleanup_lxc

View File

@@ -13,12 +13,12 @@ setting_up_container
network_check network_check
update_os update_os
if ! grep -q ' avx ' /proc/cpuinfo 2>/dev/null; then ISBTV_BINARY="iSponsorBlockTV-x86_64-linux-v1"
msg_error "CPU does not support AVX instructions (required by iSponsorBlockTV/PyApp)" if grep -q ' avx ' /proc/cpuinfo 2>/dev/null && grep -q ' avx2 ' /proc/cpuinfo 2>/dev/null && grep -q ' movbe ' /proc/cpuinfo 2>/dev/null; then
exit 106 ISBTV_BINARY="iSponsorBlockTV-x86_64-linux"
fi fi
fetch_and_deploy_gh_release "isponsorblocktv" "dmunozv04/iSponsorBlockTV" "singlefile" "latest" "/opt/isponsorblocktv" "iSponsorBlockTV-x86_64-linux" fetch_and_deploy_gh_release "isponsorblocktv" "dmunozv04/iSponsorBlockTV" "singlefile" "latest" "/opt/isponsorblocktv" "${ISBTV_BINARY}"
msg_info "Setting up iSponsorBlockTV" msg_info "Setting up iSponsorBlockTV"
install -d /var/lib/isponsorblocktv install -d /var/lib/isponsorblocktv

View File

@@ -29,7 +29,7 @@ Type=simple
WorkingDirectory=/opt/Jackett WorkingDirectory=/opt/Jackett
ExecStart=/bin/sh /opt/Jackett/jackett_launcher.sh ExecStart=/bin/sh /opt/Jackett/jackett_launcher.sh
TimeoutStopSec=30 TimeoutStopSec=30
EnvironmentFile="/opt/.env" EnvironmentFile=/opt/.env
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

90
install/kan-install.sh Normal file
View File

@@ -0,0 +1,90 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/kanbn/kan
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
build-essential \
git
msg_ok "Installed Dependencies"
PG_VERSION="16" setup_postgresql
PG_DB_NAME="kan" PG_DB_USER="kan" setup_postgresql_db
NODE_VERSION="20" NODE_MODULE="pnpm" setup_nodejs
fetch_and_deploy_gh_tag "kan" "kanbn/kan" "latest"
msg_info "Configuring Application"
AUTH_SECRET=$(openssl rand -base64 32)
cat <<EOF >/opt/kan/.env
NEXT_PUBLIC_BASE_URL=http://${LOCAL_IP}:3000
BETTER_AUTH_SECRET=${AUTH_SECRET}
BETTER_AUTH_TRUSTED_ORIGINS=http://${LOCAL_IP}:3000
POSTGRES_URL=postgres://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}
NEXT_PUBLIC_ALLOW_CREDENTIALS=true
TRELLO_APP_API_KEY=
TRELLO_APP_API_SECRET=
HOSTNAME=0.0.0.0
PORT=3000
NODE_ENV=production
EOF
msg_ok "Configured Application"
msg_info "Building Application"
cd /opt/kan
set -a && source /opt/kan/.env && set +a
export NEXT_PUBLIC_USE_STANDALONE_OUTPUT=true NEXT_PUBLIC_BASE_URL BETTER_AUTH_TRUSTED_ORIGINS NEXT_PUBLIC_ALLOW_CREDENTIALS BETTER_AUTH_SECRET
$STD pnpm install --ignore-scripts --prod=false
export CI=true
find /opt/kan/packages /opt/kan/apps -name 'tsconfig.json' -exec sed -i 's|"@kan/tsconfig/|"../../tooling/typescript/|g' {} +
$STD pnpm build --filter=@kan/web
unset NEXT_PUBLIC_USE_STANDALONE_OUTPUT CI
msg_ok "Built Application"
msg_info "Setting up Standalone"
mkdir -p /opt/kan/apps/web/.next/standalone/apps/web/.next/static
cp -r /opt/kan/apps/web/.next/static/* /opt/kan/apps/web/.next/standalone/apps/web/.next/static/
cp -r /opt/kan/apps/web/public /opt/kan/apps/web/.next/standalone/apps/web/public
msg_ok "Set up Standalone"
msg_info "Running Database Migrations"
cd /opt/kan/packages/db
POSTGRES_URL="postgres://${PG_DB_USER}:${PG_DB_PASS}@localhost:5432/${PG_DB_NAME}" $STD pnpm exec drizzle-kit migrate
msg_ok "Ran Database Migrations"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/kan.service
[Unit]
Description=Kan Board
After=network.target postgresql.service
Requires=postgresql.service
[Service]
Type=simple
User=root
WorkingDirectory=/opt/kan/apps/web/.next/standalone
EnvironmentFile=/opt/kan/.env
ExecStart=/usr/bin/node apps/web/server.js
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now kan
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -36,6 +36,11 @@ NODE_VERSION="24" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
msg_info "Installing external JavaScript Extension for yt-dlp" msg_info "Installing external JavaScript Extension for yt-dlp"
$STD pip install -U yt-dlp-ejs $STD pip install -U yt-dlp-ejs
mkdir -p ~/.config/pip
cat <<EOF >~/.config/pip/pip.conf
[global]
break-system-packages = true
EOF
msg_ok "Installed external JavaScript Extension for yt-dlp" msg_ok "Installed external JavaScript Extension for yt-dlp"
msg_info "Installing karakeep" msg_info "Installing karakeep"

View File

@@ -56,20 +56,20 @@ msg_ok "Installed Python Dependencies"
msg_info "Downloading Essentia ML Models" msg_info "Downloading Essentia ML Models"
mkdir -p /opt/kima-hub/models mkdir -p /opt/kima-hub/models
cd /opt/kima-hub/models cd /opt/kima-hub/models
curl -fsSL -o msd-musicnn-1.pb "https://essentia.upf.edu/models/autotagging/msd/msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/autotagging/msd/msd-musicnn-1.pb" "msd-musicnn-1.pb"
curl -fsSL -o mood_happy-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/mood_happy/mood_happy-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/mood_happy/mood_happy-msd-musicnn-1.pb" "mood_happy-msd-musicnn-1.pb"
curl -fsSL -o mood_sad-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/mood_sad/mood_sad-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/mood_sad/mood_sad-msd-musicnn-1.pb" "mood_sad-msd-musicnn-1.pb"
curl -fsSL -o mood_relaxed-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/mood_relaxed/mood_relaxed-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/mood_relaxed/mood_relaxed-msd-musicnn-1.pb" "mood_relaxed-msd-musicnn-1.pb"
curl -fsSL -o mood_aggressive-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/mood_aggressive/mood_aggressive-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/mood_aggressive/mood_aggressive-msd-musicnn-1.pb" "mood_aggressive-msd-musicnn-1.pb"
curl -fsSL -o mood_party-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/mood_party/mood_party-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/mood_party/mood_party-msd-musicnn-1.pb" "mood_party-msd-musicnn-1.pb"
curl -fsSL -o mood_acoustic-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/mood_acoustic/mood_acoustic-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/mood_acoustic/mood_acoustic-msd-musicnn-1.pb" "mood_acoustic-msd-musicnn-1.pb"
curl -fsSL -o mood_electronic-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/mood_electronic/mood_electronic-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/mood_electronic/mood_electronic-msd-musicnn-1.pb" "mood_electronic-msd-musicnn-1.pb"
curl -fsSL -o danceability-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/danceability/danceability-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/danceability/danceability-msd-musicnn-1.pb" "danceability-msd-musicnn-1.pb"
curl -fsSL -o voice_instrumental-msd-musicnn-1.pb "https://essentia.upf.edu/models/classification-heads/voice_instrumental/voice_instrumental-msd-musicnn-1.pb" curl_with_retry "https://essentia.upf.edu/models/classification-heads/voice_instrumental/voice_instrumental-msd-musicnn-1.pb" "voice_instrumental-msd-musicnn-1.pb"
msg_ok "Downloaded Essentia ML Models" msg_ok "Downloaded Essentia ML Models"
msg_info "Downloading CLAP Model" msg_info "Downloading CLAP Model"
curl -fsSL -o /opt/kima-hub/models/music_audioset_epoch_15_esc_90.14.pt "https://huggingface.co/lukewys/laion_clap/resolve/main/music_audioset_epoch_15_esc_90.14.pt" CURL_TIMEOUT=600 curl_with_retry "https://huggingface.co/lukewys/laion_clap/resolve/main/music_audioset_epoch_15_esc_90.14.pt" "/opt/kima-hub/models/music_audioset_epoch_15_esc_90.14.pt"
msg_ok "Downloaded CLAP Model" msg_ok "Downloaded CLAP Model"
msg_info "Building Backend" msg_info "Building Backend"

View File

@@ -13,18 +13,26 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Mosquitto MQTT Broker" setup_deb822_repo \
source /etc/os-release "mqtt" \
$STD apt update "https://repo.mosquitto.org/debian/mosquitto-repo.gpg" \
$STD apt -y install mosquitto mosquitto-clients "https://repo.mosquitto.org/debian" \
"trixie"
msg_info "Installing Mosquitto MQTT Broker"
$STD apt install -y \
mosquitto \
mosquitto-clients
msg_ok "Installed Mosquitto MQTT Broker"
msg_info "Configuring Mosquitto MQTT Broker"
cat <<EOF >/etc/mosquitto/conf.d/default.conf cat <<EOF >/etc/mosquitto/conf.d/default.conf
allow_anonymous false allow_anonymous false
persistence true persistence true
password_file /etc/mosquitto/passwd password_file /etc/mosquitto/passwd
listener 1883 listener 1883
EOF EOF
msg_ok "Installed Mosquitto MQTT Broker" msg_ok "Configured Mosquitto MQTT Broker"
motd_ssh motd_ssh
customize customize

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://musicseerr.com/ | Github: https://github.com/HabiRabbu/Musicseerr
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "musicseerr" "HabiRabbu/Musicseerr" "tarball"
NODE_VERSION="22" NODE_MODULE="pnpm@10.33.0" setup_nodejs
msg_info "Building Frontend"
cd /opt/musicseerr/frontend
export NODE_OPTIONS="--max-old-space-size=3072"
$STD pnpm install --frozen-lockfile
$STD pnpm run build
msg_ok "Built Frontend"
msg_info "Setting up Application"
mkdir -p /opt/musicseerr/backend/config /opt/musicseerr/backend/cache
$STD uv venv /opt/musicseerr/venv
$STD uv pip install -r /opt/musicseerr/backend/requirements.txt --python=/opt/musicseerr/venv/bin/python
rm -rf /opt/musicseerr/backend/static
cp -r /opt/musicseerr/frontend/build /opt/musicseerr/backend/static
msg_ok "Set up Application"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/musicseerr.service
[Unit]
Description=MusicSeerr Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/musicseerr/backend
Environment=ROOT_APP_DIR=/opt/musicseerr/backend
Environment=PORT=8688
ExecStart=/opt/musicseerr/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8688 --loop uvloop --http httptools --workers 1
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now musicseerr
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -160,7 +160,8 @@ $STD yarn install --network-timeout 600000
msg_ok "Initialized Backend" msg_ok "Initialized Backend"
msg_info "Creating Service" msg_info "Creating Service"
cat <<'EOF' >/lib/systemd/system/npm.service CERTBOT_VER=$(/opt/certbot/bin/certbot --version 2>&1 | awk '{print $NF}')
cat <<EOF >/lib/systemd/system/npm.service
[Unit] [Unit]
Description=Nginx Proxy Manager Description=Nginx Proxy Manager
After=network.target After=network.target
@@ -169,6 +170,7 @@ Wants=openresty.service
[Service] [Service]
Type=simple Type=simple
Environment=NODE_ENV=production Environment=NODE_ENV=production
Environment=CERTBOT_VERSION=${CERTBOT_VER}
ExecStartPre=-mkdir -p /tmp/nginx/body /data/letsencrypt-acme-challenge ExecStartPre=-mkdir -p /tmp/nginx/body /data/letsencrypt-acme-challenge
ExecStart=/usr/bin/node index.js --abort_on_uncaught_exception --max_old_space_size=250 ExecStart=/usr/bin/node index.js --abort_on_uncaught_exception --max_old_space_size=250
WorkingDirectory=/app WorkingDirectory=/app

View File

@@ -46,6 +46,7 @@ sed -i "s|^ENCRYPTION_KEY=.*|ENCRYPTION_KEY=$SECRET_KEY|g" /opt/openarchiver/.en
sed -i "s|^TIKA_URL=.*|TIKA_URL=|g" /opt/openarchiver/.env sed -i "s|^TIKA_URL=.*|TIKA_URL=|g" /opt/openarchiver/.env
sed -i "s|^ORIGIN=.*|ORIGIN=http://$LOCAL_IP:3000|g" /opt/openarchiver/.env sed -i "s|^ORIGIN=.*|ORIGIN=http://$LOCAL_IP:3000|g" /opt/openarchiver/.env
$STD pnpm install --shamefully-hoist --frozen-lockfile --prod=false $STD pnpm install --shamefully-hoist --frozen-lockfile --prod=false
$STD pnpm approve-builds
$STD pnpm run build:oss $STD pnpm run build:oss
$STD pnpm db:migrate $STD pnpm db:migrate
msg_ok "Setup Open Archiver" msg_ok "Setup Open Archiver"

View File

@@ -67,6 +67,17 @@ msg_ok "Built OpenThread Border Router"
msg_info "Configuring Network" msg_info "Configuring Network"
cat <<EOF >/etc/sysctl.d/99-otbr.conf cat <<EOF >/etc/sysctl.d/99-otbr.conf
net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.all.accept_ra_rtr_pref=1
net.ipv6.conf.all.accept_ra_rt_info_max_plen=64
net.ipv6.conf.default.forwarding=1
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.default.accept_ra_rtr_pref=1
net.ipv6.conf.default.accept_ra_rt_info_max_plen=64
net.ipv6.conf.eth0.forwarding=1
net.ipv6.conf.eth0.accept_ra=2
net.ipv6.conf.eth0.accept_ra_rtr_pref=1
net.ipv6.conf.eth0.accept_ra_rt_info_max_plen=64
net.ipv4.ip_forward=1 net.ipv4.ip_forward=1
EOF EOF
$STD sysctl -p /etc/sysctl.d/99-otbr.conf $STD sysctl -p /etc/sysctl.d/99-otbr.conf

View File

@@ -41,6 +41,16 @@ $STD apt install -y \
nginx nginx
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Nginx mod_zip module"
setup_deb822_repo \
"getpagespeed-extras" \
"https://extras.getpagespeed.com/deb-archive-keyring.gpg" \
"https://extras.getpagespeed.com/debian" \
"$(get_os_info codename)" \
"main"
$STD apt-get install -y nginx nginx-module-zip
msg_ok "Installed Nginx mod_zip module"
PYTHON_VERSION="3.13" setup_uv PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="24" setup_nodejs NODE_VERSION="24" setup_nodejs
setup_mariadb setup_mariadb
@@ -255,6 +265,7 @@ EOF
sed -i "s|alias /var/lib/romm/library/;|alias ${ROMM_BASE}/library/;|" /etc/nginx/sites-available/romm sed -i "s|alias /var/lib/romm/library/;|alias ${ROMM_BASE}/library/;|" /etc/nginx/sites-available/romm
rm -f /etc/nginx/sites-enabled/default rm -f /etc/nginx/sites-enabled/default
rm -f /etc/nginx/conf.d/default.conf
ln -sf /etc/nginx/sites-available/romm /etc/nginx/sites-enabled/romm ln -sf /etc/nginx/sites-available/romm /etc/nginx/sites-enabled/romm
systemctl restart nginx systemctl restart nginx
systemctl enable -q --now nginx systemctl enable -q --now nginx

View File

@@ -103,7 +103,7 @@ StandardError=journal
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
$STD systemctl enable -q --now sure sure-worker systemctl enable -q --now sure sure-worker
msg_ok "Created Services" msg_ok "Created Services"
motd_ssh motd_ssh

View File

@@ -41,29 +41,27 @@ cat <<EOF >/etc/caddy/Caddyfile
} }
EOF EOF
usermod -aG www-data caddy usermod -aG www-data caddy
msg_ok "Configured Caddy"
systemctl enable -q --now php${PHP_VER}-fpm systemctl enable -q --now php${PHP_VER}-fpm
systemctl restart caddy systemctl restart caddy
msg_ok "Configured Caddy"
msg_info "Automating Webtrees Setup" msg_info "Automating Webtrees Setup"
sleep 5 cd /opt/webtrees
WT_ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c15) WT_ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c15)
curl -sS -X POST "http://127.0.0.1/" \ $STD sudo -u www-data php /opt/webtrees/index.php config-ini \
-d "step=6" \ --dbhost=127.0.0.1 \
--data-urlencode "baseurl=http://${LOCAL_IP}" \ --dbport=3306 \
-d "lang=en-US" \ --dbuser=webtrees \
-d "dbtype=mysql" \ --dbpass="${MARIADB_DB_PASS}" \
-d "dbhost=127.0.0.1" \ --dbname=webtrees \
-d "dbport=3306" \ --tblpfx=wt_ \
-d "dbuser=webtrees" \ --base-url="http://${LOCAL_IP}"
--data-urlencode "dbpass=${MARIADB_DB_PASS}" \ $STD sudo -u www-data php /opt/webtrees/index.php user Admin \
-d "dbname=webtrees" \ --create \
-d "tblpfx=wt_" \ --real-name="Administrator" \
-d "wtname=Administrator" \ --email="admin@example.com" \
-d "wtuser=Admin" \ --password="${WT_ADMIN_PASS}"
--data-urlencode "wtpass=${WT_ADMIN_PASS}" \ $STD sudo -u www-data php /opt/webtrees/index.php user-setting Admin canadmin 1
-d "wtemail=admin@example.com" >/dev/null
cat <<EOF >>~/webtrees.creds cat <<EOF >>~/webtrees.creds

View File

@@ -27,8 +27,7 @@ fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball"
msg_info "Installing Python Dependencies" msg_info "Installing Python Dependencies"
cd /opt/yamtrack cd /opt/yamtrack
$STD uv venv .venv $STD uv sync --locked
$STD uv pip install --no-cache-dir -r requirements.txt
msg_ok "Installed Python Dependencies" msg_ok "Installed Python Dependencies"
msg_info "Configuring Yamtrack" msg_info "Configuring Yamtrack"

View File

@@ -358,6 +358,55 @@ error_handler() {
fi fi
fi fi
# ── Log-pattern analysis: detect common failure causes and emit actionable hints ──
if [[ -n "$active_log" && -s "$active_log" ]]; then
local _log_tail
_log_tail=$(tail -n 60 "$active_log" 2>/dev/null || true)
# 1. APT/dpkg dependency conflict
if echo "$_log_tail" | grep -qE "Depends:|depends on.*but.*not installed|broken packages|unmet dep|dependency problems"; then
# Check for PostgreSQL-specific version mismatch (most actionable)
local _pg_conflict
_pg_conflict=$(echo "$_log_tail" | grep -oE 'postgresql-[0-9]+ but.*installed' | head -1 || true)
if [[ -n "$_pg_conflict" ]]; then
if declare -f msg_warn >/dev/null 2>&1; then
msg_warn "PostgreSQL version conflict: ${_pg_conflict}"
msg_warn "Hint: A package requires a specific PostgreSQL version that is not installed. Your distribution may have installed a different PG version than expected."
fi
else
if declare -f msg_warn >/dev/null 2>&1; then
msg_warn "APT dependency conflict detected. A required package is not available or is the wrong version for this system."
msg_warn "Hint: Run 'apt-get install -f' inside the container or check that all required repositories are configured for your distribution."
fi
fi
# 2. APT/GPG signature verification failure
elif echo "$_log_tail" | grep -qE "sqv|KEYEXPIRED|NO_PUBKEY|key is not certified|signature verification failed|is not signed|Sub-process.*sqv"; then
if declare -f msg_warn >/dev/null 2>&1; then
msg_warn "APT repository signature error detected."
msg_warn "Hint: A repository GPG key may be missing, expired, or the keyring file is not yet present (/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc etc.)."
msg_warn "Hint: Install the 'postgresql-common' package first, or re-add the repository with its correct signing key."
fi
# 3. Network / DNS failure during apt-get or curl
elif echo "$_log_tail" | grep -qE "Could not resolve|Failed to fetch|Unable to connect|Name or service not known|Network is unreachable|curl.*resolve"; then
if declare -f msg_warn >/dev/null 2>&1; then
msg_warn "Network or DNS failure detected."
msg_warn "Hint: Check the container's network connectivity, DNS settings, and whether any firewall or ad-blocker is intercepting traffic."
fi
# 4. APT lock held by another process
elif echo "$_log_tail" | grep -qE "Could not get lock|dpkg frontend lock|waiting for it to exit|E: Unable to lock"; then
if declare -f msg_warn >/dev/null 2>&1; then
msg_warn "APT or dpkg lock conflict detected."
msg_warn "Hint: Another package manager process may be running. Try 'rm /var/lib/dpkg/lock-frontend && dpkg --configure -a' inside the container."
fi
# 5. Disk space exhaustion
elif echo "$_log_tail" | grep -qE "No space left on device|disk quota exceeded|ENOSPC"; then
if declare -f msg_warn >/dev/null 2>&1; then
msg_warn "Disk space exhausted during installation."
msg_warn "Hint: Increase the container's disk size (pct resize <ctid> rootfs +2G) or clean up space first."
fi
fi
fi
# Detect context: Container (INSTALL_LOG set + inside container /root) vs Host # Detect context: Container (INSTALL_LOG set + inside container /root) vs Host
if [[ -n "${INSTALL_LOG:-}" && -f "${INSTALL_LOG:-}" && -d /root ]]; then if [[ -n "${INSTALL_LOG:-}" && -f "${INSTALL_LOG:-}" && -d /root ]]; then
# CONTAINER CONTEXT: Copy log and create flag file for host # CONTAINER CONTEXT: Copy log and create flag file for host

File diff suppressed because it is too large Load Diff

View File

@@ -47,7 +47,7 @@ function msg_ok() {
function msg_error() { echo -e "${RD}$1${CL}"; } function msg_error() { echo -e "${RD}$1${CL}"; }
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported. # This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
# Supported: Proxmox VE 8.0.x 8.9.x and 9.09.1.x # Supported: Proxmox VE 8.0.x 8.9.x and 9.09.x
pve_check() { pve_check() {
local PVE_VER local PVE_VER
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')" PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
@@ -63,20 +63,14 @@ pve_check() {
return 0 return 0
fi fi
# Check for Proxmox VE 9.x: allow 9.09.1.x # Check for Proxmox VE 9.x: allow 9.09.x
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
local MINOR="${BASH_REMATCH[1]}"
if ((MINOR < 0 || MINOR > 1)); then
msg_error "This version of Proxmox VE is not yet supported."
msg_error "Supported: Proxmox VE version 9.09.1.x"
exit 105
fi
return 0 return 0
fi fi
# All other unsupported versions # All other unsupported versions
msg_error "This version of Proxmox VE is not supported." msg_error "This version of Proxmox VE is not supported."
msg_error "Supported versions: Proxmox VE 8.0 8.9 or 9.09.1.x" msg_error "Supported versions: Proxmox VE 8.0 8.9 or 9.09.x"
exit 105 exit 105
} }

View File

@@ -811,13 +811,7 @@ update_tags() {
if [[ "$type" == "lxc" ]]; then if [[ "$type" == "lxc" ]]; then
pct set "${vmid}" -tags "$(IFS=';'; echo "${next_tags[*]}")" &>/dev/null pct set "${vmid}" -tags "$(IFS=';'; echo "${next_tags[*]}")" &>/dev/null
else else
local vm_config="/etc/pve/qemu-server/${vmid}.conf" qm set "${vmid}" --tags "$(IFS=';'; echo "${next_tags[*]}")" &>/dev/null
if [[ -f "$vm_config" ]]; then
sed -i '/^tags:/d' "$vm_config"
if [[ ${#next_tags[@]} -gt 0 ]]; then
echo "tags: $(IFS=';'; echo "${next_tags[*]}")" >> "$vm_config"
fi
fi
fi fi
else else
# Tags unchanged # Tags unchanged

View File

@@ -28,7 +28,14 @@ declare -f init_tool_telemetry &>/dev/null && init_tool_telemetry "kernel-clean"
# Detect current kernel # Detect current kernel
current_kernel=$(uname -r) current_kernel=$(uname -r)
available_kernels=$(dpkg --list | grep 'kernel-.*-pve' | awk '{print $2}' | grep -v "$current_kernel" | sort -V) # Only list fully-installed (ii) versioned kernel packages; the pattern
# proxmox-kernel-X.Y.Z matches versioned kernels while excluding the
# two-segment meta-packages (proxmox-kernel-X.Y) and proxmox-kernel-helper.
available_kernels=$(dpkg --list |
awk '/^ii/ {print $2}' |
grep -E '^proxmox-kernel-[0-9]+\.[0-9]+\.[0-9]' |
grep -v "$current_kernel" |
sort -V)
header_info header_info
@@ -82,10 +89,28 @@ fi
# Remove kernels # Remove kernels
for kernel in "${kernels_to_remove[@]}"; do for kernel in "${kernels_to_remove[@]}"; do
echo -e "${YW}Removing $kernel...${CL}" echo -e "${YW}Removing $kernel...${CL}"
if apt-get purge -y "$kernel" >/dev/null 2>&1; then # Derive the major.minor meta-package name (e.g. proxmox-kernel-6.14)
echo -e "${GN}Successfully removed: $kernel${CL}" # from a versioned name like proxmox-kernel-6.14.11-9-pve-signed.
minor_version=$(echo "$kernel" | sed -E 's/^proxmox-kernel-([0-9]+\.[0-9]+)\..*/\1/')
meta="proxmox-kernel-${minor_version}"
pkgs_to_remove=("$kernel")
# Include the meta-package in the purge when it is installed and when
# no other versioned kernel of the same minor version will remain
# (the running kernel keeps it alive if it shares the same minor).
if dpkg -l "$meta" 2>/dev/null | grep -q '^ii'; then
remaining=$(dpkg --list |
awk '/^ii/ {print $2}' |
grep -E "^proxmox-kernel-${minor_version}\." |
grep -v "^${kernel}$" |
wc -l)
if [ "$remaining" -eq 0 ]; then
pkgs_to_remove+=("$meta")
fi
fi
if apt-get purge -y "${pkgs_to_remove[@]}" >/dev/null 2>&1; then
echo -e "${GN}Successfully removed: ${pkgs_to_remove[*]}${CL}"
else else
echo -e "${RD}Failed to remove: $kernel. Check dependencies.${CL}" echo -e "${RD}Failed to remove: ${pkgs_to_remove[*]}. Check dependencies.${CL}"
fi fi
done done

View File

@@ -50,6 +50,19 @@ start_routines() {
no) msg_error "Selected no to Backup" ;; no) msg_error "Selected no to Backup" ;;
esac esac
# --- Update Current PBS 3 System ---
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PBS 3 UPDATE" --menu \
"\nUpdate current PBS 3 (Bookworm) packages before upgrade?" 14 58 2 "yes" " " "no" " " 3>&2 2>&1 1>&3)
case $CHOICE in
yes)
msg_info "Updating current PBS 3 packages"
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
msg_ok "Updated current PBS 3 packages"
;;
no) msg_error "Skipped updating current packages" ;;
esac
# --- Debian 13 Sources --- # --- Debian 13 Sources ---
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PBS 4 SOURCES" --menu \ CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "PBS 4 SOURCES" --menu \
"Switch to Debian 13 (Trixie) sources for PBS 4?" 14 58 2 "yes" " " "no" " " 3>&2 2>&1 1>&3) "Switch to Debian 13 (Trixie) sources for PBS 4?" 14 58 2 "yes" " " "no" " " 3>&2 2>&1 1>&3)