Compare commits

...

240 Commits

Author SHA1 Message Date
87c61de11e Update CHANGELOG.md (#2493)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-19 20:46:01 +01:00
b293638c40 Fix: file replacement in Watcharr Update Script (#2498) 2025-02-19 20:25:57 +01:00
d1e0c2d164 Fix: Kometa - fixed successful setup message and added info to json (#2495)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
* Fix the installation complete message

* Added info in json
2025-02-19 15:26:20 +01:00
7e6a7468df Update actualbudget.sh 2025-02-19 14:34:57 +01:00
1ffe6b1c3c Update actualbudget.sh 2025-02-19 13:52:03 +01:00
a76733df60 Update actualbudget.sh 2025-02-19 13:43:29 +01:00
70f5280fcc quickfix, spelling error 2025-02-19 13:35:56 +01:00
4cbe90597e Fix: Actual Budget, add missing .env when updating (#2494) 2025-02-19 13:32:52 +01:00
0afe60e11a Fix: Actual Budget, add missing .env when updating 2025-02-19 13:30:22 +01:00
6982d02489 Update CHANGELOG.md (#2480)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-18 20:35:55 +01:00
031aefe05a Fix: SQL Server 2022 | GPG & Install (#2476) 2025-02-18 20:31:28 +01:00
fa01cfd840 Feature: PBS Bare Metal Installation - Allow Microcode (#2477) 2025-02-18 20:29:48 +01:00
331bc0f5a6 Update CHANGELOG.md (#2473)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-18 18:10:30 +01:00
7e9eb2f98a Update .app files (#2474)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-18 18:10:06 +01:00
5a72b1e523 New Script: Docmost (#2472)
* New Script: Docmost LXC

* fix path

* add redis
2025-02-18 17:51:44 +01:00
2693fabac2 Update CHANGELOG.md (#2470)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-18 13:04:08 +01:00
ce16be6393 Ensure Node version at least v18.20.3 and make fresh backup folder each time (#2468) 2025-02-18 12:00:24 +01:00
b694c339cb Update CHANGELOG.md (#2467) 2025-02-18 09:04:51 +01:00
3957b46d98 Update BunkerWeb installation scripts and configuration to follow the official documentation for the latest version (#2466) 2025-02-18 08:59:55 +01:00
54929e4b0d Update zipline-install.sh
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
2025-02-17 22:08:30 +01:00
ca20d52ac1 Update CHANGELOG.md (#2456)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-17 20:28:19 +01:00
e22a6dad6f Zipline: Prepare for Version 4.0.0 (#2455)
* Fix: Zipline Installation for V4

* Fix Zipline
2025-02-17 20:22:34 +01:00
ee84468498 Update CHANGELOG.md (#2445)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
2025-02-17 09:44:45 +01:00
746f19b0b8 Update zipline-install.sh (#2444)
Updated secret generation inline with official docs
2025-02-17 08:30:34 +01:00
a646a035d8 Update CHANGELOG.md (#2435)
Some checks failed
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Auto Update .app-files / update-app-files (push) Has been cancelled
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-16 12:00:33 +01:00
505cb23467 Debian icon update (#2433)
* Update Debian LXC icon

Change Debian LXC icon to SVG from selfhst icons

* Update Debian VM icon

Change Debian VM icon to SVG from selfhst icons
2025-02-16 11:34:02 +01:00
345e109d9f Update Graylog icon (#2434)
Change Graylog icon to SVG from selfhst icons
2025-02-16 11:33:52 +01:00
bca944034a fix version typo (#2430) 2025-02-16 10:16:32 +01:00
be27905776 Fix: Grist update no longer removes previous user data (#2428)
* fix: copy previous user files from /opt/grist_bak

related to issue #2421

* chore: add more logging when running update scripts

they can take a long time, and a user may think its stuck
2025-02-16 08:47:59 +01:00
53196c7603 Update CHANGELOG.md (#2425)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-15 23:04:59 +01:00
0777ddfbfc Setup cron in install/freshrss-install.sh (#2412) 2025-02-15 23:03:05 +01:00
18bd71da89 Update CHANGELOG.md (#2423)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-15 17:52:17 +01:00
ecd13dd5a4 [GH] Update script-test Workflow (#2415)
* Update script-test.yml

* Update script-test.yml
2025-02-15 17:51:51 +01:00
3ef1ac434a Update CHANGELOG.md (#2422)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-15 17:23:27 +01:00
60e32a05cd Update MagicMirror install and update scripts (#2409) 2025-02-15 16:46:37 +01:00
b7df0ee936 Update CHANGELOG.md (#2420) 2025-02-15 16:15:37 +01:00
4cf24c54d7 add: section to update old service files (#2416) 2025-02-15 16:13:48 +01:00
c4ed0738cf Update CHANGELOG.md (#2417)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-15 12:21:59 +01:00
88b20e5545 Update CHANGELOG.md (#2414)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-15 11:21:30 +01:00
7c5b072303 Fix RustDesk slug in json (#2411) 2025-02-15 10:22:29 +01:00
347a23ad60 Update CHANGELOG.md (#2402)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
2025-02-14 16:04:03 +01:00
29806c4525 Update script-test.yml (#2399) 2025-02-14 15:31:34 +01:00
a045dc8012 Update CHANGELOG.md (#2396)
Some checks failed
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Auto Update .app-files / update-app-files (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-14 12:29:26 +01:00
80e7e2f5b6 [gh] Introducing new Issue Github Template Feature (Bug, Feature, Task) (#2394)
* Update bug_report.yml

* Create feature_request.yml

* Create task.yml

* Update config.yml
2025-02-14 12:10:16 +01:00
1789d181aa Fix homarr (#2369)
* fix homarr script

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* fix nginx hostname

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr.sh

* Update homarr-install.sh

* Update homarr.sh

* Update install.func

* Update homarr.sh

* Update homarr.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update build.func

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr.json

* Update homarr-install.sh

* Update homarr-install.sh

* Update homarr.sh

* Update homarr.sh

* Update homarr.sh

* Update homarr.sh

* Update homarr.sh

* Update homarr.sh

* Update homarr.sh

* Update homarr.sh

* Update install.func

* Update build.func

* Update homarr-install.sh

* fix comments
2025-02-14 12:09:35 +01:00
f0ca0c3379 Update CHANGELOG.md (#2395)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-14 11:53:42 +01:00
1711e44a4d [API]Add more enpoints to API (#2390)
* Add pagination to API

* Add pagination to API
2025-02-14 11:32:26 +01:00
afe4af2ff6 Update CHANGELOG.md (#2392)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-14 10:34:55 +01:00
ec8c564e25 Update CHANGELOG.md (#2391)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-14 10:33:42 +01:00
fd9d64b342 Added configuration guide to json (#2389) 2025-02-14 10:29:25 +01:00
1d928f7ea8 Update CHANGELOG.md (#2386)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-14 09:01:58 +01:00
f3c9e8f013 Update api.func (#2378) 2025-02-14 08:06:03 +01:00
99813136fe Rework error handeling (#2377)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
2025-02-13 21:43:17 +01:00
21a29d7212 Update CHANGELOG.md (#2381)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-02-13 21:10:09 +01:00
f679a4a1dc Missing ";" (#2380) 2025-02-13 21:04:57 +01:00
d27f7f13e5 Update CHANGELOG.md (#2379)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 20:51:46 +01:00
80cfc3b8a5 Update trilium.sh 2025-02-13 20:50:01 +01:00
d159e47a62 Fix: Element Synapse - Fixed server listening on both localhost and 0.0.0.0 (#2376)
* fixed server listening on both localhost and 0.0.0.0

* fix typo
2025-02-13 20:40:31 +01:00
47fd890bcd Update CHANGELOG.md (#2371) 2025-02-13 18:00:58 +01:00
af01193bc2 [core] cleanup (remove # App Default Values) (#2356) 2025-02-13 17:59:47 +01:00
8373e26f1e Update .app files (#2372)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-13 17:39:14 +01:00
1cc2a90b08 Re-Add: Pf2eTools (#2336)
* Re-Add: Pf2eTools

* Update pf2etools.sh

* indention

* Update pf2etools.sh
2025-02-13 17:29:46 +01:00
a8a729fcda Update CHANGELOG.md (#2368)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 16:04:18 +01:00
fe93224d77 increase RAM and hdd resources (#2367) 2025-02-13 16:03:13 +01:00
ddccd1dd3f Update CHANGELOG.md (#2365)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 15:27:03 +01:00
2b61b184f2 Update .app files (#2364)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-13 15:26:23 +01:00
01d761ce71 New Script: Nx Witness (#2350)
* New Script: NX Witness

* Update nxwitness.json
2025-02-13 15:23:29 +01:00
cfa6b28131 Update CHANGELOG.md (#2361)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 15:07:25 +01:00
431fbd471f make script updateable (#2352) 2025-02-13 15:05:39 +01:00
ca5e4559df Update CHANGELOG.md (#2360)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 15:05:32 +01:00
928946cd4c Update CHANGELOG.md (#2359)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 15:04:08 +01:00
221bbdeff3 Update pr-build.func (#2354)
* Update pr-build.func

* Update pr-build.func
2025-02-13 15:03:51 +01:00
879989b5b6 Update build.func (#2358) 2025-02-13 15:03:18 +01:00
1d42ce6282 Update CHANGELOG.md (#2355)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 14:42:27 +01:00
6f131933b7 [core] cleanup (remove base_settings & unneeded comments) (#2351) 2025-02-13 14:40:49 +01:00
aaa6ae879b Update CHANGELOG.md (#2345)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 14:04:43 +01:00
da8c40dca8 Update script-test.yml (#2347)
* Update script-test.yml

* Update script-test.yml
2025-02-13 13:50:16 +01:00
caa4b7d19e [GH] Remove unwanted output from script test workflow (#2337)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
* Remove unwanted output from workflow

* Remove unwanted output from workflow

* update .yml so it supports external repos

* update .yml so it supports external repos
2025-02-13 13:00:35 +01:00
b99adb5e1a Update CHANGELOG.md (#2344)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 12:52:42 +01:00
8b23cafed9 Fix script category name text alignment in ScriptAccordion (#2342) 2025-02-13 12:48:42 +01:00
3c82ae04d7 Update CHANGELOG.md (#2338)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 12:29:34 +01:00
504cecfe97 Update .app files (#2340)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-13 12:28:09 +01:00
880b6e0476 New Script: RustDesk Server (#2326)
* add rustdesk server script

* remove http from server address
2025-02-13 11:57:22 +01:00
4b430aac7c Update .app files (#2339)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-13 11:27:23 +01:00
819bda4573 New Script: MinIO (#2333)
* New Script: MinIO

* switch category to database

* update tag

* optimize tag to object-storage

* harmonize path

* Update minio.sh
2025-02-13 11:20:35 +01:00
8b327552b2 Update CHANGELOG.md (#2331)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 09:28:40 +01:00
24a2bbdb65 [gh] Workflow to change date on new json files (#2319) 2025-02-13 09:22:56 +01:00
2692cbe5e0 Update CHANGELOG.md (#2330)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 08:04:48 +01:00
3b01e633a7 Update CHANGELOG.md (#2329)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-13 07:59:56 +01:00
8a720c328a add server build code (#2327) 2025-02-13 07:57:58 +01:00
585bb697b5 Use the latest versions of runlike with --use-volume-id (#2325) 2025-02-13 07:57:00 +01:00
3b905f29ef Update CHANGELOG.md (#2324)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-12 23:32:04 +01:00
f2512b032f fix message (#2323) 2025-02-12 23:31:00 +01:00
29d3073539 Update CHANGELOG.md (#2320)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-12 22:53:31 +01:00
2a91a5d2e9 Fix: Kometa - Fix wrong web site address (#2318)
* fix web address

* fix another bad web address
2025-02-12 22:45:28 +01:00
2492497417 add -y
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-02-12 20:59:23 +01:00
dc3a0eca69 Update .app files (#2315)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-12 20:09:40 +01:00
d5714eb749 Update CHANGELOG.md (#2312)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-12 20:09:28 +01:00
bd90b30300 Update .app files (#2314)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-12 20:08:56 +01:00
5946079f47 Fix: var_tags instead of TAGS in some CT's (#2310)
* Fix some Tags in CTS

* fix some others

* Update suwayomiserver.sh
2025-02-12 20:08:44 +01:00
72b546e945 Fix some jsons (debian instead Debian in OS) (#2311) 2025-02-12 20:08:26 +01:00
65f8495a12 New Script: Kometa (#2281)
* add kometa script

* scale up LXC a bit

* fixes

* Update kometa.json

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-02-12 20:07:32 +01:00
ab64e7e013 Update .app files (#2313)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-12 20:06:42 +01:00
80053c1cc3 New Script: Excalidraw (#2285)
* add excalidraw script

* made suggested fixes

* more fixes

* some more fixes

* even more fixes

* fix debian

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-02-12 20:06:33 +01:00
067c962baf New Script: Graylog (#2270)
* add graylog script

* Update install/graylog-install.sh

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>

* fixes

* Update ct/graylog.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* used wildcard to remove repo deb

* fixes v2

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>
2025-02-12 20:05:42 +01:00
e5c6953e98 Update CHANGELOG.md (#2309)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-12 20:02:23 +01:00
03d8d095cc Website: Add After-Install Note for Ubuntu VM 22.04/24.04/24.10 and Debian VM (#2307)
* add note for debian12 vm

* add note for ubuntu 22.04 vm

* add note to ubuntu 24.04 vm

* add note to ubuntu 24.10 vm
2025-02-12 19:20:08 +01:00
22f44d117a Update ubuntu2410-vm.sh: Fix typo in API call. (#2305) 2025-02-12 19:19:57 +01:00
417d4089d7 Fix Myspeed Installtion (#2308) 2025-02-12 19:01:56 +01:00
c892401218 Update CHANGELOG.md (#2303)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-12 18:28:47 +01:00
3483ea7025 fixes #2301: check for a file named pingvin_version, not a variable with the same name (#2302) 2025-02-12 18:20:00 +01:00
9ec1b651cd Update sqlserver2022-install.sh 2025-02-12 17:10:20 +01:00
f06b37f180 Update sqlserver2022-install.sh 2025-02-12 17:02:02 +01:00
ca01015586 remove empty line 2025-02-12 16:42:54 +01:00
362b5cd031 Update sqlserver2022.sh 2025-02-12 16:42:36 +01:00
64e9eac80f Update CHANGELOG.md (#2299)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-12 16:12:53 +01:00
e4c2485823 Update .app files (#2300)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-12 16:12:17 +01:00
a5f77f23e9 New Script: TasmoCompiler (#2235)
* add tasmocompiler script

* bunch of script fixes

* remove typo

* Update json/tasmocompiler.json

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update ct/tasmocompiler.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update json/tasmocompiler.json

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update ct/tasmocompiler.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

---------

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>
2025-02-12 16:10:24 +01:00
0f7ff181df Update CHANGELOG.md (#2298) 2025-02-12 14:30:38 +01:00
1788551393 fix: frigate pin version (#2296) 2025-02-12 14:27:33 +01:00
1c9d23713d Update CHANGELOG.md (#2295)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-12 13:56:31 +01:00
3f779e14fa Fix changedetection: Correct Browser install (#2277) 2025-02-12 13:29:51 +01:00
58eff8c4cb remove wrong msg 2025-02-12 13:29:20 +01:00
6c495bcafc Update CHANGELOG.md (#2294) 2025-02-12 13:24:31 +01:00
6de6b1542c fix duplicate 'VM' in name opnsense-vm.json (#2293) 2025-02-12 13:20:55 +01:00
62425bc514 add more deps
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Frontend CI/CD / build (push) Waiting to run
2025-02-12 11:35:23 +01:00
8cf1c2969b Update CHANGELOG.md (#2287)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-12 11:27:27 +01:00
5d56822d1b Frigate: Use Fixed Version 14 (#2288) 2025-02-12 11:26:54 +01:00
c014bc200e Paperless-AI: add dependency "make" (#2289) 2025-02-12 11:26:41 +01:00
56de05a392 Fix: Typo OPNsense VM (#2291) 2025-02-12 11:05:08 +01:00
76ca5181ae Update .app files (#2290) 2025-02-12 10:05:02 +01:00
8181518c24 New script: cross-seed (#2186) 2025-02-12 10:04:27 +01:00
ba636ed25d remove sudo (#2282) 2025-02-12 08:21:37 +01:00
e797cba504 fix: fix default java version (#2286) 2025-02-12 08:20:35 +01:00
ecc294953b Update script-test.yml (#2276)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
2025-02-11 20:32:31 +01:00
e9d8b30de0 Update CHANGELOG.md (#2275)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Frontend CI/CD / build (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-11 20:09:16 +01:00
4a42012906 New Script: Opnsense VM (#2097)
* New Script: Opnsense VM

* update json

* update json

* update opensens-vm.sh

* update opensens-vm.sh

* update opensens-vm.sh

* update opensens-vm.sh

* update opensens-vm.sh

* update opensens-vm.sh

* Update opnsense-vm.sh

* Update opnsense-vm.sh

* Update opnsense-vm.sh

* opnsense-vm.sh update

* Update date_created in new JSON files

* Update opnsens.sh

* Update vm/opnsense-vm.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update opnsense-vm.sh

* Update json/opnsense-vm.json

Co-authored-by: Emik <phoenix0919mik@gmail.com>

* updates

---------

Co-authored-by: Rögl-Brunner Michel <Michel.Roegl-brunner@htl-braunau.int>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>
Co-authored-by: Emik <phoenix0919mik@gmail.com>
2025-02-11 20:07:51 +01:00
37016259e1 Update CHANGELOG.md (#2273) 2025-02-11 18:59:50 +01:00
bf5fc97e1a Add Workflow to test Scripts (#2269) 2025-02-11 18:45:50 +01:00
1c89ef3f12 Update CHANGELOG.md (#2267)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-11 14:43:35 +01:00
b2d022edff Fix Photoprism: Add defaults.yml for CLI Tool (#2261) 2025-02-11 14:43:04 +01:00
a5a143111c Update Checkmk version grepping (#2264)
Co-authored-by: Rögl-Brunner Michel <Michel.Roegl-brunner@htl-braunau.int>
2025-02-11 14:42:09 +01:00
9338fdeebf Update Komodo icon (#2263)
Old icon link was dead.
Replaced with selfh.st svg icon
2025-02-11 14:22:12 +01:00
6a486d4d73 Update crafty-controller-install.sh 2025-02-11 14:08:59 +01:00
e55db3cb75 Update pull_request_template.md (#2266) 2025-02-11 13:43:48 +01:00
b39078af7e Update crafty-controller-install.sh 2025-02-11 13:20:12 +01:00
8e8e631d22 Update filebrowser.sh 2025-02-11 12:47:33 +01:00
a34da2459d Update filebrowser.sh 2025-02-11 12:46:45 +01:00
81a64c2cff Update filebrowser.sh 2025-02-11 12:36:38 +01:00
414a6617f8 Rename update_json_date.yml to update_json_date.yml.bak 2025-02-11 12:30:03 +01:00
4af819f449 Update CHANGELOG.md (#2245)
Some checks failed
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Auto Update JSON-Date / update-json-dates (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-11 11:55:26 +01:00
229016ca10 Update .app files (#2260)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-11 11:49:14 +01:00
51f3f97967 Fix: Apache Guacamole Version Crawling - only latest Version (#2258) 2025-02-11 11:45:41 +01:00
c548c3bd88 New Script: Watcharr (#2243)
* add watcharr script

* fix author name
2025-02-11 11:45:25 +01:00
0877e6a2f2 Update update_json_date.yml 2025-02-11 10:58:53 +01:00
133aa1a1f2 Update .app files (#2256)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-11 10:57:21 +01:00
c32e71cae3 New Script: Suwayomi-Server (#2139)
* add suwayomi-server script

* fix header

* Update ct/suwayomiserver.sh

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>

* Update ct/suwayomiserver.sh

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>

* fixes

* more fixes

* fixes

* Update json/suwayomi-server.json

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>
2025-02-11 10:55:27 +01:00
a71bdb6f06 Update update_json_date.yml 2025-02-11 10:54:51 +01:00
f6bc82e77a Update update_json_date.yml 2025-02-11 10:52:46 +01:00
5736b6aa5c Update update-json.sh 2025-02-11 10:52:43 +01:00
c30b080e44 Update update_json_date.yml 2025-02-11 10:49:37 +01:00
61567a66b0 Update update_json_date.yml 2025-02-11 10:49:19 +01:00
e23137eb63 Update update-json.sh 2025-02-11 10:48:58 +01:00
8acf81b937 Update update_json_date.yml 2025-02-11 10:46:57 +01:00
f1683ad39f Update update_json_date.yml 2025-02-11 10:43:57 +01:00
33ee969d91 Create update-json.sh 2025-02-11 10:42:47 +01:00
f03471133e Update update_json_date.yml 2025-02-11 10:40:06 +01:00
cdbabcac89 Update update_json_date.yml 2025-02-11 10:37:55 +01:00
0122e70b1d Update update_json_date.yml 2025-02-11 10:35:53 +01:00
a4037c151e Update update_json_date.yml 2025-02-11 10:34:00 +01:00
5d58d6d14f Update update_json_date.yml 2025-02-11 10:33:05 +01:00
8a1446ac4e Update update_json_date.yml 2025-02-11 10:31:02 +01:00
1ce3929d66 Update update_json_date.yml 2025-02-11 10:30:20 +01:00
dd62089b61 Update update_json_date.yml 2025-02-11 10:27:06 +01:00
8cda7e4dd8 Update update_json_date.yml 2025-02-11 10:24:21 +01:00
bc3abdfe91 Update update_json_date.yml 2025-02-11 10:10:06 +01:00
e793dfff3a Update update_json_date.yml 2025-02-11 10:07:13 +01:00
12ec0b46bc Update update_json_date.yml 2025-02-11 10:04:37 +01:00
55fa65e168 Update update_json_date.yml 2025-02-11 10:02:05 +01:00
6de6216bc6 Update update_json_date.yml 2025-02-11 10:00:30 +01:00
1bca424acf Update update_json_date.yml 2025-02-11 09:59:09 +01:00
a51e688388 Update update_json_date.yml 2025-02-11 09:46:06 +01:00
c40fc2b159 Update update_json_date.yml 2025-02-11 09:44:17 +01:00
d859646dac Update update_json_date.yml 2025-02-11 09:43:21 +01:00
a0e0f28c66 Update and rename update_json_date.yml.bak to update_json_date.yml 2025-02-11 09:41:38 +01:00
8595675531 Update CHANGELOG.md (#2242)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-11 00:13:36 +01:00
70435b9e5a Update CHANGELOG.md (#2240)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 23:59:59 +01:00
1731f5274b Update .app files (#2241)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-10 23:59:47 +01:00
6a775f6026 New Script: Prometheus Paperless-NGX Exporter (#2153)
* New Script: Prometheus Paperless NGX Exporter

* Temp: Change import URLs to test fork

* Prometheus Paperless NGX Exporter: Fix double `=`  in systemd unit file

* Revert "Temp: Change import URLs to test fork"

This reverts commit f78d295c02.

* Fix script in `install_methods`
2025-02-10 23:57:29 +01:00
0b3e63bd3f Update CHANGELOG.md (#2238)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 23:48:48 +01:00
514ff1fbe7 Update .app files (#2239)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-10 23:47:13 +01:00
85bf9f319b New Script: Proxmox Mail Gateway (#1906)
* Proxmox Mail Gateway LXC

* improvements

* renamed to long name and added install check

* Update proxmox-mail-gateway.sh

* Update proxmox-mail-gateway.sh

* Update proxmox-mail-gateway.json

* Update proxmox-mail-gateway-install.sh

* Update proxmox-mail-gateway.sh

* Update proxmox-mail-gateway.sh

* Update proxmox-mail-gateway-install.sh

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
2025-02-10 23:43:44 +01:00
dff4e735f0 Update CHANGELOG.md (#2234)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 20:01:15 +01:00
b81b9c574b Feature: Automatic Deletion of choosen LXC's (lxc-delete.sh) (#2228)
* Feature: Automatic Deletion of choosen LXC's (lxc-delete.sh)

* fix appname

* fix header
2025-02-10 19:59:23 +01:00
f82eb87476 Quickfix: Crafty-Controller remove unnecessary \ (#2233) 2025-02-10 19:59:00 +01:00
d47bd677da Update CHANGELOG.md (#2227)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 18:18:45 +01:00
2c32b7fa94 Update .app files (#2230)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-10 18:17:31 +01:00
4d996c95e0 New Script: FreshRSS (#2226) 2025-02-10 17:39:14 +01:00
90473b7b10 Fix: Crafty-Controller java versions and set default (#2199) 2025-02-10 17:38:18 +01:00
e4f756ce73 Update filebrowser.sh 2025-02-10 17:01:45 +01:00
10159e934f Update filebrowser.sh 2025-02-10 16:50:39 +01:00
865e6fd3d7 Feature: Add optional Port for Filebrowser (#2224) 2025-02-10 16:40:51 +01:00
a1dd57ded6 Update filebrowser.sh 2025-02-10 15:46:10 +01:00
1c808b95a8 Update filebrowser.sh 2025-02-10 15:45:15 +01:00
0c024515f1 Update CHANGELOG.md (#2218)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 15:02:00 +01:00
4c7d82f4eb Website: Fix Zitadel Logo & Created-Date (#2217)
* Website: Fix Zitadel Logo & Created-Date

* Update autolabeler.yml

* Update autolabeler.yml
2025-02-10 14:58:06 +01:00
e4ee00b403 Update CHANGELOG.md (#2216)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 14:50:46 +01:00
d380fdd0ea Update autolabeler.yml 2025-02-10 14:50:04 +01:00
9756ac639b Update changelog-pr.yml 2025-02-10 14:47:38 +01:00
7105f67145 [gh]: Improve Workflows, Templates, Handling (#2214)
* Remove Game-Relevant in RequestScript

* Update pull_request_template.md

* Update pull_request_template.md

* Update changelog-pr.yml

* Update autolabeler.yml

* Update autolabeler.yml

* Update changelog-pr.yml

* Update changelog-pr.yml
2025-02-10 14:42:17 +01:00
35547c4316 Update CHANGELOG.md (#2212)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 12:53:34 +01:00
ccc71a7225 [Fix] Filebrowser - Add Static Path for DB (#2207)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-02-10 11:42:11 +01:00
c5101d3358 Revert "Prevent double spinner (#2203)" (#2211)
This reverts commit 33ef8aadbe.
2025-02-10 11:29:59 +01:00
5bbf197a8d Update CHANGELOG.md (#2208)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 11:20:55 +01:00
70b5c62c9f Changes to workflow files (#2204)
Co-authored-by: Rögl-Brunner Michel <Michel.Roegl-brunner@htl-braunau.int>
2025-02-10 11:15:28 +01:00
33ef8aadbe Prevent double spinner (#2203)
Co-authored-by: Rögl-Brunner Michel <Michel.Roegl-brunner@htl-braunau.int>
2025-02-10 11:14:24 +01:00
e989bbba29 Update CHANGELOG.md (#2205)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 11:03:56 +01:00
3f35900914 Fixed URL typo zerotier-one.json (#2206) 2025-02-10 10:38:02 +01:00
e5f738b567 Fix: "read -p" does not support color formatting (#2191)
* Fix: "read -p" does not support color formatting

* Fix: "read -p" does not support color formatting
2025-02-10 10:29:33 +01:00
6fc357ecd0 Update CHANGELOG.md (#2201)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 10:21:49 +01:00
758659a91e Update .app files (#2202)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-10 09:31:45 +01:00
b05858c6e9 New Script: Zitadel (#2141)
* Create zitadel-install.sh

* Create zitadel.json

* Create zitadel.sh

* Update zitadel.sh

Edit reference back to upstream build.func

* Update zitadel.json

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

* Update zitadel.sh

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

* Update zitadel.sh

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

* Update zitadel.sh

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

* Update zitadel.sh

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

* Update zitadel.sh

* Update zitadel-install.sh

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

* Update zitadel-install.sh

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

* Update zitadel.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update zitadel.json

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Use declared variables in config files

* Remove other architectures

* Update to fit changes requested

Include mc for install; removal of variable ARCH and put into direct links; correct the default resources required

* Update zitadel.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update zitadel-install.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Update zitadel-install.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* Made changes to fit suggestions

* Update zitadel-install.sh

correct version output

* Update zitadel-install.sh

* Update path for version.txt

* Set update part default to our project defaults

* Update zitadel.sh, Remove v befor ${RELEASE}

* Update zitadel-install.sh

---------

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
2025-02-10 09:29:38 +01:00
a481e89cad [API] Add API to vms (#2021)
* add API to debian-vm.sh

* [API] Add API calls to VMs

* [API] Add API calls to VMs

* [API] Add API calls to VMs

* [API] Add API calls to VMs

* [API] Add API calls to VMs

* debian-vm.sh

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>

* updates

---------

Co-authored-by: bvdberg01 <74251551+bvdberg01@users.noreply.github.com>
Co-authored-by: Rögl-Brunner Michel <Michel.Roegl-brunner@htl-braunau.int>
2025-02-10 09:13:09 +01:00
b9094e306e Update CHANGELOG.md (#2200)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-10 09:12:19 +01:00
31c8617258 evcc.json Clarify the config file location (#2193)
* Clarify the config file location

Clarify the config file location: evcc is set up to use a config file "evcc.yaml" in the "/etc" location. If you do not know this location, you won't get evcc to use it.

* Update json/evcc.json

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

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-02-10 09:04:07 +01:00
f94d727af7 Update CHANGELOG.md (#2195)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-09 22:02:28 +01:00
054829c4d5 Website: Set new Logo Paperless-AI (#2194)
set new logo after request
2025-02-09 22:01:25 +01:00
d20c92bd4f Update CHANGELOG.md (#2181)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-09 11:10:32 +01:00
64b9fa090a New Script: pbs_microcode.sh (#2166) 2025-02-09 11:01:00 +01:00
5abc84b776 Fix: Barcode Buddy Logo & Title (#2183) 2025-02-09 10:24:28 +01:00
2b0666bcf8 Fix: Home Assistant - Keep the same hass_config volume (#2160) 2025-02-09 10:23:37 +01:00
2ef6ac2fe4 duplicate (#2175)
Some checks are pending
Auto Update .app-files / update-app-files (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-02-09 01:46:42 +01:00
4bb887a390 Update CHANGELOG.md (#2177)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-08 23:40:58 +01:00
8fd8ca2c50 Fixed typos in CONTRIBUTOR_GUIDE (#2174)
Co-authored-by: thomashondema <thomas.hondema@icepay.com>
2025-02-08 23:37:35 +01:00
f69d5b5831 fix(actualbudget): Salvage the .migrate file when upgrading (#2173) 2025-02-08 23:36:02 +01:00
fead4b76f8 Update .app files (#2170)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-08 22:46:44 +01:00
800c1065b9 Update CHANGELOG.md (#2171) 2025-02-08 22:00:37 +01:00
782e0a8535 New script: Barcode Buddy (#2167) 2025-02-08 21:59:42 +01:00
5863d81571 Update CHANGELOG.md (#2164)
Some checks are pending
Shellcheck / Shellcheck (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Frontend CI/CD / build (push) Waiting to run
Frontend CI/CD / deploy (push) Blocked by required conditions
2025-02-08 14:49:23 +01:00
c15e34143f Update cosmos.json (#2162) 2025-02-08 14:33:17 +01:00
392 changed files with 6485 additions and 1602 deletions

View File

@ -119,18 +119,13 @@ var_unprivileged="1"
## 2.2 **📋 App output & base settings**
```bash
# App Output & Base Settings
header_info "$APP"
base_settings
```
- `header_info`: Generates ASCII header for APP
- `base_settings`: Allows overwriting variable values
## 2.3 **🛠 Core functions**
```bash
# Core
variables
color
catch_errors
@ -171,7 +166,7 @@ if [[ ! -d /opt/snipe-it ]]; then
### 3.3 **Check version**
- Befoer updating, check if a new version exists.
- Before updating, check if a new version exists.
- We use the `${APPLICATION}_version.txt` file created in `/opt` during the install to compare new versions against the currently installed version.
Example with a Github Release:
@ -241,7 +236,7 @@ Example:
### 3.7 **No update function**
- In case you can not provide a update function use the following code to provide user feedback.
- In case you can not provide an update function use the following code to provide user feedback.
```bash
function update_script() {
@ -252,7 +247,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Ther is currently no automatic update function for ${APP}."
msg_error "There is currently no automatic update function for ${APP}."
exit
}
```
@ -286,6 +281,6 @@ echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
- [ ] Metadata (author, license) is included at the top.
- [ ] Variables follow naming conventions.
- [ ] Update function exists.
- [ ] Update functions checks if app is installed an for new version.
- [ ] Update function up temporary files.
- [ ] Update functions checks if app is installed and for new version.
- [ ] Update function cleans up temporary files.
- [ ] Script ends with a helpful message for the user to reach the application.

View File

@ -23,11 +23,7 @@ var_version="[VERSION]"
var_unprivileged="[UNPRIVILEGED]"
# 1 = unprivileged container, 0 = privileged container
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
@ -46,8 +42,6 @@ function update_script() {
# Crawling the new version and checking whether an update is required
RELEASE=$(curl -fsSL [RELEASE_URL] | [PARSE_RELEASE_COMMAND])
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Updating $APP"
# Stopping Services
msg_info "Stopping $APP"
systemctl stop [SERVICE_NAME]

View File

@ -80,7 +80,4 @@ msg_info "Cleaning up"
rm -f ${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
motd_ssh
customize
msg_ok "Cleaned"

View File

@ -12,7 +12,7 @@
"documentation": null,
"website": "LINK TO WEBSITE",
"logo": "LINK TO LOGO",
"description": "Deescription of the app",
"description": "Description of the app",
"install_methods": [
{
"type": "default",

View File

@ -30,8 +30,6 @@ body:
required: true
- label: "I have searched existing [discussions](https://github.com/community-scripts/ProxmoxVE/discussions?discussions_q=) and found no duplicate requests."
required: true
- label: "This is not a game-related request."
required: true
- type: markdown
attributes:
value: "Thanks for submitting your request! The team will review it and reach out if we need more information."

View File

@ -1,6 +1,6 @@
name: "🐞 Script Issue Report"
description: Report a specific issue with a script. For other inquiries, please use the Discussions section.
labels: ["bug"]
body:
- type: markdown
attributes:

View File

@ -3,7 +3,7 @@ contact_links:
- name: 🤔 Questions and Help
url: https://github.com/community-scripts/ProxmoxVE/discussions
about: For suggestions or questions, please use the Discussions section.
- name: 🌟 Feature request
- name: 🌟 new Script request
url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script
about: For feature/script requests, please use the Discussions section.
- name: 💻 Discord

View File

@ -0,0 +1,33 @@
name: "✨ Feature Request"
description: "Suggest a new feature or enhancement."
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
# ✨ **Feature Request**
Have an idea for a new feature? Share your thoughts below!
- type: input
id: feature_summary
attributes:
label: "🌟 Briefly describe the feature"
placeholder: "e.g., Add support for XYZ"
validations:
required: true
- type: textarea
id: feature_description
attributes:
label: "📝 Detailed description"
placeholder: "Explain the feature in detail"
validations:
required: true
- type: textarea
id: use_case
attributes:
label: "💡 Why is this useful?"
placeholder: "Describe the benefit of this feature"
validations:
required: true

25
.github/ISSUE_TEMPLATE/task.yml vendored Normal file
View File

@ -0,0 +1,25 @@
name: "🛠️ Task / General Request"
description: "Request a general task, improvement, or refactor."
labels: ["task"]
body:
- type: markdown
attributes:
value: |
# 🛠️ **Task / General Request**
Request a task that isn't a bug or feature request.
- type: input
id: task_summary
attributes:
label: "📌 Task summary"
placeholder: "e.g., Refactor XYZ"
validations:
required: true
- type: textarea
id: task_details
attributes:
label: "📋 Task details"
placeholder: "Explain what needs to be done"
validations:
required: true

View File

@ -23,7 +23,7 @@
{
"fileStatus": "modified",
"includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
"excludeGlobs": ["misc/build.func", "misc/install.func"]
"excludeGlobs": ["misc/build.func", "misc/install.func", "misc/api.func"]
}
],
"delete script": [
@ -51,13 +51,20 @@
{
"fileStatus": null,
"includeGlobs": ["*.md", ".github/**", "misc/*.func", "ct/create_lxc.sh"],
"excludeGlobs": ["misc/api.func"]
}
],
"api": [
{
"fileStatus": null,
"includeGlobs": ["api/**", "misc/api.func"],
"excludeGlobs": []
}
],
"high risk": [
{
"fileStatus": null,
"includeGlobs": ["misc/build.func", "misc/install.func"],
"includeGlobs": ["misc/build.func", "misc/install.func", "ct/create_lxc.sh"],
"excludeGlobs": []
}
]

View File

@ -1,30 +1,34 @@
[
{
"title": "💥 Breaking Changes",
"labels": ["breaking change"]
},
{
"title": "✨ New Scripts",
"labels": ["new script"]
},
{
"title": "🚀 Updated Scripts",
"labels": ["update script"]
},
{
"title": "🌐 Website",
"labels": ["website"]
},
{
"title": "🐞 Bug Fixes",
"labels": ["bug fix"]
},
{
"title": "🧰 Maintenance",
"labels": ["maintenance"]
},
{
"title": "❔ Unlabelled",
"labels": []
}
{
"title": "💥 Breaking Changes",
"labels": ["breaking change"]
},
{
"title": "✨ New Scripts",
"labels": ["new script"]
},
{
"title": "🚀 Updated Scripts",
"labels": ["update script"]
},
{
"title": "🌐 Website",
"labels": ["website"]
},
{
"title": "🐞 Bug Fixes",
"labels": ["bug fix"]
},
{
"title": "🧰 Maintenance",
"labels": ["maintenance"]
},
{
"title": "📡 API",
"labels": ["api"]
},
{
"title": "❔ Unlabelled",
"labels": []
}
]

View File

@ -1,28 +1,25 @@
## ✍️ Description
## ✍️ Description
<!-- Provide a clear and concise description of your changes. -->
- - -
- Related Issue: #
- Related PR: #
- Related Discussion: #
- - -
## 🔗 Related PR / Discussion / Issue
Link: #
## ✅ Prerequisites
The following steps must be completed for the pull request to be considered:
- [] Self-review performed (I have reviewed my code to ensure it follows established patterns and conventions.)
- [] Testing performed (I have thoroughly tested my changes and verified expected functionality.)
## 🛠️ Type of Change
Please check the relevant options:
- [] Bug fix (non-breaking change that resolves an issue)
- [] New feature (non-breaking change that adds functionality)
- [] Breaking change (fix or feature that would cause existing functionality to change unexpectedly)
- [] New script (a fully functional and thoroughly tested script or set of scripts)
## ✅ Prerequisites
Before this PR can be reviewed, the following must be completed:
- [] **Self-review performed** Code follows established patterns and conventions.
- [] **Testing performed** Changes have been thoroughly tested and verified.
---
## 📋 Additional Information (optional)
Provide any extra context or screenshots about the feature or fix here.
## 🛠️ Type of Change
Select all that apply:
- [] 🐞 **Bug fix** Resolves an issue without breaking functionality.
- [] ✨ **New feature** Adds new, non-breaking functionality.
- [] 💥 **Breaking change** Alters existing functionality in a way that may require updates.
- [] 🆕 **New script** A fully functional and tested script or script set.
## 📋 Additional Information (optional)
<!-- Provide extra context, screenshots, or references if needed. -->

View File

@ -17,6 +17,13 @@ jobs:
pull-requests: write
steps:
- name: Generate a token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
# Step 1: Checkout repository
- name: Checkout repository
uses: actions/checkout@v2
@ -71,7 +78,7 @@ jobs:
--base main \
--label "automated pr"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
- name: Approve pull request
if: env.changed == 'true'

View File

@ -30,15 +30,15 @@ jobs:
- name: Get latest dates in changelog
run: |
# Extract the latest and second latest dates from changelog
DATES=$(grep '^## [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}' CHANGELOG.md | head -n 2 | awk '{print $2}')
# Extrahiere die neuesten zwei Daten aus dem Changelog
DATES=$(grep -E '^## [0-9]{4}-[0-9]{2}-[0-9]{2}' CHANGELOG.md | head -n 2 | awk '{print $2}')
LATEST_DATE=$(echo "$DATES" | sed -n '1p')
SECOND_LATEST_DATE=$(echo "$DATES" | sed -n '2p')
TODAY=$(date -u +%Y-%m-%d)
echo "TODAY=$TODAY" >> $GITHUB_ENV
if [ "$LATEST_DATE" == "$TODAY" ]; then
if [[ "$LATEST_DATE" == "$TODAY" ]]; then
echo "LATEST_DATE=$SECOND_LATEST_DATE" >> $GITHUB_ENV
else
echo "LATEST_DATE=$LATEST_DATE" >> $GITHUB_ENV
@ -55,10 +55,10 @@ jobs:
const configPath = path.resolve(process.env.CONFIG_PATH);
const fileContent = await fs.readFile(configPath, 'utf-8');
const changelogConfig = JSON.parse(fileContent);
const categorizedPRs = changelogConfig.map((obj) => ({ ...obj, notes: [] }));
const categorizedPRs = changelogConfig.map(obj => ({ ...obj, notes: [] }));
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({
owner: context.repo.owner,
@ -70,18 +70,16 @@ jobs:
per_page: 100,
});
pulls.filter((pr) =>
pulls.filter(pr =>
pr.merged_at &&
new Date(pr.merged_at) > latestDateInChangelog &&
!pr.labels.some((label) => ["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase()))
).forEach((pr) => {
const prLabels = pr.labels.map((label) => label.name.toLowerCase());
!pr.labels.some(label => ["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}))`;
for (const { labels, notes } of categorizedPRs) {
const prHasCategoryLabel = labels.some((label) => prLabels.includes(label));
const isUnlabelledCategory = labels.length === 0;
if (prHasCategoryLabel || isUnlabelledCategory) {
if (labels.length === 0 || labels.some(label => prLabels.includes(label))) {
notes.push(prNote);
break;
}
@ -102,7 +100,7 @@ jobs:
const changelogPath = path.resolve('CHANGELOG.md');
const categorizedPRs = ${{ steps.get-categorized-prs.outputs.result }};
let newReleaseNotes = `## ${today}\n\n### Changed\n\n`;
let newReleaseNotes = `## ${today}\n\n### Changes\n\n`;
for (const { title, notes } of categorizedPRs) {
if (notes.length > 0) {
newReleaseNotes += `### ${title}\n\n${notes.join("\n")}\n\n`;
@ -112,21 +110,21 @@ jobs:
const changelogContent = await fs.readFile(changelogPath, 'utf-8');
const changelogIncludesTodaysReleaseNotes = changelogContent.includes(`\n## ${today}`);
// Replace todays release notes or insert release notes above previous release notes
const regex = changelogIncludesTodaysReleaseNotes ?
new RegExp(`## ${today}.*(?=## ${latestDateInChangelog})`, "gs") :
new RegExp(`(?=## ${latestDateInChangelog})`, "gs");
// Ersetze oder füge Release Notes ein
const regex = changelogIncludesTodaysReleaseNotes
? new RegExp(`## ${today}.*(?=## ${latestDateInChangelog})`, "gs")
: new RegExp(`(?=## ${latestDateInChangelog})`, "gs");
const newChangelogContent = changelogContent.replace(regex, newReleaseNotes)
const newChangelogContent = changelogContent.replace(regex, newReleaseNotes);
await fs.writeFile(changelogPath, newChangelogContent);
- name: Check if there are any changes
- name: Check for changes
id: verify-diff
run: |
git diff --quiet . || echo "changed=true" >> $GITHUB_OUTPUT
git diff --quiet . || echo "changed=true" >> $GITHUB_ENV
- name: Commit and push changes to separate branch
if: steps.verify-diff.outputs.changed == 'true'
- name: Commit and push changes
if: env.changed == 'true'
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
@ -136,7 +134,7 @@ jobs:
git push origin $BRANCH_NAME --force
- name: Create pull request if not exists
if: steps.verify-diff.outputs.changed == 'true'
if: env.changed == 'true'
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
run: |
@ -150,7 +148,7 @@ jobs:
fi
- name: Approve pull request
if: steps.verify-diff.outputs.changed == 'true'
if: env.changed == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
@ -158,9 +156,9 @@ jobs:
if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve
fi
- name: Re-approve pull request after update
if: steps.verify-diff.outputs.changed == 'true'
if: env.changed == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |

View File

@ -0,0 +1,28 @@
name: Delete JSON date PR Branch
on:
pull_request:
types: [closed]
branches:
- main
jobs:
delete_branch:
runs-on: ubuntu-latest
steps:
- name: Checkout the code
uses: actions/checkout@v3
- name: Delete PR Update Branch
if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'pr-update-json-')
run: |
PR_BRANCH="${{ github.event.pull_request.head.ref }}"
echo "Deleting branch $PR_BRANCH..."
# Avoid deleting the default branch (e.g., main)
if [[ "$PR_BRANCH" != "main" ]]; then
git push origin --delete "$PR_BRANCH"
else
echo "Skipping deletion of the main branch"
fi

159
.github/workflows/script-test.yml vendored Normal file
View File

@ -0,0 +1,159 @@
name: Run Scripts on PVE Node for testing
permissions:
pull-requests: write
on:
pull_request_target:
branches:
- main
paths:
- 'install/**.sh'
- 'ct/**.sh'
jobs:
run-install-script:
runs-on: pvenode
steps:
- name: Checkout PR branch (supports forks)
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
- name: Add Git safe directory
run: |
git config --global --add safe.directory /__w/ProxmoxVE/ProxmoxVE
- name: Set up GH_TOKEN
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "GH_TOKEN=${GH_TOKEN}" >> $GITHUB_ENV
- name: Get Changed Files
run: |
CHANGED_FILES=$(gh pr diff ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --name-only)
CHANGED_FILES=$(echo "$CHANGED_FILES" | tr '\n' ' ')
echo "Changed files: $CHANGED_FILES"
echo "SCRIPT=$CHANGED_FILES" >> $GITHUB_ENV
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Get scripts
id: check-install-script
run: |
ALL_FILES=()
ADDED_FILES=()
for FILE in ${{ env.SCRIPT }}; do
if [[ $FILE =~ ^install/.*-install\.sh$ ]] || [[ $FILE =~ ^ct/.*\.sh$ ]]; then
STRIPPED_NAME=$(basename "$FILE" | sed 's/-install//' | sed 's/\.sh$//')
if [[ ! " ${ADDED_FILES[@]} " =~ " $STRIPPED_NAME " ]]; then
ALL_FILES+=("$FILE")
ADDED_FILES+=("$STRIPPED_NAME") # Mark this base file as added (without the path)
fi
fi
done
ALL_FILES=$(echo "${ALL_FILES[@]}" | xargs)
echo "$ALL_FILES"
echo "ALL_FILES=$ALL_FILES" >> $GITHUB_ENV
- name: Run scripts
id: run-install
continue-on-error: true
run: |
set +e
#run for each files in /ct
for FILE in ${{ env.ALL_FILES }}; do
STRIPPED_NAME=$(basename "$FILE" | sed 's/-install//' | sed 's/\.sh$//')
echo "Running Test for: $STRIPPED_NAME"
if [[ $FILE =~ ^install/.*-install\.sh$ ]]; then
CT_SCRIPT="ct/$STRIPPED_NAME.sh"
if [[ ! -f $CT_SCRIPT ]]; then
echo "No CT script found for $STRIPPED_NAME"
ERROR_MSG="No CT script found for $FILE"
echo "$ERROR_MSG" > result_$STRIPPED_NAME.log
continue
fi
echo "Found CT script for $STRIPPED_NAME"
chmod +x "$CT_SCRIPT"
RUNNING_FILE=$CT_SCRIPT
elif [[ $FILE =~ ^ct/.*\.sh$ ]]; then
INSTALL_SCRIPT="install/$STRIPPED_NAME-install.sh"
if [[ ! -f $INSTALL_SCRIPT ]]; then
echo "No install script found for $STRIPPED_NAME"
ERROR_MSG="No install script found for $FILE"
echo "$ERROR_MSG" > result_$STRIPPED_NAME.log
continue
fi
echo "Found install script for $STRIPPED_NAME"
chmod +x "$INSTALL_SCRIPT"
RUNNING_FILE=$FILE
fi
git remote add community-scripts https://github.com/community-scripts/ProxmoxVE.git
git fetch community-scripts
rm -f .github/workflows/scripts/app-test/pr-build.func || true
rm -f .github/workflows/scripts/app-test/pr-install.func || true
rm -f .github/workflows/scripts/app-test/pr-alpine-install.func || true
rm -f .github/workflows/scripts/app-test/pr-create-lxc.sh || true
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-build.func
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-install.func
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-alpine-install.func
git checkout community-scripts/main -- .github/workflows/scripts/app-test/pr-create-lxc.sh
chmod +x $RUNNING_FILE
chmod +x .github/workflows/scripts/app-test/pr-create-lxc.sh
chmod +x .github/workflows/scripts/app-test/pr-install.func
chmod +x .github/workflows/scripts/app-test/pr-alpine-install.func
chmod +x .github/workflows/scripts/app-test/pr-build.func
sed -i 's|source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)|source .github/workflows/scripts/app-test/pr-build.func|g' "$RUNNING_FILE"
echo "Executing $RUNNING_FILE"
ERROR_MSG=$(./$RUNNING_FILE 2>&1 > /dev/null)
echo "Finished running $FILE"
if [ -n "$ERROR_MSG" ]; then
echo "ERROR in $STRIPPED_NAME: $ERROR_MSG"
echo "$ERROR_MSG" > result_$STRIPPED_NAME.log
fi
done
set -e # Restore exit-on-error
- name: Cleanup PVE Node
run: |
containers=$(pct list | tail -n +2 | awk '{print $0 " " $4}' | awk '{print $1}')
for container_id in $containers; do
status=$(pct status $container_id | awk '{print $2}')
if [[ $status == "running" ]]; then
pct stop $container_id
pct destroy $container_id
fi
done
- name: Post error comments
run: |
ERROR="false"
SEARCH_LINE=".github/workflows/scripts/app-test/pr-build.func: line 253:"
for FILE in ${{ env.ALL_FILES }}; do
STRIPPED_NAME=$(basename "$FILE" | sed 's/-install//' | sed 's/\.sh$//')
if [[ ! -f result_$STRIPPED_NAME.log ]]; then
continue
fi
ERROR_MSG=$(cat result_$STRIPPED_NAME.log)
if [ -n "$ERROR_MSG" ]; then
CLEANED_ERROR_MSG=$(echo "$ERROR_MSG" | sed "s|$SEARCH_LINE.*||")
echo "Posting error message for $FILE"
echo ${CLEANED_ERROR_MSG}
gh pr comment ${{ github.event.pull_request.number }} \
--repo ${{ github.repository }} \
--body ":warning: The script _**$FILE**_ failed with the following message: <br> <div><strong>${CLEANED_ERROR_MSG}</strong></div>"
ERROR="true"
fi
done
echo "ERROR=$ERROR" >> $GITHUB_ENV
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Fail if error
if: ${{ env.ERROR == 'true' }}
run: exit 1

View File

@ -0,0 +1,88 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
color() {
return
}
catch_errors() {
set -Eeuo pipefail
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
}
error_handler() {
local line_number="$1"
local command="$2"
SCRIPT_NAME=$(basename "$0")
local error_message="$SCRIPT_NAME: Failure in line $line_number while executing command $command"
echo -e "\n$error_message"
exit 0
}
verb_ip6() {
STD=""
return
}
msg_info() {
local msg="$1"
echo -ne "${msg}\n"
}
msg_ok() {
local msg="$1"
echo -e "${msg}\n"
}
msg_error() {
local msg="$1"
echo -e "${msg}\n"
}
RETRY_NUM=10
RETRY_EVERY=3
i=$RETRY_NUM
setting_up_container() {
while [ $i -gt 0 ]; do
if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" != "" ]; then
break
fi
echo 1>&2 -en "No Network! "
sleep $RETRY_EVERY
i=$((i - 1))
done
if [ "$(ip addr show | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1)" = "" ]; then
echo 1>&2 -e "\n No Network After $RETRY_NUM Tries"
echo -e "Check Network Settings"
exit 1
fi
msg_ok "Set up Container OS"
msg_ok "Network Connected: $(hostname -i)"
}
network_check() {
RESOLVEDIP=$(getent hosts github.com | awk '{ print $1 }')
if [[ -z "$RESOLVEDIP" ]]; then msg_error "DNS Lookup Failure"; else msg_ok "DNS Resolved github.com to $RESOLVEDIP"; fi
set -e
}
update_os() {
msg_info "Updating Container OS"
apk update
apk upgrade
msg_ok "Updated Container OS"
}
motd_ssh() {
return
}
customize() {
return
}

View File

@ -0,0 +1,260 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Michel Roegl-Brunner (michelroegl-brunner)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
variables() {
NSAPP=$(echo ${APP,,} | tr -d ' ') # This function sets the NSAPP variable by converting the value of the APP variable to lowercase and removing any spaces.
var_install="${NSAPP}-install" # sets the var_install variable by appending "-install" to the value of NSAPP.
}
NEXTID=$(pvesh get /cluster/nextid)
timezone=$(cat /etc/timezone)
header_info(){
return
}
base_settings() {
# Default Settings
CT_TYPE="1"
DISK_SIZE="4"
CORE_COUNT="1"
RAM_SIZE="1024"
VERBOSE="${1:-no}"
PW=""
CT_ID=$NEXTID
HN="Testing"
BRG="vmbr0"
NET="dhcp"
GATE=""
APT_CACHER=""
APT_CACHER_IP=""
DISABLEIP6="no"
MTU=""
SD=""
NS=""
MAC=""
VLAN=""
SSH="no"
SSH_AUTHORIZED_KEY=""
TAGS="community-script;"
# Override default settings with variables from ct script
CT_TYPE=${var_unprivileged:-$CT_TYPE}
DISK_SIZE=${var_disk:-$DISK_SIZE}
CORE_COUNT=${var_cpu:-$CORE_COUNT}
RAM_SIZE=${var_ram:-$RAM_SIZE}
VERB=${var_verbose:-$VERBOSE}
TAGS="${TAGS}${var_tags:-}"
# Since these 2 are only defined outside of default_settings function, we add a temporary fallback. TODO: To align everything, we should add these as constant variables (e.g. OSTYPE and OSVERSION), but that would currently require updating the default_settings function for all existing scripts
if [ -z "$var_os" ]; then
var_os="debian"
fi
if [ -z "$var_version" ]; then
var_version="12"
fi
}
color() {
# Colors
YW=$(echo "\033[33m")
YWB=$(echo "\033[93m")
BL=$(echo "\033[36m")
RD=$(echo "\033[01;31m")
BGN=$(echo "\033[4;92m")
GN=$(echo "\033[1;92m")
DGN=$(echo "\033[32m")
# Formatting
CL=$(echo "\033[m")
UL=$(echo "\033[4m")
BOLD=$(echo "\033[1m")
BFR="\\r\\033[K"
HOLD=" "
TAB=" "
# Icons
CM="${TAB}✔️${TAB}${CL}"
CROSS="${TAB}✖️${TAB}${CL}"
INFO="${TAB}💡${TAB}${CL}"
OS="${TAB}🖥️${TAB}${CL}"
OSVERSION="${TAB}🌟${TAB}${CL}"
CONTAINERTYPE="${TAB}📦${TAB}${CL}"
DISKSIZE="${TAB}💾${TAB}${CL}"
CPUCORE="${TAB}🧠${TAB}${CL}"
RAMSIZE="${TAB}🛠️${TAB}${CL}"
SEARCH="${TAB}🔍${TAB}${CL}"
VERIFYPW="${TAB}🔐${TAB}${CL}"
CONTAINERID="${TAB}🆔${TAB}${CL}"
HOSTNAME="${TAB}🏠${TAB}${CL}"
BRIDGE="${TAB}🌉${TAB}${CL}"
NETWORK="${TAB}📡${TAB}${CL}"
GATEWAY="${TAB}🌐${TAB}${CL}"
DISABLEIPV6="${TAB}🚫${TAB}${CL}"
DEFAULT="${TAB}⚙️${TAB}${CL}"
MACADDRESS="${TAB}🔗${TAB}${CL}"
VLANTAG="${TAB}🏷️${TAB}${CL}"
ROOTSSH="${TAB}🔑${TAB}${CL}"
CREATING="${TAB}🚀${TAB}${CL}"
ADVANCED="${TAB}🧩${TAB}${CL}"
}
catch_errors() {
set -Eeuo pipefail
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
}
# This function handles errors
error_handler() {
local line_number="$1"
local command="$2"
SCRIPT_NAME=$(basename "$0")
local error_message="$SCRIPT_NAME: Failure in line $line_number while executing command $command"
echo -e "\n$error_message"
exit 100
}
msg_info() {
local msg="$1"
echo -ne "${msg}\n"
}
msg_ok() {
local msg="$1"
echo -e "${msg}\n"
}
msg_error() {
local msg="$1"
echo -e "${msg}\n"
}
start(){
base_settings
return
}
build_container() {
# if [ "$VERB" == "yes" ]; then set -x; fi
if [ "$CT_TYPE" == "1" ]; then
FEATURES="keyctl=1,nesting=1"
else
FEATURES="nesting=1"
fi
TEMP_DIR=$(mktemp -d)
pushd $TEMP_DIR >/dev/null
if [ "$var_os" == "alpine" ]; then
export FUNCTIONS_FILE_PATH="$(cat /root/actions-runner/_work/ProxmoxVE/ProxmoxVE/.github/workflows/scripts/app-test/pr-alpine-install.func)"
else
export FUNCTIONS_FILE_PATH="$(cat /root/actions-runner/_work/ProxmoxVE/ProxmoxVE/.github/workflows/scripts/app-test/pr-install.func)"
fi
export CACHER="$APT_CACHER"
export CACHER_IP="$APT_CACHER_IP"
export tz=""
export DISABLEIPV6="$DISABLEIP6"
export APPLICATION="$APP"
export app="$NSAPP"
export PASSWORD="$PW"
export VERBOSE="$VERB"
export SSH_ROOT="${SSH}"
export SSH_AUTHORIZED_KEY
export CTID="$CT_ID"
export CTTYPE="$CT_TYPE"
export PCT_OSTYPE="$var_os"
export PCT_OSVERSION="$var_version"
export PCT_DISK_SIZE="$DISK_SIZE"
export tz="$timezone"
export PCT_OPTIONS="
-features $FEATURES
-hostname $HN
-tags $TAGS
$SD
$NS
-net0 name=eth0,bridge=$BRG$MAC,ip=$NET$GATE$VLAN$MTU
-onboot 1
-cores $CORE_COUNT
-memory $RAM_SIZE
-unprivileged $CT_TYPE
$PW
"
echo "Container ID: $CTID"
# This executes create_lxc.sh and creates the container and .conf file
bash /root/actions-runner/_work/ProxmoxVE/ProxmoxVE/.github/workflows/scripts/app-test/pr-create-lxc.sh
LXC_CONFIG=/etc/pve/lxc/${CTID}.conf
if [ "$CT_TYPE" == "0" ]; then
cat <<EOF >>$LXC_CONFIG
# USB passthrough
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 188:* rwm
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/serial/by-id dev/serial/by-id none bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1 dev/ttyUSB1 none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM0 dev/ttyACM0 none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM1 dev/ttyACM1 none bind,optional,create=file
EOF
fi
if [ "$CT_TYPE" == "0" ]; then
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "ErsatzTV" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" || "$APP" == "Ollama" ]]; then
cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
EOF
fi
else
if [[ "$APP" == "Channels" || "$APP" == "Emby" || "$APP" == "ErsatzTV" || "$APP" == "Frigate" || "$APP" == "Jellyfin" || "$APP" == "Plex" || "$APP" == "Scrypted" || "$APP" == "Tdarr" || "$APP" == "Unmanic" || "$APP" == "Ollama" ]]; then
if [[ -e "/dev/dri/renderD128" ]]; then
if [[ -e "/dev/dri/card0" ]]; then
cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding
dev0: /dev/dri/card0,gid=44
dev1: /dev/dri/renderD128,gid=104
EOF
else
cat <<EOF >>$LXC_CONFIG
# VAAPI hardware transcoding
dev0: /dev/dri/card1,gid=44
dev1: /dev/dri/renderD128,gid=104
EOF
fi
fi
fi
fi
# This starts the container and executes <app>-install.sh
msg_info "Starting LXC Container"
pct start "$CTID"
msg_ok "Started LXC Container"
if [[ ! -f "/root/actions-runner/_work/ProxmoxVE/ProxmoxVE/install/$var_install.sh" ]]; then
msg_error "No install script found for $APP"
exit 1
fi
if [ "$var_os" == "alpine" ]; then
sleep 3
pct exec "$CTID" -- /bin/sh -c 'cat <<EOF >/etc/apk/repositories
http://dl-cdn.alpinelinux.org/alpine/latest-stable/main
http://dl-cdn.alpinelinux.org/alpine/latest-stable/community
EOF'
pct exec "$CTID" -- ash -c "apk add bash >/dev/null"
fi
lxc-attach -n "$CTID" -- bash -c "$(cat /root/actions-runner/_work/ProxmoxVE/ProxmoxVE/install/$var_install.sh)" $var_install.sh
}
description(){
IP=$(pct exec "$CTID" ip a s dev eth0 | awk '/inet / {print $2}' | cut -d/ -f1)
return
}

View File

@ -0,0 +1,148 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Michel Roegl-Brunner (michelroegl-brunner)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
color() {
return
}
catch_errors() {
set -Eeuo pipefail
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
}
error_handler() {
local exit_code="$?"
local line_number="$1"
local command="$2"
local error_message="Failure in line $line_number: exit code $exit_code: while executing command $command"
echo -e "\n$error_message"
exit 100
}
verb_ip6() {
return
}
msg_info() {
local msg="$1"
echo -ne "${msg}\n"
}
msg_ok() {
local msg="$1"
echo -e "${msg}\n"
}
msg_error() {
local msg="$1"
echo -e "${msg}\n"
}
VALIDCT=$(pvesm status -content rootdir | awk 'NR>1')
if [ -z "$VALIDCT" ]; then
msg_error "Unable to detect a valid Container Storage location."
exit 1
fi
VALIDTMP=$(pvesm status -content vztmpl | awk 'NR>1')
if [ -z "$VALIDTMP" ]; then
msg_error "Unable to detect a valid Template Storage location."
exit 1
fi
function select_storage() {
local CLASS=$1
local CONTENT
local CONTENT_LABEL
case $CLASS in
container)
CONTENT='rootdir'
CONTENT_LABEL='Container'
;;
template)
CONTENT='vztmpl'
CONTENT_LABEL='Container template'
;;
*) false || { msg_error "Invalid storage class."; exit 201; };;
esac
# This Queries all storage locations
local -a MENU
while read -r line; do
local TAG=$(echo $line | awk '{print $1}')
local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
local ITEM="Type: $TYPE Free: $FREE "
local OFFSET=2
if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
fi
MENU+=("$TAG" "$ITEM" "OFF")
done < <(pvesm status -content $CONTENT | awk 'NR>1')
# Select storage location
if [ $((${#MENU[@]}/3)) -eq 1 ]; then
printf ${MENU[0]}
else
msg_error "STORAGE ISSUES!"
exit 202
fi
}
[[ "${CTID:-}" ]] || { msg_error "You need to set 'CTID' variable."; exit 203; }
[[ "${PCT_OSTYPE:-}" ]] || { msg_error "You need to set 'PCT_OSTYPE' variable."; exit 204; }
[ "$CTID" -ge "100" ] || { msg_error "ID cannot be less than 100."; exit 205; }
if pct status $CTID &>/dev/null; then
echo -e "ID '$CTID' is already in use."
unset CTID
msg_error "Cannot use ID that is already in use."
exit 206
fi
TEMPLATE_STORAGE=$(select_storage template) || exit
CONTAINER_STORAGE=$(select_storage container) || exit
pveam update >/dev/null
TEMPLATE_SEARCH=${PCT_OSTYPE}-${PCT_OSVERSION:-}
mapfile -t TEMPLATES < <(pveam available -section system | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
[ ${#TEMPLATES[@]} -gt 0 ] || { msg_error "Unable to find a template when searching for '$TEMPLATE_SEARCH'."; exit 207; }
TEMPLATE="${TEMPLATES[-1]}"
TEMPLATE_PATH="/var/lib/vz/template/cache/$TEMPLATE"
if ! pveam list "$TEMPLATE_STORAGE" | grep -q "$TEMPLATE"; then
[[ -f "$TEMPLATE_PATH" ]] && rm -f "$TEMPLATE_PATH"
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null ||
{ msg_error "A problem occurred while downloading the LXC template."; exit 208; }
fi
grep -q "root:100000:65536" /etc/subuid || echo "root:100000:65536" >> /etc/subuid
grep -q "root:100000:65536" /etc/subgid || echo "root:100000:65536" >> /etc/subgid
PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs "$CONTAINER_STORAGE:${PCT_DISK_SIZE:-8}")
if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then
[[ -f "$TEMPLATE_PATH" ]] && rm -f "$TEMPLATE_PATH"
pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null ||
{ msg_error "A problem occurred while re-downloading the LXC template."; exit 208; }
if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then
msg_error "A problem occurred while trying to create container after re-downloading template."
exit 200
fi
fi

View File

@ -0,0 +1,95 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
color() {
return
}
SCRIPT_NAME="${BASH_SOURCE[0]:-unknown_script}"
catch_errors() {
set -Euoe pipefail
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
}
error_handler() {
local line_number="$1"
local command="$2"
local error_message="$SCRIPT_NAME: Failure in line $line_number while executing command '$command'"
echo -e "\n$error_message"
exit 300
}
verb_ip6() {
STD="silent"
silent() {
"$@" >/dev/null 2>&1 || error_handler "${BASH_LINENO[0]}" "$*"
}
}
msg_info() {
local msg="$1"
echo -ne "${msg}\n"
}
msg_ok() {
local msg="$1"
echo -e "${msg}\n"
}
msg_error() {
local msg="$1"
echo -e "${msg}\n"
}
RETRY_NUM=10
RETRY_EVERY=3
setting_up_container() {
sed -i "/$LANG/ s/\(^# \)//" /etc/locale.gen
locale_line=$(grep -v '^#' /etc/locale.gen | grep -E '^[a-zA-Z]' | awk '{print $1}' | head -n 1)
echo "LANG=${locale_line}" >/etc/default/locale
locale-gen >/dev/null
export LANG=${locale_line}
echo $tz >/etc/timezone
ln -sf /usr/share/zoneinfo/$tz /etc/localtime
for ((i = RETRY_NUM; i > 0; i--)); do
if [ "$(hostname -I)" != "" ]; then
break
fi
echo 1>&2 -en "No Network! "
sleep $RETRY_EVERY
done
if [ "$(hostname -I)" = "" ]; then
echo 1>&2 -e "\nNo Network After $RETRY_NUM Tries"
echo -e "Check Network Settings"
exit 101
fi
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
systemctl disable -q --now systemd-networkd-wait-online.service
msg_ok "Set up Container OS"
msg_ok "Network Connected: $(hostname -I)"
}
network_check() {
RESOLVEDIP=$(getent hosts github.com | awk '{ print $1 }')
if [[ -z "$RESOLVEDIP" ]]; then msg_error "DNS Lookup Failure"; else msg_ok "DNS Resolved github.com to $RESOLVEDIP"; fi
set -e
}
update_os() {
msg_info "Updating Container OS"
apt-get update
apt-get -o Dpkg::Options::="--force-confold" -y dist-upgrade
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Updated Container OS"
}
motd_ssh() {
return
}
customize() {
return
}

View File

@ -0,0 +1,20 @@
#!/bin/bash
FILE=$1
TODAY=$(date -u +"%Y-%m-%d")
if [[ -z "$FILE" ]]; then
echo "No file specified. Exiting."
exit 1
fi
if [[ ! -f "$FILE" ]]; then
echo "File $FILE not found. Exiting."
exit 1
fi
DATE_IN_JSON=$(jq -r '.date_created' "$FILE" 2>/dev/null || echo "")
if [[ "$DATE_IN_JSON" != "$TODAY" ]]; then
jq --arg date "$TODAY" '.date_created = $date' "$FILE" > tmp.json && mv tmp.json "$FILE"
fi

131
.github/workflows/update-json-date.yml vendored Normal file
View File

@ -0,0 +1,131 @@
name: Update JSON Date
on:
push:
branches:
- main
paths:
- 'json/**.json'
workflow_dispatch:
jobs:
update-app-files:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Generate a token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Generate dynamic branch name
id: timestamp
run: echo "BRANCH_NAME=pr-update-json-$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
- name: Set up GH_TOKEN
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "GH_TOKEN=${GH_TOKEN}" >> $GITHUB_ENV
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 2 # Ensure we have the last two commits
- name: Get Previous Commit
id: prev_commit
run: |
PREV_COMMIT=$(git rev-parse HEAD^)
echo "Previous commit: $PREV_COMMIT"
echo "prev_commit=$PREV_COMMIT" >> $GITHUB_ENV
- name: Get Newly Added JSON Files
id: new_json_files
run: |
git diff --name-only --diff-filter=A ${{ env.prev_commit }} HEAD | grep '^json/.*\.json$' > new_files.txt || true
echo "New files detected:"
cat new_files.txt || echo "No new files."
- name: Disable file mode changes
run: git config core.fileMode false
- name: Set up Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Change JSON Date
id: change-json-date
run: |
current_date=$(date +"%Y-%m-%d")
while IFS= read -r file; do
# Skip empty lines
[[ -z "$file" ]] && continue
if [[ -f "$file" ]]; then
echo "Processing $file..."
current_json_date=$(jq -r '.date_created // empty' "$file")
if [[ -z "$current_json_date" || "$current_json_date" != "$current_date" ]]; then
echo "Updating $file with date $current_date"
jq --arg date "$current_date" '.date_created = $date' "$file" > temp.json && mv temp.json "$file"
else
echo "Date in $file is already up to date."
fi
else
echo "Warning: File $file not found!"
fi
done < new_files.txt
rm new_files.txt
- name: Check if there are any changes
run: |
echo "Checking for changes..."
git add -A # Untracked Dateien aufnehmen
git status
if git diff --cached --quiet; then
echo "No changes detected."
echo "changed=false" >> "$GITHUB_ENV"
else
echo "Changes detected:"
git diff --stat --cached
echo "changed=true" >> "$GITHUB_ENV"
fi
# Step 7: Commit and create PR if changes exist
- name: Commit and create PR if changes exist
if: env.changed == 'true'
run: |
git commit -m "Update date in json"
git checkout -b ${{ env.BRANCH_NAME }}
git push origin ${{ env.BRANCH_NAME }}
gh pr create --title "[core] update date in json" \
--body "This PR is auto-generated by a GitHub Action to update the date in json." \
--head ${{ env.BRANCH_NAME }} \
--base main \
--label "automated pr"
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
- name: Approve pull request
if: env.changed == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PR_NUMBER=$(gh pr list --head "${{ env.BRANCH_NAME }}" --json number --jq '.[].number')
if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve
fi
- name: No changes detected
if: env.changed == 'false'
run: echo "No changes to commit. Workflow completed successfully."

View File

@ -1,48 +1,88 @@
name: Update JSON Date
name: Auto Update JSON-Date
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches:
- main
workflow_dispatch:
jobs:
list-files:
update-json-dates:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout PR Branch
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Generate a token
id: generate-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Fetch PR changes
run: |
git remote add fork https://github.com/${{ github.event.pull_request.head.repo.full_name }}.git
git fetch fork ${{ github.event.pull_request.head.ref }}:pullreq
git checkout pullreq
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Full history for proper detection
- name: Update JSON
id: changed-files
run: |
FILES=$(gh api repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files --jq '.[].filename' | tr '\n' ' ')
echo "changed_files=${FILES}"
for FILE in $FILES; do
if [[ "$FILE" =~ /(.*)\.json ]]; then
NAME="${BASH_REMATCH[1]}"
else
echo "no new JSON in ${FILES}"
continue
fi
JSON_FILE="json/${NAME}.json"
if [[ -f "$JSON_FILE" ]]; then
echo "Updating date_created in $JSON_FILE"
jq --arg date "$(date +%Y-%m-%d)" '.date_created = $date' "$JSON_FILE" > tmp.json && mv tmp.json "$JSON_FILE"
else
echo "JSON file $FILES not found"
- name: Set up Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Find JSON files with incorrect date_created
id: find_wrong_json
run: |
TODAY=$(date -u +"%Y-%m-%d")
> incorrect_json_files.txt
for FILE in json/*.json; do
if [[ -f "$FILE" ]]; then
DATE_IN_JSON=$(jq -r '.date_created' "$FILE" 2>/dev/null || echo "")
if [[ "$DATE_IN_JSON" != "$TODAY" ]]; then
echo "$FILE" >> incorrect_json_files.txt
fi
fi
done
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git diff --exit-code || git commit -am "Updating Dates in affected JSON files."
git push
env:
if [[ -s incorrect_json_files.txt ]]; then
echo "CHANGED=true" >> $GITHUB_ENV
else
echo "CHANGED=false" >> $GITHUB_ENV
fi
- name: Run update script
if: env.CHANGED == 'true'
run: |
chmod +x .github/workflows/scripts/update-json.sh
while read -r FILE; do
.github/workflows/scripts/update-json.sh "$FILE"
done < incorrect_json_files.txt
- name: Commit and create PR if changes exist
if: env.CHANGED == 'true'
run: |
git add json/*.json
git commit -m "Auto-update date_created in incorrect JSON files"
git checkout -b pr-fix-json-dates
git push origin pr-fix-json-dates --force
gh pr create --title "[core] Fix incorrect JSON date_created fields" \
--body "This PR is auto-generated to fix incorrect `date_created` fields in JSON files." \
--head pr-fix-json-dates \
--base main \
--label "automated pr"
env:
GH_TOKEN: ${{ steps.generate-token.outputs.token }}
- name: Approve pull request
if: env.CHANGED == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PR_NUMBER=$(gh pr list --head "pr-fix-json-dates" --json number --jq '.[].number')
if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve
fi

View File

@ -17,6 +17,262 @@ All LXC instances created using this repository come pre-installed with Midnight
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
## 2025-02-19
### Changes
### 🚀 Updated Scripts
- Fix: file replacement in Watcharr Update Script [@Clusters](https://github.com/Clusters) ([#2498](https://github.com/community-scripts/ProxmoxVE/pull/2498))
- Fix: Kometa - fixed successful setup message and added info to json [@tremor021](https://github.com/tremor021) ([#2495](https://github.com/community-scripts/ProxmoxVE/pull/2495))
- Fix: Actual Budget, add missing .env when updating [@MickLesk](https://github.com/MickLesk) ([#2494](https://github.com/community-scripts/ProxmoxVE/pull/2494))
## 2025-02-18
### Changes
### ✨ New Scripts
- New Script: Docmost [@MickLesk](https://github.com/MickLesk) ([#2472](https://github.com/community-scripts/ProxmoxVE/pull/2472))
### 🚀 Updated Scripts
- Fix: SQL Server 2022 | GPG & Install [@MickLesk](https://github.com/MickLesk) ([#2476](https://github.com/community-scripts/ProxmoxVE/pull/2476))
- Feature: PBS Bare Metal Installation - Allow Microcode [@MickLesk](https://github.com/MickLesk) ([#2477](https://github.com/community-scripts/ProxmoxVE/pull/2477))
- Fix: MagicMirror force Node version and fix backups [@tremor021](https://github.com/tremor021) ([#2468](https://github.com/community-scripts/ProxmoxVE/pull/2468))
- Update BunkerWeb scripts to latest NGINX and specs [@TheophileDiot](https://github.com/TheophileDiot) ([#2466](https://github.com/community-scripts/ProxmoxVE/pull/2466))
## 2025-02-17
### Changes
### 💥 Breaking Changes
- Zipline: Prepare for Version 4.0.0 [@MickLesk](https://github.com/MickLesk) ([#2455](https://github.com/community-scripts/ProxmoxVE/pull/2455))
### 🚀 Updated Scripts
- Fix: Zipline increase SECRET to 42 chars [@V1d1o7](https://github.com/V1d1o7) ([#2444](https://github.com/community-scripts/ProxmoxVE/pull/2444))
## 2025-02-16
### Changes
### 🚀 Updated Scripts
- Fix: Typo in Ubuntu 24.10 VM Script [@PhoenixEmik](https://github.com/PhoenixEmik) ([#2430](https://github.com/community-scripts/ProxmoxVE/pull/2430))
- Fix: Grist update no longer removes previous user data [@cfurrow](https://github.com/cfurrow) ([#2428](https://github.com/community-scripts/ProxmoxVE/pull/2428))
### 🌐 Website
- Debian icon update [@bannert1337](https://github.com/bannert1337) ([#2433](https://github.com/community-scripts/ProxmoxVE/pull/2433))
- Update Graylog icon [@bannert1337](https://github.com/bannert1337) ([#2434](https://github.com/community-scripts/ProxmoxVE/pull/2434))
## 2025-02-15
### Changes
### 🚀 Updated Scripts
- Setup cron in install/freshrss-install.sh [@zimmra](https://github.com/zimmra) ([#2412](https://github.com/community-scripts/ProxmoxVE/pull/2412))
- Fix: Homarr update service files [@CrazyWolf13](https://github.com/CrazyWolf13) ([#2416](https://github.com/community-scripts/ProxmoxVE/pull/2416))
- Update MagicMirror install and update scripts [@tremor021](https://github.com/tremor021) ([#2409](https://github.com/community-scripts/ProxmoxVE/pull/2409))
### 🌐 Website
- Fix RustDesk slug in json [@tremor021](https://github.com/tremor021) ([#2411](https://github.com/community-scripts/ProxmoxVE/pull/2411))
### 🧰 Maintenance
- [GH] Update script-test Workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2415](https://github.com/community-scripts/ProxmoxVE/pull/2415))
## 2025-02-14
### Changes
### 🚀 Updated Scripts
- Fix homarr [@CrazyWolf13](https://github.com/CrazyWolf13) ([#2369](https://github.com/community-scripts/ProxmoxVE/pull/2369))
### 🌐 Website
- RustDesk Server - Added configuration guide to json [@tremor021](https://github.com/tremor021) ([#2389](https://github.com/community-scripts/ProxmoxVE/pull/2389))
### 🧰 Maintenance
- [gh] Update script-test.yml [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2399](https://github.com/community-scripts/ProxmoxVE/pull/2399))
- [gh] Introducing new Issue Github Template Feature (Bug, Feature, Task) [@MickLesk](https://github.com/MickLesk) ([#2394](https://github.com/community-scripts/ProxmoxVE/pull/2394))
### 📡 API
- [API]Add more enpoints to API [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2390](https://github.com/community-scripts/ProxmoxVE/pull/2390))
- [API] Update api.func: Remove unwanted file creation [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2378](https://github.com/community-scripts/ProxmoxVE/pull/2378))
## 2025-02-13
### Changes
### ✨ New Scripts
- Re-Add: Pf2eTools [@MickLesk](https://github.com/MickLesk) ([#2336](https://github.com/community-scripts/ProxmoxVE/pull/2336))
- New Script: Nx Witness [@MickLesk](https://github.com/MickLesk) ([#2350](https://github.com/community-scripts/ProxmoxVE/pull/2350))
- New Script: RustDesk Server [@tremor021](https://github.com/tremor021) ([#2326](https://github.com/community-scripts/ProxmoxVE/pull/2326))
- New Script: MinIO [@MickLesk](https://github.com/MickLesk) ([#2333](https://github.com/community-scripts/ProxmoxVE/pull/2333))
### 🚀 Updated Scripts
- Missing ";" in ct/trilium.sh [@Scorpoon](https://github.com/Scorpoon) ([#2380](https://github.com/community-scripts/ProxmoxVE/pull/2380))
- Fix: Element Synapse - Fixed server listening on both localhost and 0.0.0.0 [@tremor021](https://github.com/tremor021) ([#2376](https://github.com/community-scripts/ProxmoxVE/pull/2376))
- [core] cleanup (remove # App Default Values) [@MickLesk](https://github.com/MickLesk) ([#2356](https://github.com/community-scripts/ProxmoxVE/pull/2356))
- Fix: Kometa - Increase RAM and HDD resources [@tremor021](https://github.com/tremor021) ([#2367](https://github.com/community-scripts/ProxmoxVE/pull/2367))
- [core] cleanup (remove base_settings & unneeded comments) [@MickLesk](https://github.com/MickLesk) ([#2351](https://github.com/community-scripts/ProxmoxVE/pull/2351))
- Fix: Authentik Embedded Outpost Upgrade [@vidonnus](https://github.com/vidonnus) ([#2327](https://github.com/community-scripts/ProxmoxVE/pull/2327))
- Fix HomeAsisstant LXC: Use the latest versions of runlike with --use-volume-id [@genehand](https://github.com/genehand) ([#2325](https://github.com/community-scripts/ProxmoxVE/pull/2325))
### 🌐 Website
- Fix: Zoraxy - now shows application as updateable on the website [@tremor021](https://github.com/tremor021) ([#2352](https://github.com/community-scripts/ProxmoxVE/pull/2352))
- Fix script category name text alignment in ScriptAccordion [@BramSuurdje](https://github.com/BramSuurdje) ([#2342](https://github.com/community-scripts/ProxmoxVE/pull/2342))
### 🧰 Maintenance
- [gh] Remove unwanted output from script test workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2337](https://github.com/community-scripts/ProxmoxVE/pull/2337))
- [gh] Workflow to change date on new json files [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2319](https://github.com/community-scripts/ProxmoxVE/pull/2319))
## 2025-02-12
### Changes
### 💥 Breaking Changes
- Frigate: Use Fixed Version 14 [@MickLesk](https://github.com/MickLesk) ([#2288](https://github.com/community-scripts/ProxmoxVE/pull/2288))
### ✨ New Scripts
- New Script: Kometa [@tremor021](https://github.com/tremor021) ([#2281](https://github.com/community-scripts/ProxmoxVE/pull/2281))
- New Script: Excalidraw [@tremor021](https://github.com/tremor021) ([#2285](https://github.com/community-scripts/ProxmoxVE/pull/2285))
- New Script: Graylog [@tremor021](https://github.com/tremor021) ([#2270](https://github.com/community-scripts/ProxmoxVE/pull/2270))
- New Script: TasmoCompiler [@tremor021](https://github.com/tremor021) ([#2235](https://github.com/community-scripts/ProxmoxVE/pull/2235))
- New script: cross-seed [@jmatraszek](https://github.com/jmatraszek) ([#2186](https://github.com/community-scripts/ProxmoxVE/pull/2186))
### 🚀 Updated Scripts
- FIX: Frigate - remove bad variable [@tremor021](https://github.com/tremor021) ([#2323](https://github.com/community-scripts/ProxmoxVE/pull/2323))
- Fix: Kometa - Fix wrong web site address [@tremor021](https://github.com/tremor021) ([#2318](https://github.com/community-scripts/ProxmoxVE/pull/2318))
- Fix: var_tags instead of TAGS in some CT's [@MickLesk](https://github.com/MickLesk) ([#2310](https://github.com/community-scripts/ProxmoxVE/pull/2310))
- Update ubuntu2410-vm.sh: Fix typo in API call. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2305](https://github.com/community-scripts/ProxmoxVE/pull/2305))
- Fix: Myspeed Installation (g++) [@MickLesk](https://github.com/MickLesk) ([#2308](https://github.com/community-scripts/ProxmoxVE/pull/2308))
- Fix: Pingvin wrong variable used for version tracking [@alberanid](https://github.com/alberanid) ([#2302](https://github.com/community-scripts/ProxmoxVE/pull/2302))
- Fix: SQL Server 2022 - remove unnecessary sudo [@tremor021](https://github.com/tremor021) ([#2282](https://github.com/community-scripts/ProxmoxVE/pull/2282))
- fix: frigate pin version [@CrazyWolf13](https://github.com/CrazyWolf13) ([#2296](https://github.com/community-scripts/ProxmoxVE/pull/2296))
- Fix changedetection: Correct Browser install [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2277](https://github.com/community-scripts/ProxmoxVE/pull/2277))
- Paperless-AI: add dependency "make" [@MickLesk](https://github.com/MickLesk) ([#2289](https://github.com/community-scripts/ProxmoxVE/pull/2289))
- Fix: Typo OPNsense VM [@chpego](https://github.com/chpego) ([#2291](https://github.com/community-scripts/ProxmoxVE/pull/2291))
- Fix: CraftyControler fix java default [@CrazyWolf13](https://github.com/CrazyWolf13) ([#2286](https://github.com/community-scripts/ProxmoxVE/pull/2286))
### 🌐 Website
- Fix: some jsons (debian instead Debian in OS) [@MickLesk](https://github.com/MickLesk) ([#2311](https://github.com/community-scripts/ProxmoxVE/pull/2311))
- Website: Add After-Install Note for Ubuntu VM 22.04/24.04/24.10 and Debian VM [@MickLesk](https://github.com/MickLesk) ([#2307](https://github.com/community-scripts/ProxmoxVE/pull/2307))
- Fix: duplicate 'VM' name in opnsense-vm.json [@nayzm](https://github.com/nayzm) ([#2293](https://github.com/community-scripts/ProxmoxVE/pull/2293))
## 2025-02-11
### Changes
### ✨ New Scripts
- New Script: Opnsense VM [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2097](https://github.com/community-scripts/ProxmoxVE/pull/2097))
- New Script: Watcharr [@tremor021](https://github.com/tremor021) ([#2243](https://github.com/community-scripts/ProxmoxVE/pull/2243))
- New Script: Suwayomi-Server [@tremor021](https://github.com/tremor021) ([#2139](https://github.com/community-scripts/ProxmoxVE/pull/2139))
### 🚀 Updated Scripts
- Fix Photoprism: Add defaults.yml for CLI Tool [@MickLesk](https://github.com/MickLesk) ([#2261](https://github.com/community-scripts/ProxmoxVE/pull/2261))
- Update Checkmk: include Patch versions in Release grepping [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2264](https://github.com/community-scripts/ProxmoxVE/pull/2264))
- Fix: Apache Guacamole Version Crawling - only latest Version [@MickLesk](https://github.com/MickLesk) ([#2258](https://github.com/community-scripts/ProxmoxVE/pull/2258))
### 🌐 Website
- Update Komodo icon [@bannert1337](https://github.com/bannert1337) ([#2263](https://github.com/community-scripts/ProxmoxVE/pull/2263))
### 🧰 Maintenance
- Add Workflow to test Scripts [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2269](https://github.com/community-scripts/ProxmoxVE/pull/2269))
## 2025-02-10
### Changes
### 💥 Breaking Changes
- [Fix] Filebrowser - Add Static Path for DB [@MickLesk](https://github.com/MickLesk) ([#2207](https://github.com/community-scripts/ProxmoxVE/pull/2207))
### ✨ New Scripts
- New Script: Prometheus Paperless-NGX Exporter [@andygrunwald](https://github.com/andygrunwald) ([#2153](https://github.com/community-scripts/ProxmoxVE/pull/2153))
- New Script: Proxmox Mail Gateway [@thost96](https://github.com/thost96) ([#1906](https://github.com/community-scripts/ProxmoxVE/pull/1906))
- New Script: FreshRSS [@bvdberg01](https://github.com/bvdberg01) ([#2226](https://github.com/community-scripts/ProxmoxVE/pull/2226))
- New Script: Zitadel [@dave-yap](https://github.com/dave-yap) ([#2141](https://github.com/community-scripts/ProxmoxVE/pull/2141))
### 🚀 Updated Scripts
- Feature: Automatic Deletion of choosen LXC's (lxc-delete.sh) [@MickLesk](https://github.com/MickLesk) ([#2228](https://github.com/community-scripts/ProxmoxVE/pull/2228))
- Quickfix: Crafty-Controller remove unnecessary \ [@MickLesk](https://github.com/MickLesk) ([#2233](https://github.com/community-scripts/ProxmoxVE/pull/2233))
- Fix: Crafty-Controller java versions and set default [@CrazyWolf13](https://github.com/CrazyWolf13) ([#2199](https://github.com/community-scripts/ProxmoxVE/pull/2199))
- Feature: Add optional Port for Filebrowser [@MickLesk](https://github.com/MickLesk) ([#2224](https://github.com/community-scripts/ProxmoxVE/pull/2224))
- [core] Prevent double spinner [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2203](https://github.com/community-scripts/ProxmoxVE/pull/2203))
### 🌐 Website
- Website: Fix Zitadel Logo & Created-Date [@MickLesk](https://github.com/MickLesk) ([#2217](https://github.com/community-scripts/ProxmoxVE/pull/2217))
- Fixed URL typo zerotier-one.json [@Divaksh](https://github.com/Divaksh) ([#2206](https://github.com/community-scripts/ProxmoxVE/pull/2206))
- evcc.json Clarify the config file location [@mvdw](https://github.com/mvdw) ([#2193](https://github.com/community-scripts/ProxmoxVE/pull/2193))
### 🧰 Maintenance
- [gh]: Improve Workflows, Templates, Handling [@MickLesk](https://github.com/MickLesk) ([#2214](https://github.com/community-scripts/ProxmoxVE/pull/2214))
- [core] Fix app-header workflow and add API [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2204](https://github.com/community-scripts/ProxmoxVE/pull/2204))
- Fix: "read -p" does not support color formatting [@PhoenixEmik](https://github.com/PhoenixEmik) ([#2191](https://github.com/community-scripts/ProxmoxVE/pull/2191))
- [API] Add API to vms [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#2021](https://github.com/community-scripts/ProxmoxVE/pull/2021))
## 2025-02-09
### Changed
### ✨ New Scripts
- New Script: pbs_microcode.sh [@DonPablo1010](https://github.com/DonPablo1010) ([#2166](https://github.com/community-scripts/ProxmoxVE/pull/2166))
### 🚀 Updated Scripts
- Keep the same hass_config volume for Home Assistant [@genehand](https://github.com/genehand) ([#2160](https://github.com/community-scripts/ProxmoxVE/pull/2160))
### 🌐 Website
- Website: Set new Logo for Paperless-AI [@MickLesk](https://github.com/MickLesk) ([#2194](https://github.com/community-scripts/ProxmoxVE/pull/2194))
- Fix: Barcode Buddy Logo & Title [@MickLesk](https://github.com/MickLesk) ([#2183](https://github.com/community-scripts/ProxmoxVE/pull/2183))
## 2025-02-08
### Changed
### ✨ New Scripts
- New script: Barcode Buddy [@bvdberg01](https://github.com/bvdberg01) ([#2167](https://github.com/community-scripts/ProxmoxVE/pull/2167))
### 🚀 Updated Scripts
- Fix: Actualbudget - salvage the `.migrate` file when upgrading [@bourquep](https://github.com/bourquep) ([#2173](https://github.com/community-scripts/ProxmoxVE/pull/2173))
### 🌐 Website
- Update cosmos.json description [@BramSuurdje](https://github.com/BramSuurdje) ([#2162](https://github.com/community-scripts/ProxmoxVE/pull/2162))
### 🧰 Maintenance
- fix typos in CONTRIBUTOR_GUIDE [@thomashondema](https://github.com/thomashondema) ([#2174](https://github.com/community-scripts/ProxmoxVE/pull/2174))
## 2025-02-07 - 10.000 ⭐
### Changed

View File

@ -11,6 +11,7 @@ import (
"log"
"net/http"
"os"
"strconv"
"time"
"github.com/gorilla/mux"
@ -31,6 +32,7 @@ func loadEnv() {
}
}
// DataModel represents a single document in MongoDB
type DataModel struct {
ID primitive.ObjectID `json:"id" bson:"_id,omitempty"`
CT_TYPE uint `json:"ct_type" bson:"ct_type"`
@ -56,6 +58,13 @@ type StatusModel struct {
STATUS string `json:"status" bson:"status"`
}
type CountResponse struct {
TotalEntries int64 `json:"total_entries"`
StatusCount map[string]int64 `json:"status_count"`
NSAPPCount map[string]int64 `json:"nsapp_count"`
}
// ConnectDatabase initializes the MongoDB connection
func ConnectDatabase() {
loadEnv()
@ -78,6 +87,7 @@ func ConnectDatabase() {
fmt.Println("Connected to MongoDB on 10.10.10.18")
}
// UploadJSON handles API requests and stores data as a document in MongoDB
func UploadJSON(w http.ResponseWriter, r *http.Request) {
var input DataModel
@ -98,6 +108,7 @@ func UploadJSON(w http.ResponseWriter, r *http.Request) {
json.NewEncoder(w).Encode(map[string]string{"message": "Data saved successfully"})
}
// UpdateStatus updates the status of a record based on RANDOM_ID
func UpdateStatus(w http.ResponseWriter, r *http.Request) {
var input StatusModel
@ -120,6 +131,7 @@ func UpdateStatus(w http.ResponseWriter, r *http.Request) {
json.NewEncoder(w).Encode(map[string]string{"message": "Record updated successfully"})
}
// GetDataJSON fetches all data from MongoDB
func GetDataJSON(w http.ResponseWriter, r *http.Request) {
var records []DataModel
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
@ -144,6 +156,270 @@ func GetDataJSON(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(records)
}
func GetPaginatedData(w http.ResponseWriter, r *http.Request) {
page, _ := strconv.Atoi(r.URL.Query().Get("page"))
limit, _ := strconv.Atoi(r.URL.Query().Get("limit"))
if page < 1 {
page = 1
}
if limit < 1 {
limit = 10
}
skip := (page - 1) * limit
var records []DataModel
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
options := options.Find().SetSkip(int64(skip)).SetLimit(int64(limit))
cursor, err := collection.Find(ctx, bson.M{}, options)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer cursor.Close(ctx)
for cursor.Next(ctx) {
var record DataModel
if err := cursor.Decode(&record); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
records = append(records, record)
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(records)
}
func GetSummary(w http.ResponseWriter, r *http.Request) {
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
totalCount, err := collection.CountDocuments(ctx, bson.M{})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
statusCount := make(map[string]int64)
nsappCount := make(map[string]int64)
pipeline := []bson.M{
{"$group": bson.M{"_id": "$status", "count": bson.M{"$sum": 1}}},
}
cursor, err := collection.Aggregate(ctx, pipeline)
if err == nil {
for cursor.Next(ctx) {
var result struct {
ID string `bson:"_id"`
Count int64 `bson:"count"`
}
if err := cursor.Decode(&result); err == nil {
statusCount[result.ID] = result.Count
}
}
}
pipeline = []bson.M{
{"$group": bson.M{"_id": "$nsapp", "count": bson.M{"$sum": 1}}},
}
cursor, err = collection.Aggregate(ctx, pipeline)
if err == nil {
for cursor.Next(ctx) {
var result struct {
ID string `bson:"_id"`
Count int64 `bson:"count"`
}
if err := cursor.Decode(&result); err == nil {
nsappCount[result.ID] = result.Count
}
}
}
response := CountResponse{
TotalEntries: totalCount,
StatusCount: statusCount,
NSAPPCount: nsappCount,
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(response)
}
func GetByNsapp(w http.ResponseWriter, r *http.Request) {
nsapp := r.URL.Query().Get("nsapp")
var records []DataModel
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
cursor, err := collection.Find(ctx, bson.M{"nsapp": nsapp})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer cursor.Close(ctx)
for cursor.Next(ctx) {
var record DataModel
if err := cursor.Decode(&record); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
records = append(records, record)
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(records)
}
func GetByDateRange(w http.ResponseWriter, r *http.Request) {
startDate := r.URL.Query().Get("start_date")
endDate := r.URL.Query().Get("end_date")
if startDate == "" || endDate == "" {
http.Error(w, "Both start_date and end_date are required", http.StatusBadRequest)
return
}
start, err := time.Parse("2006-01-02T15:04:05.999999+00:00", startDate+"T00:00:00+00:00")
if err != nil {
http.Error(w, "Invalid start_date format", http.StatusBadRequest)
return
}
end, err := time.Parse("2006-01-02T15:04:05.999999+00:00", endDate+"T23:59:59+00:00")
if err != nil {
http.Error(w, "Invalid end_date format", http.StatusBadRequest)
return
}
var records []DataModel
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
cursor, err := collection.Find(ctx, bson.M{
"created_at": bson.M{
"$gte": start,
"$lte": end,
},
})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer cursor.Close(ctx)
for cursor.Next(ctx) {
var record DataModel
if err := cursor.Decode(&record); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
records = append(records, record)
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(records)
}
func GetByStatus(w http.ResponseWriter, r *http.Request) {
status := r.URL.Query().Get("status")
var records []DataModel
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
cursor, err := collection.Find(ctx, bson.M{"status": status})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer cursor.Close(ctx)
for cursor.Next(ctx) {
var record DataModel
if err := cursor.Decode(&record); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
records = append(records, record)
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(records)
}
func GetByOS(w http.ResponseWriter, r *http.Request) {
osType := r.URL.Query().Get("os_type")
osVersion := r.URL.Query().Get("os_version")
var records []DataModel
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
cursor, err := collection.Find(ctx, bson.M{"os_type": osType, "os_version": osVersion})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer cursor.Close(ctx)
for cursor.Next(ctx) {
var record DataModel
if err := cursor.Decode(&record); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
records = append(records, record)
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(records)
}
func GetErrors(w http.ResponseWriter, r *http.Request) {
errorCount := make(map[string]int)
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
cursor, err := collection.Find(ctx, bson.M{"error": bson.M{"$ne": ""}})
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer cursor.Close(ctx)
for cursor.Next(ctx) {
var record DataModel
if err := cursor.Decode(&record); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
if record.ERROR != "" {
errorCount[record.ERROR]++
}
}
type ErrorCountResponse struct {
Error string `json:"error"`
Count int `json:"count"`
}
var errorCounts []ErrorCountResponse
for err, count := range errorCount {
errorCounts = append(errorCounts, ErrorCountResponse{
Error: err,
Count: count,
})
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(struct {
ErrorCounts []ErrorCountResponse `json:"error_counts"`
}{
ErrorCounts: errorCounts,
})
}
func main() {
ConnectDatabase()
@ -152,6 +428,13 @@ func main() {
router.HandleFunc("/upload", UploadJSON).Methods("POST")
router.HandleFunc("/upload/updatestatus", UpdateStatus).Methods("POST")
router.HandleFunc("/data/json", GetDataJSON).Methods("GET")
router.HandleFunc("/data/paginated", GetPaginatedData).Methods("GET")
router.HandleFunc("/data/summary", GetSummary).Methods("GET")
router.HandleFunc("/data/nsapp", GetByNsapp).Methods("GET")
router.HandleFunc("/data/date", GetByDateRange).Methods("GET")
router.HandleFunc("/data/status", GetByStatus).Methods("GET")
router.HandleFunc("/data/os", GetByOS).Methods("GET")
router.HandleFunc("/data/errors", GetErrors).Methods("GET")
c := cors.New(cors.Options{
AllowedOrigins: []string{"*"},

View File

@ -5,9 +5,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://docs.2fauth.app/
# App Default Values
APP="2FAuth"
TAGS="2fa;authenticator"
var_tags="2fa;authenticator"
var_cpu="1"
var_ram="512"
var_disk="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -1,11 +1,11 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://actualbudget.org/
# App Default Values
APP="Actual Budget"
var_tags="finance"
var_cpu="2"
@ -15,11 +15,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
@ -31,42 +27,81 @@ function update_script() {
if [[ ! -d /opt/actualbudget ]]; then
msg_error "No ${APP} Installation Found!"
exit
exit 1
fi
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | \
grep "tag_name" | awk -F '"' '{print substr($4, 2)}')
if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop actualbudget
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
cd /tmp
wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz
wget -q "https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz"
mv /opt/actualbudget /opt/actualbudget_bak
tar -xzf v${RELEASE}.tar.gz >/dev/null 2>&1
tar -xzf "v${RELEASE}.tar.gz" >/dev/null 2>&1
mv *ctual-server-* /opt/actualbudget
if [[ ! -d /opt/actualbudget-data ]]; then
mkdir -p /opt/actualbudget-data/server-files
fi
rm -rf /opt/actualbudget/.env
mv /opt/actualbudget_bak/.env /opt/actualbudget
mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files
if [[ ! -f /opt/actualbudget_bak/.env ]]; then
cat <<EOF > /opt/actualbudget_bak/.env
ACTUAL_UPLOAD_DIR=/opt/actualbudget/server-files
ACTUAL_DATA_DIR=/opt/actualbudget-data
ACTUAL_SERVER_FILES_DIR=/opt/actualbudget/server-files
PORT=5006
EOF
fi
mv /opt/actualbudget_bak/.env /opt/actualbudget/
if [[ -d /opt/actualbudget_bak/server-files ]] && [[ -n $(ls -A /opt/actualbudget_bak/server-files 2>/dev/null) ]]; then
mv /opt/actualbudget_bak/server-files/* /opt/actualbudget/server-files/
fi
if [[ -d /opt/actualbudget_bak/.migrate ]]; then
mv /opt/actualbudget_bak/.migrate /opt/actualbudget/
fi
cd /opt/actualbudget
yarn install &>/dev/null
echo "${RELEASE}" >/opt/actualbudget_version.txt
echo "${RELEASE}" > /opt/actualbudget_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
cat <<EOF >/etc/systemd/system/actualbudget.service
[Unit]
Description=Actual Budget Service
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/actualbudget
EnvironmentFile=/opt/actualbudget/.env
ExecStart=/usr/bin/yarn start
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl start actualbudget
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf /opt/actualbudget_bak
rm -rf /tmp/v${RELEASE}.tar.gz
rm -rf "/tmp/v${RELEASE}.tar.gz"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
exit 0
}
start

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://adguard.com/
# App Default Values
APP="Adguard"
var_tags="adblock"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://adventurelog.app/
# App Default Values
APP="AdventureLog"
var_tags="traveling"
var_disk="7"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.ispyconnect.com/
# App Default Values
APP="AgentDVR"
var_tags="dvr"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="ubuntu"
var_version="22.04"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -3,8 +3,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.docker.com/
# App Default Values
APP="Alpine-Docker"
var_tags="docker;alpine"
var_cpu="1"
@ -14,11 +14,7 @@ var_os="alpine"
var_version="3.21"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -3,8 +3,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://grafana.com/
# App Default Values
APP="Alpine-Grafana"
var_tags="alpine;monitoring"
var_cpu="1"
@ -14,11 +14,7 @@ var_os="alpine"
var_version="3.21"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -3,9 +3,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 community-scripts ORG
# Author: nicedevil007 (NiceDevil)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://it-tools.tech/
# App Default Values
APP="Alpine-IT-Tools"
var_tags="alpine;development"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="alpine"
var_version="3.21"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -3,8 +3,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://nextcloud.com/
# App Default Values
APP="Alpine-Nextcloud"
var_tags="alpine;cloud"
var_cpu="2"
@ -14,11 +14,7 @@ var_os="alpine"
var_version="3.21"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
header_info "$APP"
variables
color
catch_errors

View File

@ -3,8 +3,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/dani-garcia/vaultwarden
# App Default Values
APP="Alpine-Vaultwarden"
var_tags="alpine;vault"
var_cpu="1"
@ -14,11 +14,7 @@ var_os="alpine"
var_version="3.21"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -3,8 +3,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.zigbee2mqtt.io/
# App Default Values
APP="Alpine-Zigbee2MQTT"
var_tags="alpine;zigbee;mqtt;smarthome"
var_disk="0.3"
@ -14,11 +14,7 @@ var_os="alpine"
var_version="3.21"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -3,8 +3,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://alpinelinux.org/
# App Default Values
APP="Alpine"
var_tags="os;alpine"
var_cpu="1"
@ -14,11 +14,7 @@ var_os="alpine"
var_version="3.21"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cassandra.apache.org/_/index.html
# App Default Values
APP="Apache-Cassandra"
var_tags="database;NoSQL"
var_cpu="1"
@ -16,11 +15,7 @@ var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://couchdb.apache.org/
# App Default Values
APP="Apache-CouchDB"
var_tags="database"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -1,13 +1,12 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/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
# Author: Michel Roegl-Brunner (michelroegl-brunner)
# License: | MIT https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://guacamole.apache.org/
#App Default Values
APP="Apache-Guacamole"
TAGS="webserver;remote"
var_tags="webserver;remote"
var_disk="4"
var_cpu="1"
var_ram="2048"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/apache/tika/
# App Default Values
APP="Apache-Tika"
var_tags="document"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://wiki.debian.org/AptCacherNg
# App Default Values
APP="Apt-Cacher-NG"
var_tags="caching"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://archivebox.io/
# App Default Values
APP="ArchiveBox"
var_tags="archive;bookmark"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://aria2.github.io/
# App Default Values
APP="Aria2"
var_tags="download-utility"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.audiobookshelf.org/
# App Default Values
APP="audiobookshelf"
var_tags="podcast;audiobook"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -2,10 +2,9 @@
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: remz1337
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://goauthentik.io/
# App Default Values
APP="Authentik"
var_tags="identity-provider"
var_disk="12"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
@ -52,6 +47,13 @@ function update_script() {
npm run build &>/dev/null
msg_ok "Built ${APP} website"
msg_info "Building ${APP} server"
cd /opt/authentik
go mod download
go build -o /go/authentik ./cmd/server
go build -o /opt/authentik/authentik-server /opt/authentik/cmd/server/
msg_ok "Built ${APP} server"
msg_info "Installing Python Dependencies"
cd /opt/authentik
poetry install --only=main --no-ansi --no-interaction --no-root &>/dev/null

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://autobrr.com/
# App Default Values
APP="Autobrr"
var_tags="arr;"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://sabre.io/baikal/
# App Default Values
APP="Baikal"
var_tags="Dav"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

71
ct/barcode-buddy.sh Normal file
View File

@ -0,0 +1,71 @@
#!/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: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Forceu/barcodebuddy
APP="Barcode-Buddy"
var_tags="grocery;household"
var_cpu="1"
var_ram="512"
var_disk="3"
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/barcodebuddy ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/Forceu/barcodebuddy/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
msg_info "Stopping Service"
systemctl stop apache2
systemctl stop barcodebuddy
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
mv /opt/barcodebuddy/ /opt/barcodebuddy-backup
wget -q "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip"
unzip -q "v${RELEASE}.zip"
mv "/opt/barcodebuddy-${RELEASE}" /opt/barcodebuddy
cp -r /opt/barcodebuddy-backup/data/. /opt/barcodebuddy/data
chown -R www-data:www-data /opt/barcodebuddy/data
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service"
systemctl start apache2
systemctl start barcodebuddy
msg_ok "Started Service"
msg_info "Cleaning up"
rm -r "/opt/v${RELEASE}.zip"
rm -r /opt/barcodebuddy-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
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}${CL}"

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.bazarr.media/
# App Default Values
APP="Bazarr"
var_tags="arr"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
header_info "$APP"
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://beszel.dev/
# App Default Values
APP="Beszel"
var_tags="monitoring"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://0xerr0r.github.io/blocky/latest/
# App Default Values
APP="Blocky"
var_tags="adblock"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
header_info "$APP"
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/BookStackApp/BookStack
# App Default Values
APP="Bookstack"
var_tags="organizer"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,21 +5,16 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.bunkerweb.io/
# App Default Values
APP="BunkerWeb"
var_tags="webserver"
var_cpu="2"
var_ram="1024"
var_ram="4096"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
header_info "$APP"
variables
color
catch_errors
@ -39,7 +34,7 @@ Pin: version ${RELEASE}
Pin-Priority: 1001
EOF
apt-get update
apt-get install -y nginx=1.26.2*
apt-get install -y nginx=1.26.3*
apt-get install -y bunkerweb=${RELEASE}
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://caddyserver.com/
# App Default Values
APP="Caddy"
var_tags="webserver"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/janeczku/calibre-web
# App Default Values
APP="Calibre-Web"
var_tags="eBook"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://casaos.io/
# App Default Values
APP="CasaOS"
var_tags="cloud"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://changedetection.io/
# App Default Values
APP="Change Detection"
var_tags="monitoring;crawler"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://getchannels.com/dvr-server/
# App Default Values
APP="Channels"
var_tags="dvr"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -15,8 +15,6 @@ var_version="12"
var_unprivileged="1"
header_info "$APP"
base_settings
variables
color
catch_errors
@ -29,7 +27,7 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -v '\-rc' | sort -V | tail -n 1)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating ${APP} to v${RELEASE}"
omd stop monitoring &>/dev/null

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.cloudflare.com/
# App Default Values
APP="Cloudflared"
var_tags="network;cloudflare"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cockpit-project.org/
# App Default Values
APP="Cockpit"
var_tags="monitoring;network"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.commafeed.com/#/welcome
# App Default Values
APP="CommaFeed"
var_tags="rss-reader"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://https://cosmos-cloud.io/
# App Default Values
APP="cosmos"
var_tags="os,docker"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -3,9 +3,8 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Copyright (c) 2021-2025 community-scripts
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gitlab.com/crafty-controller/crafty-4
# App Default Values
APP="Crafty-Controller"
var_tags="gaming"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cronicle.net/
# App Default Values
APP="Cronicle"
var_tags="task-scheduler"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

52
ct/cross-seed.sh Normal file
View File

@ -0,0 +1,52 @@
#!/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: Jakub Matraszek (jmatraszek)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.cross-seed.org
APP="cross-seed"
var_tags="arr"
var_cpu="1"
var_ram="1024"
var_disk="2"
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 command -v cross-seed &> /dev/null; then
current_version=$(cross-seed --version)
latest_version=$(npm show cross-seed version)
if [ "$current_version" != "$latest_version" ]; then
msg_info "Updating ${APP} from version v${current_version} to v${latest_version}"
npm install -g cross-seed@latest &> /dev/null
systemctl restart cross-seed
msg_ok "Updated Successfully"
else
msg_ok "${APP} is already at v${current_version}"
fi
else
msg_error "No ${APP} Installation Found!"
exit
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 cross-seed API using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:2468${CL}"

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://daemonsync.me/
# App Default Values
APP="Daemon Sync"
var_tags="sync"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dashy.to/
# App Default Values
APP="Dashy"
var_tags="dashboard"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.debian.org/
# App Default Values
APP="Debian"
var_tags="os"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.phoscon.de/en/conbee2/software#deconz
# App Default Values
APP="deCONZ"
var_tags="zigbee"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.deluge-torrent.org/
# App Default Values
APP="Deluge"
var_tags="torrent"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.docker.com/
# App Default Values
APP="Docker"
var_tags="docker"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dockge.kuma.pet/
# App Default Values
APP="Dockge"
var_tags="docker"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

70
ct/docmost.sh Normal file
View File

@ -0,0 +1,70 @@
#!/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://docmost.com/
APP="Docmost"
var_tags="documents"
var_cpu="3"
var_ram="3072"
var_disk="7"
var_os="debian"
var_version="12"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/docmost ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
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
msg_info "Stopping ${APP}"
systemctl stop docmost
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to v${RELEASE}"
cp /opt/docmost/.env /opt/
rm -rf /opt/docmost
temp_file=$(mktemp)
wget -q "https://github.com/docmost/docmost/archive/refs/tags/v${RELEASE}.tar.gz" -O "$temp_file"
tar -xzf "$temp_file"
mv docmost-${RELEASE} /opt/docmost
cd /opt/docmost
mv /opt/.env /opt/docmost/.env
pnpm install --force &>/dev/null
pnpm build &>/dev/null
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start docmost
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -f ${temp_file}
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${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}:3000${CL}"

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-9.0&tabs=linux-ubuntu
# App Default Values
APP="Dotnet ASP Web API"
var_tags="web"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="ubuntu"
var_version="24.04"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -6,7 +6,7 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# Source: https://github.com/duplicati/duplicati/
APP="Duplicati"
TAGS="backup"
var_tags="backup"
var_cpu="1"
var_ram="1024"
var_disk="10"
@ -15,8 +15,6 @@ var_version="12"
var_unprivileged="1"
header_info "$APP"
base_settings
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/element-hq/synapse
# App Default Values
APP="Element Synapse"
var_tags="server"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
header_info "$APP"
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://emby.media/
# App Default Values
APP="Emby"
var_tags="media"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="ubuntu"
var_version="22.04"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.emqx.com/en
# App Default Values
APP="EMQX"
var_tags="mqtt"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ersatztv.org/
# App Default Values
APP="ErsatzTV"
var_tags="iptv"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://esphome.io/
# App Default Values
APP="ESPHome"
var_tags="automation"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://evcc.io/en/
# App Default Values
APP="evcc"
var_tags="solar;ev;automation"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

72
ct/excalidraw.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: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/excalidraw/excalidraw
APP="Excalidraw"
TAGS="diagrams"
var_cpu="2"
var_ram="3072"
var_disk="6"
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/excalidraw ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/excalidraw_version.txt)" ]] || [[ ! -f /opt/excalidraw_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop excalidraw
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
cd /tmp
temp_file=$(mktemp)
wget -q "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -O $temp_file
tar xzf $temp_file
rm -rf /opt/excalidraw
mv excalidraw-${RELEASE} /opt/excalidraw
cd /opt/excalidraw
yarn &> /dev/null
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start excalidraw
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf $temp_file
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/excalidraw_version.txt
msg_ok "Update Successful"
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}:3000${CL}"

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/revenz/Fenrus
# App Default Values
APP="Fenrus"
var_tags="dashboard"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fhem.de/
# App Default Values
APP="FHEM"
var_tags="automation"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -2,11 +2,9 @@
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: quantumryuu
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://firefly-iii.org/
# App Default Values
APP="Firefly"
var_tags="finance"
var_cpu="1"
@ -16,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/FlareSolverr/FlareSolverr
# App Default Values
APP="FlareSolverr"
var_tags="proxy"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://flowiseai.com/
# App Default Values
APP="FlowiseAI"
var_tags="low-code"
var_disk="10"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://forgejo.org/
# App Default Values
APP="Forgejo"
var_tags="git"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

41
ct/freshrss.sh Normal file
View File

@ -0,0 +1,41 @@
#!/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: bvdberg01
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/FreshRSS/FreshRSS
APP="FreshRSS"
var_tags="RSS"
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 [[ ! -d /opt/freshrss ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "FreshRSS should be updated via the user interface."
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://frigate.video/
# App Default Values
APP="Frigate"
var_tags="nvr"
var_cpu="4"
@ -15,11 +14,7 @@ var_os="debian"
var_version="11"
var_unprivileged="0"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ghost.org/
# App Default Values
APP="Ghost"
var_tags="cms;blog"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://about.gitea.com/
# App Default Values
APP="Gitea"
var_tags="git"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/glanceapp/glance
# App Default Values
APP="Glance"
var_tags="dashboard"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -1,11 +1,10 @@
#!/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: Nícolas Pastorello (opastorello)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.glpi-project.org/
# App Default Values
APP="GLPI"
var_tags="asset-management;foss"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/AlexxIT/go2rtc
# App Default Values
APP="go2rtc"
var_tags="recorder;video"
var_cpu="2"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Forceu/Gokapi
# App Default Values
APP="Gokapi"
var_tags="file;sharing"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gotify.net/
# App Default Values
APP="Gotify"
var_tags="notification"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

View File

@ -5,7 +5,6 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://grafana.com/
# App Default Values
APP="Grafana"
var_tags="monitoring;visualization"
var_cpu="1"
@ -15,11 +14,7 @@ var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors

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