Compare commits

..

145 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
79c53f72c5 Update CHANGELOG.md (#3543)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 23:10:51 +02:00
Slaviša Arežina
7c83fcecab Fix sqlite3 failing to build (#3542) 2025-03-31 21:52:02 +01:00
Tobias
d266e6a99c Update yt-dlp-webui.json (#3540) 2025-03-31 22:02:25 +02:00
community-scripts-pr-app[bot]
213107e1a1 Update CHANGELOG.md (#3538)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 19:48:34 +02:00
Brock Humblet
dff0c3b713 Update PHP to 8.3 (#3510) 2025-03-31 18:19:36 +02:00
CanbiZ
59ebbd37fa Change Frontend Version Info (#3527)
* Change Frontend Version Info

* Fix

* Update ScriptItem.tsx
2025-03-31 17:46:27 +02:00
community-scripts-pr-app[bot]
e6208a4ac6 Update CHANGELOG.md (#3534)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 17:43:24 +02:00
CanbiZ
6adb811adf core: fix empty header if header in repo exist (#3536) 2025-03-31 17:40:35 +02:00
CanbiZ
b8c5691803 GoMFT: Update Curl Path (#3537)
* GoMFT: Update Curl Path

* Update gomft.sh
2025-03-31 17:39:51 +02:00
CanbiZ
0f5c9dfe42 slskd: fix broken curl (#3533) 2025-03-31 16:39:27 +02:00
community-scripts-pr-app[bot]
65adb8e445 Update versions.json (#3530)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 15:14:29 +02:00
community-scripts-pr-app[bot]
1df0496083 Update versions.json (#3528)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 14:19:22 +02:00
community-scripts-pr-app[bot]
781a383a9b Update .app files (#3526)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-31 13:26:25 +02:00
community-scripts-pr-app[bot]
27ece60f74 Update CHANGELOG.md (#3524) 2025-03-31 12:02:44 +01:00
push-app-to-main[bot]
ca5de7a6ff slskd (#3516) 2025-03-31 12:01:14 +01:00
CanbiZ
04f781c512 NPMPlus: update function & better create handling (user/password) (#3520)
* Update npmplus-install.sh

* Update npmplus.sh
2025-03-31 12:54:40 +02:00
community-scripts-pr-app[bot]
a95403ece7 Update CHANGELOG.md (#3517)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 12:23:41 +02:00
CanbiZ
e7529a9c25 Docmost: Bump NodeJS to 22 & fixed pnpm (#3521)
* Docmost: Bump NodeJS to 22 & fixed pnpm

* Update docmost.sh
2025-03-31 12:16:38 +02:00
CanbiZ
3abb4b0060 Tianji: Bump NodeJS to V22 (#3519)
* Tianji: Bump to NodeJS 22

* NodeJS check & update
2025-03-31 10:01:39 +02:00
Jc Miñarro
e35416eb7f Remove old .jar versions of Stirling-PDF (#3512) 2025-03-31 10:01:26 +02:00
CanbiZ
47aa3c3cf2 HomeAssistant (Container): Better Portainer explanation (#3518) 2025-03-31 10:01:13 +02:00
community-scripts-pr-app[bot]
8a07f18678 Update versions.json (#3514)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 08:46:22 +02:00
community-scripts-pr-app[bot]
67395df39e Update versions.json (#3500)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 01:05:07 +02:00
community-scripts-pr-app[bot]
8605995aff Update CHANGELOG.md (#3507)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-31 01:04:48 +02:00
Slaviša Arežina
6fd77dcd9f Fix Ollama update logic (#3506) 2025-03-30 17:16:55 +02:00
Slaviša Arežina
92c6662abf GoMFT: Add frontend build procedure (#3499) 2025-03-30 16:15:59 +01:00
community-scripts-pr-app[bot]
453210900d Update CHANGELOG.md (#3503)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-30 12:36:27 +02:00
Slaviša Arežina
df41b8e707 Open WebUI: Add Ollama update check (#3478)
* Add Ollama update check

* Update openwebui.sh

* Fix Ollama update

* fixes
2025-03-30 11:43:44 +02:00
community-scripts-pr-app[bot]
3939b88b9f Update CHANGELOG.md (#3494) 2025-03-29 21:49:04 +01:00
community-scripts-pr-app[bot]
5be029597b Update .app files (#3495) 2025-03-29 21:48:48 +01:00
CanbiZ
e394dd08b0 Alpine MariaDB (#3456)
* Alpine-MariaDB

* fix deps

* Update install/alpine-mariadb-install.sh

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

* space

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-03-29 21:38:47 +01:00
community-scripts-pr-app[bot]
5d50d91a26 Update CHANGELOG.md (#3492)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-29 21:28:37 +01:00
Slaviša Arežina
1a0f3a6108 Fix wrong sed text (#3491) 2025-03-29 20:44:56 +01:00
community-scripts-pr-app[bot]
d940907e59 Update CHANGELOG.md (#3490)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-29 18:07:14 +01:00
Slaviša Arežina
09e7593734 GoMFT: Fix release archive naming (#3483)
* Fix release archive naming

* No uses curl to fetch release

* typo

* Update

* Update
2025-03-29 17:57:22 +01:00
community-scripts-pr-app[bot]
121577c2fd Update CHANGELOG.md (#3485)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-29 15:19:33 +01:00
Slaviša Arežina
bcaf34fa96 Fix release parsing (#3484) 2025-03-29 15:12:52 +01:00
community-scripts-pr-app[bot]
87106a60c3 Update versions.json (#3481)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-29 14:33:08 +01:00
community-scripts-pr-app[bot]
c63ad45e65 Update CHANGELOG.md (#3480)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-29 14:06:52 +01:00
Slaviša Arežina
52bd63bf08 Fix debian-keyring dependency missing (#3477) 2025-03-29 14:04:28 +01:00
Slaviša Arežina
8a5367dae3 Fix temp file (#3476) 2025-03-29 12:21:58 +01:00
community-scripts-pr-app[bot]
8c8b08e037 Update CHANGELOG.md (#3475)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-29 10:29:41 +01:00
community-scripts-pr-app[bot]
40b997ddc9 Update versions.json (#3468) 2025-03-29 08:43:55 +01:00
Slaviša Arežina
b87e7dde2b Fix compose.env (#3466) 2025-03-29 08:43:36 +01:00
community-scripts-pr-app[bot]
f46b9bbfb9 Update CHANGELOG.md (#3464)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-28 23:24:05 +01:00
Slaviša Arežina
07a3ab353c GoMFT: Fix release grep (#3462)
* Fix release grep

* Fix release grep in update function
2025-03-28 21:31:15 +01:00
Slaviša Arežina
c4cdb030b4 Fix path (#3463) 2025-03-28 21:30:57 +01:00
community-scripts-pr-app[bot]
2ffd827be4 Update CHANGELOG.md (#3452) 2025-03-28 17:13:23 +01:00
community-scripts-pr-app[bot]
515f9ab502 Update .app files (#3460)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-28 16:44:48 +01:00
CanbiZ
079b089518 Alpine Node-RED (#3457)
* Alpine Node-RED

* Update alpine-node-red-install.sh
2025-03-28 16:36:32 +01:00
CanbiZ
8300d7725d Update alpine-gitea.sh 2025-03-28 14:16:11 +01:00
CanbiZ
ab45b91c4c move coc
CODE_OF_CONDUCT need to be in .github main folder
2025-03-28 13:23:41 +01:00
community-scripts-pr-app[bot]
b428e8a267 Update versions.json (#3458)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-28 13:08:31 +01:00
community-scripts-pr-app[bot]
2643c91516 Update versions.json (#3449) 2025-03-28 08:08:36 +01:00
community-scripts-pr-app[bot]
73faa0ab10 Update versions.json (#3440)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-27 13:15:48 +01:00
community-scripts-pr-app[bot]
9f890aae89 Update CHANGELOG.md (#3434) 2025-03-27 11:53:04 +01:00
CanbiZ
9cbd315456 [core]: add functions for Alpine (update / core deps) (#3437) 2025-03-27 11:52:04 +01:00
CanbiZ
022472af34 Refactor Spinner/MSG Function (support now alpine and better performance / handling) (#3436) 2025-03-27 11:51:40 +01:00
CanbiZ
3274115041 harmonize licence to VE (not VED) 2025-03-27 10:20:57 +01:00
community-scripts-pr-app[bot]
dc980951ea Update versions.json (#3432) 2025-03-27 09:29:54 +01:00
community-scripts-pr-app[bot]
a9b7c52b1a Update CHANGELOG.md (#3425)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-26 21:37:58 +01:00
Slaviša Arežina
beeef264b8 FlowiseAI: Fix dependencies (#3427)
* Fix dependencies

* Fix missing documentation link
2025-03-26 20:47:45 +01:00
community-scripts-pr-app[bot]
008af3cbfc Update .app files (#3426)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-26 16:20:40 +01:00
CanbiZ
b9a63edfb0 Alpine: Gitea (#3424) 2025-03-26 15:28:52 +01:00
community-scripts-pr-app[bot]
6be9d72f70 Update versions.json (#3422) 2025-03-26 13:32:17 +01:00
community-scripts-pr-app[bot]
6ba5c98706 Update CHANGELOG.md (#3421) 2025-03-26 13:32:02 +01:00
Bas van den Berg
333b0c00cc Remove coredeps in CONTRIBUTOR_AND_GUIDES (#3420)
* Remove core deps from install deps

* Remove core deps fileflows-install.sh
2025-03-26 12:43:49 +01:00
community-scripts-pr-app[bot]
3072f7dd51 Update CHANGELOG.md (#3418) 2025-03-26 10:11:43 +01:00
Chris
51f9de27f1 fluid-calendar: Fix failed build; simplify backup (#3417) 2025-03-26 08:31:29 +01:00
community-scripts-pr-app[bot]
c0d31ccd57 Update versions.json (#3416)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-26 07:10:55 +01:00
community-scripts-pr-app[bot]
2f5fbf7416 Update CHANGELOG.md (#3410) 2025-03-25 19:03:42 +01:00
CanbiZ
cac4294d27 Update Discord URL (#3412) 2025-03-25 15:37:18 +01:00
community-scripts-pr-app[bot]
7886795e81 Update versions.json (#3411)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-25 13:29:42 +01:00
community-scripts-pr-app[bot]
01bba3b325 Update versions.json (#3409) 2025-03-25 06:42:02 +01:00
community-scripts-pr-app[bot]
8f862060d5 Update CHANGELOG.md (#3407)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 23:42:52 +01:00
Slaviša Arežina
67c391e3ed qBittorrent: Switch to static builds for faster updating/upgrading (#3405)
* qBittorrent update to v5.0.4

* fixes
2025-03-24 23:29:53 +01:00
community-scripts-pr-app[bot]
d621ecb124 Update CHANGELOG.md (#3404)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 21:18:06 +01:00
community-scripts-pr-app[bot]
4f723800ec Update date in json (#3401)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 21:15:58 +01:00
community-scripts-pr-app[bot]
76bbb72392 Update CHANGELOG.md (#3403)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 21:15:44 +01:00
community-scripts-pr-app[bot]
59bb9e334e Update .app files (#3402)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 21:15:26 +01:00
push-app-to-main[bot]
e19a2e90d3 fileflows (#3392)
* 'Add new script'

* increase RAM

---------

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-03-24 21:05:19 +01:00
community-scripts-pr-app[bot]
ca55795473 Update CHANGELOG.md (#3398)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 20:43:45 +01:00
CanbiZ
62dc2bdecc Extend HOME Env for Kubo (#3397) 2025-03-24 20:34:52 +01:00
CanbiZ
694f063f0c [core] extend hardware transcoding for fileflows #3392 (#3396) 2025-03-24 20:34:25 +01:00
community-scripts-pr-app[bot]
6af2aed118 Update CHANGELOG.md (#3390)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 16:27:32 +01:00
Michel Roegl-Brunner
990e89e1b2 Update ScriptItem.tsx (#3388) 2025-03-24 16:22:39 +01:00
Bram Suurd
24fbced030 Update siteConfig.tsx (#3389) 2025-03-24 16:08:31 +01:00
community-scripts-pr-app[bot]
fc68c0fe3f Update CHANGELOG.md (#3385)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 15:36:32 +01:00
Michel Roegl-Brunner
b1f51e2d34 Fix Workflow (#3387) 2025-03-24 15:28:39 +01:00
Bas van den Berg
7d0f60c8d1 Small issues fixed (#3386) 2025-03-24 15:27:18 +01:00
community-scripts-pr-app[bot]
396922b9fd Update CHANGELOG.md (#3383)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 14:43:58 +01:00
community-scripts-pr-app[bot]
50b59356ae Update .app files (#3384)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 14:42:12 +01:00
community-scripts-pr-app[bot]
8d78ff1462 Update date in json (#3382)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 14:41:57 +01:00
push-app-to-main[bot]
e653157e24 'Add new script' (#3381)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
2025-03-24 14:40:30 +01:00
community-scripts-pr-app[bot]
0be5f78d35 Update CHANGELOG.md (#3380)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 14:24:21 +01:00
CanbiZ
2306531021 [core] Rebase Scripts (formatting, highlighting & remove old deps) (#3378)
* Big Refactor: Remove Deps / Formatting & Correct End Of Line Sequence

* f
2025-03-24 14:20:56 +01:00
community-scripts-pr-app[bot]
316a6716b0 Update CHANGELOG.md (#3363)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 14:20:17 +01:00
Michel Roegl-Brunner
247b7477c9 finaly (#3377) 2025-03-24 14:18:00 +01:00
community-scripts-pr-app[bot]
92dd4bcae2 Update versions.json (#3376)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 13:29:02 +01:00
CanbiZ
ba39b087b2 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVE 2025-03-24 12:46:58 +01:00
CanbiZ
ef839acb12 Update changelog-pr.yml 2025-03-24 12:46:44 +01:00
community-scripts-pr-app[bot]
0e3e831a4b Update .app files (#3374)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 12:43:41 +01:00
CanbiZ
5aca671fad Update changelog-pr.yml 2025-03-24 12:43:15 +01:00
CanbiZ
92a5f77a5d Update changelog-pr.yml 2025-03-24 12:41:22 +01:00
CanbiZ
03c915241f Update changelog-pr.yml 2025-03-24 12:39:00 +01:00
CanbiZ
4fd8e265f2 Update changelog-pr.yml 2025-03-24 12:35:31 +01:00
CanbiZ
37b7894504 Extension: Redis Alpine Installation (#3367)
* Extension: Redis Alpine Installation

* change website note
2025-03-24 12:32:45 +01:00
Michel Roegl-Brunner
c9b5579869 Fix WF (#3372) 2025-03-24 11:57:47 +01:00
CanbiZ
888b4c34bd [core] install core deps (debian / ubuntu) (#3366)
* [core] install core deps (debian / ubuntu)

Installed Core Deps "sudo, curl, mc" on debian / ubuntu based lxc's

* Update install.func
2025-03-24 11:51:58 +01:00
Michel Roegl-Brunner
39904741dd Update workflow (#3371) 2025-03-24 11:36:45 +01:00
CanbiZ
e2e6ad5935 Refactor: ErsatzTV Script (#3365)
* Update ersatztv-install.sh

* Redesign ErsatzTV

* Update ersatztv-install.sh

* Update ersatztv.sh
2025-03-24 11:04:30 +01:00
community-scripts-pr-app[bot]
06491a9444 Update date in json (#3369)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 11:00:19 +01:00
community-scripts-pr-app[bot]
f4bc2d0607 Update .app files (#3370)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-03-24 10:59:58 +01:00
push-app-to-main[bot]
a03dd43e6e Migrate yt-dlp-webui to ProxmoxVE (#3364)
* 'Add new script'

* Update yt-dlp-webui-install.sh

* Update yt-dlp-webui.sh

* Update yt-dlp-webui.json

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2025-03-24 10:58:51 +01:00
community-scripts-pr-app[bot]
42f376c072 Update versions.json (#3360)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-24 07:26:40 +01:00
community-scripts-pr-app[bot]
336a4546b2 Update CHANGELOG.md (#3347)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-23 22:25:12 +01:00
Slaviša Arežina
51ec219eb7 Check if build-essential is present, if not install it (#3358) 2025-03-23 22:23:20 +01:00
community-scripts-pr-app[bot]
a0f393cb56 Update versions.json (#3351) 2025-03-23 15:06:11 +01:00
community-scripts-pr-app[bot]
c3e7a25794 Update versions.json (#3346)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-23 01:50:42 +01:00
community-scripts-pr-app[bot]
933d3731cf Update CHANGELOG.md (#3342)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-22 21:41:58 +01:00
Slaviša Arežina
d68c46604e Fix update process (#3341) 2025-03-22 21:33:31 +01:00
community-scripts-pr-app[bot]
e3a20e36d3 Update CHANGELOG.md (#3334) 2025-03-22 18:28:57 +01:00
Mx
00c8a73d62 Update nextcloud-vm.sh to 18.1 ISO (#3333)
New 18.1 ISO File on turnkey!
2025-03-22 17:24:31 +01:00
community-scripts-pr-app[bot]
a2dc5da8cd Update versions.json (#3332)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-22 16:21:53 +01:00
community-scripts-pr-app[bot]
722e474f3b Update CHANGELOG.md (#3328)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-22 08:50:02 +01:00
community-scripts-pr-app[bot]
ed15dce685 Update versions.json (#3327) 2025-03-22 06:56:51 +01:00
CanbiZ
6fcd21a7b7 Cronicle: add missing gnupg package (#3323) 2025-03-22 06:56:32 +01:00
community-scripts-pr-app[bot]
48614f4f71 Update CHANGELOG.md (#3320)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-21 21:02:36 +01:00
Bas van den Berg
6af3b07e76 jdk to jre (#3319) 2025-03-21 21:01:56 +01:00
community-scripts-pr-app[bot]
f00cdff171 Update CHANGELOG.md (#3317)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-21 20:44:29 +01:00
Bas van den Berg
d17eb8e6a1 Omada zulu 8 to 21 (#3318)
* change zulu8 to zulu21

* Add check in updatescript
2025-03-21 20:36:01 +01:00
dependabot[bot]
6193164e3b Bump next from 15.1.3 to 15.2.3 in /frontend (#3316)
Bumps [next](https://github.com/vercel/next.js) from 15.1.3 to 15.2.3.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.1.3...v15.2.3)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 20:08:51 +01:00
community-scripts-pr-app[bot]
9573192a4d Update CHANGELOG.md (#3308)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-21 19:30:57 +01:00
Slaviša Arežina
23ea43ecd4 Correctly add repo to mysql.list (#3315) 2025-03-21 19:24:21 +01:00
Slaviša Arežina
79e9fd911c GoMFT: Fix build dependencies (#3313)
* Fix dependency

* Fix dependency

* Update install

* Formatting
2025-03-21 17:57:08 +01:00
Slaviša Arežina
f7762da69c Build binary ourselves (#3303) 2025-03-21 15:54:09 +01:00
Slaviša Arežina
67bb2b7c89 Update repo tree to fix .editorconfig beign ignored. (#3302)
* Fix .editorconfig beign ignored

* updated

* update
2025-03-21 15:53:30 +01:00
community-scripts-pr-app[bot]
44a5251456 Update CHANGELOG.md (#3306)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-21 15:17:28 +01:00
jaykup26
7fb1767993 Update audiobookshelf.json (#3304)
change Audiobookshelf category from "Documents & Notes" to "Media & Streaming"
2025-03-21 15:08:53 +01:00
community-scripts-pr-app[bot]
857cac40af Update versions.json (#3301)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-21 14:22:10 +01:00
community-scripts-pr-app[bot]
33bf8c910a Update CHANGELOG.md (#3294)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-21 12:00:34 +01:00
Michel Roegl-Brunner
28019ac04f Clarify MTU in advanced Settings. (#3296)
* Update build.func

* Update build.func
2025-03-21 11:44:07 +01:00
CanbiZ
adee6a419b Threadfin: add port for website (#3295) 2025-03-21 10:18:17 +01:00
Miles Starkenburg
17af4a374a Proxmox Mail Gateway display name is corrected (#3293) 2025-03-21 07:57:49 +01:00
community-scripts-pr-app[bot]
395e014dcb Update versions.json (#3292)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-21 06:43:34 +01:00
358 changed files with 3615 additions and 2769 deletions

16
.editorconfig Normal file
View File

@@ -0,0 +1,16 @@
; editorconfig.org
root = true
[*]
charset = utf-8
continuation_indent_size = 2
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
max_line_length = 120
tab_width = 2
; trim_trailing_whitespace = true ; disabled until files are cleaned up
[*.md]
trim_trailing_whitespace = false

View File

@@ -111,11 +111,8 @@ Example:
```bash ```bash
$STD apt-get install -y \ $STD apt-get install -y \
curl \
composer \ composer \
git \ git \
sudo \
mc \
nginx nginx
``` ```

View File

@@ -14,12 +14,9 @@ setting_up_container
network_check network_check
update_os update_os
# Installing Dependencies with the 3 core dependencies (curl;sudo;mc) # Installing Dependencies
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
curl \
sudo \
mc \
[PACKAGE_1] \ [PACKAGE_1] \
[PACKAGE_2] \ [PACKAGE_2] \
[PACKAGE_3] [PACKAGE_3]
@@ -80,4 +77,4 @@ msg_info "Cleaning up"
rm -f ${RELEASE}.zip rm -f ${RELEASE}.zip
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -7,5 +7,5 @@ contact_links:
url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script
about: For feature/script requests, please use the Discussions section. about: For feature/script requests, please use the Discussions section.
- name: 💻 Discord - name: 💻 Discord
url: https://discord.gg/UHrpNWGwkH url: https://discord.gg/jsYVk5JBxq
about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community. about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community.

View File

@@ -48,88 +48,135 @@ jobs:
uses: actions/github-script@v7 uses: actions/github-script@v7
with: with:
script: | script: |
const fs = require('fs').promises; async function main() {
const path = require('path'); const fs = require('fs').promises;
const path = require('path');
const configPath = path.resolve(process.env.CONFIG_PATH); const configPath = path.resolve(process.env.CONFIG_PATH);
const fileContent = await fs.readFile(configPath, 'utf-8'); const fileContent = await fs.readFile(configPath, 'utf-8');
const changelogConfig = JSON.parse(fileContent); const changelogConfig = JSON.parse(fileContent);
const categorizedPRs = changelogConfig.map(obj => ({ const categorizedPRs = changelogConfig.map(obj => ({
...obj, ...obj,
notes: [], notes: [],
subCategories: obj.subCategories ?? ( subCategories: obj.subCategories ?? (
obj.labels.includes("update script") ? [ obj.labels.includes("update script") ? [
{ title: "🐞 Bug Fixes", labels: ["bugfix"], notes: [] }, { title: "🐞 Bug Fixes", labels: ["bugfix"], notes: [] },
{ title: "✨ New Features", labels: ["feature"], notes: [] }, { title: "✨ New Features", labels: ["feature"], notes: [] },
{ title: "💥 Breaking Changes", labels: ["breaking change"], notes: [] }, { title: "💥 Breaking Changes", labels: ["breaking change"], notes: [] },
{ title: "🔧 Refactor", labels: ["refactor"], notes: [] }, { title: "🔧 Refactor", labels: ["refactor"], notes: [] },
] : ] :
obj.labels.includes("maintenance") ? [ obj.labels.includes("maintenance") ? [
{ title: "🐞 Bug Fixes", labels: ["bugfix"], notes: [] }, { title: "🐞 Bug Fixes", labels: ["bugfix"], notes: [] },
{ title: "✨ New Features", labels: ["feature"], notes: [] }, { title: "✨ New Features", labels: ["feature"], notes: [] },
{ title: "💥 Breaking Changes", labels: ["breaking change"], notes: [] }, { title: "💥 Breaking Changes", labels: ["breaking change"], notes: [] },
{ title: "📡 API", labels: ["api"], notes: [] }, { title: "📡 API", labels: ["api"], notes: [] },
{ title: "Github", labels: ["github"], notes: [] }, { title: "Github", labels: ["github"], notes: [] },
{ title: "📝 Documentation", labels: ["documentation"], notes: [] }, { title: "📝 Documentation", labels: ["documentation"], notes: [] },
{ title: "🔧 Refactor", labels: ["refactor"], notes: [] } { title: "🔧 Refactor", labels: ["refactor"], notes: [] }
] : ] :
obj.labels.includes("website") ? [ obj.labels.includes("website") ? [
{ title: "🐞 Bug Fixes", labels: ["bugfix"], notes: [] }, { title: "🐞 Bug Fixes", labels: ["bugfix"], notes: [] },
{ title: "✨ New Features", labels: ["feature"], notes: [] }, { title: "✨ New Features", labels: ["feature"], notes: [] },
{ title: "💥 Breaking Changes", labels: ["breaking change"], notes: [] }, { title: "💥 Breaking Changes", labels: ["breaking change"], notes: [] },
{ title: "Script Information", labels: ["json"], notes: [] } { title: "Script Information", labels: ["json"], notes: [] }
] : [] ] : []
) )
})); }));
const latestDateInChangelog = new Date(process.env.LATEST_DATE); const latestDateInChangelog = new Date(process.env.LATEST_DATE);
latestDateInChangelog.setUTCHours(23, 59, 59, 999); latestDateInChangelog.setUTCHours(23, 59, 59, 999);
const { data: pulls } = await github.rest.pulls.list({ const { data: pulls } = await github.rest.pulls.list({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: "ProxmoxVE",
base: "main", base: "main",
state: "closed", state: "closed",
sort: "updated", sort: "updated",
direction: "desc", direction: "desc",
per_page: 100, per_page: 100,
}); });
pulls.filter(pr => const filteredPRs = pulls.filter(pr =>
pr.merged_at && pr.merged_at &&
new Date(pr.merged_at) > latestDateInChangelog && new Date(pr.merged_at) > latestDateInChangelog &&
!pr.labels.some(label => !pr.labels.some(label =>
["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase()) ["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase())
) )
).forEach(pr => {
const prLabels = pr.labels.map(label => label.name.toLowerCase());
const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
const updateScriptsCategory = categorizedPRs.find(category =>
category.labels.some(label => prLabels.includes(label))
); );
if (updateScriptsCategory) { for (const pr of filteredPRs) {
const prLabels = pr.labels.map(label => label.name.toLowerCase());
const subCategory = updateScriptsCategory.subCategories.find(sub => if (pr.user.login.includes("push-app-to-main[bot]")) {
sub.labels.some(label => prLabels.includes(label))
);
if (subCategory) { const scriptName = pr.title;
subCategory.notes.push(prNote); try {
} else { const { data: relatedIssues } = await github.rest.issues.listForRepo({
updateScriptsCategory.notes.push(prNote); owner: context.repo.owner,
repo: "ProxmoxVED",
state: "all",
labels: ["Started Migration To ProxmoxVE"]
});
const matchingIssue = relatedIssues.find(issue =>
issue.title.toLowerCase().includes(scriptName.toLowerCase())
);
if (matchingIssue) {
const issueAuthor = matchingIssue.user.login;
const issueAuthorUrl = `https://github.com/${issueAuthor}`;
prNote = `- ${pr.title} [@${issueAuthor}](${issueAuthorUrl}) ([#${pr.number}](${pr.html_url}))`;
}
else {
prNote = `- ${pr.title} ([#${pr.number}](${pr.html_url}))`;
}
} catch (error) {
console.error(`Error fetching related issues: ${error}`);
prNote = `- ${pr.title} ([#${pr.number}](${pr.html_url}))`;
}
}else{
prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
} }
if (prLabels.includes("new script")) {
const newScriptCategory = categorizedPRs.find(category =>
category.title === "New Scripts" || category.labels.includes("new script"));
if (newScriptCategory) {
newScriptCategory.notes.push(prNote);
}
} else {
let categorized = false;
const priorityCategories = categorizedPRs.slice();
for (const category of priorityCategories) {
if (categorized) break;
if (category.labels.some(label => prLabels.includes(label))) {
if (category.subCategories && category.subCategories.length > 0) {
const subCategory = category.subCategories.find(sub =>
sub.labels.some(label => prLabels.includes(label))
);
if (subCategory) {
subCategory.notes.push(prNote);
} else {
category.notes.push(prNote);
}
} else {
category.notes.push(prNote);
}
categorized = true;
}
}
}
} }
});
return categorizedPRs;
}
return await main();
console.log(JSON.stringify(categorizedPRs, null, 2));
return categorizedPRs;
- name: Update CHANGELOG.md - name: Update CHANGELOG.md
uses: actions/github-script@v7 uses: actions/github-script@v7
with: with:
@@ -150,8 +197,7 @@ jobs:
const hasSubcategories = subCategories && subCategories.length > 0; const hasSubcategories = subCategories && subCategories.length > 0;
const hasMainNotes = notes.length > 0; const hasMainNotes = notes.length > 0;
const hasSubNotes = hasSubcategories && subCategories.some(sub => sub.notes && sub.notes.length > 0); const hasSubNotes = hasSubcategories && subCategories.some(sub => sub.notes && sub.notes.length > 0);
if (hasMainNotes || hasSubNotes) { if (hasMainNotes || hasSubNotes) {
newReleaseNotes += `### ${title}\n\n`; newReleaseNotes += `### ${title}\n\n`;
} }
@@ -168,7 +214,6 @@ jobs:
} }
} }
} }
const changelogContent = await fs.readFile(changelogPath, 'utf-8'); const changelogContent = await fs.readFile(changelogPath, 'utf-8');
const changelogIncludesTodaysReleaseNotes = changelogContent.includes(`\n## ${today}`); const changelogIncludesTodaysReleaseNotes = changelogContent.includes(`\n## ${today}`);
@@ -226,4 +271,4 @@ jobs:
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number') PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
if [ -n "$PR_NUMBER" ]; then if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve gh pr review $PR_NUMBER --approve
fi fi

View File

@@ -14,6 +14,226 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment. All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
## 2025-03-31
### 🆕 New Scripts
- slskd [@vhsdream](https://github.com/vhsdream) ([#3516](https://github.com/community-scripts/ProxmoxVE/pull/3516))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- The Lounge: Fix sqlite3 failing to build [@tremor021](https://github.com/tremor021) ([#3542](https://github.com/community-scripts/ProxmoxVE/pull/3542))
- 2FAuth: Update PHP to 8.3 [@BrockHumblet](https://github.com/BrockHumblet) ([#3510](https://github.com/community-scripts/ProxmoxVE/pull/3510))
- GoMFT: Update Curl Path [@MickLesk](https://github.com/MickLesk) ([#3537](https://github.com/community-scripts/ProxmoxVE/pull/3537))
- slskd: fix broken curl for soularr [@MickLesk](https://github.com/MickLesk) ([#3533](https://github.com/community-scripts/ProxmoxVE/pull/3533))
- Docmost: Bump NodeJS to 22 & fixed pnpm [@MickLesk](https://github.com/MickLesk) ([#3521](https://github.com/community-scripts/ProxmoxVE/pull/3521))
- Tianji: Bump NodeJS to V22 [@MickLesk](https://github.com/MickLesk) ([#3519](https://github.com/community-scripts/ProxmoxVE/pull/3519))
- #### ✨ New Features
- NPMPlus: update function & better create handling (user/password) [@MickLesk](https://github.com/MickLesk) ([#3520](https://github.com/community-scripts/ProxmoxVE/pull/3520))
- #### 🔧 Refactor
- Remove old `.jar` versions of Stirling-PDF [@JcMinarro](https://github.com/JcMinarro) ([#3512](https://github.com/community-scripts/ProxmoxVE/pull/3512))
### 🧰 Maintenance
- #### 💾 Core
- core: fix empty header if header in repo exist [@MickLesk](https://github.com/MickLesk) ([#3536](https://github.com/community-scripts/ProxmoxVE/pull/3536))
### 🌐 Website
- #### ✨ New Features
- Change Frontend Version Info [@MickLesk](https://github.com/MickLesk) ([#3527](https://github.com/community-scripts/ProxmoxVE/pull/3527))
- #### 📝 Script Information
- HomeAssistant (Container): Better Portainer explanation [@MickLesk](https://github.com/MickLesk) ([#3518](https://github.com/community-scripts/ProxmoxVE/pull/3518))
## 2025-03-30
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Open WebUI: Fix Ollama update logic [@tremor021](https://github.com/tremor021) ([#3506](https://github.com/community-scripts/ProxmoxVE/pull/3506))
- GoMFT: Add frontend build procedure [@tremor021](https://github.com/tremor021) ([#3499](https://github.com/community-scripts/ProxmoxVE/pull/3499))
- #### ✨ New Features
- Open WebUI: Add Ollama update check [@tremor021](https://github.com/tremor021) ([#3478](https://github.com/community-scripts/ProxmoxVE/pull/3478))
## 2025-03-29
### 🆕 New Scripts
- Alpine MariaDB [@MickLesk](https://github.com/MickLesk) ([#3456](https://github.com/community-scripts/ProxmoxVE/pull/3456))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Komodo: Fix wrong sed text [@tremor021](https://github.com/tremor021) ([#3491](https://github.com/community-scripts/ProxmoxVE/pull/3491))
- GoMFT: Fix release archive naming [@tremor021](https://github.com/tremor021) ([#3483](https://github.com/community-scripts/ProxmoxVE/pull/3483))
- Homepage: Fix release parsing [@tremor021](https://github.com/tremor021) ([#3484](https://github.com/community-scripts/ProxmoxVE/pull/3484))
- Netdata: Fix debian-keyring dependency missing [@tremor021](https://github.com/tremor021) ([#3477](https://github.com/community-scripts/ProxmoxVE/pull/3477))
- ErsatzTV: Fix temp file reference [@tremor021](https://github.com/tremor021) ([#3476](https://github.com/community-scripts/ProxmoxVE/pull/3476))
- Komodo: Fix compose.env [@tremor021](https://github.com/tremor021) ([#3466](https://github.com/community-scripts/ProxmoxVE/pull/3466))
## 2025-03-28
### 🆕 New Scripts
- Alpine Node-RED [@MickLesk](https://github.com/MickLesk) ([#3457](https://github.com/community-scripts/ProxmoxVE/pull/3457))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- GoMFT: Fix release grep [@tremor021](https://github.com/tremor021) ([#3462](https://github.com/community-scripts/ProxmoxVE/pull/3462))
- ErsatzTV: Fix path in update function [@tremor021](https://github.com/tremor021) ([#3463](https://github.com/community-scripts/ProxmoxVE/pull/3463))
## 2025-03-27
### 🚀 Updated Scripts
- [core]: add functions for Alpine (update / core deps) [@MickLesk](https://github.com/MickLesk) ([#3437](https://github.com/community-scripts/ProxmoxVE/pull/3437))
### 🧰 Maintenance
- #### 💾 Core
- [core]: Refactor Spinner/MSG Function (support now alpine / performance / handling) [@MickLesk](https://github.com/MickLesk) ([#3436](https://github.com/community-scripts/ProxmoxVE/pull/3436))
## 2025-03-26
### 🆕 New Scripts
- Alpine: Gitea [@MickLesk](https://github.com/MickLesk) ([#3424](https://github.com/community-scripts/ProxmoxVE/pull/3424))
### 🚀 Updated Scripts
- FlowiseAI: Fix dependencies [@tremor021](https://github.com/tremor021) ([#3427](https://github.com/community-scripts/ProxmoxVE/pull/3427))
- #### 🐞 Bug Fixes
- fluid-calendar: Fix failed build during updates [@vhsdream](https://github.com/vhsdream) ([#3417](https://github.com/community-scripts/ProxmoxVE/pull/3417))
### 🧰 Maintenance
- #### 📂 Github
- Remove coredeps in CONTRIBUTOR_AND_GUIDES [@bvdberg01](https://github.com/bvdberg01) ([#3420](https://github.com/community-scripts/ProxmoxVE/pull/3420))
## 2025-03-25
### 🧰 Maintenance
- #### 📂 Github
- Discord invite link updated [@MickLesk](https://github.com/MickLesk) ([#3412](https://github.com/community-scripts/ProxmoxVE/pull/3412))
## 2025-03-24
### 🆕 New Scripts
- fileflows [@kkroboth](https://github.com/kkroboth) ([#3392](https://github.com/community-scripts/ProxmoxVE/pull/3392))
- wazuh [@omiinaya](https://github.com/omiinaya) ([#3381](https://github.com/community-scripts/ProxmoxVE/pull/3381))
- yt-dlp-webui [@CrazyWolf13](https://github.com/CrazyWolf13) ([#3364](https://github.com/community-scripts/ProxmoxVE/pull/3364))
- Extension/New Script: Redis Alpine Installation [@MickLesk](https://github.com/MickLesk) ([#3367](https://github.com/community-scripts/ProxmoxVE/pull/3367))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Extend HOME Env for Kubo [@MickLesk](https://github.com/MickLesk) ([#3397](https://github.com/community-scripts/ProxmoxVE/pull/3397))
- #### ✨ New Features
- [core] Rebase Scripts (formatting, highlighting & remove old deps) [@MickLesk](https://github.com/MickLesk) ([#3378](https://github.com/community-scripts/ProxmoxVE/pull/3378))
- #### 🔧 Refactor
- qBittorrent: Switch to static builds for faster updating/upgrading [@tremor021](https://github.com/tremor021) ([#3405](https://github.com/community-scripts/ProxmoxVE/pull/3405))
- Refactor: ErsatzTV Script [@MickLesk](https://github.com/MickLesk) ([#3365](https://github.com/community-scripts/ProxmoxVE/pull/3365))
### 🧰 Maintenance
- #### ✨ New Features
- [core] install core deps (debian / ubuntu) [@MickLesk](https://github.com/MickLesk) ([#3366](https://github.com/community-scripts/ProxmoxVE/pull/3366))
- #### 💾 Core
- [core] extend hardware transcoding for fileflows #3392 [@MickLesk](https://github.com/MickLesk) ([#3396](https://github.com/community-scripts/ProxmoxVE/pull/3396))
- #### 📂 Github
- Refactor Changelog Workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3371](https://github.com/community-scripts/ProxmoxVE/pull/3371))
### 🌐 Website
- Update siteConfig.tsx to use new analytics code [@BramSuurdje](https://github.com/BramSuurdje) ([#3389](https://github.com/community-scripts/ProxmoxVE/pull/3389))
- #### 🐞 Bug Fixes
- Better Text for Version Date [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3388](https://github.com/community-scripts/ProxmoxVE/pull/3388))
## 2025-03-23
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- GoMFT: Check if build-essential is present before updating, if not then install it [@tremor021](https://github.com/tremor021) ([#3358](https://github.com/community-scripts/ProxmoxVE/pull/3358))
## 2025-03-22
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- revealjs: Fix update process [@tremor021](https://github.com/tremor021) ([#3341](https://github.com/community-scripts/ProxmoxVE/pull/3341))
- Cronicle: add missing gnupg package [@MickLesk](https://github.com/MickLesk) ([#3323](https://github.com/community-scripts/ProxmoxVE/pull/3323))
- #### ✨ New Features
- Update nextcloud-vm.sh to 18.1 ISO [@0xN0BADC0FF33](https://github.com/0xN0BADC0FF33) ([#3333](https://github.com/community-scripts/ProxmoxVE/pull/3333))
## 2025-03-21
### 🚀 Updated Scripts
- Omada jdk to jre [@bvdberg01](https://github.com/bvdberg01) ([#3319](https://github.com/community-scripts/ProxmoxVE/pull/3319))
- #### 🐞 Bug Fixes
- Omada zulu 8 to 21 [@bvdberg01](https://github.com/bvdberg01) ([#3318](https://github.com/community-scripts/ProxmoxVE/pull/3318))
- MySQL: Correctly add repo to mysql.list [@tremor021](https://github.com/tremor021) ([#3315](https://github.com/community-scripts/ProxmoxVE/pull/3315))
- GoMFT: Fix build dependencies [@tremor021](https://github.com/tremor021) ([#3313](https://github.com/community-scripts/ProxmoxVE/pull/3313))
- GoMFT: Don't rely on binaries from github [@tremor021](https://github.com/tremor021) ([#3303](https://github.com/community-scripts/ProxmoxVE/pull/3303))
### 🧰 Maintenance
- #### 💾 Core
- Clarify MTU in advanced Settings. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#3296](https://github.com/community-scripts/ProxmoxVE/pull/3296))
### 🌐 Website
- Bump next from 15.1.3 to 15.2.3 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#3316](https://github.com/community-scripts/ProxmoxVE/pull/3316))
- #### 📝 Script Information
- Proxmox, rather than Promox [@gringocl](https://github.com/gringocl) ([#3293](https://github.com/community-scripts/ProxmoxVE/pull/3293))
- Audiobookshelf: Fix category on website [@jaykup26](https://github.com/jaykup26) ([#3304](https://github.com/community-scripts/ProxmoxVE/pull/3304))
- Threadfin: add port for website [@MickLesk](https://github.com/MickLesk) ([#3295](https://github.com/community-scripts/ProxmoxVE/pull/3295))
## 2025-03-20 ## 2025-03-20
### 🚀 Updated Scripts ### 🚀 Updated Scripts

View File

@@ -13,7 +13,7 @@
<a href="https://helper-scripts.com"> <a href="https://helper-scripts.com">
<img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" /> <img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" />
</a> </a>
<a href="https://discord.gg/UHrpNWGwkH"> <a href="https://discord.gg/jsYVk5JBxq">
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" /> <img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
</a> </a>
<a href="https://ko-fi.com/community_scripts"> <a href="https://ko-fi.com/community_scripts">
@@ -82,7 +82,7 @@ We appreciate any contributions to the project—whether it's bug reports, featu
Join our community for support: Join our community for support:
- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/UHrpNWGwkH) for real-time support. - **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/jsYVk5JBxq) for real-time support.
- **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions). - **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions).
## 🤝 Report a Bug or Feature Request ## 🤝 Report a Bug or Feature Request

View File

@@ -13,7 +13,7 @@ This project currently supports the following versions of Proxmox VE:
## Reporting a Vulnerability ## Reporting a Vulnerability
Security vulnerabilities shouldnt be reported publicly to prevent potential exploitation. Instead, please report any vulnerabilities privately by reaching out directly to us. You can either join our [Discord server](https://discord.gg/UHrpNWGwkH) and send a direct message to a maintainer or contact us via email at contact@community-scripts.org. Be sure to include a detailed description of the vulnerability and the steps to reproduce it. Thank you for helping us keep our project secure! Security vulnerabilities shouldnt be reported publicly to prevent potential exploitation. Instead, please report any vulnerabilities privately by reaching out directly to us. You can either join our [Discord server](https://discord.gg/jsYVk5JBxq) and send a direct message to a maintainer or contact us via email at contact@community-scripts.org. Be sure to include a detailed description of the vulnerability and the steps to reproduce it. Thank you for helping us keep our project secure!
Once a vulnerability has been reported, the project maintainers will review it and acknowledge the report within 7 business days. We will then work to address the vulnerability and provide a fix as soon as possible. Depending on the severity of the issue, a patch may be released immediately or included in the next scheduled update. Once a vulnerability has been reported, the project maintainers will review it and acknowledge the report within 7 business days. We will then work to address the vulnerability and provide a fix as soon as possible. Depending on the severity of the issue, a patch may be released immediately or included in the next scheduled update.

View File

@@ -41,8 +41,23 @@ function update_script() {
# Creating Backup # Creating Backup
msg_info "Creating Backup" msg_info "Creating Backup"
mv "/opt/2fauth" "/opt/2fauth-backup" mv "/opt/2fauth" "/opt/2fauth-backup"
if ! dpkg -l | grep -q 'php8.3'; then
cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
fi
msg_ok "Backup Created" msg_ok "Backup Created"
# Upgrade PHP
if ! dpkg -l | grep -q 'php8.3'; then
$STD apt-get install -y \
lsb-release \
gpg
curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
$STD apt-get update
$STD apt-get install -y php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli,intl}
sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
fi
# Execute Update # Execute Update
wget -q "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip" wget -q "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
unzip -q "${RELEASE}.zip" unzip -q "${RELEASE}.zip"
@@ -59,9 +74,14 @@ function update_script() {
php artisan 2fauth:install php artisan 2fauth:install
$STD systemctl restart nginx
# Cleaning up # Cleaning up
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf "v${RELEASE}.zip" rm -rf "v${RELEASE}.zip"
if dpkg -l | grep -q 'php8.2'; then
$STD apt-get remove --purge -y php8.2*
fi
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleanup Completed" msg_ok "Cleanup Completed"

45
ct/alpine-gitea.sh Normal file
View File

@@ -0,0 +1,45 @@
#!/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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gitea.io
APP="Alpine-Gitea"
var_tags="alpine;git"
var_cpu="1"
var_ram="256"
var_disk="1"
var_os="alpine"
var_version="3.21"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
msg_info "Updating Alpine Packages"
apk update
apk upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating Gitea"
apk upgrade gitea
msg_ok "Updated Gitea"
msg_info "Restarting Gitea"
rc-service gitea restart
msg_ok "Restarted Gitea"
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

46
ct/alpine-mariadb.sh Normal file
View File

@@ -0,0 +1,46 @@
#!/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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://mariadb.org
APP="Alpine-MariaDB"
var_tags="${var_tags:-alpine;database}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
msg_info "Updating Alpine Packages"
$STD apk update
$STD apk upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating MariaDB"
$STD apk upgrade mariadb mariadb-client
msg_ok "Updated MariaDB"
msg_info "Restarting MariaDB"
$STD rc-service mariadb restart
msg_ok "Restarted MariaDB"
exit 0
}
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 IP:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}:3306${CL}"

50
ct/alpine-node-red.sh Normal file
View File

@@ -0,0 +1,50 @@
#!/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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nodered.org
APP="Alpine-Node-RED"
var_tags="${var_tags:-alpine;automation}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-1}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
msg_info "Updating Alpine Packages"
$STD apk update
$STD apk upgrade
msg_ok "Updated Alpine Packages"
msg_info "Updating Node.js and npm"
$STD apk upgrade nodejs npm
msg_ok "Updated Node.js and npm"
msg_info "Updating Node-RED"
$STD npm install -g --unsafe-perm node-red
msg_ok "Updated Node-RED"
msg_info "Restarting Node-RED"
$STD rc-service nodered restart
msg_ok "Restarted Node-RED"
exit 0
}
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}:1880${CL}"

72
ct/alpine-redis.sh Normal file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://redis.io/
APP="Alpine-Redis"
var_tags="alpine;database"
var_cpu="1"
var_ram="256"
var_disk="1"
var_os="alpine"
var_version="3.21"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
if ! apk -e info newt >/dev/null 2>&1; then
apk add -q newt
fi
LXCIP=$(ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
while true; do
CHOICE=$(
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Redis Management" --menu "Select option" 11 58 3 \
"1" "Update Redis" \
"2" "Allow 0.0.0.0 for listening" \
"3" "Allow only ${LXCIP} for listening" 3>&2 2>&1 1>&3
)
exit_status=$?
if [ $exit_status == 1 ]; then
clear
exit-script
fi
header_info
case $CHOICE in
1)
msg_info "Updating Redis"
apk update && apk upgrade redis
rc-service redis restart
msg_ok "Redis updated successfully!"
exit
;;
2)
msg_info "Setting Redis to listen on all interfaces"
sed -i 's/^bind .*/bind 0.0.0.0/' /etc/redis.conf
rc-service redis restart
msg_ok "Redis now listens on all interfaces!"
exit
;;
3)
msg_info "Setting Redis to listen only on ${LXCIP}"
sed -i "s/^bind .*/bind ${LXCIP}/" /etc/redis.conf
rc-service redis restart
msg_ok "Redis now listens only on ${LXCIP}!"
exit
;;
esac
done
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${APP} should be reachable on port 6379.
${BL}redis-cli -h ${IP} -p 6379${CL} \n"

View File

@@ -26,6 +26,23 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if command -v node >/dev/null; then
NODE_MAJOR=$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')
if [[ "$NODE_MAJOR" != "22" ]]; then
$STD apt-get purge -y nodejs
rm -f /etc/apt/sources.list.d/nodesource.list
rm -f /etc/apt/keyrings/nodesource.gpg
else
return
fi
fi
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g pnpm@10.4.0
export NODE_OPTIONS="--max_old_space_size=4096"
RELEASE=$(curl -s https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -s https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP}" msg_info "Stopping ${APP}"

View File

@@ -26,29 +26,40 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
if [[ ! -f /opt/${APP}_version.txt && $(echo "x.x.x" > /opt/${APP}_version.txt) || "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ErsatzTV" msg_info "Stopping ErsatzTV"
systemctl stop ersatzTV systemctl stop ersatzTV
msg_ok "Stopped ErsatzTV" msg_ok "Stopped ErsatzTV"
msg_info "Updating ErsatzTV" msg_info "Updating ErsatzTV"
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
cp -R /opt/ErsatzTV/ ErsatzTV-backup cp -R /opt/ErsatzTV/ ErsatzTV-backup
rm ErsatzTV-backup/ErsatzTV rm ErsatzTV-backup/ErsatzTV
rm -rf /opt/ErsatzTV rm -rf /opt/ErsatzTV
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt temp_file=$(mktemp)
mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV wget -qO- https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz -O "$temp_file"
tar -xzf "$temp_file"
mv ErsatzTV-${RELEASE}-linux-x64 /opt/ErsatzTV
cp -R ErsatzTV-backup/* /opt/ErsatzTV/ cp -R ErsatzTV-backup/* /opt/ErsatzTV/
rm -rf ErsatzTV-backup rm -rf ErsatzTV-backup
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ErsatzTV" msg_ok "Updated ErsatzTV"
msg_info "Starting ErsatzTV" msg_info "Starting ErsatzTV"
systemctl start ersatzTV systemctl start ersatzTV
msg_ok "Started ErsatzTV" msg_ok "Started ErsatzTV"
msg_info "Cleaning Up"
rm -f ${temp_file}
msg_ok "Cleaned"
msg_ok "Updated Successfully" msg_ok "Updated Successfully"
exit else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start
build_container build_container
description description
@@ -56,4 +67,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8409${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8409${CL}"

73
ct/fileflows.sh Normal file
View File

@@ -0,0 +1,73 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kkroboth
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fileflows.com/
APP="FileFlows"
var_tags="media;automation"
var_cpu="2"
var_ram="2048"
var_disk="8"
var_os="debian"
var_version="12"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/fileflows ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
update_available=$(curl -s -X 'GET' "http://localhost:19200/api/status/update-available" -H 'accept: application/json' | jq .UpdateAvailable)
if [[ "${update_available}" == "true" ]]; then
msg_info "Stopping $APP"
systemctl stop fileflows
msg_ok "Stopped $APP"
msg_info "Creating Backup"
backup_filename="/opt/${APP}_backup_$(date +%F).tar.gz"
tar -czf $backup_filename -C /opt/fileflows Data
msg_ok "Backup Created"
msg_info "Updating $APP to latest version"
temp_file=$(mktemp)
curl -fsSL https://fileflows.com/downloads/zip -o $temp_file
unzip -oq -d /opt/fileflows $temp_file
msg_ok "Updated $APP to latest version"
msg_info "Starting $APP"
systemctl start fileflows
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf $temp_file
rm -rf $backup_filename
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at latest version"
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}:19200${CL}"

View File

@@ -35,15 +35,14 @@ function update_script() {
systemctl stop fluid-calendar.service systemctl stop fluid-calendar.service
msg_ok "Stopped $APP" msg_ok "Stopped $APP"
msg_info "Creating Backup"
tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" /opt/fluid-calendar
msg_ok "Backup Created"
msg_info "Updating $APP to v${RELEASE}" msg_info "Updating $APP to v${RELEASE}"
cp /opt/fluid-calendar/.env /opt/fluid.env
rm -rf /opt/fluid-calendar
tmp_file=$(mktemp) tmp_file=$(mktemp)
wget -q "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -O $tmp_file wget -q "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -O $tmp_file
unzip -q $tmp_file unzip -q $tmp_file
cp -rf ${APP}-${RELEASE}/* /opt/fluid-calendar mv ${APP}-${RELEASE}/ /opt/fluid-calendar
mv /opt/fluid.env /opt/fluid-calendar/.env
cd /opt/fluid-calendar cd /opt/fluid-calendar
export NEXT_TELEMETRY_DISABLED=1 export NEXT_TELEMETRY_DISABLED=1
$STD npm install --legacy-peer-deps $STD npm install --legacy-peer-deps
@@ -58,8 +57,6 @@ function update_script() {
msg_info "Cleaning Up" msg_info "Cleaning Up"
rm -rf $tmp_file rm -rf $tmp_file
rm -rf "/opt/${APP}_backup_$(date +%F).tar.gz"
rm -rf /tmp/${APP}-${RELEASE}
msg_ok "Cleanup Completed" msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt

View File

@@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG # Copyright (c) 2021-2025 community-scripts ORG
# Author: fabrice1236 # Author: fabrice1236
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@@ -25,7 +25,7 @@ function update_script() {
check_container_resources check_container_resources
msg_info "Updating ${APP} LXC" msg_info "Updating ${APP} LXC"
if command -v ghost &> /dev/null; then if command -v ghost &>/dev/null; then
current_version=$(ghost version | grep 'Ghost-CLI version' | awk '{print $3}') current_version=$(ghost version | grep 'Ghost-CLI version' | awk '{print $3}')
latest_version=$(npm show ghost-cli version) latest_version=$(npm show ghost-cli version)
if [ "$current_version" != "$latest_version" ]; then if [ "$current_version" != "$latest_version" ]; then
@@ -49,4 +49,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:2368${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:2368${CL}"

View File

@@ -46,4 +46,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -64,4 +64,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@@ -38,4 +38,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:53842/setup${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:53842/setup${CL}"

View File

@@ -20,46 +20,64 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d "/opt/gomft" ]]; then if [[ ! -d "/opt/gomft" ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop gomft
msg_ok "Stopped $APP"
msg_info "Updating $APP to ${RELEASE}"
rm -f /opt/gomft/gomft
temp_file=$(mktemp)
wget -q "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -O $temp_file
tar -xzf $temp_file
cp -rf GoMFT-${RELEASE}/* /opt/gomft
$STD $HOME/go/bin/templ generate
wget -q "https://github.com/StarFleetCPTN/GoMFT/releases/download/v${RELEASE}/gomft-v${RELEASE}-linux-amd64" -O /opt/gomft/gomft
chmod +x /opt/gomft/gomft
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Cleaning Up"
rm -f $temp_file
rm -rf GoMFT-${RELEASE}
msg_ok "Cleanup Complete"
msg_info "Starting $APP"
systemctl start gomft
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if ! dpkg -l | grep -q "^ii.*build-essential"; then
$STD apt-get install -y build-essential
fi
if [[ ! -f "/usr/bin/node" ]]; then
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update
$STD apt-get install -y nodejs
fi
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop gomft
msg_ok "Stopped $APP"
msg_info "Updating $APP to ${RELEASE}"
rm -f /opt/gomft/gomft
temp_file=$(mktemp)
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o $temp_file
tar -xzf $temp_file
cp -rf GoMFT-${RELEASE}/* /opt/gomft
cd /opt/gomft
rm -f /opt/gomft/node_modules
$STD npm ci
$STD node build.js
$STD go mod download
$STD go get -u github.com/a-h/templ
$STD $HOME/go/bin/templ generate
export CGO_ENABLED=1
export GOOS=linux
$STD go build -o gomft
chmod +x /opt/gomft/gomft
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Cleaning Up"
rm -f $temp_file
rm -rf $HOME/GoMFT-v.${RELEASE}
msg_ok "Cleanup Complete"
msg_info "Starting $APP"
systemctl start gomft
msg_ok "Started $APP"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
} }
start start

6
ct/headers/alpine-gitea Normal file
View File

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

View File

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

View File

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

6
ct/headers/alpine-redis Normal file
View File

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

6
ct/headers/fileflows Normal file
View File

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

6
ct/headers/slskd Normal file
View File

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

6
ct/headers/wazuh Normal file
View File

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

6
ct/headers/yt-dlp-webui Normal file
View File

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

View File

@@ -61,4 +61,4 @@ msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it with a SOCKS5 client using the following URL:${CL}" echo -e "${INFO}${YW} Access it with a SOCKS5 client using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}:1080${CL}" echo -e "${TAB}${GATEWAY}${BGN}${IP}:1080${CL}"
echo -e "${INFO}${YW} and the credentials stored at /root/hev.creds${CL}" echo -e "${INFO}${YW} and the credentials stored at /root/hev.creds${CL}"

View File

@@ -40,7 +40,7 @@ function update_script() {
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Updating Homepage to v${RELEASE} (Patience)" msg_info "Updating Homepage to v${RELEASE} (Patience)"
systemctl stop homepage systemctl stop homepage
wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz curl -fsSL "https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz" -o $(basename "https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz")
tar -xzf v${RELEASE}.tar.gz tar -xzf v${RELEASE}.tar.gz
rm -rf v${RELEASE}.tar.gz rm -rf v${RELEASE}.tar.gz
cp -r homepage-${RELEASE}/* /opt/homepage/ cp -r homepage-${RELEASE}/* /opt/homepage/

View File

@@ -20,17 +20,35 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \ UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE MODE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 14 60 2 \
"1" "Check for Alpine Updates" ON \ "1" "Check for Alpine Updates" OFF \
"2" "Update NPMplus Docker Container" ON \
3>&1 1>&2 2>&3) 3>&1 1>&2 2>&3)
header_info header_info "$APP"
if [ "$UPD" == "1" ]; then
apk update && apk upgrade case "$UPD" in
exit "1")
fi msg_info "Updating Alpine OS"
apk update && apk upgrade
msg_ok "System updated"
exit
;;
"2")
msg_info "Updating NPMplus Container"
cd /opt || exit 1
msg_info "Pulling latest container image"
$STD docker compose pull
msg_info "Recreating container"
$STD docker compose up -d
msg_ok "NPMplus container updated"
exit
;;
esac
exit 0
} }
start start
build_container build_container
description description

View File

@@ -42,6 +42,16 @@ function update_script() {
$STD apt-get install -y --only-upgrade mongodb-org $STD apt-get install -y --only-upgrade mongodb-org
msg_ok "Updated MongoDB to $MONGODB_VERSION" msg_ok "Updated MongoDB to $MONGODB_VERSION"
msg_info "Checking if right Azul Zulu Java is installed"
java_version=$(java -version 2>&1 | awk -F[\"_] '/version/ {print $2}')
if [[ "$java_version" =~ ^1\.8\.* ]]; then
$STD apt-get remove --purge -y zulu8-jdk
$STD apt-get -y install zulu21-jre-headless
msg_ok "Updated Azul Zulu Java to 21"
else
msg_ok "Azul Zulu Java 21 already installed"
fi
msg_info "Updating Omada Controller" msg_info "Updating Omada Controller"
latest_url=$(curl -s "https://support.omadanetworks.com/en/download/software/omada-controller/" | grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | head -n 1) latest_url=$(curl -s "https://support.omadanetworks.com/en/download/software/omada-controller/" | grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' | head -n 1)
latest_version=$(basename "$latest_url") latest_version=$(basename "$latest_url")
@@ -51,7 +61,8 @@ function update_script() {
fi fi
wget -qL ${latest_url} wget -qL ${latest_url}
dpkg -i ${latest_version} export DEBIAN_FRONTEND=noninteractive
$STD dpkg -i ${latest_version}
rm -rf ${latest_version} rm -rf ${latest_version}
msg_ok "Updated Omada Controller" msg_ok "Updated Omada Controller"
} }

View File

@@ -27,6 +27,21 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if [ -x "/usr/bin/ollama" ]; then
msg_info "Updating Ollama"
OLLAMA_VERSION=$(ollama -v | awk '{print $NF}')
RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz
rm -rf ollama-linux-amd64.tgz
msg_ok "Ollama updated to version $RELEASE"
else
msg_ok "Ollama is already up to date."
fi
fi
msg_info "Updating ${APP} (Patience)" msg_info "Updating ${APP} (Patience)"
cd /opt/open-webui cd /opt/open-webui
mkdir -p /opt/open-webui-backup mkdir -p /opt/open-webui-backup

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) # Author: tteck (tteckster) | Co-Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.qbittorrent.org/ # Source: https://www.qbittorrent.org/
@@ -27,10 +27,36 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating ${APP} LXC" if [[ ! -f /opt/${APP}_version.txt ]]; then
$STD apt-get update touch /opt/${APP}_version.txt
$STD apt-get -y upgrade mkdir -p $HOME/.config/qBittorrent/
msg_ok "Updated ${APP} LXC" mkdir -p /opt/qbittorrent/
mv /.config/qBittorrent $HOME/.config/
$STD apt-get remove --purge -y qbittorrent-nox
sed -i 's@ExecStart=/usr/bin/qbittorrent-nox@ExecStart=/opt/qbittorrent/qbittorrent-nox@g' /etc/systemd/system/qbittorrent-nox.service
systemctl daemon-reload
fi
FULLRELEASE=$(curl -s https://api.github.com/repos/userdocs/qbittorrent-nox-static/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(echo $FULLRELEASE | cut -c 9-13)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
systemctl stop qbittorrent-nox
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
rm -f /opt/qbittorrent/qbittorrent-nox
curl -fsSL "https://github.com/userdocs/qbittorrent-nox-static/releases/download/${FULLRELEASE}/x86_64-qbittorrent-nox" -o /opt/qbittorrent/qbittorrent-nox
chmod +x /opt/qbittorrent/qbittorrent-nox
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service"
systemctl start qbittorrent-nox
msg_ok "Started Service"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit exit
} }
@@ -41,4 +67,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"

View File

@@ -40,12 +40,11 @@ function update_script() {
tar zxf $temp_file tar zxf $temp_file
rm -rf /opt/revealjs/node_modules/* rm -rf /opt/revealjs/node_modules/*
cp /opt/revealjs/index.html /opt cp /opt/revealjs/index.html /opt
cp /opt/revealjs/gulpfile.js /opt
cp -rf reveal.js-${RELEASE}/* /opt/revealjs cp -rf reveal.js-${RELEASE}/* /opt/revealjs
cd /opt/revealjs cd /opt/revealjs
$STD npm install $STD npm install
cp -f /opt/index.html /opt/revealjs cp -f /opt/index.html /opt/revealjs
cp -f /opt/gulpfile.js /opt/revealjs sed -i '25s/localhost/0.0.0.0/g' /opt/revealjs/gulpfile.js
echo "${RELEASE}" >/opt/${APP}_version.txt echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}" msg_ok "Updated $APP to ${RELEASE}"

80
ct/slskd.sh Normal file
View File

@@ -0,0 +1,80 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/slskd/slskd, https://soularr.net
APP="slskd"
var_tags="${var_tags:-arr;p2p}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
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/slskd ]] || [[ ! -d /opt/soularr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/slskd/slskd/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP and Soularr"
systemctl stop slskd soularr.timer soularr.service
msg_ok "Stopped $APP and Soularr"
msg_info "Updating $APP to v${RELEASE}"
tmp_file=$(mktemp)
curl -fsSL "https://github.com/slskd/slskd/releases/download/${RELEASE}/slskd-${RELEASE}-linux-x64.zip" -o $tmp_file
unzip -q -oj $tmp_file slskd -d /opt/${APP}
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Updating Soularr"
cp /opt/soularr/config.ini /opt/config.ini.bak
cp /opt/soularr/run.sh /opt/run.sh.bak
cd /tmp
rm -rf /opt/soularr
curl -fsSL https://github.com/mrusse/soularr/archive/refs/heads/main.zip
unzip -q main.zip
mv soularr-main /opt/soularr
cd /opt/soularr
$STD pip install -r requirements.txt
mv /opt/config.ini.bak /opt/soularr/config.ini
mv /opt/run.sh.bak /opt/soularr/run.sh
msg_ok "Soularr updated"
msg_info "Starting $APP and Soularr"
systemctl start slskd soularr.timer
msg_ok "Started $APP and Soularr"
msg_info "Cleaning Up"
rm -rf $tmp_file
rm -rf /tmp/main.zip
msg_ok "Cleanup Completed"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
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}:5030${CL}"

View File

@@ -39,6 +39,7 @@ function update_script() {
cd Stirling-PDF-$RELEASE cd Stirling-PDF-$RELEASE
chmod +x ./gradlew chmod +x ./gradlew
$STD ./gradlew build $STD ./gradlew build
rm -rf /opt/Stirling-PDF/Stirling-PDF-*.jar
cp -r ./build/libs/Stirling-PDF-*.jar /opt/Stirling-PDF/ cp -r ./build/libs/Stirling-PDF-*.jar /opt/Stirling-PDF/
cp -r scripts /opt/Stirling-PDF/ cp -r scripts /opt/Stirling-PDF/
cd ~ cd ~

View File

@@ -27,6 +27,13 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if ! dpkg -l build-essential >/dev/null 2>&1; then
$STD apt-get update
$STD apt-get install -y build-essential
fi
if ! npm list -g node-gyp >/dev/null 2>&1; then
$STD npm install -g node-gyp
fi
RELEASE=$(curl -s https://api.github.com/repos/thelounge/thelounge-deb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -s https://api.github.com/repos/thelounge/thelounge-deb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service" msg_info "Stopping Service"
@@ -61,4 +68,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}"

View File

@@ -26,6 +26,22 @@ function update_script() {
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
if command -v node >/dev/null; then
NODE_MAJOR=$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')
if [[ "$NODE_MAJOR" != "22" ]]; then
$STD apt-get purge -y nodejs
rm -f /etc/apt/sources.list.d/nodesource.list
rm -f /etc/apt/keyrings/nodesource.gpg
else
return
fi
fi
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g pnpm@9.7.1
RELEASE=$(curl -s https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') RELEASE=$(curl -s https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP} Service" msg_info "Stopping ${APP} Service"

44
ct/wazuh.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://wazuh.com/
APP="Wazuh"
var_tags="security;monitoring"
var_cpu="4"
var_ram="4096"
var_disk="18"
var_os="debian"
var_version="12"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /lib/systemd/system/wazuh-manager.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating ${APP} LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated ${APP} LXC"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:443${CL}"

63
ct/yt-dlp-webui.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/marcopiovanello/yt-dlp-web-ui
APP="yt-dlp-webui"
var_tags="downloads;yt-dlp"
var_cpu="2"
var_ram="1024"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /usr/local/bin/yt-dlp-webui ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating yt-dlp"
$STD yt-dlp -U
msg_ok "Updated yt-dlp"
RELEASE=$(curl -s https://api.github.com/repos/marcopiovanello/yt-dlp-web-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/yt-dlp-webui_version.txt)" ]] || [[ ! -f /opt/yt-dlp-webui_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop yt-dlp-webui
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
rm -rf /usr/local/bin/yt-dlp-webui
wget -q "https://github.com/marcopiovanello/yt-dlp-web-ui/releases/download/v${RELEASE}/yt-dlp-webui_linux-amd64" -O /usr/local/bin/yt-dlp-webui
chmod +x /usr/local/bin/yt-dlp-webui
msg_ok "Updated $APP LXC"
msg_info "Starting $APP"
systemctl start yt-dlp-webui
msg_ok "Started $APP"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
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}:3033${CL}"

View File

@@ -33,7 +33,7 @@
"fuse.js": "^7.0.0", "fuse.js": "^7.0.0",
"lucide-react": "^0.453.0", "lucide-react": "^0.453.0",
"mini-svg-data-uri": "^1.4.4", "mini-svg-data-uri": "^1.4.4",
"next": "15.1.3", "next": "15.2.3",
"next-themes": "^0.3.0", "next-themes": "^0.3.0",
"nuqs": "^2.1.1", "nuqs": "^2.1.1",
"pocketbase": "^0.21.4", "pocketbase": "^0.21.4",
@@ -1549,9 +1549,10 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@next/env": { "node_modules/@next/env": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.3.tgz",
"integrity": "sha512-Q1tXwQCGWyA3ehMph3VO+E6xFPHDKdHFYosadt0F78EObYxPio0S09H9UGYznDe6Wc8eLKLG89GqcFJJDiK5xw==" "integrity": "sha512-a26KnbW9DFEUsSxAxKBORR/uD9THoYoKbkpFywMN/AFvboTt94b8+g/07T8J6ACsdLag8/PDU60ov4rPxRAixw==",
"license": "MIT"
}, },
"node_modules/@next/eslint-plugin-next": { "node_modules/@next/eslint-plugin-next": {
"version": "15.0.2", "version": "15.0.2",
@@ -1594,12 +1595,13 @@
} }
}, },
"node_modules/@next/swc-darwin-arm64": { "node_modules/@next/swc-darwin-arm64": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.3.tgz",
"integrity": "sha512-aZtmIh8jU89DZahXQt1La0f2EMPt/i7W+rG1sLtYJERsP7GRnNFghsciFpQcKHcGh4dUiyTB5C1X3Dde/Gw8gg==", "integrity": "sha512-uaBhA8aLbXLqwjnsHSkxs353WrRgQgiFjduDpc7YXEU0B54IKx3vU+cxQlYwPCyC8uYEEX7THhtQQsfHnvv8dw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@@ -1609,12 +1611,13 @@
} }
}, },
"node_modules/@next/swc-darwin-x64": { "node_modules/@next/swc-darwin-x64": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.3.tgz",
"integrity": "sha512-aw8901rjkVBK5mbq5oV32IqkJg+CQa6aULNlN8zyCWSsePzEG3kpDkAFkkTOh3eJ0p95KbkLyWBzslQKamXsLA==", "integrity": "sha512-pVwKvJ4Zk7h+4hwhqOUuMx7Ib02u3gDX3HXPKIShBi9JlYllI0nU6TWLbPT94dt7FSi6mSBhfc2JrHViwqbOdw==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"darwin" "darwin"
@@ -1624,12 +1627,13 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-gnu": { "node_modules/@next/swc-linux-arm64-gnu": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.3.tgz",
"integrity": "sha512-YbdaYjyHa4fPK4GR4k2XgXV0p8vbU1SZh7vv6El4bl9N+ZSiMfbmqCuCuNU1Z4ebJMumafaz6UCC2zaJCsdzjw==", "integrity": "sha512-50ibWdn2RuFFkOEUmo9NCcQbbV9ViQOrUfG48zHBCONciHjaUKtHcYFiCwBVuzD08fzvzkWuuZkd4AqbvKO7UQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -1639,12 +1643,13 @@
} }
}, },
"node_modules/@next/swc-linux-arm64-musl": { "node_modules/@next/swc-linux-arm64-musl": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.3.tgz",
"integrity": "sha512-qgH/aRj2xcr4BouwKG3XdqNu33SDadqbkqB6KaZZkozar857upxKakbRllpqZgWl/NDeSCBYPmUAZPBHZpbA0w==", "integrity": "sha512-2gAPA7P652D3HzR4cLyAuVYwYqjG0mt/3pHSWTCyKZq/N/dJcUAEoNQMyUmwTZWCJRKofB+JPuDVP2aD8w2J6Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -1654,12 +1659,13 @@
} }
}, },
"node_modules/@next/swc-linux-x64-gnu": { "node_modules/@next/swc-linux-x64-gnu": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.3.tgz",
"integrity": "sha512-uzafnTFwZCPN499fNVnS2xFME8WLC9y7PLRs/yqz5lz1X/ySoxfaK2Hbz74zYUdEg+iDZPd8KlsWaw9HKkLEVw==", "integrity": "sha512-ODSKvrdMgAJOVU4qElflYy1KSZRM3M45JVbeZu42TINCMG3anp7YCBn80RkISV6bhzKwcUqLBAmOiWkaGtBA9w==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -1669,12 +1675,13 @@
} }
}, },
"node_modules/@next/swc-linux-x64-musl": { "node_modules/@next/swc-linux-x64-musl": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.3.tgz",
"integrity": "sha512-el6GUFi4SiDYnMTTlJJFMU+GHvw0UIFnffP1qhurrN1qJV3BqaSRUjkDUgVV44T6zpw1Lc6u+yn0puDKHs+Sbw==", "integrity": "sha512-ZR9kLwCWrlYxwEoytqPi1jhPd1TlsSJWAc+H/CJHmHkf2nD92MQpSRIURR1iNgA/kuFSdxB8xIPt4p/T78kwsg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"linux" "linux"
@@ -1684,12 +1691,13 @@
} }
}, },
"node_modules/@next/swc-win32-arm64-msvc": { "node_modules/@next/swc-win32-arm64-msvc": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.3.tgz",
"integrity": "sha512-6RxKjvnvVMM89giYGI1qye9ODsBQpHSHVo8vqA8xGhmRPZHDQUE4jcDbhBwK0GnFMqBnu+XMg3nYukNkmLOLWw==", "integrity": "sha512-+G2FrDcfm2YDbhDiObDU/qPriWeiz/9cRR0yMWJeTLGGX6/x8oryO3tt7HhodA1vZ8r2ddJPCjtLcpaVl7TE2Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@@ -1699,12 +1707,13 @@
} }
}, },
"node_modules/@next/swc-win32-x64-msvc": { "node_modules/@next/swc-win32-x64-msvc": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.1.3.tgz", "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.3.tgz",
"integrity": "sha512-VId/f5blObG7IodwC5Grf+aYP0O8Saz1/aeU3YcWqNdIUAmFQY3VEPKPaIzfv32F/clvanOb2K2BR5DtDs6XyQ==", "integrity": "sha512-gHYS9tc+G2W0ZC8rBL+H6RdtXIyk40uLiaos0yj5US85FNhbFEndMA2nW3z47nzOWiSvXTZ5kBClc3rD0zJg0w==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
"license": "MIT",
"optional": true, "optional": true,
"os": [ "os": [
"win32" "win32"
@@ -7107,11 +7116,12 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/next": { "node_modules/next": {
"version": "15.1.3", "version": "15.2.3",
"resolved": "https://registry.npmjs.org/next/-/next-15.1.3.tgz", "resolved": "https://registry.npmjs.org/next/-/next-15.2.3.tgz",
"integrity": "sha512-5igmb8N8AEhWDYzogcJvtcRDU6n4cMGtBklxKD4biYv4LXN8+awc/bbQ2IM2NQHdVPgJ6XumYXfo3hBtErg1DA==", "integrity": "sha512-x6eDkZxk2rPpu46E1ZVUWIBhYCLszmUY6fvHBFcbzJ9dD+qRX6vcHusaqqDlnY+VngKzKbAiG2iRCkPbmi8f7w==",
"license": "MIT",
"dependencies": { "dependencies": {
"@next/env": "15.1.3", "@next/env": "15.2.3",
"@swc/counter": "0.1.3", "@swc/counter": "0.1.3",
"@swc/helpers": "0.5.15", "@swc/helpers": "0.5.15",
"busboy": "1.6.0", "busboy": "1.6.0",
@@ -7126,14 +7136,14 @@
"node": "^18.18.0 || ^19.8.0 || >= 20.0.0" "node": "^18.18.0 || ^19.8.0 || >= 20.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@next/swc-darwin-arm64": "15.1.3", "@next/swc-darwin-arm64": "15.2.3",
"@next/swc-darwin-x64": "15.1.3", "@next/swc-darwin-x64": "15.2.3",
"@next/swc-linux-arm64-gnu": "15.1.3", "@next/swc-linux-arm64-gnu": "15.2.3",
"@next/swc-linux-arm64-musl": "15.1.3", "@next/swc-linux-arm64-musl": "15.2.3",
"@next/swc-linux-x64-gnu": "15.1.3", "@next/swc-linux-x64-gnu": "15.2.3",
"@next/swc-linux-x64-musl": "15.1.3", "@next/swc-linux-x64-musl": "15.2.3",
"@next/swc-win32-arm64-msvc": "15.1.3", "@next/swc-win32-arm64-msvc": "15.2.3",
"@next/swc-win32-x64-msvc": "15.1.3", "@next/swc-win32-x64-msvc": "15.2.3",
"sharp": "^0.33.5" "sharp": "^0.33.5"
}, },
"peerDependencies": { "peerDependencies": {

View File

@@ -44,7 +44,7 @@
"fuse.js": "^7.0.0", "fuse.js": "^7.0.0",
"lucide-react": "^0.453.0", "lucide-react": "^0.453.0",
"mini-svg-data-uri": "^1.4.4", "mini-svg-data-uri": "^1.4.4",
"next": "15.1.3", "next": "15.2.3",
"next-themes": "^0.3.0", "next-themes": "^0.3.0",
"nuqs": "^2.1.1", "nuqs": "^2.1.1",
"pocketbase": "^0.21.4", "pocketbase": "^0.21.4",

View File

@@ -2,7 +2,7 @@
"name": "Audiobookshelf", "name": "Audiobookshelf",
"slug": "audiobookshelf", "slug": "audiobookshelf",
"categories": [ "categories": [
12 13
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",
@@ -31,4 +31,4 @@
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -0,0 +1,39 @@
{
"name": "FileFlows",
"slug": "fileflows",
"categories": [
13
],
"date_created": "2025-03-24",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 19200,
"documentation": "https://fileflows.com/docs",
"website": "https://fileflows.com/",
"logo": "https://raw.githubusercontent.com/revenz/FileFlows/refs/heads/develop/icon.png",
"description": "FileFlows is a powerful, open-source tool for automating media file processing workflows, including encoding, decoding, and media management. It offers an intuitive GUI and extensive plugin support, making it ideal for tasks like video transcoding, organizing, and managing large media libraries.",
"install_methods": [
{
"type": "default",
"script": "ct/fileflows.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 8,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "With Privileged/Unprivileged Hardware Acceleration Support",
"type": "info"
}
]
}

View File

@@ -1,34 +1,39 @@
{ {
"name": "FlowiseAI", "name": "FlowiseAI",
"slug": "flowiseai", "slug": "flowiseai",
"categories": [ "categories": [
20 20
], ],
"date_created": "2024-05-02", "date_created": "2024-05-02",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 3000, "interface_port": 3000,
"documentation": null, "documentation": "https://docs.flowiseai.com/",
"website": "https://flowiseai.com/", "website": "https://flowiseai.com/",
"logo": "https://flowiseai.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo-color-high.e60de2f8.png&w=256&q=75", "logo": "https://flowiseai.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Flogo-color-high.e60de2f8.png&w=256&q=75",
"description": "FlowiseAI is an open source low-code tool for developers to build customized LLM orchestration flow & AI agents", "description": "FlowiseAI is an open source low-code tool for developers to build customized LLM orchestration flow & AI agents",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/flowiseai.sh", "script": "ct/flowiseai.sh",
"resources": { "resources": {
"cpu": 4, "cpu": 4,
"ram": 4096, "ram": 4096,
"hdd": 10, "hdd": 10,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": [
} {
"text": "Application takes long time to install. Please be patient!",
"type": "warning"
}
]
}

View File

@@ -24,6 +24,17 @@
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
},
{
"type": "alpine",
"script": "ct/alpine-gitea.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
}
} }
], ],
"default_credentials": { "default_credentials": {
@@ -31,4 +42,4 @@
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -37,10 +37,10 @@
}, },
{ {
"text": "config path: `/var/lib/docker/volumes/hass_config/_data`", "text": "config path: `/var/lib/docker/volumes/hass_config/_data`",
"type": "warning" "type": "info"
}, },
{ {
"text": "Portainer Interface: LXC-IP: 9443", "text": "Portainer interface: $IP: 9443 - User & password must be set manually within 5 minutes, otherwise a restart of Portainer is required!",
"type": "info" "type": "info"
}, },
{ {
@@ -48,4 +48,4 @@
"type": "warning" "type": "warning"
} }
] ]
} }

View File

@@ -24,6 +24,17 @@
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
},
{
"type": "alpine",
"script": "ct/alpine-mariadb.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
}
} }
], ],
"default_credentials": { "default_credentials": {

View File

@@ -24,6 +24,17 @@
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
},
{
"type": "alpine",
"script": "ct/alpine-node-red.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
}
} }
], ],
"default_credentials": { "default_credentials": {
@@ -32,8 +43,8 @@
}, },
"notes": [ "notes": [
{ {
"text": "To install themes, type `update` in the LXC console.", "text": "To install themes, type `update` in the LXC console. (debian/ubuntu only)",
"type": "info" "type": "info"
} }
] ]
} }

View File

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

View File

@@ -24,6 +24,17 @@
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
},
{
"type": "alpine",
"script": "ct/alpine-redis.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "alpine",
"version": "3.21"
}
} }
], ],
"default_credentials": { "default_credentials": {
@@ -32,7 +43,7 @@
}, },
"notes": [ "notes": [
{ {
"text": "Redis Configuration: `nano /etc/redis/redis.conf`", "text": "Redis Configuration: `nano /etc/redis/redis.conf` or in Alpine: `nano /etc/redis.conf`",
"type": "info" "type": "info"
} }
] ]

View File

@@ -0,0 +1,43 @@
{
"name": "slskd",
"slug": "slskd",
"categories": [
11
],
"date_created": "2025-03-31",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 5030,
"documentation": "https://github.com/slskd/slskd/tree/master/docs",
"website": "https://github.com/slskd/slskd",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/png/slskd.png",
"description": "A modern client-server application for the Soulseek file sharing network. ",
"install_methods": [
{
"type": "default",
"script": "ct/slskd.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "slskd",
"password": "slskd"
},
"notes": [
{
"text": "See /opt/slskd/config/sksld.yml to add your Soulseek credentials",
"type": "info"
},
{
"text": "This LXC includes Soularr; it needs to be configured (/opt/soularr/config.ini) before it will work",
"type": "info"
}
]
}

View File

@@ -8,7 +8,7 @@
"type": "ct", "type": "ct",
"updateable": false, "updateable": false,
"privileged": false, "privileged": false,
"interface_port": null, "interface_port": 34400,
"documentation": null, "documentation": null,
"website": "https://github.com/Threadfin/Threadfin", "website": "https://github.com/Threadfin/Threadfin",
"logo": "https://raw.githubusercontent.com/Threadfin/Threadfin/main/html/img/threadfin.png", "logo": "https://raw.githubusercontent.com/Threadfin/Threadfin/main/html/img/threadfin.png",
@@ -31,4 +31,4 @@
"password": null "password": null
}, },
"notes": [] "notes": []
} }

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,43 @@
{
"name": "Wazuh",
"slug": "wazuh",
"categories": [
9
],
"date_created": "2025-03-24",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 443,
"documentation": "https://documentation.wazuh.com/",
"website": "https://wazuh.com/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/wazuh.svg",
"description": "Wazuh is an open-source security monitoring solution that provides endpoint protection, network monitoring, and log analysis capabilities.",
"install_methods": [
{
"type": "default",
"script": "ct/wazuh.sh",
"resources": {
"cpu": 4,
"ram": 4096,
"hdd": 18,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "root",
"password": null
},
"notes": [
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
},
{
"text": "Show password: `cat ~/wazuh.creds`",
"type": "info"
}
]
}

View File

@@ -0,0 +1,47 @@
{
"name": "yt-dlp-webui",
"slug": "yt-dlp-webui",
"categories": [
11
],
"date_created": "2025-03-24",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3033,
"documentation": "https://github.com/marcopiovanello/yt-dlp-web-ui",
"website": "https://github.com/marcopiovanello/yt-dlp-web-ui",
"logo": "https://raw.githubusercontent.com/marcopiovanello/yt-dlp-web-ui/refs/heads/master/frontend/src/assets/favicon.ico",
"description": "A not so terrible web ui for yt-dlp.\nHigh performance extendeable web ui and RPC server for yt-dlp with low impact on resources.\nCreated for the only purpose of fetching videos from my server/nas and monitor upcoming livestreams.",
"install_methods": [
{
"type": "default",
"script": "ct/yt-dlp-webui.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 4,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": null
},
"notes": [
{
"text": "Show password: `cat ~/yt-dlp-webui.creds`",
"type": "info"
},
{
"text": "The config file is located in `/opt/yt-dlp-webui/config.conf`",
"type": "info"
},
{
"text": "Make sure to either mount an external path or increase the Disk space afterwards",
"type": "info"
}
]
}

View File

@@ -1,39 +1,29 @@
import { Separator } from "@/components/ui/separator"; import { Separator } from "@/components/ui/separator";
import { extractDate } from "@/lib/time";
import { Script, AppVersion } from "@/lib/types";
import { fetchVersions } from "@/lib/data"; import { fetchVersions } from "@/lib/data";
import { extractDate } from "@/lib/time";
import { AppVersion, Script } from "@/lib/types";
import { X } from "lucide-react"; import { X } from "lucide-react";
import Image from "next/image"; import Image from "next/image";
import { basePath } from "@/config/siteConfig";
import { useEffect, useState } from "react";
import { getDisplayValueFromType } from "./ScriptInfoBlocks"; import { getDisplayValueFromType } from "./ScriptInfoBlocks";
import Alerts from "./ScriptItems/Alerts"; import Alerts from "./ScriptItems/Alerts";
import Buttons from "./ScriptItems/Buttons"; import Buttons from "./ScriptItems/Buttons";
import DefaultPassword from "./ScriptItems/DefaultPassword"; import DefaultPassword from "./ScriptItems/DefaultPassword";
import DefaultSettings from "./ScriptItems/DefaultSettings";
import Description from "./ScriptItems/Description"; import Description from "./ScriptItems/Description";
import InstallCommand from "./ScriptItems/InstallCommand"; import InstallCommand from "./ScriptItems/InstallCommand";
import InterFaces from "./ScriptItems/InterFaces"; import InterFaces from "./ScriptItems/InterFaces";
import Tooltips from "./ScriptItems/Tooltips"; import Tooltips from "./ScriptItems/Tooltips";
import { basePath } from "@/config/siteConfig";
import { useEffect, useState } from "react";
function ScriptItem({ item, setSelectedScript }: { item: Script; setSelectedScript: (script: string | null) => void }) {
function ScriptItem({
item,
setSelectedScript,
}: {
item: Script;
setSelectedScript: (script: string | null) => void;
}) {
const closeScript = () => { const closeScript = () => {
window.history.pushState({}, document.title, window.location.pathname); window.history.pushState({}, document.title, window.location.pathname);
setSelectedScript(null); setSelectedScript(null);
}; };
const [versions, setVersions] = useState<AppVersion[]>([]); const [versions, setVersions] = useState<AppVersion[]>([]);
useEffect(() => { useEffect(() => {
fetchVersions() fetchVersions()
.then((fetchedVersions) => { .then((fetchedVersions) => {
@@ -68,10 +58,7 @@ function ScriptItem({
className="h-32 w-32 rounded-lg bg-accent/60 object-contain p-3 shadow-md" className="h-32 w-32 rounded-lg bg-accent/60 object-contain p-3 shadow-md"
src={item.logo || `/${basePath}/logo.png`} src={item.logo || `/${basePath}/logo.png`}
width={400} width={400}
onError={(e) => onError={(e) => ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)}
((e.currentTarget as HTMLImageElement).src =
`/${basePath}/logo.png`)
}
height={400} height={400}
alt={item.name} alt={item.name}
unoptimized unoptimized
@@ -89,35 +76,165 @@ function ScriptItem({
Default OS: {os} {version} Default OS: {os} {version}
</p> </p>
</div> </div>
<div className="flex gap-5"> <div className="flex min-w-[600px] flex-wrap gap-6 text-sm text-muted-foreground">
<DefaultSettings item={item} /> {(() => {
</div> const getDisplayValueFromRAM = (ram: number) =>
<div>{versions.length === 0 ? (<p>Loading versions...</p>) : ram >= 1024 ? `${Math.floor(ram / 1024)}GB` : `${ram}MB`;
(<>
<p className="text-l text-foreground">Version:</p>
<p className="text-l text-muted-foreground">{versions.find((v) =>
v.name === item.slug.replace(/[^a-z0-9]/g, '') ||
v.name.includes(item.slug.replace(/[^a-z0-9]/g, '')) ||
v.name.replace(/[^a-z0-9]/g, '') === item.slug.replace(/[^a-z0-9]/g, '')
)?.version || "No Version information found" const IconText = ({ icon, label }: { icon: React.ReactNode; label: string }) => (
}</p> <span className="flex items-center gap-1">
<p className="text-l text-foreground">Latest changes:</p> {icon}
<p className="text-l text-muted-foreground"> {label}
{(() => { </span>
const matchedVersion = versions.find((v) => );
v.name === item.slug.replace(/[^a-z0-9]/g, '') ||
v.name.includes(item.slug.replace(/[^a-z0-9]/g, '')) || const CPUIcon = (
v.name.replace(/[^a-z0-9]/g, '') === item.slug.replace(/[^a-z0-9]/g, '') <svg
); xmlns="http://www.w3.org/2000/svg"
return matchedVersion?.date ? className="w-4 h-4"
extractDate(matchedVersion.date as unknown as string) : fill="none"
"No date information found" viewBox="0 0 24 24"
})()} stroke="currentColor"
</p> strokeWidth={2}
</>) >
} <rect x="9" y="9" width="6" height="6" />
<path d="M3 9h2m14 0h2M3 15h2m14 0h2M9 3v2m6-2v2M9 19v2m6-2v2" />
</svg>
);
const RAMIcon = (
<svg
xmlns="http://www.w3.org/2000/svg"
className="w-4 h-4"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<rect x="4" y="6" width="16" height="12" rx="2" ry="2" />
<path d="M8 6v12M16 6v12" />
</svg>
);
const HDDIcon = (
<svg
xmlns="http://www.w3.org/2000/svg"
className="w-4 h-4"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
strokeWidth={2}
>
<path d="M4 4h16v16H4z" />
<circle cx="8" cy="16" r="1" />
<circle cx="16" cy="16" r="1" />
</svg>
);
const ResourceDisplay = ({
title,
cpu,
ram,
hdd,
}: {
title: string;
cpu: number | null;
ram: number | null;
hdd: number | null;
}) => {
const getDisplayValueFromRAM = (ram: number) =>
ram >= 1024 ? `${Math.floor(ram / 1024)}GB` : `${ram}MB`;
const IconText = ({ icon, label }: { icon: React.ReactNode; label: string }) => (
<span className="flex items-center gap-1 whitespace-nowrap">
{icon}
{label}
</span>
);
const hasCPU = typeof cpu === "number" && cpu > 0;
const hasRAM = typeof ram === "number" && ram > 0;
const hasHDD = typeof hdd === "number" && hdd > 0;
if (!hasCPU && !hasRAM && !hasHDD) return null;
return (
<div className="flex flex-wrap items-center gap-1">
<span className="font-semibold text-foreground">{title}:</span>
{hasCPU && (
<>
<IconText icon={CPUIcon} label={`CPU: ${cpu} vCPU`} />
<span>|</span>
</>
)}
{hasRAM && (
<>
<IconText icon={RAMIcon} label={`RAM: ${getDisplayValueFromRAM(ram!)}`} />
<span>|</span>
</>
)}
{hasHDD && <IconText icon={HDDIcon} label={`HDD: ${hdd} GB`} />}
</div>
);
};
const defaultSettings = item.install_methods.find((method) => method.type === "default");
const alpineSettings = item.install_methods.find((method) => method.type === "alpine");
return (
<>
{defaultSettings?.resources && (
<ResourceDisplay
title="Default"
cpu={defaultSettings.resources.cpu}
ram={defaultSettings.resources.ram}
hdd={defaultSettings.resources.hdd}
/>
)}
{alpineSettings?.resources && (
<ResourceDisplay
title="Alpine"
cpu={alpineSettings.resources.cpu}
ram={alpineSettings.resources.ram}
hdd={alpineSettings.resources.hdd}
/>
)}
</>
);
})()}
</div> </div>
{(() => {
if (versions.length === 0) {
return <p>Loading versions...</p>;
}
const cleanSlug = item.slug.replace(/[^a-z0-9]/gi, "").toLowerCase();
const matched = versions.find((v) => {
const cleanName = v.name.replace(/[^a-z0-9]/gi, "").toLowerCase();
return cleanName === cleanSlug || cleanName.includes(cleanSlug);
});
if (!matched) return null;
return (
<div className="flex items-center gap-2 text-sm text-muted-foreground mt-2">
<span className="text-foreground">
Version: {matched.version} (
{extractDate(
matched.date instanceof Date ? matched.date.toISOString() : matched.date || "",
)}
</span>
<span
title="Crawled version from newreleases.io"
className="cursor-help rounded-full border border-green-500 px-2 py-0.5 text-xs font-semibold text-green-500"
>
Info
</span>
</div>
);
})()}
</div> </div>
</div> </div>
</div> </div>
@@ -134,9 +251,7 @@ function ScriptItem({
</div> </div>
<div className="mt-4 rounded-lg border bg-accent/50"> <div className="mt-4 rounded-lg border bg-accent/50">
<div className="flex gap-3 px-4 py-2"> <div className="flex gap-3 px-4 py-2">
<h2 className="text-lg font-semibold"> <h2 className="text-lg font-semibold">How to {item.type == "misc" ? "use" : "install"}</h2>
How to {item.type == "misc" ? "use" : "install"}
</h2>
<Tooltips item={item} /> <Tooltips item={item} />
</div> </div>
<Separator className="w-full"></Separator> <Separator className="w-full"></Separator>

View File

@@ -46,7 +46,7 @@ export const mostPopularScripts = ["post-pve-install", "docker", "homeassistant"
export const analytics = { export const analytics = {
url: "analytics.proxmoxve-scripts.com", url: "analytics.proxmoxve-scripts.com",
token: "b60d3032-1a11-4244-a100-81d26c5c49a7", token: "aefee1b9-2a12-4ac2-9d82-a63113edc62e",
}; };
export const AlertColors = { export const AlertColors = {

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://docs.2fauth.app/ # Source: https://docs.2fauth.app/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -14,14 +14,20 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
curl \ lsb-release \
sudo \ gpg
mc \
nginx \ curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
composer \ echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
php8.2-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli} \ $STD apt-get update
mariadb-server
$STD apt-get install -y \
nginx \
composer \
php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli} \
mariadb-server
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting up Database" msg_info "Setting up Database"
@@ -32,30 +38,30 @@ $STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');" $STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" $STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{ {
echo "2FAuth Credentials" echo "2FAuth Credentials"
echo "Database User: $DB_USER" echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS" echo "Database Password: $DB_PASS"
echo "Database Name: $DB_NAME" echo "Database Name: $DB_NAME"
} >> ~/2FAuth.creds } >>~/2FAuth.creds
msg_ok "Set up Database" msg_ok "Set up Database"
msg_info "Setup 2FAuth" msg_info "Setup 2FAuth"
RELEASE=$(curl -s https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -s https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
wget -q "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip" wget -q "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
unzip -q "${RELEASE}.zip" unzip -q "${RELEASE}.zip"
mv "2FAuth-${RELEASE//v}/" /opt/2fauth mv "2FAuth-${RELEASE//v/}/" /opt/2fauth
cd "/opt/2fauth" || return cd "/opt/2fauth" || return
cp .env.example .env cp .env.example .env
IPADDRESS=$(hostname -I | awk '{print $1}') IPADDRESS=$(hostname -I | awk '{print $1}')
sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \ sed -i -e "s|^APP_URL=.*|APP_URL=http://$IPADDRESS|" \
-e "s|^DB_CONNECTION=$|DB_CONNECTION=mysql|" \ -e "s|^DB_CONNECTION=$|DB_CONNECTION=mysql|" \
-e "s|^DB_DATABASE=$|DB_DATABASE=$DB_NAME|" \ -e "s|^DB_DATABASE=$|DB_DATABASE=$DB_NAME|" \
-e "s|^DB_HOST=$|DB_HOST=127.0.0.1|" \ -e "s|^DB_HOST=$|DB_HOST=127.0.0.1|" \
-e "s|^DB_PORT=$|DB_PORT=3306|" \ -e "s|^DB_PORT=$|DB_PORT=3306|" \
-e "s|^DB_USERNAME=$|DB_USERNAME=$DB_USER|" \ -e "s|^DB_USERNAME=$|DB_USERNAME=$DB_USER|" \
-e "s|^DB_PASSWORD=$|DB_PASSWORD=$DB_PASS|" .env -e "s|^DB_PASSWORD=$|DB_PASSWORD=$DB_PASS|" .env
export COMPOSER_ALLOW_SUPERUSER=1 export COMPOSER_ALLOW_SUPERUSER=1
$STD composer update --no-plugins --no-scripts $STD composer update --no-plugins --no-scripts
@@ -93,7 +99,7 @@ server {
error_page 404 /index.php; error_page 404 /index.php;
location ~ \.php\$ { location ~ \.php\$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;
include fastcgi_params; include fastcgi_params;
} }

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://actualbudget.org/ # Source: https://actualbudget.org/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -15,9 +15,6 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
curl \
sudo \
mc \
tini \ tini \
gpg \ gpg \
build-essential build-essential
@@ -46,7 +43,7 @@ mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migratio
chown -R root:root /opt/actualbudget-data chown -R root:root /opt/actualbudget-data
chmod -R 755 /opt/actualbudget-data chmod -R 755 /opt/actualbudget-data
cat <<EOF > /opt/actualbudget-data/.env cat <<EOF >/opt/actualbudget-data/.env
ACTUAL_UPLOAD_DIR=/opt/actualbudget-data/upload ACTUAL_UPLOAD_DIR=/opt/actualbudget-data/upload
ACTUAL_DATA_DIR=/opt/actualbudget-data ACTUAL_DATA_DIR=/opt/actualbudget-data
ACTUAL_SERVER_FILES_DIR=/opt/actualbudget-data/server-files ACTUAL_SERVER_FILES_DIR=/opt/actualbudget-data/server-files

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://adguard.com/ # Source: https://adguard.com/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -13,12 +13,6 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
msg_info "Installing AdGuard Home" msg_info "Installing AdGuard Home"
$STD tar zxvf <(curl -fsSL https://static.adtidy.org/adguardhome/release/AdGuardHome_linux_amd64.tar.gz) -C /opt $STD tar zxvf <(curl -fsSL https://static.adtidy.org/adguardhome/release/AdGuardHome_linux_amd64.tar.gz) -C /opt
msg_ok "Installed AdGuard Home" msg_ok "Installed AdGuard Home"

View File

@@ -6,7 +6,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/seanmorley15/AdventureLog # Source: https://github.com/seanmorley15/AdventureLog
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -17,9 +17,6 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
gpg \ gpg \
curl \
sudo \
mc \
gdal-bin \ gdal-bin \
libgdal-dev \ libgdal-dev \
git \ git \
@@ -57,12 +54,12 @@ $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8'
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';" $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';" $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
{ {
echo "AdventureLog-Credentials" echo "AdventureLog-Credentials"
echo "AdventureLog Database User: $DB_USER" echo "AdventureLog Database User: $DB_USER"
echo "AdventureLog Database Password: $DB_PASS" echo "AdventureLog Database Password: $DB_PASS"
echo "AdventureLog Database Name: $DB_NAME" echo "AdventureLog Database Name: $DB_NAME"
echo "AdventureLog Secret: $SECRET_KEY" echo "AdventureLog Secret: $SECRET_KEY"
} >> ~/adventurelog.creds } >>~/adventurelog.creds
msg_ok "Set up PostgreSQL" msg_ok "Set up PostgreSQL"
msg_info "Installing AdventureLog (Patience)" msg_info "Installing AdventureLog (Patience)"
@@ -74,7 +71,7 @@ RELEASE=$(curl -s https://api.github.com/repos/seanmorley15/AdventureLog/release
wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip" wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip unzip -q v${RELEASE}.zip
mv AdventureLog-${RELEASE} /opt/adventurelog mv AdventureLog-${RELEASE} /opt/adventurelog
cat <<EOF > /opt/adventurelog/backend/server/.env cat <<EOF >/opt/adventurelog/backend/server/.env
PGHOST='localhost' PGHOST='localhost'
PGDATABASE='${DB_NAME}' PGDATABASE='${DB_NAME}'
PGUSER='${DB_USER}' PGUSER='${DB_USER}'
@@ -103,7 +100,7 @@ $STD pip install -r requirements.txt
$STD python3 manage.py collectstatic --noinput $STD python3 manage.py collectstatic --noinput
$STD python3 manage.py migrate $STD python3 manage.py migrate
$STD python3 manage.py download-countries $STD python3 manage.py download-countries
cat <<EOF > /opt/adventurelog/frontend/.env cat <<EOF >/opt/adventurelog/frontend/.env
PUBLIC_SERVER_URL=http://$LOCAL_IP:8000 PUBLIC_SERVER_URL=http://$LOCAL_IP:8000
BODY_SIZE_LIMIT=Infinity BODY_SIZE_LIMIT=Infinity
ORIGIN='http://$LOCAL_IP:3000' ORIGIN='http://$LOCAL_IP:3000'
@@ -115,7 +112,7 @@ echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed AdventureLog" msg_ok "Installed AdventureLog"
msg_info "Setting up Django Admin" msg_info "Setting up Django Admin"
$STD python3 /opt/adventurelog/backend/server/manage.py shell << EOF $STD python3 /opt/adventurelog/backend/server/manage.py shell <<EOF
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
UserModel = get_user_model() UserModel = get_user_model()
user = UserModel.objects.create_user('$DJANGO_ADMIN_USER', password='$DJANGO_ADMIN_PASS') user = UserModel.objects.create_user('$DJANGO_ADMIN_USER', password='$DJANGO_ADMIN_PASS')
@@ -124,11 +121,11 @@ user.is_staff = True
user.save() user.save()
EOF EOF
{ {
echo "" echo ""
echo "Django-Credentials" echo "Django-Credentials"
echo "Django Admin User: $DJANGO_ADMIN_USER" echo "Django Admin User: $DJANGO_ADMIN_USER"
echo "Django Admin Password: $DJANGO_ADMIN_PASS" echo "Django Admin Password: $DJANGO_ADMIN_PASS"
} >> ~/adventurelog.creds } >>~/adventurelog.creds
msg_ok "Setup Django Admin" msg_ok "Setup Django Admin"
msg_info "Creating Service" msg_info "Creating Service"
@@ -171,4 +168,4 @@ msg_info "Cleaning up"
rm -rf /opt/v${RELEASE}.zip rm -rf /opt/v${RELEASE}.zip
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.ispyconnect.com/ # Source: https://www.ispyconnect.com/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -14,9 +14,6 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y unzip $STD apt-get install -y unzip
$STD apt-get install -y apt-transport-https $STD apt-get install -y apt-transport-https
$STD apt-get install -y alsa-utils $STD apt-get install -y alsa-utils

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.docker.com/ # Source: https://www.docker.com/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors

View File

@@ -0,0 +1,40 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gitea.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
newt \
curl \
openssh \
nano \
mc \
gpg
msg_ok "Installed Dependencies"
msg_info "Installing Gitea"
$STD apk add --no-cache gitea
msg_ok "Installed Gitea"
msg_info "Enabling Gitea Service"
$STD rc-update add gitea default
msg_ok "Enabled Gitea Service"
msg_info "Starting Gitea"
$STD service gitea start
msg_ok "Started Gitea"
motd_ssh
customize

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://grafana.com/ # Source: https://grafana.com/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -29,4 +29,4 @@ $STD rc-update add grafana default
msg_ok "Installed Grafana" msg_ok "Installed Grafana"
motd_ssh motd_ssh
customize customize

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://alpinelinux.org/ # Source: https://alpinelinux.org/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://it-tools.tech/ # Source: https://it-tools.tech/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -30,7 +30,7 @@ curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
mkdir -p /usr/share/nginx/html mkdir -p /usr/share/nginx/html
unzip -q it-tools.zip -d /tmp/it-tools unzip -q it-tools.zip -d /tmp/it-tools
cp -r /tmp/it-tools/dist/* /usr/share/nginx/html cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
cat <<'EOF' > /etc/nginx/http.d/default.conf cat <<'EOF' >/etc/nginx/http.d/default.conf
server { server {
listen 80; listen 80;
server_name localhost; server_name localhost;

View File

@@ -0,0 +1,59 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://mariadb.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
gpg \
sudo
msg_ok "Installed Dependencies"
msg_info "Installing MariaDB"
$STD apk add --no-cache mariadb mariadb-client
$STD rc-update add mariadb default
$STD rc-service mariadb start
msg_ok "Installed MariaDB"
msg_info "Configuring MariaDB"
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql >/dev/null 2>&1
$STD rc-service mariadb restart
msg_ok "MariaDB Configured"
read -r -p "Would you like to install Adminer with lighthttpd? <y/N>: " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Adminer"
$STD apk add --no-cache lighttpd php php-cgi php-mysqli php-mbstring php-zip php-gd php-json php-curl jq
sed -i 's|server.modules += ( "mod_cgi" )|server.modules += ( "mod_cgi", "mod_fastcgi" )|' /etc/lighttpd/lighttpd.conf
echo 'fastcgi.server += ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/php-cgi.sock" )))' >>/etc/lighttpd/lighttpd.conf
ADMINER_VERSION=$(curl -s https://api.github.com/repos/vrana/adminer/releases/latest | jq -r '.tag_name' | sed 's/v//')
wget -q -O /var/www/adminer.php "https://github.com/vrana/adminer/releases/download/v${ADMINER_VERSION}/adminer-${ADMINER_VERSION}.php"
chown lighttpd:lighttpd /var/www/adminer.php
chmod 755 /var/www/adminer.php
msg_ok "Adminer Installed"
msg_info "Starting Lighttpd"
$STD rc-update add lighttpd default
$STD rc-service lighttpd restart
msg_ok "Lighttpd Started"
echo -e "Adminer is available at: ${BL}http://$(hostname -I | awk '{print $1}')/adminer${CL}"
else
echo -e "Skipped Adminer Installation..."
fi
motd_ssh
customize
msg_info "Cleaning up"
msg_ok "Cleaned"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nextcloud.com/ # Source: https://nextcloud.com/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -139,7 +139,7 @@ server {
} }
EOF EOF
sed -i -e 's|memory_limit = 128M|memory_limit = 512M|; $aapc.enable_cli=1' /etc/php83/php.ini sed -i -e 's|memory_limit = 128M|memory_limit = 512M|; $aapc.enable_cli=1' /etc/php83/php.ini
sed -i -e 's|upload_max_file_size = 2M|upload_max_file_size = 16G|' /etc/php83/php.ini sed -i -e 's|upload_max_file_size = 2M|upload_max_file_size = 16G|' /etc/php83/php.ini
sed -i -E '/^php_admin_(flag|value)\[opcache/s/^/;/' /etc/php83/php-fpm.d/nextcloud.conf sed -i -E '/^php_admin_(flag|value)\[opcache/s/^/;/' /etc/php83/php-fpm.d/nextcloud.conf
msg_ok "Installed Nextcloud" msg_ok "Installed Nextcloud"

View File

@@ -0,0 +1,56 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nodered.org/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add --no-cache \
gpg \
git \
nodejs \
npm
msg_ok "Installed Dependencies"
msg_info "Creating Node-RED User"
adduser -D -H -s /sbin/nologin -G users nodered
msg_ok "Created Node-RED User"
msg_info "Installing Node-RED"
npm install -g --unsafe-perm node-red
msg_ok "Installed Node-RED"
msg_info "Creating Node-RED Service"
service_path="/etc/init.d/nodered"
echo '#!/sbin/openrc-run
description="Node-RED Service"
command="/usr/bin/node-red"
command_args="--max-old-space-size=128 -v"
command_user="nodered"
pidfile="/var/run/nodered.pid"
depend() {
use net
}' >$service_path
chmod +x $service_path
$STD rc-update add nodered default
msg_ok "Created Node-RED Service"
msg_info "Starting Node-RED"
$STD service nodered start
msg_ok "Started Node-RED"
motd_ssh
customize

View File

@@ -0,0 +1,35 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://redis.io/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add \
newt \
curl \
openssh \
nano \
mc \
gpg
msg_ok "Installed Dependencies"
msg_info "Installing Redis"
$STD apk add redis
$STD sed -i 's/^bind .*/bind 0.0.0.0/' /etc/redis.conf
$STD rc-update add redis default
$STD rc-service redis start
msg_ok "Installed Redis"
motd_ssh
customize

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/dani-garcia/vaultwarden # Source: https://github.com/dani-garcia/vaultwarden
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -32,7 +32,7 @@ msg_ok "Installed Alpine-Vaultwarden"
msg_info "Installing Web-Vault" msg_info "Installing Web-Vault"
$STD apk add vaultwarden-web-vault $STD apk add vaultwarden-web-vault
msg_ok "Installed Web-Vault" msg_ok "Installed Web-Vault"
msg_info "Starting Alpine-Vaultwarden" msg_info "Starting Alpine-Vaultwarden"
$STD rc-service vaultwarden start $STD rc-service vaultwarden start

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.zigbee2mqtt.io/ # Source: https://www.zigbee2mqtt.io/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cassandra.apache.org/_/index.html # Source: https://cassandra.apache.org/_/index.html
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -14,9 +14,6 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y apt-transport-https $STD apt-get install -y apt-transport-https
$STD apt-get install -y gpg $STD apt-get install -y gpg
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://couchdb.apache.org/ # Source: https://couchdb.apache.org/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -14,9 +14,6 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y apt-transport-https $STD apt-get install -y apt-transport-https
$STD apt-get install -y gnupg $STD apt-get install -y gnupg
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
@@ -24,11 +21,11 @@ msg_ok "Installed Dependencies"
msg_info "Installing Apache CouchDB" msg_info "Installing Apache CouchDB"
ERLANG_COOKIE=$(openssl rand -base64 32) ERLANG_COOKIE=$(openssl rand -base64 32)
ADMIN_PASS="$(openssl rand -base64 18 | cut -c1-13)" ADMIN_PASS="$(openssl rand -base64 18 | cut -c1-13)"
debconf-set-selections <<< "couchdb couchdb/cookie string $ERLANG_COOKIE" debconf-set-selections <<<"couchdb couchdb/cookie string $ERLANG_COOKIE"
debconf-set-selections <<< "couchdb couchdb/mode select standalone" debconf-set-selections <<<"couchdb couchdb/mode select standalone"
debconf-set-selections <<< "couchdb couchdb/bindaddress string 0.0.0.0" debconf-set-selections <<<"couchdb couchdb/bindaddress string 0.0.0.0"
debconf-set-selections <<< "couchdb couchdb/adminpass password $ADMIN_PASS" debconf-set-selections <<<"couchdb couchdb/adminpass password $ADMIN_PASS"
debconf-set-selections <<< "couchdb couchdb/adminpass_again password $ADMIN_PASS" debconf-set-selections <<<"couchdb couchdb/adminpass_again password $ADMIN_PASS"
curl -fsSL https://couchdb.apache.org/repo/keys.asc | gpg --dearmor -o /usr/share/keyrings/couchdb-archive-keyring.gpg curl -fsSL https://couchdb.apache.org/repo/keys.asc | gpg --dearmor -o /usr/share/keyrings/couchdb-archive-keyring.gpg
VERSION_CODENAME="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)" VERSION_CODENAME="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" >/etc/apt/sources.list.d/couchdb.sources.list echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" >/etc/apt/sources.list.d/couchdb.sources.list

View File

@@ -14,30 +14,29 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
build-essential \ build-essential \
curl \ jq \
jq \ libcairo2-dev \
libcairo2-dev \ libturbojpeg0 \
libturbojpeg0 \ libpng-dev \
libpng-dev \ libtool-bin \
libtool-bin \ libossp-uuid-dev \
libossp-uuid-dev \ libvncserver-dev \
libvncserver-dev \ freerdp2-dev \
freerdp2-dev \ libssh2-1-dev \
libssh2-1-dev \ libtelnet-dev \
libtelnet-dev \ libwebsockets-dev \
libwebsockets-dev \ libpulse-dev \
libpulse-dev \ libvorbis-dev \
libvorbis-dev \ libwebp-dev \
libwebp-dev \ libssl-dev \
libssl-dev \ libpango1.0-dev \
libpango1.0-dev \ libswscale-dev \
libswscale-dev \ libavcodec-dev \
libavcodec-dev \ libavutil-dev \
libavutil-dev \ libavformat-dev \
libavformat-dev \ mariadb-server \
mariadb-server \ default-jdk
default-jdk
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setup Apache Tomcat" msg_info "Setup Apache Tomcat"
@@ -84,7 +83,7 @@ mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVI
echo "Database User: $DB_USER" echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS" echo "Database Password: $DB_PASS"
echo "Database Name: $DB_NAME" echo "Database Name: $DB_NAME"
} >> ~/guacamole.creds } >>~/guacamole.creds
cd guacamole-auth-jdbc-1.5.5/mysql/schema cd guacamole-auth-jdbc-1.5.5/mysql/schema
cat *.sql | mysql -u root ${DB_NAME} cat *.sql | mysql -u root ${DB_NAME}
{ {
@@ -94,7 +93,7 @@ cat *.sql | mysql -u root ${DB_NAME}
echo "mysql-username: $DB_USER" echo "mysql-username: $DB_USER"
echo "mysql-password: $DB_PASS" echo "mysql-password: $DB_PASS"
} >> /etc/guacamole/guacamole.properties } >>/etc/guacamole/guacamole.properties
msg_ok "Setup Database" msg_ok "Setup Database"
msg_info "Setup Service" msg_info "Setup Service"
@@ -147,7 +146,7 @@ motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -rf ~/mysql-connector-java-8.0.26{,.tar.gz} rm -rf ~/mysql-connector-java-8.0.26{,.tar.gz}
rm -rf ~/guacamole-auth-jdbc-1.5.5{,.tar.gz} rm -rf ~/guacamole-auth-jdbc-1.5.5{,.tar.gz}
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/apache/tika/ # Source: https://github.com/apache/tika/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -15,9 +15,6 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
curl \
sudo \
mc \
software-properties-common \ software-properties-common \
gdal-bin \ gdal-bin \
tesseract-ocr \ tesseract-ocr \
@@ -26,6 +23,7 @@ $STD apt-get install -y \
tesseract-ocr-fra \ tesseract-ocr-fra \
tesseract-ocr-spa \ tesseract-ocr-spa \
tesseract-ocr-deu tesseract-ocr-deu
$STD echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections $STD echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
$STD apt-get install -y \ $STD apt-get install -y \
xfonts-utils \ xfonts-utils \

View File

@@ -16,9 +16,6 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
gnupg2 \ gnupg2 \
curl \
sudo \
mc \
lsb-release \ lsb-release \
gpg \ gpg \
apt-transport-https apt-transport-https

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://wiki.debian.org/AptCacherNg # Source: https://wiki.debian.org/AptCacherNg
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -13,12 +13,6 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
msg_info "Installing Apt-Cacher NG" msg_info "Installing Apt-Cacher NG"
DEBIAN_FRONTEND=noninteractive $STD apt-get -o Dpkg::Options::="--force-confold" install -y apt-cacher-ng DEBIAN_FRONTEND=noninteractive $STD apt-get -o Dpkg::Options::="--force-confold" install -y apt-cacher-ng
sed -i 's/# PassThroughPattern: .* # this would allow CONNECT to everything/PassThroughPattern: .*/' /etc/apt-cacher-ng/acng.conf sed -i 's/# PassThroughPattern: .* # this would allow CONNECT to everything/PassThroughPattern: .*/' /etc/apt-cacher-ng/acng.conf

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://archivebox.io/ # Source: https://archivebox.io/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -15,9 +15,6 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
curl \
sudo \
mc \
git \ git \
expect \ expect \
libssl-dev \ libssl-dev \
@@ -48,8 +45,8 @@ $STD apt-get install -y nodejs
msg_ok "Installed Node.js" msg_ok "Installed Node.js"
msg_info "Installing Playwright" msg_info "Installing Playwright"
$STD pip install playwright $STD pip install playwright
$STD playwright install-deps chromium $STD playwright install-deps chromium
msg_ok "Installed Playwright" msg_ok "Installed Playwright"
msg_info "Installing Chromium and ArchiveBox" msg_info "Installing Chromium and ArchiveBox"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://aria2.github.io/ # Source: https://aria2.github.io/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -13,12 +13,6 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
msg_info "Installing Aria2" msg_info "Installing Aria2"
$STD apt-get install -y aria2 $STD apt-get install -y aria2
msg_ok "Installed Aria2" msg_ok "Installed Aria2"
@@ -95,4 +89,4 @@ msg_info "Cleaning up"
rm AriaNg-*-AllInOne.zip rm AriaNg-*-AllInOne.zip
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.audiobookshelf.org/ # Source: https://www.audiobookshelf.org/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -14,10 +14,7 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y gnupg $STD apt-get install -y gnupg
$STD apt-get install -y mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing audiobookshelf" msg_info "Installing audiobookshelf"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.authelia.com/ # Source: https://www.authelia.com/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -13,13 +13,6 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc
msg_ok "Installed Dependencies"
msg_info "Installing Authelia" msg_info "Installing Authelia"
RELEASE=$(curl -s https://api.github.com/repos/authelia/authelia/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') RELEASE=$(curl -s https://api.github.com/repos/authelia/authelia/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
wget -q "https://github.com/authelia/authelia/releases/download/${RELEASE}/authelia_${RELEASE}_amd64.deb" wget -q "https://github.com/authelia/authelia/releases/download/${RELEASE}/authelia_${RELEASE}_amd64.deb"
@@ -30,9 +23,9 @@ read -p "Enter your domain (ex. example.com): " DOMAIN
msg_info "Setting Authelia up" msg_info "Setting Authelia up"
touch /etc/authelia/emails.txt touch /etc/authelia/emails.txt
JWT_SECRET=$(openssl rand -hex 64) JWT_SECRET=$(openssl rand -hex 64)
SESSION_SECRET=$(openssl rand -hex 64) SESSION_SECRET=$(openssl rand -hex 64)
STORAGE_KEY=$(openssl rand -hex 64) STORAGE_KEY=$(openssl rand -hex 64)
cat <<EOF >/etc/authelia/users.yml cat <<EOF >/etc/authelia/users.yml
users: users:
authelia: authelia:

View File

@@ -15,9 +15,6 @@ update_os
msg_info "Installing Dependencies (Patience)" msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y \ $STD apt-get install -y \
curl \
sudo \
mc \
gpg \ gpg \
pkg-config \ pkg-config \
libffi-dev \ libffi-dev \
@@ -104,7 +101,7 @@ DB_USER="authentik"
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)" DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME;" $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME;"
$STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';" $STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;" $STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME OWNER TO $DB_USER;" $STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME OWNER TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;" $STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
msg_ok "Installed PostgreSQL" msg_ok "Installed PostgreSQL"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://autobrr.com/ # Source: https://autobrr.com/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -13,12 +13,6 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
msg_info "Installing Autobrr" msg_info "Installing Autobrr"
wget -q $(curl -s https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4) wget -q $(curl -s https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)
tar -C /usr/local/bin -xzf autobrr*.tar.gz tar -C /usr/local/bin -xzf autobrr*.tar.gz

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://sabre.io/baikal/ # Source: https://sabre.io/baikal/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -15,13 +15,10 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
curl \ postgresql \
sudo \ apache2 \
mc \ libapache2-mod-php \
postgresql \ php-{pgsql,dom}
apache2 \
libapache2-mod-php \
php-{pgsql,dom}
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting up PostgreSQL" msg_info "Setting up PostgreSQL"
@@ -31,11 +28,11 @@ DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';" $STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;" $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
{ {
echo "Baikal Credentials" echo "Baikal Credentials"
echo "Baikal Database User: $DB_USER" echo "Baikal Database User: $DB_USER"
echo "Baikal Database Password: $DB_PASS" echo "Baikal Database Password: $DB_PASS"
echo "Baikal Database Name: $DB_NAME" echo "Baikal Database Name: $DB_NAME"
} >> ~/baikal.creds } >>~/baikal.creds
msg_ok "Set up PostgreSQL" msg_ok "Set up PostgreSQL"
msg_info "Installing Baikal" msg_info "Installing Baikal"
@@ -57,7 +54,7 @@ echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Baikal" msg_ok "Installed Baikal"
msg_info "Creating Service" msg_info "Creating Service"
cat <<EOF > /etc/apache2/sites-available/baikal.conf cat <<EOF >/etc/apache2/sites-available/baikal.conf
<VirtualHost *:80> <VirtualHost *:80>
ServerName baikal ServerName baikal
DocumentRoot /opt/baikal/html DocumentRoot /opt/baikal/html

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Forceu/barcodebuddy # Source: https://github.com/Forceu/barcodebuddy
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -15,9 +15,6 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
curl \
sudo \
mc \
apache2 \ apache2 \
redis \ redis \
php-{curl,date,json,mbstring,redis,sqlite3,sockets} \ php-{curl,date,json,mbstring,redis,sqlite3,sockets} \

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.bazarr.media/ # Source: https://www.bazarr.media/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -13,12 +13,6 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
msg_info "Setup Python3" msg_info "Setup Python3"
$STD apt-get install -y \ $STD apt-get install -y \
python3 \ python3 \
@@ -65,4 +59,4 @@ msg_info "Cleaning up"
rm -rf bazarr.zip rm -rf bazarr.zip
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://beszel.dev/ # Source: https://beszel.dev/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -13,17 +13,9 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
tar \
sudo \
mc
msg_ok "Installed Dependencies"
msg_info "Installing Beszel" msg_info "Installing Beszel"
mkdir -p /opt/beszel mkdir -p /opt/beszel
curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/armv6l/arm/' -e 's/armv7l/arm/' -e 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee /opt/beszel/beszel >/dev/null curl -sL "https://github.com/henrygd/beszel/releases/latest/download/beszel_$(uname -s)_$(uname -m | sed -e 's/x86_64/amd64/' -e 's/armv6l/arm/' -e 's/armv7l/arm/' -e 's/aarch64/arm64/').tar.gz" | tar -xz -O beszel | tee /opt/beszel/beszel >/dev/null
chmod +x /opt/beszel/beszel chmod +x /opt/beszel/beszel
msg_ok "Installed Beszel" msg_ok "Installed Beszel"
@@ -51,4 +43,4 @@ customize
msg_info "Cleaning up" msg_info "Cleaning up"
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://0xerr0r.github.io/blocky/latest/ # Source: https://0xerr0r.github.io/blocky/latest/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -13,14 +13,8 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
msg_ok "Installed Dependencies"
msg_info "Installing Blocky" msg_info "Installing Blocky"
if systemctl is-active systemd-resolved > /dev/null 2>&1; then if systemctl is-active systemd-resolved >/dev/null 2>&1; then
systemctl disable -q --now systemd-resolved systemctl disable -q --now systemd-resolved
fi fi
mkdir /opt/blocky mkdir /opt/blocky

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/stackblitz-labs/bolt.diy/ # Source: https://github.com/stackblitz-labs/bolt.diy/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -15,9 +15,6 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
curl \
sudo \
mc \
gnupg \ gnupg \
git git
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/BookStackApp/BookStack # Source: https://github.com/BookStackApp/BookStack
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -15,16 +15,13 @@ update_os
msg_info "Installing Dependencies (Patience)" msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y \ $STD apt-get install -y \
unzip \ unzip \
mariadb-server \ mariadb-server \
apache2 \ apache2 \
curl \ php8.2-{mbstring,gd,fpm,curl,intl,ldap,tidy,bz2,mysql,zip,xml} \
sudo \ composer \
php8.2-{mbstring,gd,fpm,curl,intl,ldap,tidy,bz2,mysql,zip,xml} \ libapache2-mod-php \
composer \ make
libapache2-mod-php \
make \
mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting up Database" msg_info "Setting up Database"
@@ -39,7 +36,7 @@ $STD sudo mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; F
echo "Bookstack Database User: $DB_USER" echo "Bookstack Database User: $DB_USER"
echo "Bookstack Database Password: $DB_PASS" echo "Bookstack Database Password: $DB_PASS"
echo "Bookstack Database Name: $DB_NAME" echo "Bookstack Database Name: $DB_NAME"
} >> ~/bookstack.creds } >>~/bookstack.creds
msg_ok "Set up database" msg_ok "Set up database"
msg_info "Setup Bookstack (Patience)" msg_info "Setup Bookstack (Patience)"
@@ -58,8 +55,8 @@ sudo sed -i "s/DB_PASSWORD=.*/DB_PASSWORD=$DB_PASS/" /opt/bookstack/.env
$STD composer install --no-dev --no-plugins --no-interaction $STD composer install --no-dev --no-plugins --no-interaction
$STD php artisan key:generate --no-interaction --force $STD php artisan key:generate --no-interaction --force
$STD php artisan migrate --no-interaction --force $STD php artisan migrate --no-interaction --force
chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
chmod -R 640 /opt/bookstack/.env chmod -R 640 /opt/bookstack/.env
$STD a2enmod rewrite $STD a2enmod rewrite
@@ -106,7 +103,7 @@ cat <<EOF >/etc/apache2/sites-available/bookstack.conf
</VirtualHost> </VirtualHost>
EOF EOF
$STD a2ensite bookstack.conf $STD a2ensite bookstack.conf
$STD a2dissite 000-default.conf $STD a2dissite 000-default.conf
$STD systemctl reload apache2 $STD systemctl reload apache2
msg_ok "Created Services" msg_ok "Created Services"

View File

@@ -5,7 +5,7 @@
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.bunkerweb.io/ # Source: https://www.bunkerweb.io/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -14,12 +14,9 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y gpg $STD apt-get install -y gpg
$STD apt-get install -y apt-transport-https $STD apt-get install -y apt-transport-https
$STD apt-get install -y lsb-release $STD apt-get install -y lsb-release
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Nginx" msg_info "Installing Nginx"

View File

@@ -15,9 +15,6 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y \ $STD apt-get install -y \
sudo \
curl \
mc \
gnupg gnupg
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"

View File

@@ -18,10 +18,7 @@ $STD apt-get install -y \
debian-keyring \ debian-keyring \
debian-archive-keyring \ debian-archive-keyring \
apt-transport-https \ apt-transport-https \
gpg \ gpg
curl \
sudo \
mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Caddy" msg_info "Installing Caddy"

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