Compare commits

...

266 Commits

Author SHA1 Message Date
2f620240a8 Update CHANGELOG.md (#1457)
Some checks failed
Auto Update .app-headers and Create PR / update-app-headers (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Merge main into update-app-headers / merge-main (push) Has been cancelled
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-13 16:58:45 +01:00
07c9dc4d0a Update Hoarder: Improvement .env location (see PR comment for little migration) (#1325)
* Update .env file location in hoarder-install.sh

* Update .env file location in hoarder.sh

No more need to move around the .env file

* migration of .env to hoarder.env in hoarder.sh

* Update ct/hoarder.sh

Co-authored-by: Mohamed Bassem <me@mbassem.com>

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: Mohamed Bassem <me@mbassem.com>
2025-01-13 16:58:14 +01:00
8caf5e59b3 feat: allow adding SSH authorized key for root (advanced settings) by @dsiebel (#1456)
* feat: allow adding SSH authorized key for root (advanced settings) by @dsiebel

* remove spaces
2025-01-13 16:04:59 +01:00
f8ab39e4d6 Update CHANGELOG.md (#1446)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-13 15:56:37 +01:00
e47d7c4452 Update tandoor.sh: Call version.py to write current version (#1454) 2025-01-13 14:51:46 +01:00
ac64a9de31 GitHub Actions: Fix Shellsheck workflow to only run on changes *.sh files (#1423)
Some checks are pending
Auto Update .app-headers and Create PR / update-app-headers (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
Merge main into update-app-headers / merge-main (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
2025-01-13 13:02:42 +01:00
737625024e Update kavita.json (#1447) 2025-01-13 12:57:25 +01:00
6958021528 Fix inexistent folder on actualbudget update script (#1444) 2025-01-13 11:02:35 +01:00
cc40b5957d Update CHANGELOG.md (#1420)
Some checks failed
Auto Update .app-headers and Create PR / update-app-headers (push) Has been cancelled
Create Changelog Pull Request / update-changelog-pull-request (push) Has been cancelled
Merge main into update-app-headers / merge-main (push) Has been cancelled
Shellcheck / Shellcheck (push) Has been cancelled
2025-01-11 11:50:39 +01:00
92020fed07 Update CHANGELOG.md (#1419)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-11 10:06:26 +01:00
1476d1b6c4 Update prometheus-install.sh: Service creation fix (#1417) 2025-01-11 09:55:36 +01:00
0d8dcd5643 Update prometheus-alertmanager-install.sh: Service Creation Fix (#1418) 2025-01-11 09:55:06 +01:00
2347a669f2 Update CHANGELOG.md (#1415) 2025-01-11 09:35:02 +01:00
6decf14d2e Prometheus: Fix installation via creating the service file (#1416) 2025-01-11 09:33:21 +01:00
26d73317e8 LubeLogger CT vehicle tag typo fix (#1413) 2025-01-11 07:36:23 +01:00
c772f83e14 Update CHANGELOG.md (#1409)
Some checks failed
Auto Update .app-headers and Create PR / update-app-headers (push) Waiting to run
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Merge main into update-app-headers / merge-main (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
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-01-10 18:58:48 +01:00
3051720f58 Fix user in ghost-cli install command (#1408) 2025-01-10 18:22:38 +01:00
1932f5ebcc Update CHANGELOG.md (#1405) 2025-01-10 18:15:03 +01:00
ca391d7448 little fix 2025-01-10 17:15:22 +01:00
376fd6522a Update ghost-install.sh 2025-01-10 17:13:49 +01:00
5855cff8e4 Update App_Header_Merge_update .app-headers_in_update-app-headers 2025-01-10 17:10:24 +01:00
6981774662 Update merge-main.yml 2025-01-10 17:09:58 +01:00
4ead90ef0b little fix tianji 2025-01-10 17:07:48 +01:00
5fc7885347 Update and rename App_Header_Merge_Main_Into_update-app-headers to merge-main.yml 2025-01-10 17:05:42 +01:00
e3d0fb58c9 Rename generate-app-headers.yaml to App_Header_Merge_Into_main.yaml 2025-01-10 17:03:46 +01:00
9b2180857d Rename App_Header_Merge_update .app-headers inupdate-app-headers to App_Header_Merge_update .app-headers_in_update-app-headers 2025-01-10 17:01:52 +01:00
5d7e524578 Create App_Header_Merge_update .app-headers inupdate-app-headers 2025-01-10 17:01:28 +01:00
ad3214acfb Create App_Header_Merge_Main_Into_update-app-headers 2025-01-10 17:00:16 +01:00
5090b62113 add mariadb-server 2025-01-10 16:57:04 +01:00
a0eb6b860c Update check_and_update_json_date.yml: Change path to /json (#1399) 2025-01-10 16:55:21 +01:00
9a4d35b1f2 Prometheus + Alertmanager: Unify scripts for easier maintenance (#1402) 2025-01-10 16:54:58 +01:00
b7a8d3453a Visual Studio Code: Set Workspace recommended extensions (#1398)
Codify the Recommended VS Code Extensions:

- [Shell Syntax](https://marketplace.visualstudio.com/items?itemName=bmalehorn.shell-syntax)
- [ShellCheck](https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck)
- [Shell Format](https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format)

Documentation: https://code.visualstudio.com/docs/editor/extension-marketplace#_workspace-recommended-extensions
2025-01-10 16:49:53 +01:00
111436c0a0 Update komodo.sh (#1403) 2025-01-10 16:47:06 +01:00
0c0225a052 Update generate-app-headers.yaml 2025-01-10 14:52:32 +01:00
aacb6ca2c9 Update generate-app-headers.yaml 2025-01-10 14:36:06 +01:00
7218c3b90a Update generate-app-headers.yaml 2025-01-10 14:34:18 +01:00
32bc4a3ab5 Update generate-app-headers.yaml 2025-01-10 14:31:45 +01:00
51cbfbdc4f Update generate-app-headers.yaml 2025-01-10 14:30:04 +01:00
d227277311 Update generate-app-headers.yaml 2025-01-10 14:28:50 +01:00
0d2db00dc6 Update generate-app-headers.yaml 2025-01-10 14:25:27 +01:00
1a9320ced8 Update generate-app-headers.yaml 2025-01-10 14:23:29 +01:00
d8931fef4d Update check_and_update_json_date.yml 2025-01-10 14:20:42 +01:00
70ab9ab09e Update generate-app-headers.yaml 2025-01-10 14:20:05 +01:00
02f480998e Update generate-app-headers.yaml 2025-01-10 14:17:40 +01:00
860c541606 Update CHANGELOG.md (#1396)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-10 14:15:53 +01:00
31b253e99f Update generate-app-headers.yaml 2025-01-10 14:15:22 +01:00
8c6f0ac1de Update generate-app-headers.yaml 2025-01-10 13:46:37 +01:00
cfda535a58 Update generate-app-headers.yaml 2025-01-10 13:45:36 +01:00
5d6bba3db8 Update generate-app-headers.yaml 2025-01-10 13:44:13 +01:00
7a2f5f55e8 Update generate-app-headers.yaml 2025-01-10 13:42:55 +01:00
f275cdd62c New script : Ghost (#1361)
* add Ghost installation and update scripts

* remove unnecessary installation check

* Fixed link for testing

* Set up testing.

* Refactor Ghost installation script to streamline MySQL configuration and consolidate Node.js and npm installation steps

* Update MySQL configuration in installation script to use password for flushing privileges

* Bug fix

* Remove separate npm installation step

* Add ghost-user creation and modify Ghost installation to run as new user

* Create ghost-user with proper permissions and update Ghost setup commands

* Update Ghost installation script to include URL and modify service execution

* Update Ghost installation to Ubuntu 24.04 and modify service execution

* Downgrade Ubuntu installation version from 24.04 to 22.04

* Add npm installation check to Ghost installation script

* Update Ghost installation script to install npm alongside Node.js

* Add update to package list

* Use ghost-cli's systemd set up

* Add NOPASSWD for ghost-user during install and enable Ghost on all interfaces

* Update ghost-user sudoers configuration to temporarely allow all commands without password

* Fix syntax error

* Update ghost version retrieval and configure MySQL with random password

* Update ghost.json and clean ghost-install.sh

* Update ghost installation script to use dynamic database password

* Fix MySQL flush privileges command to use dynamic database password

* Fix variable name for database password in ghost installation script

* Add update success message only if ghost was actually updated

* Remove unnecessary shellcheck directive from ghost.sh

* Change back to community-scripts URLs

* Update ct/ghost.sh

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

* Update install/ghost-install.sh

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

* Update ct/ghost.sh

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

* Update install/ghost-install.sh

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

* Update install/ghost-install.sh

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

* Update install/ghost-install.sh

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

* Update json/ghost.json

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

* Add link to detailed license + Change to Debian 12

* Update license comment format in ghost-install.sh

* remove unneeded spaces

* change date

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-10 13:38:03 +01:00
cb60c7fed2 Create check_and_update_json_date.yml (#1395) 2025-01-10 13:36:20 +01:00
88336a2c3b Update CHANGELOG.md (#1387)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-10 13:23:33 +01:00
34f375032a [core]: add support for custom tags (#1384)
* Add support for custom tags

* Add support for custom tags

* Update advanced Tags
2025-01-10 13:17:44 +01:00
0c44d2d23c Update generate-app-headers.yaml 2025-01-10 13:11:55 +01:00
f7d9fe7c3a Update generate-app-headers.yaml 2025-01-10 13:11:02 +01:00
2dddbaebe4 Update generate-app-headers.yaml 2025-01-10 13:09:46 +01:00
7930764ece [core]: update .app-headers to latest version (#1393)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-10 13:08:44 +01:00
42375390d6 Update generate-app-headers.yaml 2025-01-10 13:07:06 +01:00
cb8372da3d Update generate-app-headers.yaml 2025-01-10 13:06:06 +01:00
2c4a61d828 [core]: update .app-headers to latest version (#1390)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-10 13:04:57 +01:00
14cbba17f3 Fix bookstack.sh: Ignore empty folder (#1388) 2025-01-10 13:04:40 +01:00
2ba1bfa3f1 [core]: update .app-headers to latest version (#1389)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-10 13:04:06 +01:00
24722c7eb8 Update generate-app-headers.yaml 2025-01-10 13:03:26 +01:00
a1422379bd Update generate-app-headers.yaml 2025-01-10 13:02:36 +01:00
2e64b89a9b Update generate-app-headers.yaml 2025-01-10 13:00:27 +01:00
bcf981cb33 Update generate-app-headers.yaml 2025-01-10 12:57:42 +01:00
09f060eb69 Create .app-headers 2025-01-10 12:56:30 +01:00
7c08ec1fc6 Update generate-app-headers.yaml 2025-01-10 12:54:31 +01:00
6e56610e28 Update generate-app-headers.yaml 2025-01-10 12:52:59 +01:00
ece84cbe70 Update generate-app-headers.yaml 2025-01-10 12:51:19 +01:00
bd5cd844bf Update generate-app-headers.yaml 2025-01-10 12:49:58 +01:00
84042b7508 Update generate-app-headers.yaml 2025-01-10 12:46:07 +01:00
d411d965bd Update generate-app-headers.yaml
Some checks failed
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
Shellcheck / Shellcheck (push) Waiting to run
Update .app-headers in /misc / update-and-merge-pr (push) Has been cancelled
2025-01-10 12:44:25 +01:00
ef44c2d243 Delete misc/.app-headers 2025-01-10 12:41:06 +01:00
86b91f626c Update generate-app-headers.yaml 2025-01-10 12:39:51 +01:00
a65b9c7ba3 Update generate-app-headers.yaml 2025-01-10 12:37:52 +01:00
a46503209f Update generate-app-headers.yaml 2025-01-10 12:22:57 +01:00
a78633a0a4 Update generate-app-headers.yaml 2025-01-10 12:21:27 +01:00
5d0fa7aa16 Update generate-app-headers.yaml 2025-01-10 12:19:11 +01:00
4a3d4a055d Update generate-app-headers.yaml 2025-01-10 12:17:44 +01:00
10927e39ce Update generate-app-headers.yaml 2025-01-10 12:15:52 +01:00
6fc78dca57 Update generate-app-headers.yaml 2025-01-10 12:14:09 +01:00
7dc54da8a3 Update checkmk-install.sh (#1385) 2025-01-10 12:13:51 +01:00
45f241df2e Update generate-app-headers.yaml 2025-01-10 12:09:27 +01:00
535a1b0250 Update generate-app-headers.yaml 2025-01-10 12:08:30 +01:00
4b6b560bbd Update generate-app-headers.yaml 2025-01-10 12:06:37 +01:00
aa3da01005 Update generate-app-headers.yaml 2025-01-10 12:04:38 +01:00
97fb7941f8 Update .app-headers in /misc 2025-01-10 10:59:06 +00:00
626aa2f79e Update CHANGELOG.md (#1383)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-10 11:50:34 +01:00
775051b928 Update generate-app-headers.yaml 2025-01-10 11:48:08 +01:00
44994bb919 [Core] add Github Action for Generate AppHeaders (figlet remove part 1) (#1382)
* add figlet generation files

* Update generate-app-headers.yaml

* Update generate-app-headers.sh
2025-01-10 11:44:42 +01:00
6f763a5059 Update CHANGELOG.md (#1380)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-10 11:03:18 +01:00
160c546002 Add initial PR for Contributing & Coding Standard (#920)
* First Design: CONTRIBUTING

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Ideas for CONTRIBUTING.md (#768)

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Add files via upload

* fix var_tags

* add comments to AppName.sh

* Rework Contributing to merge the tow existing Versions

* Remove coding_standards.md

* Fix broken link

* Fix broken link

* UPDATE contributing

* UPDATE contributing

* UPDATE contributing

* Update

* UPDATE

* Update AppName.md

* UPDATE CONTRIBUTING.md

* UPDATE CONTRIBUTING.md

* Fixing some typos

* Update

Co-authored-by: Sébastiaan <se_bastiaan@outlook.com>

* Update Contributing

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
Co-authored-by: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
Co-authored-by: Rémi Bédard-Couture <remi.bc@outlook.com>
Co-authored-by: Sébastiaan <se_bastiaan@outlook.com>
2025-01-10 10:33:33 +01:00
5e5a81d2ae Update nzbget.json (#1379) 2025-01-10 10:17:41 +01:00
b6402a0bd7 Update CHANGELOG.md (#1377)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-10 09:25:00 +01:00
77bac7a919 Fix Actualbudget Update (#1376) 2025-01-10 09:18:04 +01:00
749e487032 Update CHANGELOG.md (#1372)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-09 23:07:00 +01:00
be1821b16f Add invalid/wontdo check 2025-01-09 23:05:53 +01:00
baa578c20a add invalid / wontdo check 2025-01-09 23:02:06 +01:00
d8f433c94a fix: unzip to /opt/ (#1370) 2025-01-09 22:53:58 +01:00
3ad50eb427 update CHANGELOG.md 2025-01-09 22:47:26 +01:00
2c24952cd2 Update CHANGELOG.md (#1364)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-09 20:38:09 +01:00
9d2ba6739b [Github Action] Update CHANGELOG.md (#1363)
* Update CHANGELOG.md

* Aktualisieren von CHANGELOG.md

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-09 20:37:29 +01:00
3a9d55abf4 Delete calibre (#1362)
Some checks are pending
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
Shellcheck / Shellcheck (push) Waiting to run
* Delete ct/calibre-server.sh

* Delete json/calibre-server.json

* Delete install/calibre-server-install.sh
2025-01-09 20:09:07 +01:00
8a9e162e9b Update CHANGELOG.md (#1360)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-09 19:10:24 +01:00
0b85f26a4e Fix: Stirling-PDF > LibreOffice/unoconv Integration Issues (#1322)
* Modify install script to install core libreoffice components. Configure a running libreoffice service and setup env variables so they are accessible to StirlingPDF. Modify stirlingPDF service to wait for libreoffice service to start. Enable and explicitly start libreoffice and stirlingPDF services.

* Apply suggestions from code review

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

* Update stirling-pdf-install.sh

---------

Co-authored-by: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
2025-01-09 19:10:02 +01:00
14e185af85 Update calibre-server-install.sh (#1359) 2025-01-09 19:07:31 +01:00
5170056078 Update actualbudget.sh 2025-01-09 17:27:59 +01:00
9a7dcef25a Update calibre-server-install.sh 2025-01-09 17:20:47 +01:00
045ba81533 Update CHANGELOG.md (#1353)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-09 17:17:18 +01:00
4985fda206 Update prometheus-alertmanager.json 2025-01-09 17:14:09 +01:00
d8ad4545ad Update calibre-server.sh 2025-01-09 17:10:36 +01:00
179defdd88 Update calibre-server-install.sh 2025-01-09 17:09:47 +01:00
da071d800b Fix Dependency 2025-01-09 16:52:35 +01:00
6653b92972 Increase RAM 2025-01-09 16:48:29 +01:00
bfd6b58406 Increase RAM 2025-01-09 16:48:06 +01:00
189dbf67b6 add libegl1 2025-01-09 16:41:32 +01:00
b2ba72a906 fix certificate issue ps5mqtt 2025-01-09 16:33:44 +01:00
0ce45140c7 fix space in calbre script 2025-01-09 16:29:55 +01:00
c6efe42eee Update CHANGELOG.md (#1352)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-09 16:28:35 +01:00
5c1954c85d Install/update ActualBudget based on releases, not latest master (#1254)
* Install/update ActualBudget based on releases, not latest main

* Use tarballs for actualbudget install/update
2025-01-09 16:25:45 +01:00
e592b80716 New Script: Prometheus Alertmanager (#1272)
* New Script: Prometheus Alertmanager

* Alertmanager: Append v before Release-Version

* Alertmanager: Switch to `/opt` before updating release

* Alertmanager: Split `var_tags` by `;`

* Alertmanager: Change installation of curl, sudo and mc to a oneliner

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

* Alertmanager: Set correct copyright

* Alertmanager: Change the way how the systemd unit file is written to disk

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

* Alertmanager: Changed the way on how we move and delete files

* Alertmanager: Make files executable

* Alertmanager: Set correct license and source header

* Update prometheus-alertmanager.json

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-09 16:25:06 +01:00
8dd43ddb81 New script: ps5-mqtt (#1198)
* Add ps5-mqtt script

* Update location of currently installed version for ps5-mqtt script

* Add version number to update information for ps5-mqtt script

* Reformat dependencies when installing ps5-mqtt

* Remove superfluous information messages when installing ps5-mqtt

* Remove superfluous comment from ps5-mqtt install script

* Improve wording for the config location for the ps5-mqtt script

* Remove superfluous empty lines in ps5-mqtt install script

* Reorder code structure for ps5-mqtt script

* Remove superfluous .service string vom systemctl calls in ps5-mqtt script

* Refactor handling with folders in the ps5-mqtt script

* Reorder code in ps5-mqtt script

* Reorder the code for getting release version in ps5-mqtt script

* Update ps5-mqtt-install.sh

* Update ps5-mqtt-install.sh

* Update ps5-mqtt.json

* Update

* Update ps5-mqtt-install.sh

* Fix npm

* Fix Date in json

---------

Co-authored-by: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
2025-01-09 16:23:18 +01:00
eb8ebfe7e4 New Script: calibre-server (#960)
* init commit

* spaghetti

* Refactor calibre-server scripts: Update license link, correct variable tag case, and add newline in success message

* Update

* Update calibre-server.sh

* Update calibre-server-install.sh

* Update calibre-server.json

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-09 16:21:30 +01:00
d56d8dd369 Fix: AdventureLog - update script bug (#1334)
* refactor: move installation for backup and maintain media and env files

* fix: return to working directory

* Workdir

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

* Workdir

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

* Avoid Workdir

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

* Avoid Workdir

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

* Remove old installation (at request of @michelroegl-brunner)

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

* rm newline

* rm last version

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
2025-01-09 15:53:47 +01:00
5af9dd9e45 Rename validate-formatting.yaml to validate-formatting.yaml.bak 2025-01-09 15:51:54 +01:00
ec1e5b3a4a Rename validate-scripts.yml to validate-scripts.yml.bak 2025-01-09 15:51:33 +01:00
37f4a841a6 Update validate-scripts.yml 2025-01-09 15:47:37 +01:00
02401aa35d Update validate-scripts.yml 2025-01-09 15:42:18 +01:00
2646ea6317 Update validate-formatting.yaml 2025-01-09 15:39:31 +01:00
6b183c9e4e Validate and auto-fix script formatting 2025-01-09 15:36:40 +01:00
19e7751fb9 Update CHANGELOG.md (#1345)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate script formatting / Check changed files (push) Has been cancelled
Validate scripts / Check changed files (push) Has been cancelled
2025-01-09 09:35:00 +01:00
3bb26b7b41 only validate scripts in validate-scripts workflow (#1344) 2025-01-09 09:33:50 +01:00
2d3506c7d3 Update CHANGELOG.md (#1343) 2025-01-09 09:33:13 +01:00
e70a3a4b4d Fix Checkmk Version grep (#1341) 2025-01-09 09:29:25 +01:00
f428146c47 Update CHANGELOG.md (#1336)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate script formatting / Check changed files (push) Waiting to run
Validate scripts / Check changed files (push) Waiting to run
2025-01-08 23:05:14 +01:00
0059adecf1 fix(ci): formatting event & chmod +x (#1335) 2025-01-08 21:41:58 +01:00
e1daaa6409 Update CHANGELOG.md (#1328)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate script formatting / Check changed files (push) Waiting to run
Validate scripts / Check changed files (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-08 16:33:40 +01:00
ff712bc36e fix: correctly handle pull_request_target event (#1327)
* Fix workflow on pull_request_target

* fix fromJSON
2025-01-08 16:33:09 +01:00
9330e9a640 Update CHANGELOG.md (#1324)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-08 13:36:05 +01:00
5fc783da67 update postgresql json to add post install password setup (#1318)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate script formatting / Check changed files (push) Waiting to run
Validate scripts / Check changed files (push) Waiting to run
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
2025-01-08 08:14:15 +01:00
670d64ec43 Update CHANGELOG.md (#1320)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-08 08:13:40 +01:00
4da57bd76c fix: permissions of validate pipelines (#1316)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate script formatting / Check changed files (push) Waiting to run
Validate scripts / Check changed files (push) Waiting to run
* Fix permission in validate-filenames pipeline

* Run Github Actions for script validation on pull_request_target with right permissions
2025-01-07 20:34:37 +01:00
29b98b450b Rename validate-formatting.yaml.bak to validate-formatting.yaml
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate script formatting / Check changed files (push) Waiting to run
Validate scripts / Check changed files (push) Waiting to run
2025-01-07 08:58:43 +01:00
c88d3a3883 Rename validate-filenames.yml.bak to validate-filenames.yml 2025-01-07 08:58:27 +01:00
f5a54bc3ad Update CHANGELOG.md (#1310)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-07 08:57:50 +01:00
2078deca57 Set Execution Rights for GH-Action: Validate Scripts (#1312) 2025-01-07 08:53:52 +01:00
bc702e2a6d Fix Script: Zammad (#1309) 2025-01-07 08:49:44 +01:00
ab10013fbe Update CHANGELOG.md (#1300)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate scripts / Check changed files (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-06 21:42:35 +01:00
9abd8bf9aa Fix Tag in HyperHDR Script (#1299) 2025-01-06 21:41:23 +01:00
6a78564cc3 Update glpi-install.sh
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate scripts / Check changed files (push) Waiting to run
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
2025-01-06 15:36:41 +01:00
0ec532a4e7 Update CHANGELOG.md (#1293)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-06 15:33:53 +01:00
d712be955c Update typesense.sh 2025-01-06 15:32:55 +01:00
701f7e9cba Update typesense-install.sh 2025-01-06 15:31:03 +01:00
5196539d1b fix glpi echo release 2025-01-06 15:27:46 +01:00
774cdcaf8d New Script: Typesense (#1291)
* Add typesense database lxc container

* fully upgrade typesende nstall

* Update typesense.sh

* Update typesense.json

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-06 15:25:53 +01:00
784e109012 Rename validate-formatting.yaml to validate-formatting.yaml.bak 2025-01-06 15:09:41 +01:00
5184f47eb6 Rename validate-filenames.yml to validate-filenames.yml.bak 2025-01-06 15:09:28 +01:00
f7d37a8f3c New script: GLPI (#1201)
* Create glpi.json

* Create glpi.sh

* Create glpi-install.sh

* Update glpi.sh

* Update glpi.sh

* Update glpi.sh

* Update glpi-install.sh

* Update glpi-install.sh

* Update glpi.json

* Update glpi.json

* Update glpi.sh

* Update install/glpi-install.sh

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

* Update install/glpi-install.sh

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

* Update glpi-install.sh

* Update glpi-install.sh

* Update glpi-install.sh

* Update glpi.json

* Update glpi.sh

* Update glpi-install.sh

Adjusted apt install

* Update glpi-install.sh

Changed cron

* Update glpi-install.sh

Added STD

* Update glpi.sh

* Update glpi-install.sh

* Update glpi.json

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-06 15:09:12 +01:00
4888c33e4b [Fix]: Fixed rm Bug in pf2etools (#1292)
* [Fix]: Fixed rm Bug in pf2etools

* Update pf2etools.sh
2025-01-06 14:59:52 +01:00
f98d81f5bf Update Homebox.sh
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Validate script formatting / Check changed files (push) Waiting to run
Validate scripts / Check changed files (push) Waiting to run
2025-01-06 10:44:08 +01:00
d7518d8644 Update CHANGELOG.md (#1286)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-06 10:41:41 +01:00
599c462035 fix: buffer from base64 in formatting pipeline (#1285)
* fix buffer from base64

* fix diff
2025-01-06 10:39:55 +01:00
0909132d5c Fix: Homebox Update Script (#1284)
* Update homebox

* Update homebox
2025-01-06 10:27:34 +01:00
5123532729 Update CHANGELOG.md (#1283)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-06 10:08:02 +01:00
d814907f99 Add ca-certificates for Install (#1282) 2025-01-06 10:06:30 +01:00
32a99a44d4 Update kimai-install.sh 2025-01-06 08:48:59 +01:00
e94280f1a1 Update changelog-pr.yml 2025-01-06 08:44:03 +01:00
b9ca4b7634 Update CHANGELOG.md (#1278)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-06 08:42:53 +01:00
8431931cc4 add reapproal (#1279) 2025-01-06 08:39:02 +01:00
8bf7f7a460 ci: add pipeline for code formatting checks (#1239)
* Add code formatting checks

tesT

Fix formatting

Fix formatting of scripts

* Enable check for .func files

* Change commentIdentifier & apply prettier to js

* fetch-depth 0

* Rename to validate
2025-01-06 08:33:13 +01:00
6adf8e38b0 ci: change filename checks into steps with PR comment (#1255)
* Change filename checks into steps and post comment as result

* Test
2025-01-06 07:55:01 +01:00
817455360e ci: combine header checks into workflow with PR comment (#1257)
* Combine all headers checks into workflow with steps that end with a PR comment

* Test

* Change name because it is more than headers
2025-01-06 07:54:38 +01:00
84d36eba84 Update 5etools
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
2025-01-05 23:28:24 +01:00
a0baf1cecc fix 5etools install 2025-01-05 23:24:17 +01:00
144182d22c Update CHANGELOG.md (#1263)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-05 18:15:03 +01:00
81ffa34497 Add RAM and Disk units (#1261)
* Add RAM and Disk units

* MB to MiB
2025-01-05 18:08:25 +01:00
abfd5e086d Update zigbee2mqtt-install.sh 2025-01-05 18:00:24 +01:00
0e84eba9d2 Update zigbee2mqtt-install.sh 2025-01-05 17:57:35 +01:00
d827d42968 [Breaking] Update Zigbee2mqtt to v.2.0.0 (Read PR Description) (#1221)
* Fix Zigbee2MQTT BreakingChange to Version 2.0.0

* Update zigbee2mqtt.sh

* Fix Installation Zigbee2Mqtt 2.0.0

* Fix Zigbee2MQTT V.2.0.0

* Update zigbee2mqtt-install.sh

* update script

* Update install/zigbee2mqtt-install.sh

Co-authored-by: Sébastiaan <se_bastiaan@outlook.com>

* add pnpm build

* add pnpm build

* update nodejs

* Update ct/zigbee2mqtt.sh

Co-authored-by: Sébastiaan <se_bastiaan@outlook.com>

---------

Co-authored-by: Sébastiaan <se_bastiaan@outlook.com>
2025-01-05 17:02:27 +01:00
d3d6ec8b20 Update 5etools.sh
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
2025-01-04 20:11:24 +01:00
314f932764 Update pf2etools.sh 2025-01-04 20:10:03 +01:00
e191b94151 Update homeassistant-core-install.sh 2025-01-04 20:00:57 +01:00
9cc4bda762 Update homeassistant-core-install.sh 2025-01-04 19:49:26 +01:00
32572c6072 Update CHANGELOG.md (#1243)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-04 19:34:55 +01:00
a1fe451fe2 Fix gpg key pf2tools & 5etools (#1242)
* Update pf2etools-install.sh

* Fix GPG 5F
2025-01-04 19:33:48 +01:00
ba97af3b9f Fix Deadsnake Repository 2025-01-04 19:29:24 +01:00
859f3dffc3 Update homeassistant-core-install.sh 2025-01-04 19:14:54 +01:00
84b15641fb fix libtiff6 2025-01-04 19:05:46 +01:00
a99bdb9e97 Update homeassistant-core-install.sh 2025-01-04 19:04:23 +01:00
6035469047 idention 2025-01-04 18:45:50 +01:00
982a19cf28 fix space in apt-get 2025-01-04 18:41:00 +01:00
e3299a67ec add missing " 2025-01-04 18:39:43 +01:00
6f557aa394 Update homeassistant-core-install.sh 2025-01-04 18:25:15 +01:00
38f4a98e4f Update CHANGELOG.md (#1237) 2025-01-04 18:19:45 +01:00
5967a7f496 Homar: Fix missing curl dependency (#1238) 2025-01-04 18:17:19 +01:00
67cdc35d02 Homeassistan Core: Fix Python3 and add missing dependencies (#1236) 2025-01-04 18:14:16 +01:00
71c04d9e12 Update CHANGELOG.md (#1229)
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
2025-01-04 12:57:29 +01:00
eee58b43db [GitHub Action] Add filename case check (#1228) 2025-01-04 12:51:34 +01:00
8a35df4f59 Update CHANGELOG.md (#1224)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-04 11:27:58 +01:00
9fd4a13a8a Fix: Update Python for HomeAssistant (#1227)
* Python Check: HA-Core

* Update Python to 3.13.X

* Update homeassistant-core.sh
2025-01-04 11:15:14 +01:00
9f2ae06726 Onedev: Add git-lfs (#1225) 2025-01-04 11:03:58 +01:00
a5adf44f39 Pf2eTools & 5eTools: Fixing npm build (#1213)
* Fixing #1195

* Fixing also for 5etools.

* Update 5etools.sh

* Update pf2etools.sh

* Update 5etools-install.sh

* Update pf2etools-install.sh

* Update 5etools-install.sh

* Update pf2etools-install.sh

* remove pnpm

* remove pnpm

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-04 10:59:35 +01:00
536de5d083 Update CHANGELOG.md (#1220)
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
2025-01-04 08:58:40 +01:00
dfa14693ee Bump next from 15.0.2 to 15.1.3 in /frontend (#1212)
Bumps [next](https://github.com/vercel/next.js) from 15.0.2 to 15.1.3.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.0.2...v15.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-04 08:44:43 +01:00
b03e223e91 remove "s" in build-essential
Some checks are pending
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
Shellcheck / Shellcheck (push) Waiting to run
2025-01-04 00:09:47 +01:00
036728df0d Update CHANGELOG.md (#1210)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-03 19:32:22 +01:00
682087c6ec Github action to check metadata lines in scripts. (#1110)
* Create check-metadata.yml

* Update check-metadata.yml

* Update check-metadata.yml

* Update check-metadata.yml

* Update .github/workflows/check-metadata.yml

Co-authored-by: Sébastiaan <se_bastiaan@outlook.com>

* Update .github/workflows/check-metadata.yml

Co-authored-by: Sébastiaan <se_bastiaan@outlook.com>

---------

Co-authored-by: Sébastiaan <se_bastiaan@outlook.com>
2025-01-03 19:31:06 +01:00
5338a6762a Update CHANGELOG.md (#1209)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-03 19:28:39 +01:00
3a52f8dbfb Update Script: Lazylibrarian (#1190)
* Update Script: LazyLibarian

* Changes
2025-01-03 19:27:35 +01:00
8fd34ea277 Improve Homarr Installation (#1208)
add make, g++, build-essentials
2025-01-03 19:26:17 +01:00
593669b960 Update CHANGELOG.md (#1206)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-03 19:19:58 +01:00
e165153dcb Fix: Memos update function (#1207) 2025-01-03 19:18:04 +01:00
ff8b060cad Fix: Zabbix-Update Script (#1205)
Temporary remove /usr/share/zabbix-*
2025-01-03 19:12:25 +01:00
6f51b0f5a2 Update CHANGELOG.md (#1203)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-03 19:01:40 +01:00
487f36fec6 Keep Lubelogger data after update to a new version (#1200) 2025-01-03 18:55:06 +01:00
385b36d29e Update Nextcloud-LXC JSON (#1191)
* Update Nextcloud-LXC JSON

* nextcloudpi.json update
2025-01-03 18:19:49 +01:00
3b8ff01385 Update 5etools-install.sh
Some checks are pending
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
Shellcheck / Shellcheck (push) Waiting to run
2025-01-02 20:59:51 +01:00
11de586c93 Update pf2etools-install.sh 2025-01-02 20:57:38 +01:00
eacaca938d Update and rename Pf2eTools.json to pf2etools.json 2025-01-02 20:38:59 +01:00
dc0cf2cb3b Rename Pf2eTools-install.sh to pf2etools-install.sh 2025-01-02 20:38:07 +01:00
585f9a2404 Rename Pf2eTools.sh to pf2etools.sh 2025-01-02 20:37:41 +01:00
c72eb13e74 Update CHANGELOG.md (#1183)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-02 20:31:58 +01:00
e356259785 New Script: Pf2eTools (#1162)
* Testing 5etools.

* Introducing Pf2eTools

* Replacing name with var.

* Switched to release crawling.

* Re-added git.

* Update Pf2eTools-install.sh

* Update Pf2eTools-install.sh

* Update Pf2eTools-install.sh

* Update Pf2eTools.sh

* Update Pf2eTools-install.sh

* Update Pf2eTools.sh

* Update Pf2eTools.sh

* Update Pf2eTools-install.sh

* Update Pf2eTools.sh

* Update Pf2eTools-install.sh

* Update Pf2eTools.sh

Fix update script

* Update Pf2eTools.json

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-02 20:29:49 +01:00
618445ec08 New Script: 5etools (#1157)
* Testing 5etools.

* Adding httpd-foreground step for updates.

* Debug.

* Debug.

* Debug.

* Debug.

* Debug.

* Debug.

* Debug.

* Debug.

* Fix version names.

* Added 5etools json.

* Introduced images and increased storage.

* Fixing version zip names.

* Increased storage.

* Introduced image versions.

* Clean-up.

* Renamed step.

* Increased git post buffer.

* Fixing echo command.

* Fix tags.

* Finetune storage size.

* cleanup and restore.

* Update ct/5etools.sh

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

* Update ct/5etools.sh

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

* Update ct/5etools.sh

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

* Update install/5etools-install.sh

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

* Update install/5etools-install.sh

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

* Update install/5etools-install.sh

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

* Update install/5etools-install.sh

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

* Update install/5etools-install.sh

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

* Update install/5etools-install.sh

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

* Update install/5etools-install.sh

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

* Moving stuff around.

* Cleanup and finetune.

* Update 5etools-install.sh

* Switched to release crawling.

* Update 5etools-install.sh

* Update 5etools-install.sh

* Update 5etools.sh

* Update 5etools-install.sh

* Update 5etools-install.sh

* Update 5etools.sh

* Update 5etools.sh

* Update 5etools.json

* Update 5etools-install.sh

* Update 5etools.sh

* Update 5etools-install.sh

* Update 5etools.sh

* Update 5etools-install.sh

* Update 5etools.sh

* Update 5etools.sh

* Update 5etools-install.sh

* Update 5etools.sh

* Update 5etools.json

* Update 5etools.sh

* Update 5etools.sh

Fixed update script

* Update 5etools.json

---------

Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-02 20:29:27 +01:00
3e5274a951 Update config template in blocky-install.sh (#1059)
* Update config template in blocky-install.sh

* Removed most example configuration of the template in blocky-install.sh
2025-01-02 20:28:50 +01:00
2245479733 Update CHANGELOG.md (#1168)
Some checks are pending
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
Shellcheck / Shellcheck (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-01 22:59:15 +01:00
99e06341b3 New Script: Komodo (#1167)
* Happy new Year! Update Copyright to 2025

* Create  new LXC: Komodo
2025-01-01 22:55:11 +01:00
ce27930f9d Update CHANGELOG.md (#1161)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-01 18:29:33 +01:00
b8671b97af Correctly check for changed files in Shellcheck workflow (#1156) 2025-01-01 18:26:23 +01:00
7c0f85d0b3 Fix Script Homepage: add version during build step (#1155)
* Make variables exported

* Auto-yes update-browserslist-db
2025-01-01 18:25:46 +01:00
ff660eaabb Update CHANGELOG.md (#1151)
Some checks are pending
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
Shellcheck / Shellcheck (push) Waiting to run
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-01 13:45:40 +01:00
15f04d525d Happy new Year! Update Copyright to 2025 (#1150) 2025-01-01 13:37:29 +01:00
ccdb7007e7 Update CHANGELOG.md (#1149)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-01 13:26:51 +01:00
a119a27b4f Update shellcheck.yml
Check only PR files, because massive (useless) breaks over all scripts
2025-01-01 13:13:19 +01:00
ac37d90403 Fix Category of Semaphore (#1148) 2025-01-01 13:11:31 +01:00
3c765790a3 Fix PhP 8.4 2025-01-01 13:02:16 +01:00
2f05dcbf87 Update CHANGELOG.md (#1146)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-01 12:59:14 +01:00
409af1b14a Fix Firefly to PHP8.4 2025-01-01 12:58:09 +01:00
50f7ae1237 New Script: Semaphore (#596)
* re-add files

* update a lot of things

* more stuff

* update password generation

* Ready to PR!

* remove empty end lines

* Ready to PR!

* Update semaphore.json

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-01 12:56:38 +01:00
2af4978680 Update Kernel-Clean to new Version & Bugfixing (#1147)
* Update Kernel-Clean to new Version & Bugfixing

* Update kernel-clean.sh
2025-01-01 12:48:28 +01:00
a9df33c7cf New Script: Firefly (#616)
* firefly

* initial commit for test

* more tests

* fix fix fix

* fixeeees

* update flow

* test

* fixed install probably

* update fix

* update fix

* fixes on versioning

* 123

* test update

* update flow test

* hope it works now?

* work pleaaaase

* reeveeeeeert

* cleanup

* more cleanup

* Ready for PR!

* Update firefly.json

* Fixes

* more fixes

* fix firefly.json

* Update firefly-install.sh

* Update firefly.json

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-01-01 11:37:06 +01:00
47377fdd26 Split installing dependencies for chromium and chronium itself (#1140) 2025-01-01 11:30:02 +01:00
bf53f57e10 Update CHANGELOG.md
Some checks are pending
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
2024-12-31 15:13:06 +01:00
70f2a50955 Update CHANGELOG.md (#1136)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-31 15:08:04 +01:00
10634a77c7 Fix: Copy issue after update in Bookstack LXC (#1137) 2024-12-31 15:06:53 +01:00
0aeec14025 Update omada-install.sh 2024-12-31 15:01:14 +01:00
19c3b1dee0 Update omada.sh 2024-12-31 15:00:44 +01:00
af4b833aa4 Omada: Switch Base-URL to prevent issues (#1135)
* fix path for omada update

* fix omada install
2024-12-31 14:44:01 +01:00
72f844ddc6 Update CHANGELOG.md (#1130)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-31 14:17:03 +01:00
68aad8e152 Add ExecReload to prometheus.service (#1131) 2024-12-31 14:14:41 +01:00
4f517de2d1 Fix: Figlet Version & Font Check (#1133) 2024-12-31 14:11:10 +01:00
f2d11ea48c Revert Changes from PR 2024-12-31 10:36:27 +01:00
a77ce0bad0 Revert Changes from PR 2024-12-31 10:36:13 +01:00
2479ceeb99 fix: update guacd service configuration in installation script (#1122) 2024-12-31 09:42:13 +01:00
dc314990f8 Update CHANGELOG.md (#1128)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-31 09:03:13 +01:00
3543d10d35 update Alpine XZ Patch 2024-12-31 09:02:07 +01:00
c9f4391df0 Fix Homepage-Script: Installation/Update (#1129)
* Fix some Parts of Homepage-Script

* Fix Install
2024-12-31 08:59:53 +01:00
69ae09346f Update URL to https (#1124) 2024-12-31 08:55:53 +01:00
13175efbd8 fix
Some checks failed
Create Changelog Pull Request / update-changelog-pull-request (push) Waiting to run
Shellcheck / Shellcheck (push) Waiting to run
Frontend CI/CD / build (push) Has been cancelled
Frontend CI/CD / deploy (push) Has been cancelled
2024-12-30 23:04:03 +01:00
4a8239b2ce fix 2024-12-30 23:02:57 +01:00
e319355859 Update CHANGELOG.md (#1115)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-30 18:09:02 +01:00
21d857e7ad Fix wrong port being printed post install. (#1105)
At the conclusion of the setup the msg_ok block tells the user to use port 8080, this should be 8000.
2024-12-30 17:43:08 +01:00
df3919b904 fix: add homepage version during build step (#1107)
* Set homepage version during build in ct script

* Change install script

* Split commands to multiple lines for ct script as well

* Make sure shellcheck is happy
2024-12-30 17:41:06 +01:00
96f30bf51f Fix Trilium Website to TriliumNext (#1103)
Co-authored-by: Thomas Kramer <it@mdmz.de>
2024-12-30 17:40:11 +01:00
525 changed files with 7041 additions and 1175 deletions

View File

@ -1,14 +1,105 @@
<div align="center">
<a href="#">
<img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" />
</a>
</div>
<h2 align="center">Contributing to Proxmox VE Helper Scripts</h2>
Everybody is invited and welcome to contribute to Proxmox VE Helper Scripts.
# Community Scripts Contribution Guide
- Pull requests submitted against [**main**](https://github.com/community-scripts/ProxmoxVE/tree/main) are meticulously scrutinized, so please do not take it personally if the project maintainer rejects your request. By adhering to the established patterns and conventions throughout the codebase, you greatly increase the likelihood that your changes will get merged into [**main**](https://github.com/community-scripts/ProxmoxVE/tree/main).
## **Welcome to the communty-scripts Repository!**
📜 These documents outline the essential coding standards for all our scripts and JSON files. Adhering to these standards ensures that our codebase remains consistent, readable, and maintainable. By following these guidelines, we can improve collaboration, reduce errors, and enhance the overall quality of our project.
### Why Coding Standards Matter
Coding standards are crucial for several reasons:
1. **Consistency**: Consistent code is easier to read, understand, and maintain. It helps new team members quickly get up to speed and reduces the learning curve.
2. **Readability**: Clear and well-structured code is easier to debug and extend. It allows developers to quickly identify and fix issues.
3. **Maintainability**: Code that follows a standard structure is easier to refactor and update. It ensures that changes can be made with minimal risk of introducing new bugs.
4. **Collaboration**: When everyone follows the same standards, it becomes easier to collaborate on code. It reduces friction and misunderstandings during code reviews and merges.
### Scope of These Documents
These documents cover the coding standards for the following types of files in our project:
- **`install/$AppName-install.sh` Scripts**: These scripts are responsible for the installation of applications.
- **`ct/$AppName.sh` Scripts**: These scripts handle the creation and updating of containers.
- **`json/$AppName.json`**: These files store structured data and are used for the website.
Each section provides detailed guidelines on various aspects of coding, including shebang usage, comments, variable naming, function naming, indentation, error handling, command substitution, quoting, script structure, and logging. Additionally, examples are provided to illustrate the application of these standards.
By following the coding standards outlined in this document, we ensure that our scripts and JSON files are of high quality, making our project more robust and easier to manage. Please refer to this guide whenever you create or update scripts and JSON files to maintain a high standard of code quality across the project. 📚🔍
Let's work together to keep our codebase clean, efficient, and maintainable! 💪🚀
## Getting Started
Before contributing, please ensure that you have the following setup:
1. **Visual Studio Code** (recommended for script development)
2. **Recommended VS Code Extensions:**
- [Shell Syntax](https://marketplace.visualstudio.com/items?itemName=bmalehorn.shell-syntax)
- [ShellCheck](https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck)
- [Shell Format](https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format)
### Important Notes
- Use [AppName.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/ct/AppName.sh) and [AppName-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh) as templates when creating new scripts.
---
# 🚀 The Application Script (ct/AppName.sh)
- You can find all coding standards, as well as the structure for this file [here](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/ct/AppName.md).
- These scripts are responsible for container creation, setting the necessary variables and handling the update of the application once installed.
---
# 🛠 The Installation Script (install/AppName-install.sh)
- You can find all coding standards, as well as the structure for this file [here](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/install/AppName-install.md).
- These scripts are responsible for the installation of the application.
---
## 🚀 Building Your Own Scripts
Start with the [template script](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh)
---
## 🤝 Contribution Process
### 1. Fork the repository
Fork to your GitHub account
### 2. Clone your fork on your local environment
```bash
git clone https://github.com/yourUserName/ForkName
```
### 3. Create a new branch
```bash
git switch -c your-feature-branch
```
### 4. Change paths in build.func install.func and AppName.sh
To be able to develop from your own branch you need to change `https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main` to `https://raw.githubusercontent.com/[USER]/[REPOSITORY]/refs/head/[BRANCH]`. You need to make this change atleast in misc/build.func misc/install.func and in your ct/AppName.sh. This change is only for testing. Before opening a Pull Request you should change this line change all this back to point to `https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main`.
### 4. Commit changes (without build.func and install.func!)
```bash
git commit -m "Your commit message"
```
### 5. Push to your fork
```bash
git push origin your-feature-branch
```
### 6. Create a Pull Request
Open a Pull Request from your feature branch to the main repository branch. You must only include your **$AppName.sh**, **$AppName-install.sh** and **$AppName.json** files in the pull request.
---
## 📚 Pages
- [CT Template: AppName.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/ct/AppName.sh)
- [Install Template: AppName-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh)
- [JSON Template: AppName.json](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/json/AppName.json)
- It is important to stress that complaining about a decision after it has been made is not productive behavior for the pull request submitter. It is crucial for all contributors to respect the decision-making process and collaborate effectively towards achieving the best possible outcome for the project.
- The repository will only accept Alpine applications that make use of the Alpine Package Keeper.

288
.github/CONTRIBUTOR_GUIDE/ct/AppName.md vendored Normal file
View File

@ -0,0 +1,288 @@
# **AppName<span></span>.sh Scripts**
`AppName.sh` scripts found in the `/ct` directory. These scripts are responsible for the installation of the desired application. For this guide we take `/ct/snipeit.sh` as example.
## Table of Contents
- [**AppName.sh Scripts**](#appnamesh-scripts)
- [Table of Contents](#table-of-contents)
- [1. **File Header**](#1-file-header)
- [1.1 **Shebang**](#11-shebang)
- [1.2 **Import Functions**](#12-import-functions)
- [1.3 **Metadata**](#13-metadata)
- [2 **Variables and function import**](#2-variables-and-function-import)
- [2.1 **Default Values**](#21-default-values)
- [2.2 **📋 App output \& base settings**](#22--app-output--base-settings)
- [2.3 **🛠 Core functions**](#23--core-functions)
- [3 **Update function**](#3-update-function)
- [3.1 **Function Header**](#31-function-header)
- [3.2 **Check APP**](#32-check-app)
- [3.3 **Check version**](#33-check-version)
- [3.4 **Verbosity**](#34-verbosity)
- [3.5 **Backups**](#35-backups)
- [3.6 **Cleanup**](#36-cleanup)
- [3.7 **No update function**](#37-no-update-function)
- [4 **End of the script**](#4-end-of-the-script)
- [5. **Contribution checklist**](#5-contribution-checklist)
## 1. **File Header**
### 1.1 **Shebang**
- Use `#!/usr/bin/env bash` as the shebang.
```bash
#!/usr/bin/env bash
```
### 1.2 **Import Functions**
- Import the build.func file.
- When developing your own script, change the URL to your own repository.
> [!CAUTION]
> Before opening a Pull Request, change the URL to point to the community-scripts repo.
Example for development:
```bash
source <(curl -s https://raw.githubusercontent.com/[USER]/[REPO]/refs/heads/[BRANCH]/misc/build.func)
```
Final script:
```bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
```
### 1.3 **Metadata**
- Add clear comments for script metadata, including author, copyright, and license information.
Example:
```bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: [YourUserName]
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: [SOURCE_URL]
```
> [!NOTE]:
>
> - Add your username and source URL
> - For existing scripts, add "| Co-Author [YourUserName]" after the current author
---
## 2 **Variables and function import**
>
> [!NOTE]
> You need to have all this set in your script, otherwise it will not work!
### 2.1 **Default Values**
- This section sets the default values for the container.
- `APP` needs to be set to the application name and must be equal to the filenames of your scripts.
- `var_tags`: You can set Tags for the CT wich show up in the Proxmox UI. Don´t overdo it!
>[!NOTE]
>Description for all Default Values
>
>| Variable | Description | Notes |
>|----------|-------------|-------|
>| `APP` | Application name | Must match ct\AppName.sh |
>| `TAGS` | Proxmox display tags without Spaces, only ; | Limit the number |
>| `var_cpu` | CPU cores | Number of cores |
>| `var_ram` | RAM | In MB |
>| `var_disk` | Disk capacity | In GB |
>| `var_os` | Operating system | alpine, debian, ubuntu |
>| `var_version` | OS version | e.g., 3.20, 11, 12, 20.04 |
>| `var_unprivileged` | Container type | 1 = Unprivileged, 0 = Privileged |
Example:
```bash
APP="SnipeIT"
var_tags="asset-management;foss"
var_cpu="2"
var_ram="2048"
var_disk="4"
var_os="debian"
var_version="12"
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
```
- `variables`: Processes input and prepares variables
- `color`: Sets icons, colors, and formatting
- `catch_errors`: Enables error handling
---
## 3 **Update function**
### 3.1 **Function Header**
- If applicable write a function that updates the application and the OS in the container.
- Each update function starts with the same code:
```bash
function update_script() {
header_info
check_container_storage
check_container_resources
```
### 3.2 **Check APP**
- Before doing anything update-wise, check if the app is installed in the container.
Example:
```bash
if [[ ! -d /opt/snipe-it ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
```
### 3.3 **Check version**
- Befoer 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:
```bash
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/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 "Updating ${APP} to v${RELEASE}"
#DO UPDATE
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}
```
### 3.4 **Verbosity**
- Use the appropriate flag (**-q** in the examples) for a command to suppress its output.
Example:
```bash
wget -q
unzip -q
```
- If a command does not come with this functionality use `&>/dev/null` to suppress it's output.
Example:
```bash
php artisan migrate --force &>/dev/null
php artisan config:clear &>/dev/null
```
### 3.5 **Backups**
- Backup user data if necessary.
- Move all user data back in the directory when the update is finished.
>[!NOTE]
>This is not meant to be a permanent backup
Example backup:
```bash
mv /opt/snipe-it /opt/snipe-it-backup
```
Example config restore:
```bash
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/
cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads
```
### 3.6 **Cleanup**
- Do not forget to remove any temporary files/folders such as zip-files or temporary backups.
Example:
```bash
rm -rf /opt/v${RELEASE}.zip
rm -rf /opt/snipe-it-backup
```
### 3.7 **No update function**
- In case you can not provide a update function use the following code to provide user feedback.
```bash
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/snipeit ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Ther is currently no automatic update function for ${APP}."
exit
}
```
---
## 4 **End of the script**
- `start`: Launches Whiptail dialogue
- `build_container`: Collects and integrates user settings
- `description`: Sets LXC container description
- With `echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"` you can point the user to the IP:PORT/folder needed to access the app.
```bash
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}"
```
---
## 5. **Contribution checklist**
- [ ] Shebang is correctly set (`#!/usr/bin/env bash`).
- [ ] Correct link to *build.func*
- [ ] 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.
- [ ] Script ends with a helpful message for the user to reach the application.

93
.github/CONTRIBUTOR_GUIDE/ct/AppName.sh vendored Normal file
View File

@ -0,0 +1,93 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# Author: [YourUserName]
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: [SOURCE_URL]
# App Default Values
APP="[APP_NAME]"
# Name of the app (e.g. Google, Adventurelog, Apache-Guacamole"
TAGS="[TAGS]"
# Tags for Proxmox VE, maximum 2 pcs., no spaces allowed, separated by a semicolon ; (e.g. database | adblock;dhcp)
var_cpu="[CPU]"
# Number of cores (1-X) (e.g. 4) - default are 2
var_ram="[RAM]"
# Amount of used RAM in MB (e.g. 2048 or 4096)
var_disk="[DISK]"
# Amount of used disk space in GB (e.g. 4 or 10)
var_os="[OS]"
# Default OS (e.g. debian, ubuntu, alpine)
var_version="[VERSION]"
# Default OS version (e.g. 12 for debian, 24.04 for ubuntu, 3.20 for alpine)
var_unprivileged="[UNPRIVILEGED]"
# 1 = unprivileged container, 0 = privileged container
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
# Check if installation is present | -f for file, -d for folder
if [[ ! -f [INSTALLATION_CHECK_PATH] ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
# 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]
msg_ok "Stopped $APP"
# Creating Backup
msg_info "Creating Backup"
tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" [IMPORTANT_PATHS]
msg_ok "Backup Created"
# Execute Update
msg_info "Updating $APP to v${RELEASE}"
[UPDATE_COMMANDS]
msg_ok "Updated $APP to v${RELEASE}"
# Starting Services
msg_info "Starting $APP"
systemctl start [SERVICE_NAME]
sleep 2
msg_ok "Started $APP"
# Cleaning up
msg_info "Cleaning Up"
rm -rf [TEMP_FILES]
msg_ok "Cleanup Completed"
# Last Action
echo "${RELEASE}" >/opt/${APP}_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}:[PORT]${CL}"

View File

@ -0,0 +1,353 @@
# **AppName<span></span>-install.sh Scripts**
`AppName-install.sh` scripts found in the `/install` directory. These scripts are responsible for the installation of the application. For this guide we take `/install/snipeit-install.sh` as example.
## Table of Contents
- [**AppName-install.sh Scripts**](#appname-installsh-scripts)
- [Table of Contents](#table-of-contents)
- [1. **File header**](#1-file-header)
- [1.1 **Shebang**](#11-shebang)
- [1.2 **Comments**](#12-comments)
- [1.3 **Variables and function import**](#13-variables-and-function-import)
- [2. **Variable naming and management**](#2-variable-naming-and-management)
- [2.1 **Naming conventions**](#21-naming-conventions)
- [3. **Dependencies**](#3-dependencies)
- [3.1 **Install all at once**](#31-install-all-at-once)
- [3.2 **Collapse dependencies**](#32-collapse-dependencies)
- [4. **Paths to application files**](#4-paths-to-application-files)
- [5. **Version management**](#5-version-management)
- [5.1 **Install the latest release**](#51-install-the-latest-release)
- [5.2 **Save the version for update checks**](#52-save-the-version-for-update-checks)
- [6. **Input and output management**](#6-input-and-output-management)
- [6.1 **User feedback**](#61-user-feedback)
- [6.2 **Verbosity**](#62-verbosity)
- [7. **String/File Manipulation**](#7-stringfile-manipulation)
- [7.1 **File Manipulation**](#71-file-manipulation)
- [8. **Security practices**](#8-security-practices)
- [8.1 **Password generation**](#81-password-generation)
- [8.2 **File permissions**](#82-file-permissions)
- [9. **Service Configuration**](#9-service-configuration)
- [9.1 **Configuration files**](#91-configuration-files)
- [9.2 **Credential management**](#92-credential-management)
- [9.3 **Enviroment files**](#93-enviroment-files)
- [9.4 **Services**](#94-services)
- [10. **Cleanup**](#10-cleanup)
- [10.1 **Remove temporary files**](#101-remove-temporary-files)
- [10.2 **Autoremove and autoclean**](#102-autoremove-and-autoclean)
- [11. **Best Practices Checklist**](#11-best-practices-checklist)
- [Example: High-Level Script Flow](#example-high-level-script-flow)
## 1. **File header**
### 1.1 **Shebang**
- Use `#!/usr/bin/env bash` as the shebang.
```bash
#!/usr/bin/env bash
```
### 1.2 **Comments**
- Add clear comments for script metadata, including author, copyright, and license information.
- Use meaningful inline comments to explain complex commands or logic.
Example:
```bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: [YourUserName]
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: [SOURCE_URL]
```
> [!NOTE]:
>
> - Add your username
> - When updating/reworking scripts, add "| Co-Author [YourUserName]"
### 1.3 **Variables and function import**
- This sections adds the support for all needed functions and variables.
```bash
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
```
---
## 2. **Variable naming and management**
### 2.1 **Naming conventions**
- Use uppercase names for constants and environment variables.
- Use lowercase names for local script variables.
Example:
```bash
DB_NAME=snipeit_db # Environment-like variable (constant)
db_user="snipeit" # Local variable
```
---
## 3. **Dependencies**
### 3.1 **Install all at once**
- Install all dependencies with a single command if possible
Example:
```bash
$STD apt-get install -y \
curl \
composer \
git \
sudo \
mc \
nginx
```
### 3.2 **Collapse dependencies**
Collapse dependencies to keep the code readable.
Example:
Use
```bash
php8.2-{bcmath,common,ctype}
```
instead of
```bash
php8.2-bcmath php8.2-common php8.2-ctype
```
---
## 4. **Paths to application files**
If possible install the app and all necessary files in `/opt/`
---
## 5. **Version management**
### 5.1 **Install the latest release**
- Always try and install the latest release
- Do not hardcode any version if not absolutely necessary
Example for a git release:
```bash
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip"
```
### 5.2 **Save the version for update checks**
- Write the installed version into a file.
- This is used for the update function in **AppName.sh** to check for if a Update is needed.
Example:
```bash
echo "${RELEASE}" >"/opt/AppName_version.txt"
```
---
## 6. **Input and output management**
### 6.1 **User feedback**
- Use standard functions like `msg_info`, `msg_ok` or `msg_error` to print status messages.
- Each `msg_info` must be followed with a `msg_ok` before any other output is made.
- Display meaningful progress messages at key stages.
Example:
```bash
msg_info "Installing Dependencies"
$STD apt-get install -y ...
msg_ok "Installed Dependencies"
```
### 6.2 **Verbosity**
- Use the appropiate flag (**-q** in the examples) for a command to suppres its output
Example:
```bash
wget -q
unzip -q
```
- If a command dose not come with such a functionality use `$STD` (a custom standard redirection variable) for managing output verbosity.
Example:
```bash
$STD apt-get install -y nginx
```
---
## 7. **String/File Manipulation**
### 7.1 **File Manipulation**
- Use `sed` to replace placeholder values in configuration files.
Example:
```bash
sed -i -e "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" \
-e "s|^DB_USERNAME=.*|DB_USERNAME=$DB_USER|" \
-e "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" .env
```
---
## 8. **Security practices**
### 8.1 **Password generation**
- Use `openssl` to generate random passwords.
- Use only alphanumeric values to not introduce unknown behaviour.
Example:
```bash
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
```
### 8.2 **File permissions**
Explicitly set secure ownership and permissions for sensitive files.
Example:
```bash
chown -R www-data: /opt/snipe-it
chmod -R 755 /opt/snipe-it
```
---
## 9. **Service Configuration**
### 9.1 **Configuration files**
Use `cat <<EOF` to write configuration files in a clean and readable way.
Example:
```bash
cat <<EOF >/etc/nginx/conf.d/snipeit.conf
server {
listen 80;
root /opt/snipe-it/public;
index index.php;
}
EOF
```
### 9.2 **Credential management**
Store the generated credentials in a file.
Example:
```bash
USERNAME=username
PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
{
echo "Application-Credentials"
echo "Username: $USERNAME"
echo "Password: $PASSWORD"
} >> ~/application.creds
```
### 9.3 **Enviroment files**
Use `cat <<EOF` to write enviromental files in a clean and readable way.
Example:
```bash
cat <<EOF >/path/to/.env
VARIABLE="value"
PORT=3000
DB_NAME="${DB_NAME}"
EOF
```
### 9.4 **Services**
Enable affected services after configuration changes and start them right away.
Example:
```bash
systemctl enable -q --now nginx
```
---
## 10. **Cleanup**
### 10.1 **Remove temporary files**
Remove temporary files and downloads after use.
Example:
```bash
rm -rf /opt/v${RELEASE}.zip
```
### 10.2 **Autoremove and autoclean**
Remove unused dependencies to reduce disk space usage.
Example:
```bash
apt-get -y autoremove
apt-get -y autoclean
```
---
## 11. **Best Practices Checklist**
- [ ] Shebang is correctly set (`#!/usr/bin/env bash`).
- [ ] Metadata (author, license) is included at the top.
- [ ] Variables follow naming conventions.
- [ ] Sensitive values are dynamically generated.
- [ ] Files and services have proper permissions.
- [ ] Script cleans up temporary files.
---
### Example: High-Level Script Flow
1. Dependencies installation
2. Database setup
3. Download and configure application
4. Service configuration
5. Final cleanup

View File

@ -0,0 +1,86 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 community-scripts ORG
# Author: [YourUserName]
# License: MIT
# Source: [SOURCE_URL]
# Import Functions und Setup
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
# Installing Dependencies with the 3 core dependencies (curl;sudo;mc)
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc \
[PACKAGE_1] \
[PACKAGE_2] \
[PACKAGE_3]
msg_ok "Installed Dependencies"
# Template: MySQL Database
msg_info "Setting up Database"
DB_NAME=[DB_NAME]
DB_USER=[DB_USER]
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "${APPLICATION} Credentials"
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
echo "Database Name: $DB_NAME"
} >> ~/$APP_NAME.creds
msg_ok "Set up Database"
# Temp
# Setup App
msg_info "Setup ${APPLICATION}"
RELEASE=$(curl -s https://api.github.com/repos/[REPO]/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
wget -q "https://github.com/[REPO]/archive/refs/tags/${RELEASE}.zip"
unzip -q ${RELEASE}.zip
mv ${APPLICATION}-${RELEASE}/ /opt/${APPLICATION}
#
#
#
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Setup ${APPLICATION}"
# Creating Service (if needed)
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/${APPLICATION}.service
[Unit]
Description=${APPLICATION} Service
After=network.target
[Service]
ExecStart=[START_COMMAND]
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now ${APPLICATION}.service
msg_ok "Created Service"
motd_ssh
customize
# Cleanup
msg_info "Cleaning up"
rm -f ${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
motd_ssh
customize

View File

@ -0,0 +1,34 @@
{
"name": "AppName",
"slug": "appname",
"categories": [
0
],
"date_created": "DATE CREATED",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": DEFAULT-PORT,
"documentation": null,
"website": "LINK TO WEBSITE",
"logo": "LINK TO LOGO",
"description": "Deescription of the app",
"install_methods": [
{
"type": "default",
"script": "ct/AppName.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -0,0 +1,13 @@
# **AppName<span></span>.json Files**
`AppName.json` files found in the `/json` directory. These files are used to provide informations for the website. For this guide we take `/json/snipeit.json` as example.
## Table of Contents
- [**AppName.json Files**](#appnamejson-files)
- [Table of Contents](#table-of-contents)
- [1. JSON Generator](#1-json-generator)
## 1. JSON Generator
Use the [JSON Generator](https://community-scripts.github.io/ProxmoxVE/json-editor) to create this file for your application.

View File

@ -1,54 +0,0 @@
name: Check Shell Scripts
on:
pull_request:
paths:
- '**/*.sh' # Führt den Check nur für Shell-Skripte aus
jobs:
check-scripts:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Check `source` Line in Scripts
shell: bash
run: |
set -e
ERROR_COUNT=0
FILES=$(find . -name "*.sh")
for FILE in $FILES; do
# Check for exact match of the source line in line 2
if [[ $(sed -n '2p' "$FILE") =~ ^source[[:space:]]+<(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) ]]; then
echo "Check passed for: $FILE"
else
echo "Error in $FILE: Line 2 must be exactly 'source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)' if a source line is used."
ERROR_COUNT=$((ERROR_COUNT + 1))
fi
# Check for shebang line at the top
if [[ $(head -n 1 "$FILE") != "#!/usr/bin/env bash" ]]; then
echo "Error in $FILE: The first line must be '#!/usr/bin/env bash'."
ERROR_COUNT=$((ERROR_COUNT + 1))
fi
# Check for executable permissions
if [[ ! -x "$FILE" ]]; then
echo "Warning in $FILE: This script is not executable. Consider running 'chmod +x $FILE'."
fi
# Check for empty lines at the beginning of the script
if [[ $(head -n 10 "$FILE" | grep -c '^$') -gt 0 ]]; then
echo "Warning in $FILE: There are empty lines at the beginning of the script. Consider removing them."
fi
done
if [[ "$ERROR_COUNT" -gt 0 ]]; then
echo "$ERROR_COUNT script(s) failed validation."
exit 1
else
echo "All scripts passed."
fi

View File

@ -0,0 +1,66 @@
name: Auto Update .app-headers and Create PR
on:
push:
branches:
- main
paths:
- 'ct/**.sh'
jobs:
update-app-headers:
runs-on: ubuntu-latest
steps:
# Step 1: Checkout the repository
- name: Checkout repository
uses: actions/checkout@v2
# Step 2: Set up Git user for committing changes
- name: Set up Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
# Step 3: Ensure .app-headers file exists
- name: Ensure .app-headers file exists
run: |
if [ ! -f ct/.app-headers ]; then
echo "Creating .app-headers file."
touch ct/.app-headers
fi
# Step 4: Process the ct/*.sh files and update .app-headers
- name: Update .app-headers with figlet output
run: |
echo "Updating .app-headers with figlet output."
for script in ct/*.sh; do
if grep -q 'APP=' "$script"; then
APP_NAME=$(grep -oP 'APP=\K\w+' "$script")
echo "Processing $script for APP: \"$APP_NAME\""
figlet "$APP_NAME" >> ct/.app-headers
fi
done
# Step 5: Check out and merge main into the update-app-headers branch without committing
- name: Merge main into update-app-headers
run: |
git fetch origin
git checkout update-app-headers
git merge origin/main --no-ff --no-commit -m "Merge main into update-app-headers"
echo "Merge complete. Please review and commit the changes manually."
# Step 6: Check if a PR exists and create one if it doesn't
- name: Create Pull Request if not exists
run: |
PR_EXISTS=$(gh pr list --head "update-app-headers" --json number --jq '.[].number')
if [ -z "$PR_EXISTS" ]; then
echo "Creating a new PR."
PR_URL=$(gh pr create --title "[core]: update .app-headers to latest version" \
--body "This PR automatically updates the .app-headers file." \
--head update-app-headers \
--base main)
echo "PR created: $PR_URL"
else
echo "PR already exists."
fi

View File

@ -0,0 +1,34 @@
name: Update .app-headers with figlet output
on:
workflow_run:
workflows: ["Merge main into update-app-headers"]
types:
- completed
jobs:
update-app-headers:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Ensure .app-headers file exists silently
run: |
if [ ! -f ct/.app-headers ]; then
touch ct/.app-headers
fi
- name: Update .app-headers with figlet output silently
run: |
for script in ct/*.sh; do
if grep -q 'APP=' "$script"; then
APP_NAME=$(grep -oP 'APP=\K\w+' "$script")
if [ ! -z "$APP_NAME" ]; then
echo "Adding $APP_NAME to .app-headers"
figlet "$APP_NAME" >> ct/.app-headers 2>/dev/null || echo "figlet failed for $APP_NAME"
fi
fi
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -71,7 +71,9 @@ jobs:
});
pulls.filter((pr) =>
pr.merged_at && new Date(pr.merged_at) > latestDateInChangelog
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());
const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
@ -79,12 +81,11 @@ jobs:
for (const { labels, notes } of categorizedPRs) {
const prHasCategoryLabel = labels.some((label) => prLabels.includes(label));
const isUnlabelledCategory = labels.length === 0;
const prShouldBeExcluded = prLabels.includes(process.env.AUTOMATED_PR_LABEL);
if ((prHasCategoryLabel || isUnlabelledCategory) && !prShouldBeExcluded) {
if (prHasCategoryLabel || isUnlabelledCategory) {
notes.push(prNote);
break;
}
};
}
});
return categorizedPRs;
@ -157,3 +158,13 @@ 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'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve
fi

View File

@ -0,0 +1,45 @@
name: Check and Update JSON Date
on:
pull_request:
types: [synchronize, opened, reopened, edited]
paths:
- "json/*.json"
jobs:
update-date:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.12
- name: Install dependencies
run: pip install jq
- name: Find and Update JSON files in /json folder
run: |
TODAY=$(date +%Y-%m-%d)
for file in $(git diff --diff-filter=A --name-only HEAD | grep '^json/.*\.json$'); do
if jq -e '.date_created' $file > /dev/null 2>&1; then
echo "Updating date_created in $file"
jq --arg date "$TODAY" '.date_created = $date' $file > temp.json && mv temp.json $file
git add $file
fi
done
- name: Commit changes
run: |
git config user.name "GitHub Action"
git config user.email "action@github.com"
git commit -m "Update date_created in new JSON files" || echo "No changes to commit"
- name: Push changes
uses: ad-m/github-push-action@v0.6.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
output_file="./misc/.app-headers"
> "$output_file" # Clear or create the file
current_date=$(date +"%m-%d-%Y")
# Header with date
{
echo "### Generated on $current_date"
echo "##################################################"
echo
} >> "$output_file"
# Find only regular .sh files in ./ct, sort them alphabetically
find ./ct -type f -name "*.sh" | sort | while read -r script; do
# Extract the APP name from the APP line
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
if [[ -n "$app_name" ]]; then
# Generate figlet output
figlet_output=$(figlet -f slant "$app_name")
{
echo "### $(basename "$script")"
echo "APP=$app_name"
echo "$figlet_output"
echo
} >> "$output_file"
else
echo "No APP name found in $script, skipping."
fi
done
echo "Generated combined file at $output_file"

29
.github/workflows/merge-main.yml vendored Normal file
View File

@ -0,0 +1,29 @@
name: Merge main into update-app-headers
on:
push:
branches:
- main
paths:
- 'ct/**.sh'
jobs:
merge-main:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
- name: Merge main into update-app-headers silently
run: |
git fetch origin
git checkout update-app-headers
git merge origin/main --allow-unrelated-histories --no-commit -m "Merge main into update-app-headers"
git push origin update-app-headers > /dev/null 2>&1 || true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -17,9 +17,46 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
ignore_paths: >-
frontend
json
files: |
**.sh
# This is a manual copy from https://github.com/ludeeus/action-shellcheck/blob/00b27aa7cb85167568cb48a3838b75f4265f2bca/action.yaml#L59
# Why? Because the action is not capable of adding ONLY a list of files.
# We aim to only check the files that have changed.
# This is used as we deal with a codebase that throws a lot of warnings.
# Checking only the changed files is a good compromise to improve the codebase over time.
- name: Download shellcheck
shell: bash
env:
INPUT_VERSION: "v0.10.0"
run: |
if [[ "${{ runner.os }}" == "macOS" ]]; then
osvariant="darwin"
else
osvariant="linux"
fi
baseurl="https://github.com/koalaman/shellcheck/releases/download"
curl -Lso "${{ github.action_path }}/sc.tar.xz" \
"${baseurl}/${INPUT_VERSION}/shellcheck-${INPUT_VERSION}.${osvariant}.x86_64.tar.xz"
tar -xf "${{ github.action_path }}/sc.tar.xz" -C "${{ github.action_path }}"
mv "${{ github.action_path }}/shellcheck-${INPUT_VERSION}/shellcheck" \
"${{ github.action_path }}/shellcheck"
- name: Display shellcheck version
shell: bash
run: |
"${{ github.action_path }}/shellcheck" --version
- name: Run ShellCheck
if: steps.changed-files-specific.outputs.any_changed == 'true'
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
echo "${ALL_CHANGED_FILES}" | xargs shellcheck

157
.github/workflows/validate-filenames.yml vendored Normal file
View File

@ -0,0 +1,157 @@
name: Validate filenames
on:
pull_request_target:
paths:
- "ct/*.sh"
- "install/*.sh"
- "json/*.json"
jobs:
check-files:
name: Check changed files
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Get pull request information
if: github.event_name == 'pull_request_target'
uses: actions/github-script@v7
id: pr
with:
script: |
const { data: pullRequest } = await github.rest.pulls.get({
...context.repo,
pull_number: context.payload.pull_request.number,
});
return pullRequest;
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
- name: Get changed files
id: changed-files
run: |
if ${{ github.event_name == 'pull_request_target' }}; then
echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | xargs)" >> $GITHUB_OUTPUT
else
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT
fi
- name: "Validate filenames in ct and install directory"
if: always() && steps.changed-files.outputs.files != ''
id: check-scripts
run: |
CHANGED_FILES=$(printf "%s\n" ${{ steps.changed-files.outputs.files }} | { grep -E '^(ct|install)/.*\.sh$' || true; })
NON_COMPLIANT_FILES=""
for FILE in $CHANGED_FILES; do
BASENAME=$(echo "$(basename "${FILE%.*}")")
if [[ ! "$BASENAME" =~ ^[a-z0-9-]+$ ]]; then
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
fi
done
if [ -n "$NON_COMPLIANT_FILES" ]; then
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
echo "Non-compliant filenames found, change to lowercase:"
for FILE in $NON_COMPLIANT_FILES; do
echo "$FILE"
done
exit 1
fi
- name: "Validate filenames in json directory."
if: always() && steps.changed-files.outputs.files != ''
id: check-json
run: |
CHANGED_FILES=$(printf "%s\n" ${{ steps.changed-files.outputs.files }} | { grep -E '^json/.*\.json$' || true; })
NON_COMPLIANT_FILES=""
for FILE in $CHANGED_FILES; do
BASENAME=$(echo "$(basename "${FILE%.*}")")
if [[ ! "$BASENAME" =~ ^[a-z0-9-]+$ ]]; then
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
fi
done
if [ -n "$NON_COMPLIANT_FILES" ]; then
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
echo "Non-compliant filenames found, change to lowercase:"
for FILE in $NON_COMPLIANT_FILES; do
echo "$FILE"
done
exit 1
fi
- name: Post results and comment
if: always() && steps.check-scripts.outputs.files != '' && steps.check-json.outputs.files != '' && github.event_name == 'pull_request_target'
uses: actions/github-script@v7
with:
script: |
const result = "${{ job.status }}" === "success" ? "success" : "failure";
const nonCompliantFiles = {
script: "${{ steps.check-scripts.outputs.files }}",
JSON: "${{ steps.check-json.outputs.files }}",
};
const issueNumber = context.payload.pull_request
? context.payload.pull_request.number
: null;
const commentIdentifier = "validate-filenames";
let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Filename validation\n\n`;
if (result === "failure") {
newCommentBody += ":x: We found issues in the following changed files:\n\n";
for (const [check, files] of Object.entries(nonCompliantFiles)) {
if (files) {
newCommentBody += `**${check.charAt(0).toUpperCase() + check.slice(1)} filename invalid:**\n${files
.trim()
.split(" ")
.map((file) => `- ${file}`)
.join("\n")}\n\n`;
}
}
newCommentBody +=
"Please change the filenames to lowercase and use only alphanumeric characters and dashes.\n";
} else {
newCommentBody += `:rocket: All files passed filename validation!\n`;
}
newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
if (issueNumber) {
const { data: comments } = await github.rest.issues.listComments({
...context.repo,
issue_number: issueNumber,
});
const existingComment = comments.find(
(comment) => comment.user.login === "github-actions[bot]",
);
if (existingComment) {
if (existingComment.body.includes(commentIdentifier)) {
const re = new RegExp(String.raw`<!-- ${commentIdentifier}-start -->[\s\S]*?<!-- ${commentIdentifier}-end -->`, "");
newCommentBody = existingComment.body.replace(re, newCommentBody);
} else {
newCommentBody = existingComment.body + '\n\n---\n\n' + newCommentBody;
}
await github.rest.issues.updateComment({
...context.repo,
comment_id: existingComment.id,
body: newCommentBody,
});
} else {
await github.rest.issues.createComment({
...context.repo,
issue_number: issueNumber,
body: newCommentBody,
});
}
}

View File

@ -0,0 +1,133 @@
name: Validate script formatting
on:
push:
branches:
- main
pull_request_target:
paths:
- "**/*.sh"
- "**/*.func"
jobs:
shfmt:
name: Check changed files
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Get pull request information
if: github.event_name == 'pull_request_target'
uses: actions/github-script@v7
id: pr
with:
script: |
const { data: pullRequest } = await github.rest.pulls.get({
...context.repo,
pull_number: context.payload.pull_request.number,
});
return pullRequest;
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
- name: Get changed files
id: changed-files
run: |
if ${{ github.event_name == 'pull_request_target' }}; then
echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
else
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
fi
- name: Set up Go
if: steps.changed-files.outputs.files != ''
uses: actions/setup-go@v5
- name: Install shfmt
if: steps.changed-files.outputs.files != ''
run: |
go install mvdan.cc/sh/v3/cmd/shfmt@latest
echo "$GOPATH/bin" >> $GITHUB_PATH
- name: Run shfmt
if: steps.changed-files.outputs.files != ''
id: shfmt
run: |
set +e
shfmt_output=$(shfmt -d ${{ steps.changed-files.outputs.files }})
if [[ $? -eq 0 ]]; then
exit 0
else
echo "diff=\"$(echo -n "$shfmt_output" | base64 -w 0)\"" >> $GITHUB_OUTPUT
printf "%s" "$shfmt_output"
exit 1
fi
- name: Post comment with results
if: always() && steps.changed-files.outputs.files != '' && github.event_name == 'pull_request_target'
uses: actions/github-script@v7
with:
script: |
const result = "${{ job.status }}" === "success" ? "success" : "failure";
const diff = Buffer.from(
${{ steps.shfmt.outputs.diff }},
"base64",
).toString();
const issueNumber = context.payload.pull_request
? context.payload.pull_request.number
: null;
const commentIdentifier = "validate-formatting";
let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Script formatting\n\n`;
if (result === "failure") {
newCommentBody +=
`:x: We found issues in the formatting of the following changed files:\n\n\`\`\`diff\n${diff}\n\`\`\`\n`;
} else {
newCommentBody += `:rocket: All changed shell scripts are formatted correctly!\n`;
}
newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
if (issueNumber) {
const { data: comments } = await github.rest.issues.listComments({
...context.repo,
issue_number: issueNumber,
});
const existingComment = comments.find(
(comment) => comment.user.login === "github-actions[bot]",
);
if (existingComment) {
if (existingComment.body.includes(commentIdentifier)) {
const re = new RegExp(
String.raw`<!-- ${commentIdentifier}-start -->[\s\S]*?<!-- ${commentIdentifier}-end -->`,
"",
);
newCommentBody = existingComment.body.replace(re, newCommentBody);
} else {
newCommentBody = existingComment.body + "\n\n---\n\n" + newCommentBody;
}
await github.rest.issues.updateComment({
...context.repo,
comment_id: existingComment.id,
body: newCommentBody,
});
} else {
await github.rest.issues.createComment({
...context.repo,
issue_number: issueNumber,
body: newCommentBody,
});
}
}

View File

@ -0,0 +1,234 @@
name: Validate scripts
on:
push:
branches:
- main
pull_request_target:
paths:
- "ct/*.sh"
- "install/*.sh"
jobs:
check-scripts:
name: Check changed files
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Debug event payload
run: |
echo "Event name: ${{ github.event_name }}"
echo "Payload: $(cat $GITHUB_EVENT_PATH)"
- name: Get pull request information
if: github.event_name == 'pull_request_target'
uses: actions/github-script@v7
id: pr
with:
script: |
const { data: pullRequest } = await github.rest.pulls.get({
...context.repo,
pull_number: context.payload.pull_request.number,
});
return pullRequest;
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
- name: Get changed files
id: changed-files
run: |
if [ "${{ github.event_name }}" == "pull_request_target" ]; then
echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
else
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
fi
- name: Check build.func line
if: always() && steps.changed-files.outputs.files != ''
id: build-func
run: |
NON_COMPLIANT_FILES=""
for FILE in ${{ steps.changed-files.outputs.files }}; do
if [[ "$FILE" == ct/* ]] && [[ $(sed -n '2p' "$FILE") != "source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)" ]]; then
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
fi
done
if [ -n "$NON_COMPLIANT_FILES" ]; then
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
echo "Build.func line missing or incorrect in files:"
for FILE in $NON_COMPLIANT_FILES; do
echo "$FILE"
done
exit 1
fi
- name: Check executable permissions
if: always() && steps.changed-files.outputs.files != ''
id: check-executable
run: |
NON_COMPLIANT_FILES=""
for FILE in ${{ steps.changed-files.outputs.files }}; do
if [[ ! -x "$FILE" ]]; then
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
fi
done
if [ -n "$NON_COMPLIANT_FILES" ]; then
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
echo "Files not executable:"
for FILE in $NON_COMPLIANT_FILES; do
echo "$FILE"
done
exit 1
fi
- name: Check copyright
if: always() && steps.changed-files.outputs.files != ''
id: check-copyright
run: |
NON_COMPLIANT_FILES=""
for FILE in ${{ steps.changed-files.outputs.files }}; do
if ! sed -n '3p' "$FILE" | grep -qE "^# Copyright \(c\) [0-9]{4}(-[0-9]{4})? (tteck \| community-scripts ORG|community-scripts ORG|tteck)$"; then
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
fi
done
if [ -n "$NON_COMPLIANT_FILES" ]; then
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
echo "Copyright header missing or not on line 3 in files:"
for FILE in $NON_COMPLIANT_FILES; do
echo "$FILE"
done
exit 1
fi
- name: Check author
if: always() && steps.changed-files.outputs.files != ''
id: check-author
run: |
NON_COMPLIANT_FILES=""
for FILE in ${{ steps.changed-files.outputs.files }}; do
if ! sed -n '4p' "$FILE" | grep -qE "^# Author: .+"; then
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
fi
done
if [ -n "$NON_COMPLIANT_FILES" ]; then
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
echo "Author header missing or invalid on line 4 in files:"
for FILE in $NON_COMPLIANT_FILES; do
echo "$FILE"
done
exit 1
fi
- name: Check license
if: always() && steps.changed-files.outputs.files != ''
id: check-license
run: |
NON_COMPLIANT_FILES=""
for FILE in ${{ steps.changed-files.outputs.files }}; do
if [[ "$(sed -n '5p' "$FILE")" != "# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE" ]]; then
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
fi
done
if [ -n "$NON_COMPLIANT_FILES" ]; then
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
echo "License header missing or not on line 5 in files:"
for FILE in $NON_COMPLIANT_FILES; do
echo "$FILE"
done
exit 1
fi
- name: Check source
if: always() && steps.changed-files.outputs.files != ''
id: check-source
run: |
NON_COMPLIANT_FILES=""
for FILE in ${{ steps.changed-files.outputs.files }}; do
if ! sed -n '6p' "$FILE" | grep -qE "^# Source: .+"; then
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
fi
done
if [ -n "$NON_COMPLIANT_FILES" ]; then
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
echo "Source header missing or not on line 6 in files:"
for FILE in $NON_COMPLIANT_FILES; do
echo "$FILE"
done
exit 1
fi
- name: Post results and comment
if: always() && steps.changed-files.outputs.files != '' && github.event_name == 'pull_request_target'
uses: actions/github-script@v7
with:
script: |
const result = '${{ job.status }}' === 'success' ? 'success' : 'failure';
const nonCompliantFiles = {
'Invalid build.func source': "${{ steps.build-func.outputs.files || '' }}",
'Not executable': "${{ steps.check-executable.outputs.files || '' }}",
'Copyright header line missing or invalid': "${{ steps.check-copyright.outputs.files || '' }}",
'Author header line missing or invalid': "${{ steps.check-author.outputs.files || '' }}",
'License header line missing or invalid': "${{ steps.check-license.outputs.files || '' }}",
'Source header line missing or invalid': "${{ steps.check-source.outputs.files || '' }}"
};
const issueNumber = context.payload.pull_request ? context.payload.pull_request.number : null;
const commentIdentifier = 'validate-scripts';
let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Script validation\n\n`;
if (result === 'failure') {
newCommentBody += ':x: We found issues in the following changed files:\n\n';
for (const [check, files] of Object.entries(nonCompliantFiles)) {
if (files) {
newCommentBody += `**${check}:**\n`;
files.trim().split(' ').forEach(file => {
newCommentBody += `- ${file}: ${check}\n`;
});
newCommentBody += `\n`;
}
}
} else {
newCommentBody += `:rocket: All changed shell scripts passed validation!\n`;
}
newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
if (issueNumber) {
const { data: comments } = await github.rest.issues.listComments({
...context.repo,
issue_number: issueNumber
});
const existingComment = comments.find(comment =>
comment.body.includes(`<!-- ${commentIdentifier}-start -->`) &&
comment.user.login === 'github-actions[bot]'
);
if (existingComment) {
const re = new RegExp(String.raw`<!-- ${commentIdentifier}-start -->[\\s\\S]*?<!-- ${commentIdentifier}-end -->`, "m");
newCommentBody = existingComment.body.replace(re, newCommentBody);
await github.rest.issues.updateComment({
...context.repo,
comment_id: existingComment.id,
body: newCommentBody
});
} else {
await github.rest.issues.createComment({
...context.repo,
issue_number: issueNumber,
body: newCommentBody
});
}
}

8
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,8 @@
{
"recommendations": [
"bmalehorn.shell-syntax",
"timonwong.shellcheck",
"foxundermoon.shell-format"
],
"unwantedRecommendations": []
}

View File

@ -16,6 +16,268 @@ All LXC instances created using this repository come pre-installed with Midnight
> [!IMPORTANT]
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
## 2025-01-13
### Changed
### 💥 Breaking Changes
- Update Hoarder: Improvement .env location (see PR comment for little migration) [@MahrWe](https://github.com/MahrWe) ([#1325](https://github.com/community-scripts/ProxmoxVE/pull/1325))
### 🚀 Updated Scripts
- Fix: tandoor.sh: Call version.py to write current version [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1454](https://github.com/community-scripts/ProxmoxVE/pull/1454))
- Fix inexistent folder on actualbudget update script [@dosten](https://github.com/dosten) ([#1444](https://github.com/community-scripts/ProxmoxVE/pull/1444))
### 🌐 Website
- Update kavita.json: Add info on how to enable folder adding. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1447](https://github.com/community-scripts/ProxmoxVE/pull/1447))
### 🧰 Maintenance
- GitHub Actions: Fix Shellsheck workflow to only run on changes `*.sh` files [@andygrunwald](https://github.com/andygrunwald) ([#1423](https://github.com/community-scripts/ProxmoxVE/pull/1423))
### ❔ Unlabelled
- feat: allow adding SSH authorized key for root (advanced settings) by @dsiebel [@MickLesk](https://github.com/MickLesk) ([#1456](https://github.com/community-scripts/ProxmoxVE/pull/1456))
## 2025-01-11
### Changed
### 🚀 Updated Scripts
- Prometheus: Fix installation via creating the service file [@andygrunwald](https://github.com/andygrunwald) ([#1416](https://github.com/community-scripts/ProxmoxVE/pull/1416))
- Update prometheus-install.sh: Service creation fix [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1417](https://github.com/community-scripts/ProxmoxVE/pull/1417))
- Update prometheus-alertmanager-install.sh: Service Creation Fix [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1418](https://github.com/community-scripts/ProxmoxVE/pull/1418))
- Fix: LubeLogger CT vehicle tag typo [@kkroboth](https://github.com/kkroboth) ([#1413](https://github.com/community-scripts/ProxmoxVE/pull/1413))
## 2025-01-10
### Changed
### ✨ New Scripts
- New script : Ghost [@fabrice1236](https://github.com/fabrice1236) ([#1361](https://github.com/community-scripts/ProxmoxVE/pull/1361))
### 🚀 Updated Scripts
- Fix user in ghost-cli install command [@fabrice1236](https://github.com/fabrice1236) ([#1408](https://github.com/community-scripts/ProxmoxVE/pull/1408))
- Update Prometheus + Alertmanager: Unify scripts for easier maintenance [@andygrunwald](https://github.com/andygrunwald) ([#1402](https://github.com/community-scripts/ProxmoxVE/pull/1402))
- Update komodo.sh: Fix broken paths in update_script(). [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1403](https://github.com/community-scripts/ProxmoxVE/pull/1403))
- Fix: ActualBudget Update-Function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1376](https://github.com/community-scripts/ProxmoxVE/pull/1376))
- Fix: bookstack.sh - Ignore empty folder [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1388](https://github.com/community-scripts/ProxmoxVE/pull/1388))
- Fix: checkmk-install.sh: Version crawling. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1385](https://github.com/community-scripts/ProxmoxVE/pull/1385))
### 🌐 Website
- Change Website-Category of nzbget [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1379](https://github.com/community-scripts/ProxmoxVE/pull/1379))
### 🧰 Maintenance
- Update check_and_update_json_date.yml: Change path to /json [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1399](https://github.com/community-scripts/ProxmoxVE/pull/1399))
- Visual Studio Code: Set Workspace recommended extensions [@andygrunwald](https://github.com/andygrunwald) ([#1398](https://github.com/community-scripts/ProxmoxVE/pull/1398))
- [core]: add support for custom tags [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1384](https://github.com/community-scripts/ProxmoxVE/pull/1384))
- [core]: check json date of new prs & update it [@MickLesk](https://github.com/MickLesk) ([#1395](https://github.com/community-scripts/ProxmoxVE/pull/1395))
- Add initial PR for Contributing & Coding Standard [@MickLesk](https://github.com/MickLesk) ([#920](https://github.com/community-scripts/ProxmoxVE/pull/920))
- [Core] add Github Action for Generate AppHeaders (figlet remove part 1) [@MickLesk](https://github.com/MickLesk) ([#1382](https://github.com/community-scripts/ProxmoxVE/pull/1382))
## 2025-01-09
### Changed
### 💥 Breaking Changes
- Removal calibre-server (no Headless Support) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1362](https://github.com/community-scripts/ProxmoxVE/pull/1362))
### ✨ New Scripts
- New Script: Prometheus Alertmanager [@andygrunwald](https://github.com/andygrunwald) ([#1272](https://github.com/community-scripts/ProxmoxVE/pull/1272))
- New script: ps5-mqtt [@liecno](https://github.com/liecno) ([#1198](https://github.com/community-scripts/ProxmoxVE/pull/1198))
### 🚀 Updated Scripts
- Fix: AdventureLog: unzip to /opt/ [@JesperDramsch](https://github.com/JesperDramsch) ([#1370](https://github.com/community-scripts/ProxmoxVE/pull/1370))
- Fix: Stirling-PDF > LibreOffice/unoconv Integration Issues [@m6urns](https://github.com/m6urns) ([#1322](https://github.com/community-scripts/ProxmoxVE/pull/1322))
- Fix: AdventureLog - update script bug [@JesperDramsch](https://github.com/JesperDramsch) ([#1334](https://github.com/community-scripts/ProxmoxVE/pull/1334))
- Install/update ActualBudget based on releases, not latest master [@SpyrosRoum](https://github.com/SpyrosRoum) ([#1254](https://github.com/community-scripts/ProxmoxVE/pull/1254))
- Fix Checkmk: Version grep broken [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1341](https://github.com/community-scripts/ProxmoxVE/pull/1341))
### 🧰 Maintenance
- fix: only validate scripts in validate-scripts workflow [@se-bastiaan](https://github.com/se-bastiaan) ([#1344](https://github.com/community-scripts/ProxmoxVE/pull/1344))
## 2025-01-08
### Changed
### 🌐 Website
- update postgresql json to add post install password setup [@rdiazlugo](https://github.com/rdiazlugo) ([#1318](https://github.com/community-scripts/ProxmoxVE/pull/1318))
### 🧰 Maintenance
- fix(ci): formatting event & chmod +x [@se-bastiaan](https://github.com/se-bastiaan) ([#1335](https://github.com/community-scripts/ProxmoxVE/pull/1335))
- fix: correctly handle pull_request_target event [@se-bastiaan](https://github.com/se-bastiaan) ([#1327](https://github.com/community-scripts/ProxmoxVE/pull/1327))
## 2025-01-07
### Changed
### 🚀 Updated Scripts
- Fix: Folder-Check for Updatescript Zammad [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1309](https://github.com/community-scripts/ProxmoxVE/pull/1309))
### 🧰 Maintenance
- fix: permissions of validate pipelines [@se-bastiaan](https://github.com/se-bastiaan) ([#1316](https://github.com/community-scripts/ProxmoxVE/pull/1316))
- Set Execution Rights for GH-Action: Validate Scripts [@MickLesk](https://github.com/MickLesk) ([#1312](https://github.com/community-scripts/ProxmoxVE/pull/1312))
## 2025-01-06
### Changed
### ✨ New Scripts
- New Script: Typesense [@tlissak](https://github.com/tlissak) ([#1291](https://github.com/community-scripts/ProxmoxVE/pull/1291))
- New script: GLPI [@opastorello](https://github.com/opastorello) ([#1201](https://github.com/community-scripts/ProxmoxVE/pull/1201))
### 🚀 Updated Scripts
- Fix Tag in HyperHDR Script [@MickLesk](https://github.com/MickLesk) ([#1299](https://github.com/community-scripts/ProxmoxVE/pull/1299))
- [Fix]: Fixed rm Bug in pf2etools [@MickLesk](https://github.com/MickLesk) ([#1292](https://github.com/community-scripts/ProxmoxVE/pull/1292))
- Fix: Homebox Update Script [@MickLesk](https://github.com/MickLesk) ([#1284](https://github.com/community-scripts/ProxmoxVE/pull/1284))
- Add ca-certificates for Install (Frigate) [@MickLesk](https://github.com/MickLesk) ([#1282](https://github.com/community-scripts/ProxmoxVE/pull/1282))
- fix: buffer from base64 in formatting pipeline [@se-bastiaan](https://github.com/se-bastiaan) ([#1285](https://github.com/community-scripts/ProxmoxVE/pull/1285))
### 🧰 Maintenance
- Add reapproval of Changelog-PR [@MickLesk](https://github.com/MickLesk) ([#1279](https://github.com/community-scripts/ProxmoxVE/pull/1279))
- ci: combine header checks into workflow with PR comment [@se-bastiaan](https://github.com/se-bastiaan) ([#1257](https://github.com/community-scripts/ProxmoxVE/pull/1257))
- ci: change filename checks into steps with PR comment [@se-bastiaan](https://github.com/se-bastiaan) ([#1255](https://github.com/community-scripts/ProxmoxVE/pull/1255))
- ci: add pipeline for code formatting checks [@se-bastiaan](https://github.com/se-bastiaan) ([#1239](https://github.com/community-scripts/ProxmoxVE/pull/1239))
## 2025-01-05
### Changed
### 💥 Breaking Changes
- [Breaking] Update Zigbee2mqtt to v.2.0.0 (Read PR Description) [@MickLesk](https://github.com/MickLesk) ([#1221](https://github.com/community-scripts/ProxmoxVE/pull/1221))
### ❔ Unlabelled
- Add RAM and Disk units [@oOStroudyOo](https://github.com/oOStroudyOo) ([#1261](https://github.com/community-scripts/ProxmoxVE/pull/1261))
## 2025-01-04
### Changed
### 🚀 Updated Scripts
- Fix gpg key pf2tools & 5etools [@MickLesk](https://github.com/MickLesk) ([#1242](https://github.com/community-scripts/ProxmoxVE/pull/1242))
- Homarr: Fix missing curl dependency [@MickLesk](https://github.com/MickLesk) ([#1238](https://github.com/community-scripts/ProxmoxVE/pull/1238))
- Homeassistan Core: Fix Python3 and add missing dependencies [@MickLesk](https://github.com/MickLesk) ([#1236](https://github.com/community-scripts/ProxmoxVE/pull/1236))
- Fix: Update Python for HomeAssistant [@MickLesk](https://github.com/MickLesk) ([#1227](https://github.com/community-scripts/ProxmoxVE/pull/1227))
- OneDev: Add git-lfs [@MickLesk](https://github.com/MickLesk) ([#1225](https://github.com/community-scripts/ProxmoxVE/pull/1225))
- Pf2eTools & 5eTools: Fixing npm build [@TheRealVira](https://github.com/TheRealVira) ([#1213](https://github.com/community-scripts/ProxmoxVE/pull/1213))
### 🌐 Website
- Bump next from 15.0.2 to 15.1.3 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#1212](https://github.com/community-scripts/ProxmoxVE/pull/1212))
### 🧰 Maintenance
- [GitHub Action] Add filename case check [@quantumryuu](https://github.com/quantumryuu) ([#1228](https://github.com/community-scripts/ProxmoxVE/pull/1228))
## 2025-01-03
### Changed
### 🚀 Updated Scripts
- Improve Homarr Installation [@MickLesk](https://github.com/MickLesk) ([#1208](https://github.com/community-scripts/ProxmoxVE/pull/1208))
- Fix: Zabbix-Update Script [@MickLesk](https://github.com/MickLesk) ([#1205](https://github.com/community-scripts/ProxmoxVE/pull/1205))
- Update Script: Lazylibrarian [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1190](https://github.com/community-scripts/ProxmoxVE/pull/1190))
- Fix: Memos update function [@MickLesk](https://github.com/MickLesk) ([#1207](https://github.com/community-scripts/ProxmoxVE/pull/1207))
- Keep Lubelogger data after update to a new version [@JcMinarro](https://github.com/JcMinarro) ([#1200](https://github.com/community-scripts/ProxmoxVE/pull/1200))
### 🌐 Website
- Update Nextcloud-LXC JSON [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1191](https://github.com/community-scripts/ProxmoxVE/pull/1191))
### 🧰 Maintenance
- Github action to check metadata lines in scripts. [@quantumryuu](https://github.com/quantumryuu) ([#1110](https://github.com/community-scripts/ProxmoxVE/pull/1110))
## 2025-01-02
### Changed
### ✨ New Scripts
- New Script: Pf2eTools [@TheRealVira](https://github.com/TheRealVira) ([#1162](https://github.com/community-scripts/ProxmoxVE/pull/1162))
- New Script: 5etools [@TheRealVira](https://github.com/TheRealVira) ([#1157](https://github.com/community-scripts/ProxmoxVE/pull/1157))
### 🚀 Updated Scripts
- Update config template in blocky-install.sh [@xFichtl1](https://github.com/xFichtl1) ([#1059](https://github.com/community-scripts/ProxmoxVE/pull/1059))
## 2025-01-01
### Changed
### ✨ New Scripts
- New Script: Komodo [@MickLesk](https://github.com/MickLesk) ([#1167](https://github.com/community-scripts/ProxmoxVE/pull/1167))
- New Script: Firefly [@quantumryuu](https://github.com/quantumryuu) ([#616](https://github.com/community-scripts/ProxmoxVE/pull/616))
- New Script: Semaphore [@quantumryuu](https://github.com/quantumryuu) ([#596](https://github.com/community-scripts/ProxmoxVE/pull/596))
### 🚀 Updated Scripts
- Fix Script Homepage: add version during build step [@se-bastiaan](https://github.com/se-bastiaan) ([#1155](https://github.com/community-scripts/ProxmoxVE/pull/1155))
- Happy new Year! Update Copyright to 2025 [@MickLesk](https://github.com/MickLesk) ([#1150](https://github.com/community-scripts/ProxmoxVE/pull/1150))
- Update Kernel-Clean to new Version & Bugfixing [@MickLesk](https://github.com/MickLesk) ([#1147](https://github.com/community-scripts/ProxmoxVE/pull/1147))
- Fix chromium installation for ArchiveBox [@tkunzfeld](https://github.com/tkunzfeld) ([#1140](https://github.com/community-scripts/ProxmoxVE/pull/1140))
### 🌐 Website
- Fix Category of Semaphore [@MickLesk](https://github.com/MickLesk) ([#1148](https://github.com/community-scripts/ProxmoxVE/pull/1148))
### 🧰 Maintenance
- Correctly check for changed files in Shellcheck workflow [@se-bastiaan](https://github.com/se-bastiaan) ([#1156](https://github.com/community-scripts/ProxmoxVE/pull/1156))
## 2024-12-31 - Happy new Year! 🎉✨
### Changed
### 💥 Breaking Changes
- Add ExecReload to prometheus.service [@BasixKOR](https://github.com/BasixKOR) ([#1131](https://github.com/community-scripts/ProxmoxVE/pull/1131))
- Fix: Figlet Version & Font Check [@MickLesk](https://github.com/MickLesk) ([#1133](https://github.com/community-scripts/ProxmoxVE/pull/1133))
### 🚀 Updated Scripts
- Fix: Copy issue after update in Bookstack LXC [@MickLesk](https://github.com/MickLesk) ([#1137](https://github.com/community-scripts/ProxmoxVE/pull/1137))
- Omada: Switch Base-URL to prevent issues [@MickLesk](https://github.com/MickLesk) ([#1135](https://github.com/community-scripts/ProxmoxVE/pull/1135))
- fix: guacd service not start during Apache-Guacamole script installation process [@PhoenixEmik](https://github.com/PhoenixEmik) ([#1122](https://github.com/community-scripts/ProxmoxVE/pull/1122))
- Fix Homepage-Script: Installation/Update [@MickLesk](https://github.com/MickLesk) ([#1129](https://github.com/community-scripts/ProxmoxVE/pull/1129))
- Netbox: Updating URL to https [@surajsbmn](https://github.com/surajsbmn) ([#1124](https://github.com/community-scripts/ProxmoxVE/pull/1124))
## 2024-12-30
### Changed
### 🚀 Updated Scripts
- [Archivebox] Fix wrong port being printed post install. [@Strana-Mechty](https://github.com/Strana-Mechty) ([#1105](https://github.com/community-scripts/ProxmoxVE/pull/1105))
- fix: add homepage version during build step [@se-bastiaan](https://github.com/se-bastiaan) ([#1107](https://github.com/community-scripts/ProxmoxVE/pull/1107))
### 🌐 Website
- Fix Trilium Website to TriliumNext [@tmkis2](https://github.com/tmkis2) ([#1103](https://github.com/community-scripts/ProxmoxVE/pull/1103))
## 2024-12-29
### Changed

View File

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2021-2024 tteck | community-scripts ORG
Copyright (c) 2021-2025 tteck | community-scripts ORG
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# Copyright (c) 2021-2025 community-scripts ORG
# Author: jkrgr0
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://docs.2fauth.app/

113
ct/5etools.sh Normal file
View File

@ -0,0 +1,113 @@
#!/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: TheRealVira
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://5e.tools/
# App Default Values
APP="5etools"
var_tags="wiki"
var_cpu="1"
var_ram="512"
var_disk="13"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
# Check if installation is present | -f for file, -d for folder
if [[ ! -d "/opt/${APP}" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/5etools-mirror-3/5etools-src/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f "/opt/${APP}_version.txt" ]]; then
# Crawling the new version and checking whether an update is required
msg_info "Updating System"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated System"
# Execute Update
msg_info "Updating base 5etools"
cd /opt
wget -q "https://github.com/5etools-mirror-3/5etools-src/archive/refs/tags/${RELEASE}.zip"
unzip -q "${RELEASE}.zip"
mv "/opt/${APP}/img" "/opt/img-backup"
rm -rf "/opt/${APP}"
mv "${APP}-src-${RELEASE:1}" "/opt/${APP}"
mv "/opt/img-backup" "/opt/${APP}/img"
cd /opt/5etools
$STD npm install
$STD npm run build
cd ~
echo "${RELEASE}" >"/opt/${APP}_version.txt"
chown -R www-data: "/opt/${APP}"
chmod -R 755 "/opt/${APP}"
msg_ok "Updated base 5etools"
# Cleaning up
msg_info "Cleaning Up"
rm -rf /opt/${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
else
msg_ok "No update required. Base ${APP} is already at ${RELEASE}"
fi
IMG_RELEASE=$(curl -s https://api.github.com/repos/5etools-mirror-2/5etools-img/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ "${IMG_RELEASE}" != "$(cat /opt/${APP}_IMG_version.txt)" ]] || [[ ! -f "/opt/${APP}_IMG_version.txt" ]]; then
# Crawling the new version and checking whether an update is required
msg_info "Updating System"
apt-get update &>/dev/null
apt-get -y upgrade &>/dev/null
msg_ok "Updated System"
# Execute Update
msg_info "Updating 5etools images"
curl -sSL "https://github.com/5etools-mirror-2/5etools-img/archive/refs/tags/${IMG_RELEASE}.zip" > "${IMG_RELEASE}.zip"
unzip -q "${IMG_RELEASE}.zip"
rm -rf "/opt/${APP}/img"
mv "${APP}-img-${IMG_RELEASE:1}" "/opt/${APP}/img"
echo "${IMG_RELEASE}" >"/opt/${APP}_IMG_version.txt"
chown -R www-data: "/opt/${APP}"
chmod -R 755 "/opt/${APP}"
msg_ok "Updating 5etools images"
# Cleaning up
msg_info "Cleaning Up"
rm -rf /opt/${RELEASE}.zip
rm -rf ${IMG_RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleanup Completed"
else
msg_ok "No update required. ${APP} images are already at ${IMG_RELEASE}"
fi
}
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

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://actualbudget.org/
@ -32,13 +32,29 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq >/dev/null 2>&1; then
echo "Installing jq..."
apt-get install -y jq >/dev/null 2>&1
echo "Installed jq..."
fi
msg_info "Updating ${APP}"
systemctl stop actualbudget.service
systemctl stop actualbudget
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual-server/tags | jq --raw-output '.[0].name')
TEMPD="$(mktemp -d)"
cd "${TEMPD}"
wget -q https://codeload.github.com/actualbudget/actual-server/legacy.tar.gz/refs/tags/${RELEASE} -O - | tar -xz
mv /opt/actualbudget /opt/actualbudget_bak
mkdir -p /opt/actualbudget/
mv actualbudget-actual-server-*/* /opt/actualbudget/
mv /opt/actualbudget_bak/.env /opt/actualbudget
mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files
cd /opt/actualbudget
git pull &>/dev/null
yarn install &>/dev/null
systemctl start actualbudget.service
msg_ok "Successfully Updated ${APP}"
systemctl start actualbudget
msg_ok "Successfully Updated ${APP} to ${RELEASE}"
rm -rf "${TEMPD}"
rm -rf /opt/actualbudget_bak
exit
}
@ -49,4 +65,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5006${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5006${CL}"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://adguard.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://adventurelog.app/
@ -40,19 +40,20 @@ function update_script() {
msg_ok "Services Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/adventurelog/backend/server/.env /opt/server.env
cp /opt/adventurelog/frontend/.env /opt/frontend.env
wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv AdventureLog-${RELEASE} /opt/adventurelog
mv /opt/server.env /opt/adventurelog/backend/server/.env
mv /opt/adventurelog/ /opt/adventurelog-backup/
wget -qO /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
unzip -q /opt/v${RELEASE}.zip -d /opt/
mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
mv /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
cd /opt/adventurelog/backend/server
pip install --upgrade pip &>/dev/null
pip install -r requirements.txt &>/dev/null
python3 manage.py collectstatic --noinput &>/dev/null
python3 manage.py migrate &>/dev/null
mv /opt/frontend.env /opt/adventurelog/frontend/.env
mv /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
cd /opt/adventurelog/frontend
pnpm install &>/dev/null
pnpm run build &>/dev/null
@ -65,7 +66,8 @@ function update_script() {
msg_ok "Started Services"
msg_info "Cleaning Up"
rm -rf v${RELEASE}.zip
rm -rf /opt/v${RELEASE}.zip
rm -rf /opt/adventurelog-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
@ -81,4 +83,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.ispyconnect.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cassandra.apache.org/_/index.html

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://couchdb.apache.org/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# 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/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://wiki.debian.org/AptCacherNg

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://archivebox.io/
@ -57,4 +57,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/admin/login${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://aria2.github.io/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.audiobookshelf.org/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# Copyright (c) 2021-2025 community-scripts ORG
# Author: remz1337
# License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://autobrr.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.bazarr.media/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://0xerr0r.github.io/blocky/latest/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/BookStackApp/BookStack
@ -44,9 +44,9 @@ function update_script() {
unzip -q /opt/v${RELEASE}.zip -d /opt
mv /opt/BookStack-${RELEASE} /opt/bookstack
cp /opt/bookstack-backup/.env /opt/bookstack/.env
cp -r /opt/bookstack-backup/public/uploads/ /opt/bookstack/public/uploads
cp -r /opt/bookstack-backup/storage/uploads/ /opt/bookstack/storage/uploads
cp -r /opt/bookstack-backup/themes/ /opt/bookstack/themes
cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/ 2>/dev/null || true
cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/ 2>/dev/null || true
cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ 2>/dev/null || true
cd /opt/bookstack
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null
php artisan migrate --force &>/dev/null

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.bunkerweb.io/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://caddyserver.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/janeczku/calibre-web

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://casaos.io/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://changedetection.io/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://getchannels.com/dvr-server/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# 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://checkmk.com/
@ -29,7 +29,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) }' | grep -v "*-rc" | tail -n +2 | head -n 1)
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }')
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

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.cloudflare.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck | Co-Author: havardthom
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cockpit-project.org/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.commafeed.com/#/welcome

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# Co-Author: MickLesk
# License: MIT

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://cronicle.net/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://daemonsync.me/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dashy.to/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.debian.org/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.phoscon.de/en/conbee2/software#deconz

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.deluge-torrent.org/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.docker.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dockge.kuma.pet/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://emby.media/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.emqx.com/en

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://ersatztv.org/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://esphome.io/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://evcc.io/en/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: Scorpoon
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/revenz/Fenrus

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://fhem.de/

85
ct/firefly.sh Normal file
View File

@ -0,0 +1,85 @@
#!/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: quantumryuu
# 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"
var_ram="1024"
var_disk="2"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/firefly ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/firefly-iii/firefly-iii/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 Apache2"
systemctl stop apache2
msg_ok "Stopped Apache2"
msg_info "Updating ${APP} to v${RELEASE}"
cp /opt/firefly/.env /opt/.env
cp -r /opt/firefly/storage /opt/storage
rm -rf /opt/firefly/*
cd /opt
wget -q "https://github.com/firefly-iii/firefly-iii/releases/download/v${RELEASE}/FireflyIII-v${RELEASE}.tar.gz"
tar -xzf FireflyIII-v${RELEASE}.tar.gz -C /opt/firefly --exclude='storage'
cd /opt/firefly
composer install --no-dev --no-interaction &>/dev/null
php artisan migrate --seed --force &>/dev/null
php artisan firefly:decrypt-all &>/dev/null
php artisan cache:clear &>/dev/null
php artisan view:clear &>/dev/null
php artisan firefly:upgrade-database &>/dev/null
php artisan firefly:laravel-passport-keys &>/dev/null
chown -R www-data:www-data /opt/firefly
chmod -R 775 /opt/firefly/storage
echo "${RELEASE}" >"/opt/${APP}_version.txt"
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Apache2"
systemctl start apache2
msg_ok "Started Apache2"
msg_info "Cleaning up"
rm -rf /opt/FireflyIII-v${RELEASE}.tar.gz
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

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: remz1337
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/FlareSolverr/FlareSolverr

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://flowiseai.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://forgejo.org/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Authors: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://frigate.video/

57
ct/ghost.sh Normal file
View File

@ -0,0 +1,57 @@
#!/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: fabrice1236
# 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"
var_ram="1024"
var_disk="5"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
msg_info "Updating ${APP} LXC"
if command -v ghost &> /dev/null; then
current_version=$(ghost version | grep 'Ghost-CLI version' | awk '{print $3}')
latest_version=$(npm show ghost-cli version)
if [ "$current_version" != "$latest_version" ]; then
msg_info "Updating ${APP} from version v${current_version} to v${latest_version}"
npm install -g ghost-cli@latest &> /dev/null
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 it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:2368${CL}"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: Rogue-King
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://about.gitea.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kristocopani
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/glanceapp/glance

52
ct/glpi.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: Nícolas Pastorello (opastorello)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# App Default Values
APP="GLPI"
var_tags="asset-management;foss"
var_cpu="2"
var_ram="2048"
var_disk="10"
var_os="debian"
var_version="12"
var_unprivileged="1"
# App Output & Base Settings
header_info "$APP"
base_settings
# Core
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/glpi ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_error "Ther is currently no automatic update function for ${APP}."
else
msg_ok "No update required. ${APP} is already at v${RELEASE}."
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/AlexxIT/go2rtc

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Forceu/Gokapi

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gotify.net/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://grafana.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://grocy.info/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/juanfont/headscale

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://heimdall.site/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.hivemq.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: MickLesk (Canbiz) & vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://hoarder.app/
@ -40,7 +40,10 @@ function update_script() {
msg_ok "Stopped Services"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
mv /opt/hoarder/.env /opt/.env
if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
mkdir -p /etc/hoarder
mv /opt/hoarder/.env /etc/hoarder/hoarder.env
fi
rm -rf /opt/hoarder
wget -q "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
@ -54,8 +57,7 @@ function update_script() {
export DATA_DIR=/opt/hoarder_data
cd /opt/hoarder/packages/db
pnpm migrate &>/dev/null
mv /opt/.env /opt/hoarder/.env
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /opt/hoarder/.env
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Starting Services"
@ -79,4 +81,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://homarr.dev/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.home-assistant.io/
@ -51,7 +51,9 @@ function update_script() {
echo -e "${GN}Updating to Stable Version${CL}"
BR=""
fi
if [[ "$PY" == "python3.11" ]]; then echo -e "⚠️ Home Assistant will soon require Python 3.12."; fi
if [[ "$PY" =~ ^python3\.(11|12)\.[0-9]+$ ]]; then
echo -e "⚠️ Home Assistant will soon require Python 3.13.x";
fi
msg_info "Stopping Home Assistant"
systemctl stop homeassistant

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.home-assistant.io/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck | Co-Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://homebox.software/en/
@ -40,8 +40,10 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt
rm -rf homebox_bak
rm -rf /tmp/homebox.tar.gz
mv homebox homebox_bak
wget -qO- https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz | tar -xzf - -C /opt
wget -qO /tmp/homebox.tar.gz https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz
tar -xzf /tmp/homebox.tar.gz -C /opt
chmod +x /opt/homebox
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Homebox"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://homebridge.io/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://gethomepage.dev/
@ -50,14 +50,16 @@ function update_script() {
cp -r homepage-${RELEASE}/* /opt/homepage/
rm -rf homepage-${RELEASE}
cd /opt/homepage
npx update-browserslist-db@latest
pnpm install
pnpm build
npx --yes update-browserslist-db@latest >/dev/null 2>&1
pnpm install >/dev/null 2>&1
export NEXT_PUBLIC_VERSION="v$RELEASE"
export NEXT_PUBLIC_REVISION="source"
pnpm build >/dev/null 2>&1
systemctl start homepage
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Homepage to v${RELEASE}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
@ -69,4 +71,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/bastienwirtz/homer

View File

@ -1,13 +1,13 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.hyperhdr.eu/
# App Default Values
APP="HyperHDR"
var_tags="ambient lightning"
var_tags="ambient-lightning"
var_cpu="2"
var_ram="2048"
var_disk="4"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://hyperion-project.org/forum/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 tteck
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.influxdata.com/

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2024 community-scripts ORG
# Copyright (c) 2021-2025 community-scripts ORG
# Author: kristocopani
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.inspircd.org/

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