Compare commits

...

209 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
73cf6c66e3 Update CHANGELOG.md (#8099)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-04 00:12:21 +00:00
community-scripts-pr-app[bot]
efc9153926 Update versions.json (#8098)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-04 02:11:54 +02:00
community-scripts-pr-app[bot]
1f4b446788 Update CHANGELOG.md (#8093)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 19:40:20 +00:00
Slaviša Arežina
aeafbb1047 Update glpi-install.sh (#8092) 2025-10-03 21:39:59 +02:00
community-scripts-pr-app[bot]
938609d5eb Update CHANGELOG.md (#8091)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 18:55:21 +00:00
Chris
ae6ca4de23 Immich: bump version to 2.0.1 (#8090) 2025-10-03 20:54:58 +02:00
community-scripts-pr-app[bot]
dfdf8c0ddb Update CHANGELOG.md (#8089)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 17:23:52 +00:00
Bram Suurd
4136f5e7e3 Adjust navbar layout for large screen (#8087) 2025-10-03 19:23:26 +02:00
community-scripts-pr-app[bot]
51302d516e Update CHANGELOG.md (#8088)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 14:54:19 +00:00
Slaviša Arežina
ab995bd493 Increase resources (#8086) 2025-10-03 16:53:55 +02:00
community-scripts-pr-app[bot]
ac12051057 Update CHANGELOG.md (#8084)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 13:30:12 +00:00
push-app-to-main[bot]
c3cca616a4 pve-scripts-local (#8083)
* 'Add new script'

* Add rsync to installation dependencies

---------

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>
2025-10-03 15:29:46 +02:00
community-scripts-pr-app[bot]
b1bca924b9 Update versions.json (#8079)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 14:05:25 +02:00
community-scripts-pr-app[bot]
1909e35e62 Update CHANGELOG.md (#8075)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 11:10:11 +00:00
Slaviša Arežina
237349ef47 Fix glpi (#8074) 2025-10-03 13:09:41 +02:00
community-scripts-pr-app[bot]
e4cf50dfcd Update .app files (#8073)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-10-03 09:39:17 +00:00
Michel Roegl-Brunner
0c30d8e3e7 Remove Petio Script (#8071)
* Delete install/petio-install.sh

* Delete ct/petio.sh

* Delete frontend/public/json/petio.json
2025-10-03 11:38:32 +02:00
community-scripts-pr-app[bot]
92999b4db3 Update CHANGELOG.md (#8072)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 09:38:13 +00:00
Michel Roegl-Brunner
4a02986de1 Fix legacy count increment syntax in post-pve-install.sh (#8070) 2025-10-03 11:37:48 +02:00
community-scripts-pr-app[bot]
d06299685f Update CHANGELOG.md (#8069)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 08:36:58 +00:00
rcourtman
71f71fbca9 fix: ensure /etc/pulse exists before chown in update script (#8068)
* fix: ensure /etc/pulse exists before chown in update script

- Add mkdir -p /etc/pulse to create directory if missing
- Use non-recursive chown on /etc/pulse to preserve file permissions
- Keep recursive chown on /opt/pulse for binary ownership
- Add chmod 700 for security on config directory

Fixes #8064

* remove comments
2025-10-03 10:36:33 +02:00
community-scripts-pr-app[bot]
938fb6dc58 Update CHANGELOG.md (#8067)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 07:30:44 +00:00
CanbiZ
03d36a6c10 grist: remove unneeded var (#8060) 2025-10-03 09:30:18 +02:00
community-scripts-pr-app[bot]
8e25b70a25 Update CHANGELOG.md (#8062)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 00:12:10 +00:00
community-scripts-pr-app[bot]
1840cce15f Update versions.json (#8061)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-03 02:11:42 +02:00
community-scripts-pr-app[bot]
1d0ac4ca10 Update versions.json (#8055)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 14:05:34 +02:00
CanbiZ
deb85bd264 rm v in Version check 2025-10-02 13:18:59 +02:00
community-scripts-pr-app[bot]
348f8863a8 Update CHANGELOG.md (#8054)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 10:33:30 +00:00
CanbiZ
74b332b7ec EMQX: removal logic in emqx update (#8050)
Added conditional checks to remove either emqx or emqx-enterprise packages.
2025-10-02 12:33:08 +02:00
community-scripts-pr-app[bot]
2fe3ee667b Update CHANGELOG.md (#8053)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 10:32:45 +00:00
CanbiZ
48e3b66342 fix FlareSolverr version check to v3.3.25 (#8051) 2025-10-02 12:32:24 +02:00
community-scripts-pr-app[bot]
e93dccb0d5 Update CHANGELOG.md (#8045)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 00:13:27 +00:00
community-scripts-pr-app[bot]
168e7b7c2b Update versions.json (#8044)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-02 02:13:06 +02:00
community-scripts-pr-app[bot]
3f54d0d7f4 Update .app files (#8043)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-10-02 00:30:17 +02:00
community-scripts-pr-app[bot]
9477677385 Update CHANGELOG.md (#8042)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 22:29:30 +00:00
CanbiZ
e58d1dc3d2 Add conditional logic for EFI disk allocation (#8024) 2025-10-02 00:29:12 +02:00
Chris
2a765f58f0 Immich: bump version to 2.0.0 stable (#8041) 2025-10-02 00:28:51 +02:00
community-scripts-pr-app[bot]
8dfb632a4d Update CHANGELOG.md (#8036)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 15:07:56 +00:00
CanbiZ
42ae2a4cdc New Script: PhpMyAdmin (Addon) (#8030) 2025-10-01 17:07:28 +02:00
community-scripts-pr-app[bot]
36e41aca22 Update versions.json (#8031)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 14:07:20 +02:00
community-scripts-pr-app[bot]
6b1141f9de Update CHANGELOG.md (#8027)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 08:40:17 +00:00
community-scripts-pr-app[bot]
97f891d53b Update CHANGELOG.md (#8026)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 08:40:07 +00:00
Slaviša Arežina
0c63e64662 Pin version (#8023) 2025-10-01 10:39:55 +02:00
community-scripts-pr-app[bot]
d83a378af4 Update CHANGELOG.md (#8025)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 08:39:46 +00:00
Chris
6820bdcade Immich: bump version to 1.144.1 (#7994)
- small change during update to ensure the immich user can write to
uv.lock while building machine-learning
2025-10-01 10:39:20 +02:00
community-scripts-pr-app[bot]
8ff82d0c3c Update CHANGELOG.md (#8020)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 00:14:35 +00:00
community-scripts-pr-app[bot]
9e39c6cd2b Update versions.json (#8019)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-01 02:14:11 +02:00
community-scripts-pr-app[bot]
0bea24888e Update CHANGELOG.md (#8018)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 19:17:27 +00:00
CanbiZ
70d2be62e9 caddy: fix typo for setup_go (#8017) 2025-09-30 21:17:02 +02:00
community-scripts-pr-app[bot]
fe30e06a48 Update CHANGELOG.md (#8015)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 15:19:58 +00:00
community-scripts-pr-app[bot]
193a2ea2df Update CHANGELOG.md (#8014)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 15:19:46 +00:00
community-scripts-pr-app[bot]
ffbe0feee1 Update CHANGELOG.md (#8013)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 15:19:31 +00:00
Gerhard Burger
107865b06d Bump Guacamole to Debian 13 (#8010) 2025-09-30 17:19:22 +02:00
Hristo Stoyanov
0d33b38e29 Changedetection: Fix Browserless installation and update process (#8011)
* Fix the issue with changedetection.io install:
> @browserless.io/browserless@2.37.0 build:ts
> tsc

sh: 1: tsc: not found

[ERROR] in line 70: exit code 0: while executing command $STD npm run build --prefix /opt/browserless

* Just to verify the installation works

* Just to verify the installation works

* Try to fix typescript issues

* Try to fix TypeScript issues and update NodeJS

* Try to fix TypeScript issues

* Add more missing npm dependencies

* Cleanup test changes

* Revert testing changes and change the way dependencies are installed

* Revert testing changes and change the way dependencies are installed

* Revert manually added TypeScript and esbuild packages and tried to install them from the optional requirements

* Try the clean install

* Fix the update script and revert testing changes

* Added testing files again

* Revert testing repos again
2025-09-30 17:19:01 +02:00
CanbiZ
11ae7450c7 Add TypeScript and related packages installation 2025-09-30 16:07:34 +02:00
CanbiZ
598bfd291f Update npm install command to include dev dependencies 2025-09-30 14:26:13 +02:00
community-scripts-pr-app[bot]
1a38df4c12 Update CHANGELOG.md (#8007)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 12:17:18 +00:00
Slaviša Arežina
cfc85c1b79 Update n8n.sh (#8004) 2025-09-30 14:17:00 +02:00
community-scripts-pr-app[bot]
e7d41fecdc Update CHANGELOG.md (#8006)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 12:16:56 +00:00
CanbiZ
34ef80ac87 Changedetection: Bump nodejs to 24 (#8002) 2025-09-30 14:16:27 +02:00
community-scripts-pr-app[bot]
b18d45631f Update versions.json (#8005)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 14:06:34 +02:00
community-scripts-pr-app[bot]
efe1e1edb5 Update CHANGELOG.md (#7997)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 00:13:04 +00:00
community-scripts-pr-app[bot]
4567505c55 Update versions.json (#7996)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-30 02:12:43 +02:00
community-scripts-pr-app[bot]
42c87ba0d4 Update CHANGELOG.md (#7993)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 19:56:37 +00:00
Bram Suurd
b52c252553 fix sidebar loading issues and navbar on mobile (#7991)
* Refactor MobileSidebar to manage script and category selection based on current pathname. Introduced temporary state for non-scripts pages and updated logic for last viewed script handling. Improved accessibility by ensuring proper aria attributes and class management.

* Update API endpoint paths in data.ts to include ProxmoxVE prefix for category and version fetching functions.

* Refactor Navbar component layout for improved structure and responsiveness. Adjusted flex properties to ensure proper alignment of elements, enhancing the mobile and desktop user experience. Updated accessibility features and ensured consistent use of TailwindCSS classes.
2025-09-29 21:56:07 +02:00
community-scripts-pr-app[bot]
be5ac7153e Update CHANGELOG.md (#7989)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 16:17:00 +00:00
Bram Suurd
07f2849722 Improve mobile ui: added a hamburger navigation to the mobile view. (#7987)
* Update GitHubStarsButton component to be hidden on smaller screens

* feat: added a mobile navigation to the front-end.

* refactor: replace useQueryState with useSuspenseQueryState in ScriptContent and MobileSidebar components; add use-suspense-query-state hook

* Revert "refactor: replace useQueryState with useSuspenseQueryState in ScriptContent and MobileSidebar components; add use-suspense-query-state hook"

This reverts commit bfad01fc91.

* refactor: wrap MobileSidebar component in Suspense for improved loading handling

* Update mobile-sidebar.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-29 18:16:36 +02:00
community-scripts-pr-app[bot]
760299283a Update CHANGELOG.md (#7986)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 13:54:08 +00:00
community-scripts-pr-app[bot]
0bd2dd7a65 Update CHANGELOG.md (#7985)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 13:53:43 +00:00
community-scripts-pr-app[bot]
6591c30e66 Update date in json (#7984)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-29 13:53:39 +00:00
push-app-to-main[bot]
780e5c114c Ghostfolio (#7982)
* 'Add new script'

* Update frontend/public/json/ghostfolio.json

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

* Apply suggestion from @tremor021

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-09-29 15:53:15 +02:00
community-scripts-pr-app[bot]
ba10ec721b Update .app files (#7981)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-29 14:29:49 +02:00
community-scripts-pr-app[bot]
f66dc834bd Update CHANGELOG.md (#7980)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 12:27:23 +00:00
community-scripts-pr-app[bot]
be36fc6a94 Update date in json (#7979)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-29 12:27:03 +00:00
push-app-to-main[bot]
65ada6e6f3 Warracker (#7977)
* 'Add new script'

* Correct application name casing in warracker.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-09-29 14:26:41 +02:00
community-scripts-pr-app[bot]
853eb40bba Update date in json (#7975)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-29 14:22:57 +02:00
community-scripts-pr-app[bot]
ace6265895 Update versions.json (#7978)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 14:05:52 +02:00
community-scripts-pr-app[bot]
639d4f2d53 Update CHANGELOG.md (#7976)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 11:49:12 +00:00
push-app-to-main[bot]
d7e77e232c 'Add new script' (#7974)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-09-29 13:48:51 +02:00
community-scripts-pr-app[bot]
b850d3f79e Update CHANGELOG.md (#7973)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 10:38:15 +00:00
CanbiZ
72e5ac5c80 Remove Frigate from Website (#7972) 2025-09-29 12:37:47 +02:00
community-scripts-pr-app[bot]
587579b3a1 Update CHANGELOG.md (#7970)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 07:15:31 +00:00
community-scripts-pr-app[bot]
9b4e996d93 Update CHANGELOG.md (#7969)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 07:15:08 +00:00
community-scripts-pr-app[bot]
e6f317ede9 Update date in json (#7968)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-29 07:15:02 +00:00
push-app-to-main[bot]
3e4420e357 'Add new script' (#7967)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-09-29 09:14:43 +02:00
community-scripts-pr-app[bot]
38f7e81d8b Update CHANGELOG.md (#7966)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 00:12:38 +00:00
community-scripts-pr-app[bot]
8f5d50a9fa Update versions.json (#7965)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-29 02:12:18 +02:00
community-scripts-pr-app[bot]
32048cff2d Update CHANGELOG.md (#7963)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-28 18:33:06 +00:00
Chris
5775f7cf33 Metube: remove uv flags (#7962) 2025-09-28 20:32:43 +02:00
community-scripts-pr-app[bot]
4d7c004810 Update CHANGELOG.md (#7960)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-28 14:22:51 +00:00
Tobias
d74131fe6f freshrss: fix for broken permissions after update (#7953)
Added permission check and fix for sensitive-log.sh.
2025-09-28 16:22:28 +02:00
community-scripts-pr-app[bot]
87b30f67fa Update versions.json (#7958)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-28 14:05:52 +02:00
community-scripts-pr-app[bot]
7ddc50bfe7 Update CHANGELOG.md (#7951)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-28 00:15:09 +00:00
community-scripts-pr-app[bot]
484a46beb1 Update versions.json (#7950)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-28 02:14:45 +02:00
community-scripts-pr-app[bot]
b85d1e5062 Update CHANGELOG.md (#7948)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-27 21:12:00 +00:00
Slaviša Arežina
05e41f67e1 Update goaway-install.sh (#7946) 2025-09-27 23:11:38 +02:00
community-scripts-pr-app[bot]
bfe6445c64 Update CHANGELOG.md (#7947)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-27 20:36:34 +00:00
Chris
ffde3a731c MeTube: Various fixes (#7936) 2025-09-27 22:36:14 +02:00
community-scripts-pr-app[bot]
d5b9da8f5f Update CHANGELOG.md (#7943)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-27 18:14:55 +00:00
Slaviša Arežina
1b8d790a14 Update odoo.sh (#7941) 2025-09-27 20:14:34 +02:00
community-scripts-pr-app[bot]
175b925ae4 Update versions.json (#7939)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-27 14:04:31 +02:00
community-scripts-pr-app[bot]
38a8773d2f Update CHANGELOG.md (#7934)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-27 00:13:08 +00:00
community-scripts-pr-app[bot]
e7dafcbf3e Update versions.json (#7933)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-27 02:12:41 +02:00
community-scripts-pr-app[bot]
380fb1cfb7 Update CHANGELOG.md (#7932)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-26 20:59:46 +00:00
Slaviša Arežina
10cd6c3f0b Odoo: Fix missing dependencies (#7931)
* Fix odoo

* Update
2025-09-26 22:59:21 +02:00
community-scripts-pr-app[bot]
710bd7f4e7 Update CHANGELOG.md (#7930)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-26 19:37:04 +00:00
Slaviša Arežina
4d72852e53 Clarify descriptions of update scripts (#7929) 2025-09-26 21:36:43 +02:00
community-scripts-pr-app[bot]
9ad538c2d2 Update CHANGELOG.md (#7926)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-26 16:42:24 +00:00
Michel Roegl-Brunner
ee3872e7e1 OpenWebUI: Update NODE_OPTIONS to increase memory limit (#7919) 2025-09-26 18:41:58 +02:00
community-scripts-pr-app[bot]
f6ca81833e Update versions.json (#7916)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-26 14:05:29 +02:00
community-scripts-pr-app[bot]
c41b18f083 Update CHANGELOG.md (#7909)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-26 00:13:48 +00:00
community-scripts-pr-app[bot]
f983f75b30 Update versions.json (#7908)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-26 02:13:21 +02:00
community-scripts-pr-app[bot]
137dd647dd Update CHANGELOG.md (#7903)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-25 13:03:41 +00:00
community-scripts-pr-app[bot]
2f5c608f45 Update CHANGELOG.md (#7902)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-25 13:03:20 +00:00
community-scripts-pr-app[bot]
b8e06c05d0 Update date in json (#7901)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-25 13:03:15 +00:00
push-app-to-main[bot]
2beb89055c 'Add new script' (#7900)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-09-25 15:02:52 +02:00
community-scripts-pr-app[bot]
308897fdc7 Update versions.json (#7898)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-25 14:07:08 +02:00
community-scripts-pr-app[bot]
5b73367c80 Update CHANGELOG.md (#7897)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-25 09:07:03 +00:00
Tobias
5c0eefa652 ntfy: bump to debian 13 (#7895)
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-09-25 11:06:39 +02:00
community-scripts-pr-app[bot]
7c5c654dbe Update CHANGELOG.md (#7896)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-25 08:49:43 +00:00
Bram Suurd
984eeedf31 Enhance category metadata in JSON and update script accordion to display icons. Added 'icon' property to categories in metadata.json and modified script-accordion component to render corresponding icons for each category. (#7894) 2025-09-25 10:49:12 +02:00
community-scripts-pr-app[bot]
7fd08cbe69 Update CHANGELOG.md (#7892)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-25 00:13:14 +00:00
community-scripts-pr-app[bot]
285447b67f Update versions.json (#7891)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-25 02:12:49 +02:00
community-scripts-pr-app[bot]
b394cdf6e0 Update CHANGELOG.md (#7884)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-24 12:28:46 +00:00
community-scripts-pr-app[bot]
ab2a6ed38e Update CHANGELOG.md (#7883)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-24 12:28:32 +00:00
community-scripts-pr-app[bot]
f8e109c529 Update .app files (#7882)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-24 12:28:28 +00:00
community-scripts-pr-app[bot]
46e4bc3a04 Update date in json (#7881)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-24 12:28:21 +00:00
push-app-to-main[bot]
d0a1f305c7 Add Script: Joplin Server (#7879)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-09-24 14:28:02 +02:00
community-scripts-pr-app[bot]
6948e1f695 Update CHANGELOG.md (#7880)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-24 12:26:43 +00:00
Slaviša Arežina
8c860da4ed Fix dependencies (#7877) 2025-09-24 14:26:19 +02:00
community-scripts-pr-app[bot]
d32e9fad59 Update versions.json (#7878)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-24 14:06:22 +02:00
community-scripts-pr-app[bot]
9096a388c7 Update CHANGELOG.md (#7873)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-24 07:42:47 +00:00
Michel Roegl-Brunner
9f0efc27df Update name in lxc-delete.json to 'PVE LXC Deletion' (#7872) 2025-09-24 09:42:20 +02:00
community-scripts-pr-app[bot]
06ca6e2087 Update CHANGELOG.md (#7871)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-24 00:13:00 +00:00
community-scripts-pr-app[bot]
8c48ea6718 Update versions.json (#7870)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-24 02:12:36 +02:00
community-scripts-pr-app[bot]
b626e705eb Update CHANGELOG.md (#7869)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 20:39:42 +00:00
community-scripts-pr-app[bot]
f103d09c09 Update CHANGELOG.md (#7867)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 19:35:46 +00:00
Chris
82a7d252ab Bump Immich to v1.143.1 (#7864) 2025-09-23 21:35:27 +02:00
community-scripts-pr-app[bot]
48af77e928 Update CHANGELOG.md (#7866)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 19:21:34 +00:00
Chris
d24308a409 Manage My Damn Life: use NodeJS 22 (#7861) 2025-09-23 21:21:05 +02:00
community-scripts-pr-app[bot]
584365fff1 Update CHANGELOG.md (#7863)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 19:03:42 +00:00
Giovanni Pellerano
95c54dccd7 Improve globaleaks install ensuring install can proceed without user input (#7860) 2025-09-23 21:03:15 +02:00
community-scripts-pr-app[bot]
eb28463d86 Update CHANGELOG.md (#7859)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 18:01:51 +00:00
community-scripts-pr-app[bot]
bddde99252 Update CHANGELOG.md (#7858)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 18:01:39 +00:00
Chris
f1f8c1b279 BookLore: increase RAM (#7855)
- Build was failing due to OOM
2025-09-23 20:01:24 +02:00
community-scripts-pr-app[bot]
37a0a4add9 Update CHANGELOG.md (#7857)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 18:01:15 +00:00
Chris
02cede3f5d tools.func: Check for /usr/local/bin in PATH during yq setup (#7856)
- My Booklore update failed due to yq not being found despite installed
2025-09-23 20:00:48 +02:00
community-scripts-pr-app[bot]
42a7d57a42 Update versions.json (#7851)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 14:05:40 +02:00
community-scripts-pr-app[bot]
53b5f0d1fe Update CHANGELOG.md (#7850)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 11:23:29 +00:00
CanbiZ
4a56d8d9aa Remove not exist admin credentials from output (#7849) 2025-09-23 13:23:03 +02:00
community-scripts-pr-app[bot]
f819188a5e Update CHANGELOG.md (#7847)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 10:11:48 +00:00
Slaviša Arežina
4d6e3e5977 Update openwebui.json (#7843) 2025-09-23 12:11:21 +02:00
community-scripts-pr-app[bot]
d6fc527200 Update CHANGELOG.md (#7846)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 10:07:01 +00:00
community-scripts-pr-app[bot]
c103c3b03d Update CHANGELOG.md (#7845)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 10:06:51 +00:00
CanbiZ
2d290cb27f VM: Increase pv & xz functions (HA OS / Umbrel OS) (#7838) 2025-09-23 12:06:35 +02:00
community-scripts-pr-app[bot]
883efd1cd2 Update CHANGELOG.md (#7844)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 10:06:31 +00:00
CanbiZ
1f40670ea0 cosmos: add info note for configuration file (#7824) 2025-09-23 12:06:07 +02:00
community-scripts-pr-app[bot]
cec4e2d5c1 Update CHANGELOG.md (#7841)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 09:40:12 +00:00
CanbiZ
1fafb3f661 Suppress wrong errors from uv shell integration in setup_uv (#7822) 2025-09-23 11:39:46 +02:00
community-scripts-pr-app[bot]
b56b053e8b Update CHANGELOG.md (#7840)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 09:38:32 +00:00
CanbiZ
21f98835dc Update Tandoor install scripts for newer dependencies (#7826) 2025-09-23 11:38:07 +02:00
community-scripts-pr-app[bot]
ab455d7748 Update CHANGELOG.md (#7839)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 09:36:51 +00:00
CanbiZ
5382fa1dbd Update Monica and Outline to use Node.js 22 (#7833) 2025-09-23 11:36:29 +02:00
community-scripts-pr-app[bot]
6fa1938360 Update CHANGELOG.md (#7837)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:47:49 +00:00
community-scripts-pr-app[bot]
2a2df5b5cc Update CHANGELOG.md (#7836)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:47:27 +00:00
CanbiZ
f99d582eb5 ElementSynapse: add note for Bridge Install Methods (#7820) 2025-09-23 10:47:25 +02:00
community-scripts-pr-app[bot]
d3f24ae5b2 Update CHANGELOG.md (#7835)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:47:05 +00:00
CanbiZ
25e89f7bac Refactor Caddyfile configuration for headscale-admin (#7821) 2025-09-23 10:47:00 +02:00
community-scripts-pr-app[bot]
2686753448 Update CHANGELOG.md (#7834)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:46:56 +00:00
CanbiZ
19678e2534 Update Zabbix install for Debian 13 and agent selection (#7819) 2025-09-23 10:46:32 +02:00
community-scripts-pr-app[bot]
1ac8f90281 Update CHANGELOG.md (#7832)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:46:29 +00:00
Tobias
7cd3e40f9c tracktor: bump to debian 13 | feature bump (#7818) 2025-09-23 10:46:03 +02:00
community-scripts-pr-app[bot]
42191bdb5a Update CHANGELOG.md (#7831)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:45:46 +00:00
CanbiZ
aab1a9bce5 LiteLLM: Bump to Debian 13 & add deps (#7815) 2025-09-23 10:45:20 +02:00
community-scripts-pr-app[bot]
208226065b Update CHANGELOG.md (#7830)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:44:49 +00:00
community-scripts-pr-app[bot]
54e62749be Update CHANGELOG.md (#7829)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:44:40 +00:00
community-scripts-pr-app[bot]
2a8e2e62cd Update date in json (#7827)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-09-23 10:44:24 +02:00
CanbiZ
b15d7be4c3 Improve subscription element removal in post-install script (#7814) 2025-09-23 10:44:14 +02:00
community-scripts-pr-app[bot]
e208bc110b Update CHANGELOG.md (#7828)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 08:43:52 +00:00
push-app-to-main[bot]
b26ad61a33 UpSnap (#7825)
* 'Add new script'

* Remove redundant success message in upsnap.sh

* Update upsnap.json

* Fix JSON formatting in upsnap.json

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-09-23 10:43:29 +02:00
community-scripts-pr-app[bot]
5beaec9514 Update CHANGELOG.md (#7823)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 07:47:32 +00:00
CanbiZ
3a668870b7 gh: remove ai autolabel test (#7817) 2025-09-23 09:47:05 +02:00
community-scripts-pr-app[bot]
3266962630 Update CHANGELOG.md (#7816)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 06:14:21 +00:00
Chris
2a3f5d7b47 Immich: bump to v1.143.0 (#7801) 2025-09-23 08:13:57 +02:00
community-scripts-pr-app[bot]
fb4c3cf9e9 Update CHANGELOG.md (#7813)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 05:00:17 +00:00
Slaviša Arežina
e96ea4eb40 Fix release fetching (#7807) 2025-09-23 06:59:52 +02:00
community-scripts-pr-app[bot]
dfbe5f03ce Update CHANGELOG.md (#7810)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 00:14:05 +00:00
community-scripts-pr-app[bot]
9c53c70f6b Update versions.json (#7809)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-23 02:13:40 +02:00
community-scripts-pr-app[bot]
a3c7f468ef Update versions.json (#7800)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-22 14:05:53 +02:00
community-scripts-pr-app[bot]
605f7a0330 Update CHANGELOG.md (#7797)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-22 07:52:02 +00:00
Slaviša Arežina
306627378e Update shell check (#7796) 2025-09-22 09:51:34 +02:00
community-scripts-pr-app[bot]
0e464cb192 Update CHANGELOG.md (#7795)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-22 06:08:06 +00:00
Slaviša Arežina
277f6ce7d1 Paymenter: Installation and update fixes (#7792) 2025-09-22 08:07:33 +02:00
community-scripts-pr-app[bot]
a6d6f79943 Update CHANGELOG.md (#7794)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-22 00:13:28 +00:00
community-scripts-pr-app[bot]
a7ced850ab Update versions.json (#7793)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-22 02:13:01 +02:00
community-scripts-pr-app[bot]
eadca5f81f Update CHANGELOG.md (#7789)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-21 16:56:56 +00:00
HeedfulCrayon
5ab375fd89 fix openwebui update and installer (#7788)
* Update curl command to support resuming downloads

* fix: correct curl command for downloading Ollama to support resuming
2025-09-21 18:56:31 +02:00
community-scripts-pr-app[bot]
2dc95b6b22 Update CHANGELOG.md (#7787)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-21 16:14:33 +00:00
Tobias
57dd3d5a44 tracktor: add: cleanup before upgrade (#7782)
* tracktor: add: cleanup before upgrade

* tracktor: change to new clean_install
2025-09-21 18:14:12 +02:00
community-scripts-pr-app[bot]
25ddf48190 Update CHANGELOG.md (#7786)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-21 14:20:44 +00:00
CanbiZ
01b6bec1fe Implement clean install option in tools.func (#7785) 2025-09-21 16:20:18 +02:00
community-scripts-pr-app[bot]
d1ff8201b1 Update versions.json (#7784)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-21 14:05:18 +02:00
community-scripts-pr-app[bot]
c5c5ba1ede Update CHANGELOG.md (#7783)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-21 09:40:57 +00:00
HeedfulCrayon
e3aabd81a3 Update Ollama Installer in OpenWebUI to resume downloads if interrupted (#7779)
* Fix curl command options for downloading file

* Update curl command for Ollama installation
2025-09-21 11:40:33 +02:00
community-scripts-pr-app[bot]
4713941415 Update CHANGELOG.md (#7781)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-21 06:29:01 +00:00
CanbiZ
adda76f587 caddy: modify disk size and implement xCaddy update (#7775) 2025-09-21 08:28:39 +02:00
community-scripts-pr-app[bot]
cf597b6a26 Update CHANGELOG.md (#7780)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-21 06:28:35 +00:00
CanbiZ
20e8730a34 Harmonize and shorten JSON Names for PVE/PBS/PMG (#7773) 2025-09-21 08:28:14 +02:00
CanbiZ
9ce9de8e84 Fix regex to extract MySQL version correctly (#7774) 2025-09-21 08:28:07 +02:00
138 changed files with 3776 additions and 1248 deletions

38
.github/label-priority.json generated vendored
View File

@@ -1,38 +0,0 @@
{
"priorities": {
"refactor": 3,
"feature": 2,
"bugfix": 1,
"new script": 3,
"update script": 2,
"delete script": 2,
"json": 3,
"website": 2,
"maintenance": 1,
"documentation": 1,
"core": 2,
"api": 2,
"addon": 2,
"pve-tool": 2,
"vm": 2,
"github": 1
},
"conflicts": {
"bugfix": ["refactor"],
"website": ["json"],
"update script": ["new script", "delete script"],
"new script": ["update script", "delete script"],
"delete script": ["new script", "update script"]
},
"rules": {
"always_combine": [
"maintenance",
"core",
"api",
"addon",
"pve-tool",
"vm",
"github"
]
}
}

116
.github/workflows/autolabeler.yml generated vendored
View File

@@ -112,119 +112,3 @@ jobs:
labels: Array.from(labelsToAdd),
});
}
ai-check:
needs: autolabeler
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Load priority config
run: |
echo "PRIORITY_JSON=$(jq -c . .github/label-priority.json)" >> $GITHUB_ENV
- name: Fetch PR metadata
id: pr
uses: actions/github-script@v7
with:
script: |
const pr = context.payload.pull_request;
const files = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr.number
});
const prData = {
title: pr.title || "",
body: pr.body || "",
files: files.data.map(f => f.filename)
};
require('fs').writeFileSync(process.env.GITHUB_ENV, `PR_DATA=${JSON.stringify(prData)}\n`, {flag: 'a'});
- name: AI Label Review
id: ai
uses: actions/github-script@v7
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
with:
script: |
const prData = JSON.parse(process.env.PR_DATA);
const prompt = `
You are a GitHub labeling bot.
Task:
- Analyze PR title, body, and file list.
- For each possible label, return a confidence score (01).
- If both bugfix and refactor apply, prefer refactor.
- Output JSON: {"labels":[{"name":"bugfix","score":0.9},{"name":"refactor","score":0.6}]}
Valid labels: [new script, update script, delete script, bugfix, feature, maintenance, refactor, website, json, api, core, github, addon, pve-tool, vm].
PR data: ${JSON.stringify(prData)}
`;
const response = await fetch("https://api.openai.com/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + process.env.OPENAI_API_KEY,
},
body: JSON.stringify({
model: "gpt-4.1-mini",
messages: [{ role: "user", content: prompt }],
temperature: 0
})
});
const data = await response.json();
const labels = JSON.parse(data.choices[0].message.content).labels;
core.setOutput("labels", JSON.stringify(labels));
- name: Apply AI Labels
uses: actions/github-script@v7
with:
script: |
const raw = JSON.parse('${{ steps.ai.outputs.labels }}');
const prNumber = context.payload.pull_request.number;
const config = JSON.parse(process.env.PRIORITY_JSON);
let toApply = [];
let toSuggest = [];
raw.forEach(l => {
if (l.score >= 0.8) {
const conflicts = config.conflicts[l.name] || [];
const hasStrongerConflict = conflicts.some(c =>
raw.some(x =>
x.name === c &&
x.score >= 0.6 &&
(config.priorities[c] || 0) >= (config.priorities[l.name] || 0)
)
);
if (!hasStrongerConflict) {
toApply.push(l.name);
}
} else if (l.score >= 0.5) {
toSuggest.push(`${l.name} (${Math.round(l.score*100)}%)`);
}
});
if (toApply.length > 0) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
labels: toApply
});
}
if (toSuggest.length > 0) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: `🤖 AI suggests these possible labels (uncertain): ${toSuggest.join(", ")}`
});
}

View File

@@ -10,8 +10,249 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-10-04
## 2025-10-03
### 🆕 New Scripts
- pve-scripts-local ([#8083](https://github.com/community-scripts/ProxmoxVE/pull/8083))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- GLPI: Pin version to v10.0.20 [@tremor021](https://github.com/tremor021) ([#8092](https://github.com/community-scripts/ProxmoxVE/pull/8092))
- GLPI: Fix database setup [@tremor021](https://github.com/tremor021) ([#8074](https://github.com/community-scripts/ProxmoxVE/pull/8074))
- Overseerr: Increase resources [@tremor021](https://github.com/tremor021) ([#8086](https://github.com/community-scripts/ProxmoxVE/pull/8086))
- FIX: post-pve-install.sh just quitting [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#8070](https://github.com/community-scripts/ProxmoxVE/pull/8070))
- fix: ensure /etc/pulse exists before chown in update script [@rcourtman](https://github.com/rcourtman) ([#8068](https://github.com/community-scripts/ProxmoxVE/pull/8068))
- grist: remove unneeded var [@MickLesk](https://github.com/MickLesk) ([#8060](https://github.com/community-scripts/ProxmoxVE/pull/8060))
- #### 🔧 Refactor
- Immich: bump version to 2.0.1 [@vhsdream](https://github.com/vhsdream) ([#8090](https://github.com/community-scripts/ProxmoxVE/pull/8090))
### 🌐 Website
- #### 🐞 Bug Fixes
- Adjust navbar layout for large screen [@BramSuurdje](https://github.com/BramSuurdje) ([#8087](https://github.com/community-scripts/ProxmoxVE/pull/8087))
## 2025-10-02
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- EMQX: removal logic in emqx update [@MickLesk](https://github.com/MickLesk) ([#8050](https://github.com/community-scripts/ProxmoxVE/pull/8050))
- fix FlareSolverr version check to v3.3.25 [@MickLesk](https://github.com/MickLesk) ([#8051](https://github.com/community-scripts/ProxmoxVE/pull/8051))
## 2025-10-01
### 🆕 New Scripts
- New Script: PhpMyAdmin (Addon) [@MickLesk](https://github.com/MickLesk) ([#8030](https://github.com/community-scripts/ProxmoxVE/pull/8030))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- openwrt: Add conditional logic for EFI disk allocation [@MickLesk](https://github.com/MickLesk) ([#8024](https://github.com/community-scripts/ProxmoxVE/pull/8024))
- Plant-IT: Pin version to v0.10.0 [@tremor021](https://github.com/tremor021) ([#8023](https://github.com/community-scripts/ProxmoxVE/pull/8023))
- #### ✨ New Features
- Immich: bump version to 2.0.0 stable [@vhsdream](https://github.com/vhsdream) ([#8041](https://github.com/community-scripts/ProxmoxVE/pull/8041))
- #### 🔧 Refactor
- Immich: bump version to 1.144.1 [@vhsdream](https://github.com/vhsdream) ([#7994](https://github.com/community-scripts/ProxmoxVE/pull/7994))
## 2025-09-30
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- caddy: fix typo for setup_go [@MickLesk](https://github.com/MickLesk) ([#8017](https://github.com/community-scripts/ProxmoxVE/pull/8017))
- Changedetection: Fix Browserless installation and update process [@h-stoyanov](https://github.com/h-stoyanov) ([#8011](https://github.com/community-scripts/ProxmoxVE/pull/8011))
- n8n: Update procedure workaround [@tremor021](https://github.com/tremor021) ([#8004](https://github.com/community-scripts/ProxmoxVE/pull/8004))
- Changedetection: Bump nodejs to 24 [@MickLesk](https://github.com/MickLesk) ([#8002](https://github.com/community-scripts/ProxmoxVE/pull/8002))
- #### ✨ New Features
- Bump Guacamole to Debian 13 [@burgerga](https://github.com/burgerga) ([#8010](https://github.com/community-scripts/ProxmoxVE/pull/8010))
## 2025-09-29
### 🆕 New Scripts
- Ghostfolio ([#7982](https://github.com/community-scripts/ProxmoxVE/pull/7982))
- Warracker ([#7977](https://github.com/community-scripts/ProxmoxVE/pull/7977))
- MyIP ([#7974](https://github.com/community-scripts/ProxmoxVE/pull/7974))
- Verdaccio ([#7967](https://github.com/community-scripts/ProxmoxVE/pull/7967))
### 🌐 Website
- #### 🐞 Bug Fixes
- fix sidebar loading issues and navbar on mobile [@BramSuurdje](https://github.com/BramSuurdje) ([#7991](https://github.com/community-scripts/ProxmoxVE/pull/7991))
- #### ✨ New Features
- Improve mobile ui: added a hamburger navigation to the mobile view. [@BramSuurdje](https://github.com/BramSuurdje) ([#7987](https://github.com/community-scripts/ProxmoxVE/pull/7987))
- #### 📝 Script Information
- Remove Frigate from Website [@MickLesk](https://github.com/MickLesk) ([#7972](https://github.com/community-scripts/ProxmoxVE/pull/7972))
## 2025-09-28
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Metube: remove uv flags [@vhsdream](https://github.com/vhsdream) ([#7962](https://github.com/community-scripts/ProxmoxVE/pull/7962))
- freshrss: fix for broken permissions after update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7953](https://github.com/community-scripts/ProxmoxVE/pull/7953))
## 2025-09-27
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- GoAway: Make admin password aquisition more reliable [@tremor021](https://github.com/tremor021) ([#7946](https://github.com/community-scripts/ProxmoxVE/pull/7946))
- MeTube: Various fixes [@vhsdream](https://github.com/vhsdream) ([#7936](https://github.com/community-scripts/ProxmoxVE/pull/7936))
- Oddo: Fix typo in update procedure [@tremor021](https://github.com/tremor021) ([#7941](https://github.com/community-scripts/ProxmoxVE/pull/7941))
## 2025-09-26
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Odoo: Fix missing dependencies [@tremor021](https://github.com/tremor021) ([#7931](https://github.com/community-scripts/ProxmoxVE/pull/7931))
- OpenWebUI: Update NODE_OPTIONS to increase memory limit [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7919](https://github.com/community-scripts/ProxmoxVE/pull/7919))
### 🌐 Website
- #### 📝 Script Information
- Clarify descriptions of update scripts [@tremor021](https://github.com/tremor021) ([#7929](https://github.com/community-scripts/ProxmoxVE/pull/7929))
## 2025-09-25
### 🆕 New Scripts
- GoAway ([#7900](https://github.com/community-scripts/ProxmoxVE/pull/7900))
### 🚀 Updated Scripts
- #### ✨ New Features
- ntfy: bump to debian 13 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7895](https://github.com/community-scripts/ProxmoxVE/pull/7895))
### 🌐 Website
- #### ✨ New Features
- feat: add menu icons to website [@BramSuurdje](https://github.com/BramSuurdje) ([#7894](https://github.com/community-scripts/ProxmoxVE/pull/7894))
## 2025-09-24
### 🆕 New Scripts
- Add Script: Joplin Server ([#7879](https://github.com/community-scripts/ProxmoxVE/pull/7879))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Monica: Fix dependencies [@tremor021](https://github.com/tremor021) ([#7877](https://github.com/community-scripts/ProxmoxVE/pull/7877))
### 🌐 Website
- #### 📝 Script Information
- Update name in lxc-delete.json to 'PVE LXC Deletion' [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7872](https://github.com/community-scripts/ProxmoxVE/pull/7872))
## 2025-09-23
### 🆕 New Scripts
- UpSnap ([#7825](https://github.com/community-scripts/ProxmoxVE/pull/7825))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- tools.func: Check for /usr/local/bin in PATH during yq setup [@vhsdream](https://github.com/vhsdream) ([#7856](https://github.com/community-scripts/ProxmoxVE/pull/7856))
- BookLore: increase RAM [@vhsdream](https://github.com/vhsdream) ([#7855](https://github.com/community-scripts/ProxmoxVE/pull/7855))
- Bump Immich to v1.143.1 [@vhsdream](https://github.com/vhsdream) ([#7864](https://github.com/community-scripts/ProxmoxVE/pull/7864))
- zabbix: Remove not exist admin credentials from output [@MickLesk](https://github.com/MickLesk) ([#7849](https://github.com/community-scripts/ProxmoxVE/pull/7849))
- Suppress wrong errors from uv shell integration in setup_uv [@MickLesk](https://github.com/MickLesk) ([#7822](https://github.com/community-scripts/ProxmoxVE/pull/7822))
- Refactor Caddyfile configuration for headscale-admin [@MickLesk](https://github.com/MickLesk) ([#7821](https://github.com/community-scripts/ProxmoxVE/pull/7821))
- Improve subscription element removal (mobile) in post-pve script [@MickLesk](https://github.com/MickLesk) ([#7814](https://github.com/community-scripts/ProxmoxVE/pull/7814))
- Blocky: Fix release fetching [@tremor021](https://github.com/tremor021) ([#7807](https://github.com/community-scripts/ProxmoxVE/pull/7807))
- #### ✨ New Features
- Improve globaleaks install ensuring install can proceed without user … [@evilaliv3](https://github.com/evilaliv3) ([#7860](https://github.com/community-scripts/ProxmoxVE/pull/7860))
- Manage My Damn Life: use NodeJS 22 [@vhsdream](https://github.com/vhsdream) ([#7861](https://github.com/community-scripts/ProxmoxVE/pull/7861))
- VM: Increase pv & xz functions (HA OS / Umbrel OS) [@MickLesk](https://github.com/MickLesk) ([#7838](https://github.com/community-scripts/ProxmoxVE/pull/7838))
- Tandoor: update for newer dependencies (psql) + bump nodejs to 22 [@MickLesk](https://github.com/MickLesk) ([#7826](https://github.com/community-scripts/ProxmoxVE/pull/7826))
- Update Monica and Outline to use Node.js 22 [@MickLesk](https://github.com/MickLesk) ([#7833](https://github.com/community-scripts/ProxmoxVE/pull/7833))
- Update Zabbix install for Debian 13 and agent selection [@MickLesk](https://github.com/MickLesk) ([#7819](https://github.com/community-scripts/ProxmoxVE/pull/7819))
- tracktor: bump to debian 13 | feature bump [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7818](https://github.com/community-scripts/ProxmoxVE/pull/7818))
- LiteLLM: Bump to Debian 13 & add deps [@MickLesk](https://github.com/MickLesk) ([#7815](https://github.com/community-scripts/ProxmoxVE/pull/7815))
- Immich: bump to v1.143.0 [@vhsdream](https://github.com/vhsdream) ([#7801](https://github.com/community-scripts/ProxmoxVE/pull/7801))
### 🧰 Maintenance
- #### 📂 Github
- gh: remove ai autolabel test [@MickLesk](https://github.com/MickLesk) ([#7817](https://github.com/community-scripts/ProxmoxVE/pull/7817))
### 🌐 Website
- #### 📝 Script Information
- OpenWebUI: Add information about Ollama [@tremor021](https://github.com/tremor021) ([#7843](https://github.com/community-scripts/ProxmoxVE/pull/7843))
- cosmos: add info note for configuration file [@MickLesk](https://github.com/MickLesk) ([#7824](https://github.com/community-scripts/ProxmoxVE/pull/7824))
- ElementSynapse: add note for Bridge Install Methods [@MickLesk](https://github.com/MickLesk) ([#7820](https://github.com/community-scripts/ProxmoxVE/pull/7820))
## 2025-09-22
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- [core]: Update detection of current running subshell [@tremor021](https://github.com/tremor021) ([#7796](https://github.com/community-scripts/ProxmoxVE/pull/7796))
- Paymenter: Installation and update fixes [@tremor021](https://github.com/tremor021) ([#7792](https://github.com/community-scripts/ProxmoxVE/pull/7792))
## 2025-09-21
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix openwebui update and installer [@HeedfulCrayon](https://github.com/HeedfulCrayon) ([#7788](https://github.com/community-scripts/ProxmoxVE/pull/7788))
- tracktor: add: cleanup before upgrade [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7782](https://github.com/community-scripts/ProxmoxVE/pull/7782))
- Fix regex to extract MySQL version correctly [@MickLesk](https://github.com/MickLesk) ([#7774](https://github.com/community-scripts/ProxmoxVE/pull/7774))
- Update Ollama Installer in OpenWebUI to resume downloads if interrupted [@HeedfulCrayon](https://github.com/HeedfulCrayon) ([#7779](https://github.com/community-scripts/ProxmoxVE/pull/7779))
- #### ✨ New Features
- Implement clean install option in tools.func (fetch_and_deploy_gh_release) [@MickLesk](https://github.com/MickLesk) ([#7785](https://github.com/community-scripts/ProxmoxVE/pull/7785))
- caddy: modify disk size and implement xCaddy update [@MickLesk](https://github.com/MickLesk) ([#7775](https://github.com/community-scripts/ProxmoxVE/pull/7775))
### 🌐 Website
- #### 📝 Script Information
- Harmonize and shorten JSON Names for PVE/PBS/PMG [@MickLesk](https://github.com/MickLesk) ([#7773](https://github.com/community-scripts/ProxmoxVE/pull/7773))
## 2025-09-20
### 🚀 Updated Scripts

View File

@@ -11,7 +11,7 @@ var_disk="${var_disk:-4}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-2048}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -38,4 +38,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/guacamole${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/guacamole${CL}"

View File

@@ -40,7 +40,7 @@ function update_script() {
rm -rf /opt/blocky
msg_ok "Removed Old Version"
fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_linux_x86_64.tar.gz"
fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_x86_64.tar.gz"
msg_info "Restore Config"
mv /opt/config.yml /opt/blocky/config.yml

View File

@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="BookLore"
var_tags="${var_tags:-books;library}"
var_cpu="${var_cpu:-3}"
var_ram="${var_ram:-2048}"
var_ram="${var_ram:-3072}"
var_disk="${var_disk:-7}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"

View File

@@ -9,7 +9,7 @@ APP="Caddy"
var_tags="${var_tags:-webserver}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
@@ -31,6 +31,19 @@ function update_script() {
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
if command -v xcaddy >/dev/null 2>&1; then
setup_go
msg_info "Updating xCaddy"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
VERSION="${RELEASE#v}"
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${VERSION}_linux_amd64.deb" -o "xcaddy_${VERSION}_linux_amd64.deb"
$STD dpkg -i "xcaddy_${VERSION}_linux_amd64.deb"
rm -f "xcaddy_${VERSION}_linux_amd64.deb"
$STD xcaddy build
msg_ok "Updated xCaddy"
fi
exit
}
@@ -41,4 +54,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"

View File

@@ -36,6 +36,8 @@ function update_script() {
msg_ok "Updated Dependencies"
fi
NODE_VERSION="24" setup_nodejs
msg_info "Updating ${APP}"
$STD pip3 install changedetection.io --upgrade
msg_ok "Updated ${APP}"
@@ -49,6 +51,7 @@ function update_script() {
$STD git -C /opt/browserless/ fetch --all
$STD git -C /opt/browserless/ reset --hard origin/main
$STD npm update --prefix /opt/browserless
$STD npm ci --include=optional --include=dev --prefix /opt/browserless
$STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
# Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
$STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome

View File

@@ -31,7 +31,13 @@ function update_script() {
msg_ok "Stopped EMQX"
msg_info "Removing old EMQX"
$STD apt-get remove --purge -y emqx
if dpkg -l | grep -q "^ii\s\+emqx\s"; then
$STD apt-get remove --purge -y emqx
elif dpkg -l | grep -q "^ii\s\+emqx-enterprise\s"; then
$STD apt-get remove --purge -y emqx-enterprise
else
msg_ok "No old EMQX package found"
fi
msg_ok "Removed old EMQX"
msg_info "Downloading EMQX v${RELEASE}"

View File

@@ -28,7 +28,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.5"; then
if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.25"; then
msg_info "Stopping service"
systemctl stop flaresolverr
msg_ok "Stopped service"

View File

@@ -27,8 +27,16 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "FreshRSS should be updated via the user interface."
exit
if [ ! -x /opt/freshrss/cli/sensitive-log.sh ]; then
msg_info "Fixing wrong permissions"
chmod +x /opt/freshrss/cli/sensitive-log.sh
systemctl restart apache2
msg_ok "Fixed wrong permissions"
else
msg_error "FreshRSS should be updated via the user interface."
exit
fi
}
start
@@ -38,4 +46,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

75
ct/ghostfolio.sh Normal file
View File

@@ -0,0 +1,75 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: lucasfell
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ghostfol.io/
APP="Ghostfolio"
var_tags="${var_tags:-finance;investment}"
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_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/ghostfolio/dist/apps/api/main.js ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "ghostfolio" "ghostfolio/ghostfolio"; then
msg_info "Stopping Service"
systemctl stop ghostfolio
msg_ok "Stopped Service"
msg_info "Creating Backup"
tar -czf "/opt/ghostfolio_backup_$(date +%F).tar.gz" \
-C /opt \
--exclude="ghostfolio/node_modules" \
--exclude="ghostfolio/dist" \
ghostfolio
mv /opt/ghostfolio/.env /opt/env.backup
msg_ok "Backup Created"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ghostfolio" "ghostfolio/ghostfolio" "tarball" "latest" "/opt/ghostfolio"
msg_info "Updating Ghostfolio"
mv /opt/env.backup /opt/ghostfolio/.env
cd /opt/ghostfolio
$STD npm ci
$STD npm run build:production
$STD npx prisma migrate deploy
msg_ok "Updated Ghostfolio"
msg_info "Starting Service"
systemctl start ghostfolio
msg_ok "Started Service"
msg_info "Cleaning Up"
$STD npm cache clean --force
msg_ok "Cleanup Completed"
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}:3333${CL}"

54
ct/goaway.sh Normal file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/pommee/goaway
APP="GoAway"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/goaway ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "goaway" "pommee/goaway"; then
msg_info "Stopping Services"
systemctl stop goaway
msg_ok "Stopped Services"
fetch_and_deploy_gh_release "goaway" "pommee/goaway" "prebuild" "latest" "/opt/goaway" "goaway_*_linux_amd64.tar.gz"
msg_info "Starting Services"
systemctl start goaway
msg_ok "Started Services"
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

6
ct/headers/ghostfolio Normal file
View File

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

6
ct/headers/goaway Normal file
View File

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

6
ct/headers/joplin-server Normal file
View File

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

6
ct/headers/myip Normal file
View File

@@ -0,0 +1,6 @@
__ ___ ________
/ |/ /_ __/ _/ __ \
/ /|_/ / / / // // /_/ /
/ / / / /_/ // // ____/
/_/ /_/\__, /___/_/
/____/

View File

@@ -1,6 +0,0 @@
____ __ _
/ __ \___ / /_(_)___
/ /_/ / _ \/ __/ / __ \
/ ____/ __/ /_/ / /_/ /
/_/ \___/\__/_/\____/

View File

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

6
ct/headers/upsnap Normal file
View File

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

6
ct/headers/verdaccio Normal file
View File

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

6
ct/headers/warracker Normal file
View File

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

View File

@@ -53,3 +53,5 @@ 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}Headscale API: ${IP}/api (no Frontend) | headscale-admin: http://${IP}/admin/${CL}"

View File

@@ -74,7 +74,7 @@ function update_script() {
done
msg_ok "Image-processing libraries up to date"
fi
RELEASE="1.142.1"
RELEASE="2.0.1"
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
msg_info "Stopping Services"
systemctl stop immich-web
@@ -158,6 +158,7 @@ EOF
cd "$SRC_DIR"/machine-learning
mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
chown immich:immich ./uv.lock
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
if [[ -f ~/.openvino ]]; then
msg_info "Updating HW-accelerated machine-learning"
@@ -190,6 +191,7 @@ EOF
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
$STD apt clean -y
msg_ok "Cleaned"
systemctl restart immich-ml immich-web
fi

62
ct/joplin-server.sh Normal file
View File

@@ -0,0 +1,62 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://joplinapp.org/
APP="Joplin-Server"
var_tags="${var_tags:-notes}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/joplin-server ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "joplin-server" "laurent22/joplin"; then
msg_info "Stopping Services"
systemctl stop joplin-server
msg_ok "Stopped Services"
fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
msg_info "Updating ${APP}"
cd /opt/joplin-server
sed -i "/onenote-converter/d" packages/lib/package.json
$STD yarn config set --home enableTelemetry 0
export BUILD_SEQUENCIAL=1
$STD yarn install --inline-builds
msg_ok "Updated ${APP}"
msg_info "Starting Services"
systemctl start joplin-server
msg_ok "Started Services"
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:22300${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -29,23 +29,24 @@ function update_script() {
exit
fi
msg_info "Stopping ${APP}"
msg_info "Stopping Service"
systemctl stop litellm
msg_ok "Stopped ${APP}"
msg_ok "Stopped Service"
VENV_PATH="/opt/litellm/.venv"
PYTHON_VERSION="3.13" setup_uv
msg_info "Updating $APP"
msg_info "Updating LiteLLM"
$STD "$VENV_PATH/bin/python" -m pip install --upgrade litellm[proxy] prisma
msg_ok "LiteLLM updated"
msg_info "Updating DB Schema"
$STD uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
msg_ok "DB Schema Updated"
msg_info "Starting ${APP}"
msg_info "Starting Service"
systemctl start litellm
msg_ok "Started ${APP}"
msg_ok "Started Service"
msg_ok "Updated Successfully"
exit
}

View File

@@ -35,12 +35,15 @@ function update_script() {
msg_info "Creating Backup"
cp /opt/mmdl/.env /opt/mmdl.env
rm -rf /opt/mmdl
msg_ok "Backup Created"
fetch_and_deploy_gh_release "mmdl" "intri-in/manage-my-damn-life-nextjs" "tarball"
NODE_VERSION="22" setup_nodejs
msg_info "Configuring ${APP}"
cd /opt/mmdl
export NEXT_TELEMETRY_DISABLED=1
$STD npm install
$STD npm run migrate
$STD npm run build

View File

@@ -29,59 +29,53 @@ function update_script() {
exit
fi
msg_info "Stopping ${APP} Service"
systemctl stop metube
msg_ok "Stopped ${APP} Service"
msg_info "Backing up Old Installation"
if [[ -d /opt/metube_bak ]]; then
rm -rf /opt/metube_bak
if [[ $(echo ":$PATH:" != *":/usr/local/bin:"*) ]]; then
echo 'export PATH="/usr/local/bin:$PATH"' >>~/.bashrc
source ~/.bashrc
if ! command -v deno &>/dev/null; then
export DENO_INSTALL="/usr/local"
curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y
else
$STD deno upgrade
fi
fi
mv /opt/metube /opt/metube_bak
msg_ok "Backup created"
msg_info "Cloning Latest ${APP} Release"
$STD git clone https://github.com/alexta69/metube /opt/metube
msg_ok "Cloned ${APP}"
if check_for_gh_release "metube" "alexta69/metube"; then
msg_info "Stopping ${APP} Service"
systemctl stop metube
msg_ok "Stopped ${APP} Service"
msg_info "Building Frontend"
cd /opt/metube/ui
$STD npm install
$STD node_modules/.bin/ng build
msg_ok "Built Frontend"
msg_info "Backing up Old Installation"
if [[ -d /opt/metube_bak ]]; then
rm -rf /opt/metube_bak
fi
mv /opt/metube /opt/metube_bak
msg_ok "Backup created"
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest"
msg_info "Setting up Python Environment (uv)"
$STD uv venv /opt/metube/.venv
$STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
$STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
$STD /opt/metube/.venv/bin/python -m pip install pipenv
msg_ok "Python Environment Ready"
msg_info "Building Frontend"
cd /opt/metube/ui
$STD npm install
$STD node_modules/.bin/ng build
msg_ok "Built Frontend"
msg_info "Installing Backend Requirements"
cd /opt/metube
$STD /opt/metube/.venv/bin/pipenv install
msg_ok "Installed Backend"
msg_info "Restoring Environment File"
if [[ -f /opt/metube_bak/.env ]]; then
cp /opt/metube_bak/.env /opt/metube/.env
fi
msg_ok "Restored .env"
if [[ ! -d /opt/metube/.venv ]]; then
msg_info "Migrating to uv-based environment"
PYTHON_VERSION="3.13" setup_uv
$STD uv venv /opt/metube/.venv
$STD /opt/metube/.venv/bin/python -m ensurepip --upgrade
$STD /opt/metube/.venv/bin/python -m pip install --upgrade pip
$STD /opt/metube/.venv/bin/python -m pip install pipenv
$STD /opt/metube/.venv/bin/pipenv install
$STD /opt/metube/.venv/bin/pipenv update yt-dlp
msg_info "Patching systemd Service"
cat <<EOF >/etc/systemd/system/metube.service
msg_info "Installing Backend Requirements"
cd /opt/metube
$STD uv sync
msg_ok "Installed Backend"
msg_info "Restoring Environment File"
if [[ -f /opt/metube_bak/.env ]]; then
cp /opt/metube_bak/.env /opt/metube/.env
fi
msg_ok "Restored .env"
if grep -q 'pipenv' /etc/systemd/system/metube.service; then
msg_info "Patching systemd Service"
cat <<EOF >/etc/systemd/system/metube.service
[Unit]
Description=Metube - YouTube Downloader
After=network.target
@@ -90,30 +84,31 @@ After=network.target
Type=simple
WorkingDirectory=/opt/metube
EnvironmentFile=/opt/metube/.env
ExecStart=/opt/metube/.venv/bin/pipenv run python3 app/main.py
ExecStart=/opt/metube/.venv/bin/python3 app/main.py
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF
msg_ok "Patched systemd Service"
msg_ok "Patched systemd Service"
fi
$STD systemctl daemon-reload
msg_ok "Service Updated"
msg_info "Cleaning up"
rm -rf /opt/metube_bak
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned Up"
msg_info "Starting ${APP} Service"
systemctl start metube
sleep 1
msg_ok "Started ${APP} Service"
msg_ok "Updated Successfully!"
fi
$STD systemctl daemon-reload
msg_ok "Service Updated"
msg_info "Cleaning up"
rm -rf /opt/metube_bak
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned Up"
msg_info "Starting ${APP} Service"
systemctl enable -q --now metube
sleep 1
msg_ok "Started ${APP} Service"
msg_ok "Updated Successfully!"
}
start

View File

@@ -27,6 +27,9 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
if check_for_gh_release "monica" "monicahq/monica"; then
msg_info "Stopping Service"
systemctl stop apache2
@@ -43,6 +46,7 @@ function update_script() {
cp -r /opt/monica-backup/.env /opt/monica
cp -r /opt/monica-backup/storage/* /opt/monica/storage/
$STD composer install --no-interaction --no-dev
$STD yarn config set ignore-engines true
$STD yarn install
$STD yarn run production
$STD php artisan monica:update --force

55
ct/myip.sh Normal file
View File

@@ -0,0 +1,55 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ipcheck.ing/
APP="MyIP"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/myip ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "myip" "jason5ng32/MyIP"; then
msg_info "Stopping Services"
systemctl stop myip
msg_ok "Stopped Services"
cp /opt/myip/.env /opt
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "myip" "jason5ng32/MyIP" "tarball"
mv /opt/.env /opt/myip
msg_info "Starting Services"
systemctl start myip
msg_ok "Started Services"
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:18966${CL}"

View File

@@ -41,7 +41,8 @@ EOF
NODE_VERSION="22" setup_nodejs
msg_info "Updating ${APP} LXC"
$STD npm update -g n8n
rm -rf /usr/lib/node_modules/.n8n-* /usr/lib/node_modules/n8n
$STD npm install -g n8n --force
systemctl restart n8n
msg_ok "Updated Successfully"
exit

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ntfy.sh/
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -23,13 +23,31 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; then
if [[ ! -d /etc/ntfy ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if [ -f /etc/apt/keyrings/archive.heckel.io.gpg ]; then
msg_info "Correcting old Ntfy Repository"
rm -f /etc/apt/keyrings/archive.heckel.io.gpg
rm -f /etc/apt/sources.list.d/archive.heckel.io.list
rm -f /etc/apt/sources.list.d/archive.heckel.io.list.bak
rm -f /etc/apt/sources.list.d/archive.heckel.io.sources
curl -fsSL -o /etc/apt/keyrings/ntfy.gpg https://archive.ntfy.sh/apt/keyring.gpg
cat <<'EOF' >/etc/apt/sources.list.d/ntfy.sources
Types: deb
URIs: https://archive.ntfy.sh/apt/
Suites: stable
Components: main
Signed-By: /etc/apt/keyrings/ntfy.gpg
EOF
msg_ok "Corrected old Ntfy Repository"
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
$STD apt update
$STD apt -y upgrade
msg_ok "Updated $APP LXC"
exit
}
@@ -41,4 +59,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -28,6 +28,13 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit 1
fi
if ! [[ $(dpkg -s python3-lxml-html-clean 2>/dev/null) ]]; then
$STD apt-get install python3-lxml
curl -fsSL "http://archive.ubuntu.com/ubuntu/pool/universe/l/lxml-html-clean/python3-lxml-html-clean_0.1.1-1_all.deb" -o /opt/python3-lxml-html-clean.deb
$STD dpkg -i /opt/python3-lxml-html-clean.deb
rm -f /opt/python3-lxml-html-clean.deb
fi
RELEASE=$(curl -fsSL https://nightly.odoo.com/ | grep -oE 'href="[0-9]+\.[0-9]+/nightly"' | head -n1 | cut -d'"' -f2 | cut -d/ -f1)
LATEST_VERSION=$(curl -fsSL "https://nightly.odoo.com/${RELEASE}/nightly/deb/" |
grep -oP "odoo_${RELEASE}\.\d+_all\.deb" |

View File

@@ -36,7 +36,7 @@ function update_script() {
msg_info "Stopping Service"
systemctl stop ollama
msg_ok "Stopped Service"
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
curl -fsSLO -C - https://ollama.com/download/ollama-linux-amd64.tgz
rm -rf /usr/lib/ollama
rm -rf /usr/bin/ollama
tar -C /usr -xzf ollama-linux-amd64.tgz
@@ -64,7 +64,7 @@ function update_script() {
fi
systemctl stop open-webui.service
$STD npm install --force
export NODE_OPTIONS="--max-old-space-size=3584"
export NODE_OPTIONS="--max-old-space-size=6000"
$STD npm run build
cd ./backend
$STD pip install -r requirements.txt -U

View File

@@ -28,6 +28,8 @@ function update_script() {
exit
fi
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
if check_for_gh_release "outline" "outline/outline"; then
msg_info "Stopping Services"
systemctl stop outline
@@ -37,7 +39,7 @@ function update_script() {
cp /opt/outline/.env /opt
msg_ok "Backup created"
fetch_and_deploy_gh_release "outline" "outline/outline" "tarball"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "outline" "outline/outline" "tarball"
msg_info "Updating ${APP}"
cd /opt/outline

View File

@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Overseerr"
var_tags="${var_tags:-media}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"

View File

@@ -39,7 +39,7 @@ function update_script() {
if check_for_gh_release "paymenter" "paymenter/paymenter"; then
msg_info "Updating ${APP}"
cd /opt/paymenter
$STD php artisan p:upgrade --no-interaction
$STD php artisan app:upgrade --no-interaction
echo "${CHECK_UPDATE_RELEASE}" >~/.paymenter
msg_ok "Updated Successfully"
fi

View File

@@ -32,8 +32,10 @@ function update_script() {
systemctl stop plant-it
msg_ok "Stopped $APP"
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "latest" "/opt/plant-it/backend" "server.jar"
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "latest" "/opt/plant-it/frontend" "client.tar.gz"
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "0.10.0" "/opt/plant-it/backend" "server.jar"
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "0.10.0" "/opt/plant-it/frontend" "client.tar.gz"
msg_warn "Application is updated to latest Web version (v0.10.0). There will be no more updates available."
msg_warn "Please read: https://github.com/MDeLuise/plant-it/releases/tag/1.0.0"
msg_info "Starting $APP"
systemctl start plant-it

View File

@@ -40,7 +40,10 @@ function update_script() {
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
ln -sf /opt/pulse/bin/pulse /usr/local/bin/pulse
chown -R pulse:pulse /etc/pulse /opt/pulse
mkdir -p /etc/pulse
chown pulse:pulse /etc/pulse
chown -R pulse:pulse /opt/pulse
chmod 700 /etc/pulse
if [[ -f "$SERVICE_PATH"/pulse-backend.service ]]; then
mv "$SERVICE_PATH"/pulse-backend.service "$SERVICE_PATH"/pulse.service
fi

View File

@@ -1,17 +1,18 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://petio.tv/
# Source: https://www.debian.org/
APP="Petio"
var_tags="${var_tags:-media}"
APP="PVE-Scripts-Local"
var_tags="${var_tags:-pve-scritps-local}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-4}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-20.04}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
@@ -22,16 +23,11 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/Petio ]]; then
if [[ ! -d /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP"
systemctl stop petio.service
curl -fsSL https://petio.tv/releases/latest -o petio-latest.zip
$STD unzip petio-latest.zip -d /opt/Petio
systemctl start petio.service
msg_ok "Updated $APP"
msg_info "No Update function implementd"
exit
}
@@ -42,4 +38,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7777${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -42,7 +42,7 @@ function update_script() {
mv /opt/tandoor /opt/tandoor.bak
msg_ok "Backup Created"
NODE_VERSION="20" NODE_MODULE="yarn" setup_nodejs
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -33,22 +33,23 @@ function update_script() {
systemctl stop tracktor
msg_ok "Stopped Service"
msg_info "Creating Backup"
cp /opt/tracktor/app/backend/.env /opt/tracktor.env
msg_ok "Created Backup"
msg_info "Correcting Services"
if [ -f /opt/tracktor/app/backend/.env ]; then
mv /opt/tracktor/app/backend/.env /opt/tracktor.env
echo 'AUTH_PIN=123456' >> /opt/tracktor.env
sed -i 's|^EnvironmentFile=.*|EnvironmentFile=/opt/tracktor.env|' /etc/systemd/system/tracktor.service
systemctl daemon-reload
fi
msg_ok "Corrected Services"
setup_nodejs
fetch_and_deploy_gh_release "tracktor" "javedh-dev/tracktor" "tarball" "latest" "/opt/tracktor"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tracktor" "javedh-dev/tracktor" "tarball" "latest" "/opt/tracktor"
msg_info "Updating ${APP}"
msg_info "Updating tracktor"
cd /opt/tracktor
$STD npm install
$STD npm run build
msg_ok "Updated $APP"
msg_info "Restoring Backup"
cp /opt/tracktor.env /opt/tracktor/app/backend/.env
msg_ok "Restored Backup"
msg_ok "Updated tracktor"
msg_info "Starting Service"
systemctl start tracktor

53
ct/upsnap.sh Normal file
View File

@@ -0,0 +1,53 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/seriousm4x/UpSnap
APP="UpSnap"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/upsnap ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "upsnap" "seriousm4x/UpSnap"; then
msg_info "Stopping Services"
systemctl stop upsnap
msg_ok "Stopped Services"
fetch_and_deploy_gh_release "upsnap" "seriousm4x/UpSnap" "prebuild" "latest" "/opt/upsnap" "UpSnap_*_linux_amd64.zip"
msg_info "Starting Services"
systemctl start upsnap
msg_ok "Started Services"
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

49
ct/verdaccio.sh Normal file
View File

@@ -0,0 +1,49 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: BrynnJKnight
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://verdaccio.org/
APP="Verdaccio"
var_tags="${var_tags:-dev-tools;npm;registry}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/verdaccio.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating LXC Container"
$STD apt update
$STD apt -y upgrade
msg_ok "Updated LXC Container"
NODE_VERSION="22" NODE_MODULE="verdaccio" setup_nodejs
systemctl restart verdaccio
msg_ok "Updated Successfully"
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}:4873${CL}"

63
ct/warracker.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: BvdBerg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/sassanix/Warracker/
APP="Warracker"
var_tags="${var_tags:-warranty}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/warracker ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "warracker" "sassanix/Warracker"; then
msg_info "Stopping Services"
systemctl stop warrackermigration
systemctl stop warracker
systemctl stop nginx
msg_ok "Stopped Services"
fetch_and_deploy_gh_release "warracker" "sassanix/Warracker" "tarball" "latest" "/opt/warracker"
msg_info "Updating Warracker"
cd /opt/warracker/backend
$STD uv venv .venv
$STD source .venv/bin/activate
$STD uv pip install -r requirements.txt
msg_ok "Updated Warracker"
msg_info "Starting Services"
systemctl start warracker
systemctl start nginx
msg_ok "Started Services"
msg_ok "Updated Successfully"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
@@ -23,37 +23,72 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/zabbix/zabbix_server.conf ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP} Services"
systemctl stop zabbix-server zabbix-agent2
msg_ok "Stopped ${APP} Services"
msg_info "Updating $APP LXC"
. /etc/os-release
if [ "$VERSION_CODENAME" != "trixie" ]; then
msg_error "Unsupported Debian version: $VERSION_CODENAME please upgrade to Debian 13 (Trixie) before updating Zabbix."
exit 1
fi
if systemctl list-unit-files | grep -q zabbix-agent2.service; then
AGENT_SERVICE="zabbix-agent2"
else
AGENT_SERVICE="zabbix-agent"
fi
msg_info "Stopping Services"
systemctl stop zabbix-server $AGENT_SERVICE
msg_ok "Stopped Services"
msg_info "Updating Zabbix"
mkdir -p /opt/zabbix-backup/
cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/
cp -R /usr/share/zabbix/ /opt/zabbix-backup/
#cp -R /usr/share/zabbix-* /opt/zabbix-backup/ Remove temporary
rm -Rf /etc/apt/sources.list.d/zabbix.list
cd /tmp
curl -fsSL "$(curl -fsSL https://repo.zabbix.com/zabbix/ |
grep -oP '(?<=href=")[0-9]+\.[0-9]+(?=/")' | sort -V | tail -n1 |
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian12_all.deb")" \
-o /tmp/zabbix-release_latest+debian12_all.deb
$STD dpkg -i zabbix-release_latest+debian12_all.deb
$STD apt-get update
$STD apt-get install --only-upgrade zabbix-server-pgsql zabbix-frontend-php zabbix-agent2 zabbix-agent2-plugin-*
xargs -I{} echo "https://repo.zabbix.com/zabbix/{}/release/debian/pool/main/z/zabbix-release/zabbix-release_latest+debian13_all.deb")" \
-o /tmp/zabbix-release_latest+debian13_all.deb
$STD dpkg -i zabbix-release_latest+debian13_all.deb
$STD apt update
msg_info "Starting ${APP} Services"
systemctl start zabbix-server zabbix-agent2
$STD apt install --only-upgrade zabbix-server-pgsql zabbix-frontend-php php8.4-pgsql
if [ "$AGENT_SERVICE" = "zabbix-agent2" ]; then
$STD apt install --only-upgrade zabbix-agent2 zabbix-agent2-plugin-postgresql
if [ -f /etc/zabbix/zabbix_agent2.d/plugins.d/nvidia.conf ]; then
sed -i 's|^Plugins.NVIDIA.System.Path=.*|# Plugins.NVIDIA.System.Path=/usr/libexec/zabbix/zabbix-agent2-plugin-nvidia-gpu|' \
/etc/zabbix/zabbix_agent2.d/plugins.d/nvidia.conf
fi
else
$STD apt install --only-upgrade zabbix-agent
fi
if command -v fping >/dev/null 2>&1; then
FPING_PATH=$(command -v fping)
sed -i "s|^#\?FpingLocation=.*|FpingLocation=$FPING_PATH|" /etc/zabbix/zabbix_server.conf
fi
if command -v fping6 >/dev/null 2>&1; then
FPING6_PATH=$(command -v fping6)
sed -i "s|^#\?Fping6Location=.*|Fping6Location=$FPING6_PATH|" /etc/zabbix/zabbix_server.conf
fi
msg_ok "Updated Zabbix"
msg_info "Starting Services"
systemctl start zabbix-server $AGENT_SERVICE
systemctl restart apache2
msg_ok "Started ${APP} Services"
msg_ok "Started Services"
msg_info "Cleaning Up"
rm -rf /tmp/zabbix-release_latest+debian12_all.deb
rm -rf /tmp/zabbix-release_latest+debian13_all.deb
msg_ok "Cleaned"
msg_ok "Updated Successfully"
exit

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE LXC Tag",
"name": "PVE LXC Tag",
"slug": "add-iptag",
"categories": [
1

View File

@@ -23,7 +23,7 @@
"ram": 2048,
"hdd": 4,
"os": "debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -20,7 +20,7 @@
"script": "ct/booklore.sh",
"resources": {
"cpu": 3,
"ram": 2048,
"ram": 3072,
"hdd": 7,
"os": "debian",
"version": "12"

View File

@@ -21,7 +21,7 @@
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"hdd": 6,
"os": "debian",
"version": "12"
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE LXC Cleaner",
"name": "PVE LXC Cleaner",
"slug": "clean-lxcs",
"categories": [
1

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox Clean Orphaned LVM",
"name": "PVE Clean Orphaned LVM",
"slug": "clean-orphaned-lvm",
"categories": [
1

View File

@@ -32,5 +32,10 @@
"username": null,
"password": null
},
"notes": []
"notes": [
{
"type": "info",
"text": "The file `/etc/sysconfig/CosmosCloud` is optional. If you need custom settings, you can create it yourself."
}
]
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE Cron LXC Updater",
"name": "PVE Cron LXC Updater",
"slug": "cron-update-lxcs",
"categories": [
1
@@ -13,7 +13,7 @@
"website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
"config_path": "",
"description": "This script will add/remove a crontab schedule that updates all LXCs every Sunday at midnight.",
"description": "This script will add/remove a crontab schedule that updates the operating system of all LXCs every Sunday at midnight.",
"install_methods": [
{
"type": "default",

View File

@@ -39,6 +39,10 @@
{
"type": "info",
"text": "Synapse-Admin is running on port 5173"
},
{
"type": "info",
"text": "For bridges Installation methods (WhatsApp, Signal, Discord, etc.), see: ´https://docs.mau.fi/bridges/go/setup.html´"
}
]
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE LXC Filesystem Trim",
"name": "PVE LXC Filesystem Trim",
"slug": "fstrim",
"categories": [
1

View File

@@ -0,0 +1,52 @@
{
"name": "Ghostfolio",
"slug": "ghostfolio",
"categories": [
23
],
"date_created": "2025-09-29",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3333,
"documentation": "https://github.com/ghostfolio/ghostfolio?tab=readme-ov-file#self-hosting",
"website": "https://ghostfol.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/ghostfolio.webp",
"config_path": "/opt/ghostfolio/.env",
"description": "Ghostfolio is an open source wealth management software built with web technology. The application empowers busy people to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions.",
"install_methods": [
{
"type": "default",
"script": "ct/ghostfolio.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 8,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Create your first user account by visiting the web interface and clicking 'Get Started'. The first user will automatically get admin privileges.",
"type": "info"
},
{
"text": "Database and Redis credentials: `cat ~/ghostfolio.creds`",
"type": "info"
},
{
"text": "Optional: CoinGecko API keys can be added during installation or later in the .env file for enhanced cryptocurrency data.",
"type": "info"
},
{
"text": "Build process requires 4GB RAM (runtime: ~2GB). A temporary swap file will be created automatically if insufficient memory is detected.",
"type": "warning"
}
]
}

View File

@@ -0,0 +1,40 @@
{
"name": "GoAway",
"slug": "goaway",
"categories": [
5
],
"date_created": "2025-09-25",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://github.com/pommee/goaway#configuration-file",
"config_path": "/opt/goaway/config/settings.yaml",
"website": "https://github.com/pommee/goaway",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/goaway.webp",
"description": "Lightweight DNS sinkhole written in Go with a modern dashboard client. Very good looking new alternative to Pi-Hole and Adguard Home.",
"install_methods": [
{
"type": "default",
"script": "ct/goaway.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 4,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Type `cat ~/goaway.creds` to see login credentials.",
"type": "info"
}
]
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE Host Backup",
"name": "PVE Host Backup",
"slug": "host-backup",
"categories": [
1

View File

@@ -0,0 +1,40 @@
{
"name": "Joplin Server",
"slug": "joplin-server",
"categories": [
12
],
"date_created": "2025-09-24",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 22300,
"documentation": "https://joplinapp.org/help/",
"config_path": "/opt/joplin-server/.env",
"website": "https://joplinapp.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/joplin.webp",
"description": "Joplin - the privacy-focused note taking app with sync capabilities for Windows, macOS, Linux, Android and iOS.",
"install_methods": [
{
"type": "default",
"script": "ct/joplin-server.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 20,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin@localhost",
"password": "admin"
},
"notes": [
{
"text": "Application can take some time to build, depending on your host speed. Please be patient.",
"type": "info"
}
]
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE Kernel Clean",
"name": "PVE Kernel Clean",
"slug": "kernel-clean",
"categories": [
1

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE Kernel Pin",
"name": "PVE Kernel Pin",
"slug": "kernel-pin",
"categories": [
1

View File

@@ -23,7 +23,7 @@
"ram": 2048,
"hdd": 4,
"os": "Debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -1,5 +1,5 @@
{
"name": "Container LXC Deletion",
"name": "PVE LXC Deletion",
"slug": "lxc-delete",
"categories": [
1

View File

@@ -1,31 +1,186 @@
{
"categories": [
{ "name": "Proxmox & Virtualization", "id": 1, "sort_order": 1.0, "description": "Tools and scripts to manage Proxmox VE and virtualization platforms effectively." },
{ "name": "Operating Systems", "id": 2, "sort_order": 2.0, "description": "Scripts for deploying and managing various operating systems." },
{ "name": "Containers & Docker", "id": 3, "sort_order": 3.0, "description": "Solutions for containerization using Docker and related technologies." },
{ "name": "Network & Firewall", "id": 4, "sort_order": 4.0, "description": "Enhance network security and configure firewalls with ease." },
{ "name": "Adblock & DNS", "id": 5, "sort_order": 5.0, "description": "Optimize your network with DNS and ad-blocking solutions." },
{ "name": "Authentication & Security", "id": 6, "sort_order": 6.0, "description": "Secure your infrastructure with authentication and security tools." },
{ "name": "Backup & Recovery", "id": 7, "sort_order": 7.0, "description": "Reliable backup and recovery scripts to protect your data." },
{ "name": "Databases", "id": 8, "sort_order": 8.0, "description": "Deploy and manage robust database systems with ease." },
{ "name": "Monitoring & Analytics", "id": 9, "sort_order": 9.0, "description": "Monitor system performance and analyze data seamlessly." },
{ "name": "Dashboards & Frontends", "id": 10, "sort_order": 10.0, "description": "Create interactive dashboards and user-friendly frontends." },
{ "name": "Files & Downloads", "id": 11, "sort_order": 11.0, "description": "Manage file sharing and downloading solutions efficiently." },
{ "name": "Documents & Notes", "id": 12, "sort_order": 12.0, "description": "Organize and manage documents and note-taking tools." },
{ "name": "Media & Streaming", "id": 13, "sort_order": 13.0, "description": "Stream and manage media effortlessly across devices." },
{ "name": "*Arr Suite", "id": 14, "sort_order": 14.0, "description": "Automated media management with the popular *Arr suite tools." },
{ "name": "NVR & Cameras", "id": 15, "sort_order": 15.0, "description": "Manage network video recorders and camera setups." },
{ "name": "IoT & Smart Home", "id": 16, "sort_order": 16.0, "description": "Control and automate IoT devices and smart home systems." },
{ "name": "ZigBee, Z-Wave & Matter", "id": 17, "sort_order": 17.0, "description": "Solutions for ZigBee, Z-Wave, and Matter-based device management." },
{ "name": "MQTT & Messaging", "id": 18, "sort_order": 18.0, "description": "Set up reliable messaging and MQTT-based communication systems." },
{ "name": "Automation & Scheduling", "id": 19, "sort_order": 19.0, "description": "Automate tasks and manage scheduling with powerful tools." },
{ "name": "AI / Coding & Dev-Tools", "id": 20, "sort_order": 20.0, "description": "Leverage AI and developer tools for smarter coding workflows." },
{ "name": "Webservers & Proxies", "id": 21, "sort_order": 21.0, "description": "Deploy and configure web servers and proxy solutions." },
{ "name": "Bots & ChatOps", "id": 22, "sort_order": 22.0, "description": "Enhance collaboration with bots and ChatOps integrations." },
{ "name": "Finance & Budgeting", "id": 23, "sort_order": 23.0, "description": "Track expenses and manage budgets efficiently." },
{ "name": "Gaming & Leisure", "id": 24, "sort_order": 24.0, "description": "Scripts for gaming servers and leisure-related tools." },
{ "name": "Business & ERP", "id": 25, "sort_order": 25.0, "description": "Streamline business operations with ERP and management tools." },
{ "name": "Miscellaneous", "id": 0, "sort_order": 99.0, "description": "General scripts and tools that don't fit into other categories." }
]
"categories": [
{
"name": "Proxmox & Virtualization",
"id": 1,
"sort_order": 1.0,
"description": "Tools and scripts to manage Proxmox VE and virtualization platforms effectively.",
"icon": "server"
},
{
"name": "Operating Systems",
"id": 2,
"sort_order": 2.0,
"description": "Scripts for deploying and managing various operating systems.",
"icon": "monitor"
},
{
"name": "Containers & Docker",
"id": 3,
"sort_order": 3.0,
"description": "Solutions for containerization using Docker and related technologies.",
"icon": "box"
},
{
"name": "Network & Firewall",
"id": 4,
"sort_order": 4.0,
"description": "Enhance network security and configure firewalls with ease.",
"icon": "shield"
},
{
"name": "Adblock & DNS",
"id": 5,
"sort_order": 5.0,
"description": "Optimize your network with DNS and ad-blocking solutions.",
"icon": "ban"
},
{
"name": "Authentication & Security",
"id": 6,
"sort_order": 6.0,
"description": "Secure your infrastructure with authentication and security tools.",
"icon": "lock"
},
{
"name": "Backup & Recovery",
"id": 7,
"sort_order": 7.0,
"description": "Reliable backup and recovery scripts to protect your data.",
"icon": "archive"
},
{
"name": "Databases",
"id": 8,
"sort_order": 8.0,
"description": "Deploy and manage robust database systems with ease.",
"icon": "database"
},
{
"name": "Monitoring & Analytics",
"id": 9,
"sort_order": 9.0,
"description": "Monitor system performance and analyze data seamlessly.",
"icon": "bar-chart"
},
{
"name": "Dashboards & Frontends",
"id": 10,
"sort_order": 10.0,
"description": "Create interactive dashboards and user-friendly frontends.",
"icon": "layout"
},
{
"name": "Files & Downloads",
"id": 11,
"sort_order": 11.0,
"description": "Manage file sharing and downloading solutions efficiently.",
"icon": "download"
},
{
"name": "Documents & Notes",
"id": 12,
"sort_order": 12.0,
"description": "Organize and manage documents and note-taking tools.",
"icon": "file-text"
},
{
"name": "Media & Streaming",
"id": 13,
"sort_order": 13.0,
"description": "Stream and manage media effortlessly across devices.",
"icon": "play"
},
{
"name": "*Arr Suite",
"id": 14,
"sort_order": 14.0,
"description": "Automated media management with the popular *Arr suite tools.",
"icon": "tv"
},
{
"name": "NVR & Cameras",
"id": 15,
"sort_order": 15.0,
"description": "Manage network video recorders and camera setups.",
"icon": "camera"
},
{
"name": "IoT & Smart Home",
"id": 16,
"sort_order": 16.0,
"description": "Control and automate IoT devices and smart home systems.",
"icon": "home"
},
{
"name": "ZigBee, Z-Wave & Matter",
"id": 17,
"sort_order": 17.0,
"description": "Solutions for ZigBee, Z-Wave, and Matter-based device management.",
"icon": "radio"
},
{
"name": "MQTT & Messaging",
"id": 18,
"sort_order": 18.0,
"description": "Set up reliable messaging and MQTT-based communication systems.",
"icon": "message-circle"
},
{
"name": "Automation & Scheduling",
"id": 19,
"sort_order": 19.0,
"description": "Automate tasks and manage scheduling with powerful tools.",
"icon": "clock"
},
{
"name": "AI / Coding & Dev-Tools",
"id": 20,
"sort_order": 20.0,
"description": "Leverage AI and developer tools for smarter coding workflows.",
"icon": "code"
},
{
"name": "Webservers & Proxies",
"id": 21,
"sort_order": 21.0,
"description": "Deploy and configure web servers and proxy solutions.",
"icon": "globe"
},
{
"name": "Bots & ChatOps",
"id": 22,
"sort_order": 22.0,
"description": "Enhance collaboration with bots and ChatOps integrations.",
"icon": "bot"
},
{
"name": "Finance & Budgeting",
"id": 23,
"sort_order": 23.0,
"description": "Track expenses and manage budgets efficiently.",
"icon": "dollar-sign"
},
{
"name": "Gaming & Leisure",
"id": 24,
"sort_order": 24.0,
"description": "Scripts for gaming servers and leisure-related tools.",
"icon": "gamepad-2"
},
{
"name": "Business & ERP",
"id": 25,
"sort_order": 25.0,
"description": "Streamline business operations with ERP and management tools.",
"icon": "building"
},
{
"name": "Miscellaneous",
"id": 0,
"sort_order": 99.0,
"description": "General scripts and tools that don't fit into other categories.",
"icon": "more-horizontal"
}
]
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE Processor Microcode",
"name": "PVE Processor Microcode",
"slug": "microcode",
"categories": [
1

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE Monitor-All",
"name": "PVE Monitor-All",
"slug": "monitor-all",
"categories": [
1

View File

@@ -0,0 +1,35 @@
{
"name": "MyIP",
"slug": "myip",
"categories": [
4
],
"date_created": "2025-09-29",
"type": "ct",
"updateable": true,
"privileged": false,
"config_path": "/opt/myip/.env",
"interface_port": 18966,
"documentation": "https://github.com/jason5ng32/MyIP#-environment-variable",
"website": "https://ipcheck.ing/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/myip.webp",
"description": "The best IP Toolbox. Easy to check what's your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more!",
"install_methods": [
{
"type": "default",
"script": "ct/myip.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 2,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE Netdata",
"name": "PVE Netdata",
"slug": "netdata",
"categories": [
1

View File

@@ -23,7 +23,7 @@
"ram": 512,
"hdd": 2,
"os": "debian",
"version": "12"
"version": "13"
}
}
],

View File

@@ -31,5 +31,10 @@
"username": null,
"password": null
},
"notes": []
"notes": [
{
"text": "Script contains optional installation of Ollama.",
"type": "info"
}
]
}

View File

@@ -20,7 +20,7 @@
"script": "ct/overseerr.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"ram": 4096,
"hdd": 8,
"os": "debian",
"version": "12"

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox Backup Server Processor Microcode",
"name": "PBS Processor Microcode",
"slug": "pbs-microcode",
"categories": [
1

View File

@@ -1,35 +0,0 @@
{
"name": "Petio",
"slug": "petio",
"categories": [
13
],
"date_created": "2024-06-12",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 7777,
"documentation": "https://docs.petio.tv/",
"website": "https://petio.tv/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/petio.webp",
"config_path": "",
"description": "Petio is a third party companion app available to Plex server owners to allow their users to request, review and discover content.",
"install_methods": [
{
"type": "default",
"script": "ct/petio.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "ubuntu",
"version": "20.04"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -0,0 +1,44 @@
{
"name": "PhpMyAdmin",
"slug": "phpmyadmin",
"categories": [
8
],
"date_created": "2025-10-01",
"type": "addon",
"updateable": true,
"privileged": false,
"interface_port": null,
"documentation": "https://www.phpmyadmin.net/docs/",
"config_path": "Debian/Ubuntu: /var/www/html/phpMyAdmin | Alpine: /usr/share/phpmyadmin",
"website": "https://www.phpmyadmin.net/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/phpmyadmin.webp",
"description": "phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL and MariaDB. Frequently used operations (managing databases, tables, columns, relations, indexes, users, permissions, etc) can be performed via the user interface, while you still have the ability to directly execute any SQL statement.",
"install_methods": [
{
"type": "default",
"script": "tools/addon/phpmyadmin.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Execute within an existing LXC Console",
"type": "warning"
},
{
"text": "To update or uninstall run bash call again",
"type": "info"
}
]
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox Backup Server Post Install",
"name": "PBS Post Install",
"slug": "post-pbs-install",
"categories": [
1
@@ -13,7 +13,7 @@
"website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
"config_path": "",
"description": "The script will give options to Disable the Enterprise Repo, Add/Correct PBS Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Backup Server and Reboot PBS.",
"description": "The script is designed for Proxmox Backup Server (PBS) and will give options to Disable the Enterprise Repo, Add/Correct PBS Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Backup Server and Reboot PBS.",
"install_methods": [
{
"type": "default",

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox Mail Gateway Post Install",
"name": "PMG Post Install",
"slug": "post-pmg-install",
"categories": [
1
@@ -13,7 +13,7 @@
"website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
"config_path": "",
"description": "The script will give options to Disable the Enterprise Repo, Add/Correct PMG Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Mail Gateway and Reboot PMG.",
"description": "The script is designed for Proxmox Mail Gateway and will give options to Disable the Enterprise Repo, Add/Correct PMG Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Mail Gateway and Reboot PMG.",
"install_methods": [
{
"type": "default",

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE Post Install",
"name": "PVE Post Install",
"slug": "post-pve-install",
"categories": [
1

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox Backup Server",
"name": "Proxmox Backup Server (PBS)",
"slug": "proxmox-backup-server",
"categories": [
1

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox Datacenter Manager",
"name": "Proxmox Datacenter Manager (PDM)",
"slug": "proxmox-datacenter-manager",
"categories": [
1

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox Mail Gateway",
"name": "Proxmox Mail Gateway (PMG)",
"slug": "proxmox-mail-gateway",
"categories": [
1

View File

@@ -0,0 +1,35 @@
{
"name": "PVEScriptsLocal",
"slug": "pve-scripts-local",
"categories": [
1
],
"date_created": "2025-10-03",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 3000,
"documentation": "https://github.com/community-scripts/ProxmoxVE-Local",
"config_path": "/opt/PVEScripts-Local/.env",
"website": "https://community-scripts.github.io/ProxmoxVE",
"logo": "https://community-scripts.github.io/ProxmoxVE/logo.png",
"description": "A modern web-based management interface for Proxmox VE (PVE) helper scripts. This tool provides a user-friendly way to discover, download, and execute community-sourced Proxmox scripts locally with real-time terminal output streaming.",
"install_methods": [
{
"type": "default",
"script": "ct/pve-scripts-local.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 4,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE CPU Scaling Governor",
"name": "PVE CPU Scaling Governor",
"slug": "scaling-governor",
"categories": [
1

View File

@@ -10,7 +10,7 @@
"privileged": false,
"interface_port": 3000,
"documentation": "https://tracktor.bytedge.in/introduction.html",
"config_path": "/opt/tracktor/app/server/.env",
"config_path": "/opt/tracktor.env",
"website": "https://tracktor.bytedge.in/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/tracktor.webp",
"description": "Tracktor is an open-source web application for comprehensive vehicle management.\nEasily track fuel consumption, maintenance, insurance, and regulatory documents for all your vehicles in one place.",
@@ -23,17 +23,17 @@
"ram": 1024,
"hdd": 6,
"os": "Debian",
"version": "12"
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
"password": "123456"
},
"notes": [
{
"text": "Please check and update the '/opt/tracktor/app/backend/.env' file if using behind reverse proxy.",
"text": "Please check and update the '/opt/tracktor.env' file if using behind reverse proxy.",
"type": "info"
}
]

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox VE LXC Updater",
"name": "PVE LXC Updater",
"slug": "update-lxcs",
"categories": [
1
@@ -13,7 +13,7 @@
"website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/linuxcontainers.webp",
"config_path": "",
"description": "This script has been created to simplify and speed up the process of updating all LXC containers across various Linux distributions, such as Ubuntu, Debian, Devuan, Alpine Linux, CentOS-Rocky-Alma, Fedora, and ArchLinux. It's designed to automatically skip templates and specific containers during the update, enhancing its convenience and usability.",
"description": "This script has been created to simplify and speed up the process of updating the operating system running inside LXC containers across various Linux distributions, such as Ubuntu, Debian, Devuan, Alpine Linux, CentOS-Rocky-Alma, Fedora, and ArchLinux. It's designed to automatically skip templates and specific containers during the update, enhancing its convenience and usability.",
"install_methods": [
{
"type": "default",
@@ -35,6 +35,10 @@
{
"text": "Execute within the Proxmox shell",
"type": "info"
},
{
"text": "The script updates only the operating system of the LXC container. It DOES NOT update the application installed within the container!",
"type": "warning"
}
]
}

View File

@@ -1,5 +1,5 @@
{
"name": "Proxmox Update Repositories",
"name": "PVE Update Repositories",
"slug": "update-repo",
"categories": [
1

View File

@@ -0,0 +1,40 @@
{
"name": "UpSnap",
"slug": "upsnap",
"categories": [
4
],
"date_created": "2025-09-23",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8090,
"documentation": "https://github.com/seriousm4x/UpSnap/wiki",
"config_path": "",
"website": "https://github.com/seriousm4x/UpSnap",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/upsnap.webp",
"description": "UpSnap is a self-hosted web app that lets you wake up, manage and monitor devices on your network with ease. Built with SvelteKit, Go and PocketBase, it offers a clean dashboard, scheduled wake-ups, device discovery and secure user management.",
"install_methods": [
{
"type": "default",
"script": "ct/upsnap.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 2,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "The first user you register will be the admin user.",
"type": "info"
}
]
}

View File

@@ -0,0 +1,40 @@
{
"name": "Verdaccio",
"slug": "verdaccio",
"categories": [
20
],
"date_created": "2025-09-29",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 4873,
"documentation": "https://verdaccio.org/docs/what-is-verdaccio",
"website": "https://verdaccio.org/",
"logo": "https://verdaccio.org/img/logo/symbol/png/verdaccio-tiny.png",
"config_path": "/opt/verdaccio/config/config.yaml",
"description": "Verdaccio is a lightweight private npm proxy registry built with Node.js. It allows you to host your own npm registry with minimal configuration, providing a private npm repository for your projects. Verdaccio supports npm, yarn, and pnpm, and can cache packages from the public npm registry, allowing for faster installs and protection against npm registry outages. It includes a web interface for browsing packages, authentication and authorization features, and can be easily integrated into your development workflow.",
"install_methods": [
{
"type": "default",
"script": "ct/verdaccio.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 8,
"os": "debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "To create the first user, run: npm adduser --registry http://<container-ip>:4873",
"type": "info"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,40 @@
{
"name": "Warracker",
"slug": "warracker",
"categories": [
12
],
"date_created": "2025-09-29",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": null,
"config_path": "/opt/.env",
"website": "https://warracker.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/warracker.webp",
"description": "Warracker is an open source, self-hostable warranty tracker to monitor expirations, store receipts, files. You own the data, your rules!",
"install_methods": [
{
"type": "default",
"script": "ct/warracker.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "The first user you register will be the admin user.",
"type": "info"
}
]
}

View File

@@ -23,7 +23,7 @@
"ram": 4096,
"hdd": 6,
"os": "debian",
"version": "12"
"version": "13"
}
}
],
@@ -33,11 +33,19 @@
},
"notes": [
{
"text": "Database credentials: `cat zabbix.creds`",
"text": "Database credentials: `cat ~/zabbix.creds`",
"type": "info"
},
{
"text": "Zabbix agent 2 is used by default",
"text": "You can choose between Zabbix agent (classic) and agent2 (modern) during installation",
"type": "info"
},
{
"text": "For agent2 the PostgreSQL plugin is installed by default; all plugins are optional",
"type": "info"
},
{
"text": "If agent2 with NVIDIA plugin is installed in an environment without GPU, the installer disables it automatically",
"type": "info"
}
]

View File

@@ -103,18 +103,22 @@ export default function RootLayout({
<body className={inter.className}>
<ThemeProvider attribute="class" defaultTheme="dark" enableSystem disableTransitionOnChange>
<div className="flex w-full flex-col justify-center">
<Navbar />
<div className="flex min-h-screen flex-col justify-center">
<div className="flex w-full justify-center">
<div className="w-full max-w-[1440px] ">
<QueryProvider>
<NuqsAdapter>{children}</NuqsAdapter>
</QueryProvider>
<Toaster richColors />
<NuqsAdapter>
<QueryProvider>
<Navbar />
<div className="flex min-h-screen flex-col justify-center">
<div className="flex w-full justify-center">
<div className="w-full max-w-[1440px] ">
{children}
<Toaster richColors />
</div>
</div>
<Footer />
</div>
</div>
<Footer />
</div>
</QueryProvider>
</NuqsAdapter>
</div>
</ThemeProvider>
</body>

View File

@@ -1,4 +1,5 @@
import { useCallback, useEffect, useRef, useState } from "react";
import * as Icons from "lucide-react";
import Image from "next/image";
import Link from "next/link";
@@ -9,18 +10,31 @@ import { formattedBadge } from "@/components/command-menu";
import { basePath } from "@/config/site-config";
import { cn } from "@/lib/utils";
function getCategoryIcon(iconName: string) {
// Convert kebab-case to PascalCase for Lucide icon names
const pascalCaseName = iconName
.split("-")
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
.join("");
const IconComponent = (Icons as any)[pascalCaseName];
return IconComponent ? <IconComponent className="size-4 text-[#0083c3] mr-2" /> : null;
}
export default function ScriptAccordion({
items,
selectedScript,
setSelectedScript,
selectedCategory,
setSelectedCategory,
onItemSelect,
}: {
items: Category[];
selectedScript: string | null;
setSelectedScript: (script: string | null) => void;
selectedCategory: string | null;
setSelectedCategory: (category: string | null) => void;
onItemSelect?: () => void;
}) {
const [expandedItem, setExpandedItem] = useState<string | undefined>(undefined);
const linkRefs = useRef<{ [key: string]: HTMLAnchorElement | null }>({});
@@ -65,7 +79,7 @@ export default function ScriptAccordion({
value={expandedItem}
onValueChange={handleAccordionChange}
collapsible
className="overflow-y-scroll max-h-[calc(100vh-225px)] overflow-x-hidden p-2"
className="overflow-y-scroll sm:max-h-[calc(100vh-209px)] overflow-x-hidden p-1"
>
{items.map(category => (
<AccordionItem
@@ -81,10 +95,13 @@ export default function ScriptAccordion({
)}
>
<div className="mr-2 flex w-full items-center justify-between">
<span className="pl-2 text-left">
{category.name}
{" "}
</span>
<div className="flex items-center pl-2 text-left">
{getCategoryIcon(category.icon)}
<span>
{category.name}
{" "}
</span>
</div>
<span className="rounded-full bg-gray-200 px-2 py-1 text-xs text-muted-foreground hover:no-underline dark:bg-blue-800/20">
{category.scripts.length}
</span>
@@ -103,14 +120,14 @@ export default function ScriptAccordion({
query: { id: script.slug, category: category.name },
}}
prefetch={false}
className={`flex cursor-pointer items-center justify-between gap-1 px-1 py-1 text-muted-foreground hover:rounded-lg hover:bg-accent/60 hover:dark:bg-accent/20 ${
selectedScript === script.slug
? "rounded-lg bg-accent font-semibold dark:bg-accent/30 dark:text-white"
: ""
className={`flex cursor-pointer items-center justify-between gap-1 px-1 py-1 text-muted-foreground hover:rounded-lg hover:bg-accent/60 hover:dark:bg-accent/20 ${selectedScript === script.slug
? "rounded-lg bg-accent font-semibold dark:bg-accent/30 dark:text-white"
: ""
}`}
onClick={() => {
handleSelected(script.slug);
setSelectedCategory(category.name);
onItemSelect?.();
}}
ref={(el) => {
linkRefs.current[script.slug] = el;

View File

@@ -2,21 +2,29 @@
import type { Category, Script } from "@/lib/types";
import { cn } from "@/lib/utils";
import ScriptAccordion from "./script-accordion";
type SidebarProps = {
items: Category[];
selectedScript: string | null;
setSelectedScript: (script: string | null) => void;
selectedCategory: string | null;
setSelectedCategory: (category: string | null) => void;
onItemSelect?: () => void;
className?: string;
};
function Sidebar({
items,
selectedScript,
setSelectedScript,
selectedCategory,
setSelectedCategory,
}: {
items: Category[];
selectedScript: string | null;
setSelectedScript: (script: string | null) => void;
selectedCategory: string | null;
setSelectedCategory: (category: string | null) => void;
}) {
onItemSelect,
className,
}: SidebarProps) {
const uniqueScripts = items.reduce((acc, category) => {
for (const script of category.scripts) {
if (!acc.some(s => s.name === script.name)) {
@@ -27,7 +35,7 @@ function Sidebar({
}, [] as Script[]);
return (
<div className="flex min-w-[350px] flex-col sm:max-w-[350px]">
<div className={cn("flex w-full flex-col sm:min-w-[350px] sm:max-w-[350px]", className)}>
<div className="flex items-end justify-between pb-4">
<h1 className="text-xl font-bold">Categories</h1>
<p className="text-xs italic text-muted-foreground">
@@ -43,6 +51,7 @@ function Sidebar({
setSelectedScript={setSelectedScript}
selectedCategory={selectedCategory}
setSelectedCategory={setSelectedCategory}
onItemSelect={onItemSelect}
/>
</div>
</div>

View File

@@ -1,5 +1,5 @@
"use client";
import { useEffect, useState } from "react";
import { Suspense, useEffect, useState } from "react";
import Image from "next/image";
import Link from "next/link";
@@ -8,6 +8,7 @@ import { navbarLinks } from "@/config/site-config";
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip";
import { GitHubStarsButton } from "./animate-ui/components/buttons/github-stars";
import { Button } from "./animate-ui/components/buttons/button";
import MobileSidebar from "./navigation/mobile-sidebar";
import { ThemeToggle } from "./ui/theme-toggle";
import CommandMenu from "./command-menu";
@@ -30,39 +31,45 @@ function Navbar() {
return (
<>
<div
className={`fixed left-0 top-0 z-50 flex w-screen justify-center px-4 xl:px-0 ${
isScrolled ? "glass border-b bg-background/50" : ""
className={`fixed left-0 top-0 z-50 flex w-screen justify-center px-4 xl:px-0 ${isScrolled ? "glass border-b bg-background/50" : ""
}`}
>
<div className="flex h-20 w-full max-w-[1440px] items-center justify-between sm:flex-row">
<Link
href="/"
className="flex cursor-pointer w-full justify-center sm:justify-start flex-row-reverse items-center gap-2 font-semibold sm:flex-row"
className="cursor-pointer w-full justify-center sm:justify-start flex-row-reverse hidden sm:flex items-center gap-2 font-semibold sm:flex-row"
>
<Image height={18} unoptimized width={18} alt="logo" src="/ProxmoxVE/logo.png" className="" />
<span className="hidden md:block">Proxmox VE Helper-Scripts</span>
<span className="">Proxmox VE Helper-Scripts</span>
</Link>
<div className="flex gap-2">
<CommandMenu />
<GitHubStarsButton username="community-scripts" repo="ProxmoxVE" />
{navbarLinks.map(({ href, event, icon, text, mobileHidden }) => (
<TooltipProvider key={event}>
<Tooltip delayDuration={100}>
<TooltipTrigger className={mobileHidden ? "hidden lg:block" : ""}>
<Button variant="ghost" size="icon" asChild>
<Link target="_blank" href={href} data-umami-event={event}>
{icon}
<span className="sr-only">{text}</span>
</Link>
</Button>
</TooltipTrigger>
<TooltipContent side="bottom" className="text-xs">
{text}
</TooltipContent>
</Tooltip>
</TooltipProvider>
))}
<ThemeToggle />
<div className="flex items-center justify-between sm:justify-end gap-2 w-full">
<div className="flex sm:hidden">
<Suspense>
<MobileSidebar />
</Suspense>
</div>
<div className="flex sm:gap-2">
<CommandMenu />
<GitHubStarsButton username="community-scripts" repo="ProxmoxVE" className="hidden md:flex" />
{navbarLinks.map(({ href, event, icon, text, mobileHidden }) => (
<TooltipProvider key={event}>
<Tooltip delayDuration={100}>
<TooltipTrigger className={mobileHidden ? "hidden lg:block" : ""}>
<Button variant="ghost" size="icon" asChild>
<Link target="_blank" href={href} data-umami-event={event}>
{icon}
<span className="sr-only">{text}</span>
</Link>
</Button>
</TooltipTrigger>
<TooltipContent side="bottom" className="text-xs">
{text}
</TooltipContent>
</Tooltip>
</TooltipProvider>
))}
<ThemeToggle />
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,133 @@
"use client";
import { useCallback, useEffect, useState } from "react";
import { usePathname } from "next/navigation";
import { useQueryState } from "nuqs";
import { Menu } from "lucide-react";
import type { Category, Script } from "@/lib/types";
import { ScriptItem } from "@/app/scripts/_components/script-item";
import Sidebar from "@/app/scripts/_components/sidebar";
import { fetchCategories } from "@/lib/data";
import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "../ui/sheet";
import { Button } from "../ui/button";
function MobileSidebar() {
const [isOpen, setIsOpen] = useState(false);
const [isLoading, setIsLoading] = useState(false);
const [categories, setCategories] = useState<Category[]>([]);
const [lastViewedScript, setLastViewedScript] = useState<Script | undefined>(undefined);
const pathname = usePathname();
// Always call the hooks (React hooks can't be conditional)
const [selectedScript, setSelectedScript] = useQueryState("id");
const [selectedCategory, setSelectedCategory] = useQueryState("category");
// For non-scripts pages, we'll manage state locally
const [tempSelectedScript, setTempSelectedScript] = useState<string | null>(null);
const [tempSelectedCategory, setTempSelectedCategory] = useState<string | null>(null);
const isOnScriptsPage = pathname === "/scripts";
const currentSelectedScript = isOnScriptsPage ? selectedScript : tempSelectedScript;
const currentSelectedCategory = isOnScriptsPage ? selectedCategory : tempSelectedCategory;
const loadCategories = useCallback(async () => {
setIsLoading(true);
try {
const response = await fetchCategories();
setCategories(response);
}
catch (error) {
console.error(error);
}
finally {
setIsLoading(false);
}
}, []);
useEffect(() => {
void loadCategories();
}, [loadCategories]);
useEffect(() => {
if (!currentSelectedScript || categories.length === 0) {
return;
}
const scriptMatch = categories
.flatMap(category => category.scripts)
.find(script => script.slug === currentSelectedScript);
setLastViewedScript(scriptMatch);
}, [currentSelectedScript, categories]);
const handleOpenChange = (openState: boolean) => {
setIsOpen(openState);
};
const handleItemSelect = () => {
setIsOpen(false);
};
const hasLinks = categories.length > 0;
return (
<Sheet open={isOpen} onOpenChange={handleOpenChange}>
<SheetTrigger asChild>
<Button
variant="ghost"
size="icon"
aria-label="Open navigation menu"
tabIndex={0}
onKeyDown={(event) => {
if (event.key === "Enter" || event.key === " ") {
setIsOpen(true);
}
}}
>
<Menu className="size-5" aria-hidden="true" />
</Button>
</SheetTrigger>
<SheetHeader className="border-b border-border px-6 pb-4 pt-2 sr-only">
<SheetTitle className="sr-only">Categories</SheetTitle>
</SheetHeader>
<SheetContent side="left" className="flex w-full max-w-xs flex-col gap-4 overflow-hidden px-0 pb-6">
<div className="flex h-full flex-col gap-4 overflow-y-auto">
{isLoading && !hasLinks
? (
<div className="flex w-full flex-col items-center justify-center gap-2 px-6 py-4 text-sm text-muted-foreground">
Loading categories...
</div>
)
: (
<div className="flex flex-col gap-4 px-4">
<Sidebar
items={categories}
selectedScript={currentSelectedScript}
setSelectedScript={isOnScriptsPage ? setSelectedScript : setTempSelectedScript}
selectedCategory={currentSelectedCategory}
setSelectedCategory={isOnScriptsPage ? setSelectedCategory : setTempSelectedCategory}
onItemSelect={handleItemSelect}
/>
</div>
)}
{currentSelectedScript && lastViewedScript
? (
<div className="flex flex-col gap-3 px-4">
<p className="text-sm font-medium">Last Viewed</p>
<ScriptItem
item={lastViewedScript}
setSelectedScript={isOnScriptsPage ? setSelectedScript : setTempSelectedScript}
/>
</div>
)
: null}
</div>
</SheetContent>
</Sheet>
);
}
export default MobileSidebar;

View File

@@ -6,7 +6,7 @@ import { Command as CommandPrimitive } from "cmdk";
import { Search } from "lucide-react";
import * as React from "react";
import { Dialog, DialogContent } from "@/components/ui/dialog";
import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { cn } from "@/lib/utils";
const Command = React.forwardRef<

View File

@@ -1,7 +1,7 @@
import type { Category } from "./types";
export async function fetchCategories() {
const response = await fetch("api/categories");
const response = await fetch(`/ProxmoxVE/api/categories`);
if (!response.ok) {
throw new Error(`Failed to fetch categories: ${response.statusText}`);
}
@@ -10,7 +10,7 @@ export async function fetchCategories() {
}
export async function fetchVersions() {
const response = await fetch(`api/versions`);
const response = await fetch(`/ProxmoxVE/api/versions`);
if (!response.ok) {
throw new Error(`Failed to fetch versions: ${response.statusText}`);
}

View File

@@ -41,6 +41,8 @@ export type Category = {
name: string;
id: number;
sort_order: number;
description: string;
icon: string;
scripts: Script[];
};

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