Compare commits

...

165 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
8d65b4624f Update CHANGELOG.md (#6890)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 00:13:16 +00:00
community-scripts-pr-app[bot]
4e17190721 Update versions.json (#6889)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-16 02:12:57 +02:00
community-scripts-pr-app[bot]
9337e2de3c Update CHANGELOG.md (#6888)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 21:24:24 +00:00
community-scripts-pr-app[bot]
c7a7ea763b Update CHANGELOG.md (#6887)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 21:18:28 +00:00
BEN YOUSSEF Hamza
ce71992dd6 Add missing default user & pass for RabbitMQ (#6883) 2025-08-15 23:18:01 +02:00
Slaviša Arežina
f68b80fe4a Update watchyourlan.sh (#6886) 2025-08-15 22:09:56 +02:00
community-scripts-pr-app[bot]
79adb4ef9b Update CHANGELOG.md (#6881)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 12:42:29 +00:00
Chris
8dda5ac31f Immich: pin Vectorchord release; adjust extension update commands (#6878) 2025-08-15 14:42:08 +02:00
community-scripts-pr-app[bot]
7d901bc594 Update versions.json (#6879)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 14:05:10 +02:00
community-scripts-pr-app[bot]
b6dce8cff1 Update CHANGELOG.md (#6876)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 10:57:39 +00:00
community-scripts-pr-app[bot]
1b43202a79 Update CHANGELOG.md (#6875)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 10:57:26 +00:00
Slaviša Arežina
66687c0d21 Refactor: WatchYourLAN (#6871)
* Refactor

* Update
2025-08-15 12:57:16 +02:00
community-scripts-pr-app[bot]
39b9cfcffc Update CHANGELOG.md (#6874)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 10:57:07 +00:00
Slaviša Arežina
24f4d2f488 Refactor (#6872) 2025-08-15 12:57:00 +02:00
Slaviša Arežina
ee74400626 Refactor (#6869) 2025-08-15 12:56:46 +02:00
Slaviša Arežina
032709e107 Update zitadel-install.sh (#6867) 2025-08-15 09:07:01 +02:00
community-scripts-pr-app[bot]
65d60fbf1e Update CHANGELOG.md (#6868)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 06:42:28 +00:00
Chris
c7b80448dc Immich v1.138.0 (#6813) 2025-08-15 08:42:01 +02:00
community-scripts-pr-app[bot]
d7a60f6027 Update CHANGELOG.md (#6866)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 00:14:39 +00:00
community-scripts-pr-app[bot]
241ae98c0b Update versions.json (#6865)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 02:14:16 +02:00
community-scripts-pr-app[bot]
63f24a8e61 Update CHANGELOG.md (#6862)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 21:46:40 +00:00
Chris
1cb87c4087 Immich: hotfix (#6861) 2025-08-14 23:43:58 +02:00
community-scripts-pr-app[bot]
5c22f9775e Update CHANGELOG.md (#6860)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 21:41:58 +00:00
Chris
a403da9f47 Pulse: v4.3.2+ (#6859)
- please send help
2025-08-14 23:41:36 +02:00
community-scripts-pr-app[bot]
4ce7335482 Update CHANGELOG.md (#6858)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 20:54:09 +00:00
Slaviša Arežina
bc52b1a7d7 Refactor: Zitadel (#6826) 2025-08-14 22:53:45 +02:00
community-scripts-pr-app[bot]
1c5ff8b26a Update CHANGELOG.md (#6857)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 20:52:04 +00:00
Slaviša Arežina
967b2a313f Refactor: WordPress (#6837)
* Refactor

* Update wordpress-install.sh

* Update wordpress-install.sh
2025-08-14 22:51:44 +02:00
Slaviša Arežina
50410acf8d Refactor: WireGuard (#6839)
* Refactor

* Make WGDashboard optional
2025-08-14 22:51:31 +02:00
community-scripts-pr-app[bot]
ab07afb7bd Update CHANGELOG.md (#6855)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 20:01:41 +00:00
Luis Palacios Derqui
eee083c7e0 ProxmoxVE svg logo (#6846) 2025-08-14 22:01:20 +02:00
community-scripts-pr-app[bot]
31ef36d744 Update CHANGELOG.md (#6854)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 19:36:49 +00:00
steadfasterX
13afa93ddf rustdeskserver: fix API version file (#6847) 2025-08-14 21:36:27 +02:00
community-scripts-pr-app[bot]
7c631eec00 Update CHANGELOG.md (#6853)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 19:07:04 +00:00
Slaviša Arežina
82d1a872c7 Refactor (#6832) 2025-08-14 21:06:44 +02:00
community-scripts-pr-app[bot]
0c23782485 Update CHANGELOG.md (#6852)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 19:06:12 +00:00
Slaviša Arežina
ef7c774a24 Refactor (#6829) 2025-08-14 21:05:44 +02:00
Michel Roegl-Brunner
c12ec76181 jenkins.json update (#6824) 2025-08-14 21:03:58 +02:00
community-scripts-pr-app[bot]
a805e40b04 Update CHANGELOG.md (#6851)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 18:20:45 +00:00
Chris
727b713893 Immich: quickfix #6836 (#6848) 2025-08-14 20:20:21 +02:00
community-scripts-pr-app[bot]
5cedb8469e Update CHANGELOG.md (#6845)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 16:01:29 +00:00
Slaviša Arežina
c612a4daa8 Refactor: WikiJS (#6840)
* Refactor

* Update docs URL
2025-08-14 18:01:06 +02:00
community-scripts-pr-app[bot]
87b7166924 Update CHANGELOG.md (#6842)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 15:12:51 +00:00
elvito
9b9faf7a53 Bugfix Searxng Redis replaced with Valkey in installscript (#6831) 2025-08-14 17:12:28 +02:00
community-scripts-pr-app[bot]
51a1d3c0ef Update CHANGELOG.md (#6835)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 12:15:52 +00:00
community-scripts-pr-app[bot]
8b1c2d6e68 Update CHANGELOG.md (#6834)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 12:15:35 +00:00
Slaviša Arežina
21c2ef2915 Refactor (#6822) 2025-08-14 14:15:24 +02:00
Slaviša Arežina
6796e609d0 Refactor (#6823) 2025-08-14 14:15:12 +02:00
Slaviša Arežina
723ac08abb Update (#6825) 2025-08-14 14:14:59 +02:00
community-scripts-pr-app[bot]
35c4c363a0 Update versions.json (#6830)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 14:06:10 +02:00
community-scripts-pr-app[bot]
32f99aee54 Update CHANGELOG.md (#6827)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 11:37:14 +00:00
Slaviša Arežina
1803ea0323 Refactor (#6820) 2025-08-14 13:36:50 +02:00
community-scripts-pr-app[bot]
fcf14a93c2 Update CHANGELOG.md (#6816)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 00:15:01 +00:00
community-scripts-pr-app[bot]
549e1ee01e Update versions.json (#6815)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-14 02:14:37 +02:00
community-scripts-pr-app[bot]
c4b7966303 Update CHANGELOG.md (#6811)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 21:17:21 +00:00
community-scripts-pr-app[bot]
2ed4d91f3c Update CHANGELOG.md (#6810)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 21:17:09 +00:00
CanbiZ
6a5685505a emby: fix update output (#6791) 2025-08-13 23:16:56 +02:00
CanbiZ
7cc1eaa259 archivebox: fix wrong formatted uv command (#6794) 2025-08-13 23:16:49 +02:00
community-scripts-pr-app[bot]
0db53c98e0 Update CHANGELOG.md (#6809)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 19:00:56 +00:00
community-scripts-pr-app[bot]
0faf32c4d0 Update CHANGELOG.md (#6808)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 19:00:17 +00:00
Slaviša Arežina
5c564b4bd1 Update (#6803) 2025-08-13 21:00:08 +02:00
Slaviša Arežina
5b81fc1aaa Fixed install and update functions (#6806) 2025-08-13 20:59:56 +02:00
Slaviša Arežina
047c7fe53c AgentDVR: Added update function (#6804)
* Update

* Update json
2025-08-13 20:59:43 +02:00
community-scripts-pr-app[bot]
c759269f0a Update CHANGELOG.md (#6801)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 14:58:17 +00:00
Chris
7540314f53 Palmr: fix release version parsing (#6800)
- increase RAM resources
2025-08-13 16:57:48 +02:00
community-scripts-pr-app[bot]
8d73af0106 Update CHANGELOG.md (#6798)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 13:12:09 +00:00
CanbiZ
f1cdef1f9b myspeed: fix update process if no data exist (#6795) 2025-08-13 15:11:41 +02:00
community-scripts-pr-app[bot]
79f3662636 Update CHANGELOG.md (#6797)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 13:11:26 +00:00
CanbiZ
c43e5318ae crafty-controller: fix update output (#6793) 2025-08-13 15:11:05 +02:00
community-scripts-pr-app[bot]
7e32903f10 Update CHANGELOG.md (#6796)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 12:29:18 +00:00
Slaviša Arežina
ba5c318276 GLPI: Fix timezone command (#6783)
* FIx timezone command

* Update glpi-install.sh
2025-08-13 14:28:50 +02:00
community-scripts-pr-app[bot]
634fcb5abb Update versions.json (#6790)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 14:05:34 +02:00
community-scripts-pr-app[bot]
5d29a4f11c Update CHANGELOG.md (#6779)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 00:14:52 +00:00
community-scripts-pr-app[bot]
cf62139e07 Update versions.json (#6778)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-13 02:14:25 +02:00
community-scripts-pr-app[bot]
716f1f05ec Update CHANGELOG.md (#6777)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 19:09:50 +00:00
Chris
47d773d088 Pulse: binary path changed AGAIN; other fixes (#6770)
- Pretty much reverts the path change from yesterday
- Checks for and removes the /opt/pulse/bin and
/opt/pulse/frontend-modern dirs if they exist
- Disables shell access for pulse user for better security
2025-08-12 21:09:25 +02:00
community-scripts-pr-app[bot]
f9eb0cfa40 Update CHANGELOG.md (#6776)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 19:00:07 +00:00
GaminnLinux
2b164f8281 fix alpine syncthing config not being created (#6773) 2025-08-12 20:59:42 +02:00
community-scripts-pr-app[bot]
6937ca1c67 Update versions.json (#6766)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 14:06:23 +02:00
community-scripts-pr-app[bot]
af6c1ae680 Update CHANGELOG.md (#6764)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 09:38:50 +00:00
Maximilian Bosche
75335f3362 change owner of hortusfox folder (#6763) 2025-08-12 11:38:24 +02:00
community-scripts-pr-app[bot]
d0dfe1f3a6 Update CHANGELOG.md (#6759)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 00:16:16 +00:00
community-scripts-pr-app[bot]
0ebc6b94ab Update versions.json (#6758)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-12 02:15:56 +02:00
community-scripts-pr-app[bot]
bf110c1814 Update versions.json (#6752)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-11 14:06:05 +02:00
community-scripts-pr-app[bot]
0d7de4f292 Update CHANGELOG.md (#6751)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-11 11:23:53 +00:00
Chris
f7ca7b28df Reactive Resume: use new release parsing; other fixes (#6744) 2025-08-11 13:23:29 +02:00
community-scripts-pr-app[bot]
27b79a23b6 Update CHANGELOG.md (#6750)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-11 00:15:58 +00:00
community-scripts-pr-app[bot]
49fbe38981 Update versions.json (#6749)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-11 02:15:35 +02:00
Chris
0cd7985f8a Pulse: update config path in JSON (#6743) 2025-08-10 23:20:57 +02:00
community-scripts-pr-app[bot]
428fae66c3 Update CHANGELOG.md (#6741)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-10 17:43:14 +00:00
Chris
18c57600c6 Pulse: fix binary path (#6740)
- recent updates have changed the path
2025-08-10 19:42:47 +02:00
community-scripts-pr-app[bot]
68d2d3c52c Update versions.json (#6737)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-10 14:05:15 +02:00
community-scripts-pr-app[bot]
76f9232c3a Update CHANGELOG.md (#6735)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-10 11:38:12 +00:00
Florian Kefferpütz
4258d44a7d Fix/thinpool detection as it allows to delete active thinpool with different name than "data" (#6730)
* Fix: exclude all thin-pools dynamically instead of only 'data'

* Fix: dynamically exclude all thin pools (not just 'data') from orphan check

* Fix: dynamically exclude all thin pools (not just 'data') from orphan check
2025-08-10 13:37:49 +02:00
community-scripts-pr-app[bot]
c60f04e229 Update CHANGELOG.md (#6732)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-10 07:58:30 +00:00
Chris
6b93869e52 Karakeep: chromium fix (#6729)
- also removed unneeded dependency git
2025-08-10 09:58:11 +02:00
community-scripts-pr-app[bot]
c3cfdc1efa Update CHANGELOG.md (#6726)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-10 00:16:24 +00:00
community-scripts-pr-app[bot]
33678fde1b Update versions.json (#6725)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-10 02:16:04 +02:00
community-scripts-pr-app[bot]
3dfdfeb2fa Update CHANGELOG.md (#6721)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 20:58:22 +00:00
CanbiZ
305d3603ef Paperless-AI: increase HDD Space to 20G (#6716)
* Paperless-AI: increase HDD Space to 20G

* Paperless-AI: increase HDD Space to 20G
2025-08-09 22:57:59 +02:00
community-scripts-pr-app[bot]
00138323b9 Update CHANGELOG.md (#6713)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 13:10:03 +00:00
Tobias
1d50632019 vaultwarden: increase disk space (#6712)
* vaultwarden: fix: disk

* vaultwarden: fix: frontent hdd display
2025-08-09 15:09:44 +02:00
community-scripts-pr-app[bot]
8883ba6b60 Update versions.json (#6711)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 14:05:13 +02:00
community-scripts-pr-app[bot]
7b06f611ad Update CHANGELOG.md (#6708)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 08:19:11 +00:00
community-scripts-pr-app[bot]
412919670c Update CHANGELOG.md (#6707)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 08:18:46 +00:00
Xerovoxx98
77ac07efd7 Fix: Bazarr requirements.txt file not parse-able by UV (#6701) 2025-08-09 10:18:36 +02:00
Thomas
55def0d441 Improve backup of adventurelog folder (#6653) 2025-08-09 10:18:23 +02:00
community-scripts-pr-app[bot]
70a01abbd8 Update CHANGELOG.md (#6706)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 08:04:14 +00:00
CanbiZ
d5b0209453 Refactor: Tianji (#6662) 2025-08-09 10:03:56 +02:00
community-scripts-pr-app[bot]
755da8bdc3 Update CHANGELOG.md (#6705)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 08:03:21 +00:00
Slaviša Arežina
9228cd06e3 Fixes (#6702) 2025-08-09 10:03:01 +02:00
Slaviša Arežina
49579e8558 Update docmost.json (#6703) 2025-08-09 10:02:38 +02:00
community-scripts-pr-app[bot]
030a977209 Update CHANGELOG.md (#6696)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 00:13:20 +00:00
community-scripts-pr-app[bot]
b8176dc7b3 Update versions.json (#6695)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-09 02:12:58 +02:00
community-scripts-pr-app[bot]
cd0625cba6 Update CHANGELOG.md (#6692)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 20:53:23 +00:00
community-scripts-pr-app[bot]
73e131ecf8 Update CHANGELOG.md (#6691)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 20:38:26 +00:00
CanbiZ
a0d6082b95 Refactor: Bazarr (#6663) 2025-08-08 22:38:07 +02:00
community-scripts-pr-app[bot]
70ccaf6835 Update CHANGELOG.md (#6690)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 20:36:34 +00:00
CanbiZ
05b58decc2 Refactor: Kometa (#6673)
* Remove: HomeAssistant-Core [deprecated]

* Refactor: Kometa

* sometimes git sucks
2025-08-08 22:36:05 +02:00
community-scripts-pr-app[bot]
ff1b7cc81d Update .app files (#6687) 2025-08-08 22:35:39 +02:00
community-scripts-pr-app[bot]
a2bbc2174a Update CHANGELOG.md (#6689)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 20:35:18 +00:00
Slaviša Arežina
a8a44a4d51 Update unifi-install.sh (#6680) 2025-08-08 22:34:58 +02:00
community-scripts-pr-app[bot]
ed620e8258 Update CHANGELOG.md (#6688)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 20:34:53 +00:00
Slaviša Arežina
1fc667088c Update homebox.sh (#6677) 2025-08-08 22:34:29 +02:00
CanbiZ
d89055a5cd Remove: HomeAssistant-Core [deprecated] (#6671) 2025-08-08 22:34:03 +02:00
community-scripts-pr-app[bot]
4ecd019e15 Update CHANGELOG.md (#6685)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 19:20:51 +00:00
community-scripts-pr-app[bot]
e3a31aa47e Update CHANGELOG.md (#6684)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 19:20:41 +00:00
CanbiZ
ed936528d2 Refactor: ArchiveBox (#6670) 2025-08-08 21:20:24 +02:00
community-scripts-pr-app[bot]
6f24de7d63 Update CHANGELOG.md (#6683)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 19:20:15 +00:00
Chris
54de40ed53 Immich: unpin libvips revision (#6669) 2025-08-08 21:19:57 +02:00
community-scripts-pr-app[bot]
872cd289ff Update CHANGELOG.md (#6682)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 19:19:49 +00:00
CanbiZ
9c37ac385c Meilisearch: fix wrong path switch (#6668) 2025-08-08 21:19:27 +02:00
CanbiZ
575ad61c93 website: mark docker as updatable (#6664) 2025-08-08 21:18:51 +02:00
community-scripts-pr-app[bot]
1773cc5507 Update CHANGELOG.md (#6681)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 17:39:30 +00:00
Maciej Kobus
11b19fdeab Allow 9.x PVE version in add-iptag.sh (#6679) 2025-08-08 19:39:10 +02:00
community-scripts-pr-app[bot]
5e6081fbea Update CHANGELOG.md (#6676)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 13:42:35 +00:00
Slaviša Arežina
e2a310dd3a Refactor: Alpine IT-Tools (#6579)
* Refactor

* Update

* Update deps
2025-08-08 15:42:09 +02:00
community-scripts-pr-app[bot]
d934d1b51b Update versions.json (#6672)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 14:05:43 +02:00
community-scripts-pr-app[bot]
6e3c08142d Update CHANGELOG.md (#6665)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 09:38:01 +00:00
CanbiZ
a41497f90a Refactor: FSTrim (Filesystem Trim) (#6660) 2025-08-08 11:37:36 +02:00
community-scripts-pr-app[bot]
c54025f8de Update CHANGELOG.md (#6659)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 08:28:30 +00:00
CanbiZ
a1eb53841d MariaDB: fix "feedback" whiptail (#6657) 2025-08-08 10:28:05 +02:00
community-scripts-pr-app[bot]
6c4c3ffa39 Update CHANGELOG.md (#6656)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 06:23:54 +00:00
community-scripts-pr-app[bot]
78f695f397 Update date in json (#6655)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-08-08 06:23:34 +00:00
push-app-to-main[bot]
4b0d24ed2e Palmr (#6642)
* 'Add new script'

* Update palmr.sh

* Update palmr-install.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-08-08 08:23:14 +02:00
community-scripts-pr-app[bot]
705d66e7c6 Update CHANGELOG.md (#6654)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 06:13:49 +00:00
push-app-to-main[bot]
c4703527dc HortusFox (#6641)
* 'Add new script'

* increase ressources

* verbose

* inprove json

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-08-08 08:13:24 +02:00
community-scripts-pr-app[bot]
9b607c60b4 Update CHANGELOG.md (#6652)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 05:17:21 +00:00
Chris
4717852019 Karakeep: workaround/fix for #6593 (#6648) 2025-08-08 07:17:03 +02:00
community-scripts-pr-app[bot]
ab9c57ccf9 Update CHANGELOG.md (#6650)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 00:13:55 +00:00
community-scripts-pr-app[bot]
dce77d12c7 Update versions.json (#6649)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-08 02:13:35 +02:00
CanbiZ
1f35b649cc qf 2025-08-07 19:41:59 +02:00
community-scripts-pr-app[bot]
5938a9aceb Update CHANGELOG.md (#6645)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-07 17:39:10 +00:00
CanbiZ
3b76211c12 Tandoor v2 (#6635) 2025-08-07 19:38:49 +02:00
community-scripts-pr-app[bot]
7221a0759d Update CHANGELOG.md (#6644)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-07 17:35:42 +00:00
CanbiZ
a750932b3a Refactor: Post-PVE-Script (PVe9 Support) (#6626) 2025-08-07 19:35:19 +02:00
community-scripts-pr-app[bot]
a4de1efae8 Update versions.json (#6640)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-07 14:06:04 +02:00
community-scripts-pr-app[bot]
f7570cb40c Update CHANGELOG.md (#6639)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-07 11:36:21 +00:00
Slaviša Arežina
10471b88aa Refactor: Paymenter (#6589)
* Refactor

* Update paymenter.sh

* Update paymenter-install.sh
2025-08-07 13:36:01 +02:00
community-scripts-pr-app[bot]
04a83cce10 Update CHANGELOG.md (#6638)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-07 11:35:26 +00:00
CanbiZ
f9e26f4f7c Commafeed: Fix Backup Handling while Update (#6629)
* Commafeed: Fix Backup Handling while Update

* Update commafeed.sh
2025-08-07 13:35:05 +02:00
community-scripts-pr-app[bot]
ed6baa1158 Update CHANGELOG.md (#6637)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-07 11:35:01 +00:00
CanbiZ
a7cc93af09 Feature: Clean-LXC support now alpine (#6628) 2025-08-07 13:34:40 +02:00
community-scripts-pr-app[bot]
a494ed5872 Update CHANGELOG.md (#6636)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-07 11:34:18 +00:00
Slaviša Arežina
ede517a560 Fix release fetching (#6632) 2025-08-07 13:33:56 +02:00
109 changed files with 2464 additions and 1690 deletions

View File

@@ -10,8 +10,174 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2025-08-16
## 2025-08-15
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Immich: pin Vectorchord release; adjust extension update commands [@vhsdream](https://github.com/vhsdream) ([#6878](https://github.com/community-scripts/ProxmoxVE/pull/6878))
- #### ✨ New Features
- Bump Immich to v1.138.0 [@vhsdream](https://github.com/vhsdream) ([#6813](https://github.com/community-scripts/ProxmoxVE/pull/6813))
- #### 🔧 Refactor
- Refactor: Wavelog [@tremor021](https://github.com/tremor021) ([#6869](https://github.com/community-scripts/ProxmoxVE/pull/6869))
- Refactor: WatchYourLAN [@tremor021](https://github.com/tremor021) ([#6871](https://github.com/community-scripts/ProxmoxVE/pull/6871))
- Refactor: Watcharr [@tremor021](https://github.com/tremor021) ([#6872](https://github.com/community-scripts/ProxmoxVE/pull/6872))
### 🌐 Website
- #### 📝 Script Information
- Add missing default user & pass for RabbitMQ [@hbenyoussef](https://github.com/hbenyoussef) ([#6883](https://github.com/community-scripts/ProxmoxVE/pull/6883))
## 2025-08-14
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Bugfix Searxng Redis replaced with Valkey in installscript [@elvito](https://github.com/elvito) ([#6831](https://github.com/community-scripts/ProxmoxVE/pull/6831))
- Spoolman: Use environment variables to control host and port [@tremor021](https://github.com/tremor021) ([#6825](https://github.com/community-scripts/ProxmoxVE/pull/6825))
- Pulse: v4.3.2+ [@vhsdream](https://github.com/vhsdream) ([#6859](https://github.com/community-scripts/ProxmoxVE/pull/6859))
- rustdeskserver: fix API version file [@steadfasterX](https://github.com/steadfasterX) ([#6847](https://github.com/community-scripts/ProxmoxVE/pull/6847))
- Immich: quickfix #6836 [@vhsdream](https://github.com/vhsdream) ([#6848](https://github.com/community-scripts/ProxmoxVE/pull/6848))
- #### 🔧 Refactor
- Refactor: WikiJS [@tremor021](https://github.com/tremor021) ([#6840](https://github.com/community-scripts/ProxmoxVE/pull/6840))
- Refactor: Zoraxy [@tremor021](https://github.com/tremor021) ([#6823](https://github.com/community-scripts/ProxmoxVE/pull/6823))
- Refactor: Zitadel [@tremor021](https://github.com/tremor021) ([#6826](https://github.com/community-scripts/ProxmoxVE/pull/6826))
- Refactor: WordPress [@tremor021](https://github.com/tremor021) ([#6837](https://github.com/community-scripts/ProxmoxVE/pull/6837))
- Refactor: WireGuard [@tremor021](https://github.com/tremor021) ([#6839](https://github.com/community-scripts/ProxmoxVE/pull/6839))
- Refactor: yt-dlp-webui [@tremor021](https://github.com/tremor021) ([#6832](https://github.com/community-scripts/ProxmoxVE/pull/6832))
- Refactor: Zipline [@tremor021](https://github.com/tremor021) ([#6829](https://github.com/community-scripts/ProxmoxVE/pull/6829))
- Refactor: Zot-Registry [@tremor021](https://github.com/tremor021) ([#6822](https://github.com/community-scripts/ProxmoxVE/pull/6822))
- Refactor: Zwave-JS-UI [@tremor021](https://github.com/tremor021) ([#6820](https://github.com/community-scripts/ProxmoxVE/pull/6820))
### 🧰 Maintenance
- #### 📂 Github
- ProxmoxVE svg logo [@LuisPalacios](https://github.com/LuisPalacios) ([#6846](https://github.com/community-scripts/ProxmoxVE/pull/6846))
## 2025-08-13
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- emby: fix update output [@MickLesk](https://github.com/MickLesk) ([#6791](https://github.com/community-scripts/ProxmoxVE/pull/6791))
- archivebox: fix wrong formatted uv command [@MickLesk](https://github.com/MickLesk) ([#6794](https://github.com/community-scripts/ProxmoxVE/pull/6794))
- Outline: Fixes for install and update procedures [@tremor021](https://github.com/tremor021) ([#6806](https://github.com/community-scripts/ProxmoxVE/pull/6806))
- Palmr: fix release version parsing // increase RAM [@vhsdream](https://github.com/vhsdream) ([#6800](https://github.com/community-scripts/ProxmoxVE/pull/6800))
- myspeed: fix update process if no data exist [@MickLesk](https://github.com/MickLesk) ([#6795](https://github.com/community-scripts/ProxmoxVE/pull/6795))
- crafty-controller: fix update output [@MickLesk](https://github.com/MickLesk) ([#6793](https://github.com/community-scripts/ProxmoxVE/pull/6793))
- GLPI: Fix timezone command [@tremor021](https://github.com/tremor021) ([#6783](https://github.com/community-scripts/ProxmoxVE/pull/6783))
- #### ✨ New Features
- Docker LXC: Add Portainer info [@tremor021](https://github.com/tremor021) ([#6803](https://github.com/community-scripts/ProxmoxVE/pull/6803))
- AgentDVR: Added update function [@tremor021](https://github.com/tremor021) ([#6804](https://github.com/community-scripts/ProxmoxVE/pull/6804))
## 2025-08-12
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Pulse: binary path changed AGAIN; other fixes [@vhsdream](https://github.com/vhsdream) ([#6770](https://github.com/community-scripts/ProxmoxVE/pull/6770))
- fix alpine syncthing config not being created [@GamerHun1238](https://github.com/GamerHun1238) ([#6773](https://github.com/community-scripts/ProxmoxVE/pull/6773))
- change owner of hortusfox directory [@snow2k9](https://github.com/snow2k9) ([#6763](https://github.com/community-scripts/ProxmoxVE/pull/6763))
## 2025-08-11
### 🚀 Updated Scripts
- Reactive Resume: use new release parsing; other fixes [@vhsdream](https://github.com/vhsdream) ([#6744](https://github.com/community-scripts/ProxmoxVE/pull/6744))
## 2025-08-10
### 🚀 Updated Scripts
- Fix/thinpool detection as it allows to delete active thinpool with different name than "data" [@onethree7](https://github.com/onethree7) ([#6730](https://github.com/community-scripts/ProxmoxVE/pull/6730))
- #### 🐞 Bug Fixes
- Pulse: fix binary path [@vhsdream](https://github.com/vhsdream) ([#6740](https://github.com/community-scripts/ProxmoxVE/pull/6740))
- Karakeep: chromium fix [@vhsdream](https://github.com/vhsdream) ([#6729](https://github.com/community-scripts/ProxmoxVE/pull/6729))
## 2025-08-09
### 🚀 Updated Scripts
- Paperless-AI: increase HDD Space to 20G [@MickLesk](https://github.com/MickLesk) ([#6716](https://github.com/community-scripts/ProxmoxVE/pull/6716))
- #### 🐞 Bug Fixes
- vaultwarden: increase disk space [@CrazyWolf13](https://github.com/CrazyWolf13) ([#6712](https://github.com/community-scripts/ProxmoxVE/pull/6712))
- Fix: Bazarr requirements.txt file not parse-able by UV [@Xerovoxx98](https://github.com/Xerovoxx98) ([#6701](https://github.com/community-scripts/ProxmoxVE/pull/6701))
- Improve backup of adventurelog folder [@ThomasDetemmerman](https://github.com/ThomasDetemmerman) ([#6653](https://github.com/community-scripts/ProxmoxVE/pull/6653))
- HomeBox: Fixes for update procedure [@tremor021](https://github.com/tremor021) ([#6702](https://github.com/community-scripts/ProxmoxVE/pull/6702))
- #### 🔧 Refactor
- Refactor: Tianji [@MickLesk](https://github.com/MickLesk) ([#6662](https://github.com/community-scripts/ProxmoxVE/pull/6662))
## 2025-08-08
### 🆕 New Scripts
- Palmr ([#6642](https://github.com/community-scripts/ProxmoxVE/pull/6642))
- HortusFox ([#6641](https://github.com/community-scripts/ProxmoxVE/pull/6641))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Unifi: Update libssl dependency [@tremor021](https://github.com/tremor021) ([#6680](https://github.com/community-scripts/ProxmoxVE/pull/6680))
- HomeBox: Fix checking for existing install [@tremor021](https://github.com/tremor021) ([#6677](https://github.com/community-scripts/ProxmoxVE/pull/6677))
- Immich: unpin libvips revision [@vhsdream](https://github.com/vhsdream) ([#6669](https://github.com/community-scripts/ProxmoxVE/pull/6669))
- Meilisearch: fix wrong path switch [@MickLesk](https://github.com/MickLesk) ([#6668](https://github.com/community-scripts/ProxmoxVE/pull/6668))
- MariaDB: fix "feedback" (statistical informations) whiptail [@MickLesk](https://github.com/MickLesk) ([#6657](https://github.com/community-scripts/ProxmoxVE/pull/6657))
- Karakeep: workaround/fix for #6593 [@vhsdream](https://github.com/vhsdream) ([#6648](https://github.com/community-scripts/ProxmoxVE/pull/6648))
- #### ✨ New Features
- Feature: FSTrim (Filesystem Trim) - Log / LVM Check / ZFS [@MickLesk](https://github.com/MickLesk) ([#6660](https://github.com/community-scripts/ProxmoxVE/pull/6660))
- IP Tag: Allow installation on PVE 9.x [@webhdx](https://github.com/webhdx) ([#6679](https://github.com/community-scripts/ProxmoxVE/pull/6679))
- #### 🔧 Refactor
- Refactor: Alpine IT-Tools [@tremor021](https://github.com/tremor021) ([#6579](https://github.com/community-scripts/ProxmoxVE/pull/6579))
- Refactor: ArchiveBox [@MickLesk](https://github.com/MickLesk) ([#6670](https://github.com/community-scripts/ProxmoxVE/pull/6670))
- Refactor: Bazarr [@MickLesk](https://github.com/MickLesk) ([#6663](https://github.com/community-scripts/ProxmoxVE/pull/6663))
- Refactor: Kometa [@MickLesk](https://github.com/MickLesk) ([#6673](https://github.com/community-scripts/ProxmoxVE/pull/6673))
## 2025-08-07
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Commafeed: Fix Backup Handling while Update [@MickLesk](https://github.com/MickLesk) ([#6629](https://github.com/community-scripts/ProxmoxVE/pull/6629))
- VictoriaMetrics: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6632](https://github.com/community-scripts/ProxmoxVE/pull/6632))
- #### ✨ New Features
- Feature: Post-PVE-Script (PVE9 Support + some Features) [@MickLesk](https://github.com/MickLesk) ([#6626](https://github.com/community-scripts/ProxmoxVE/pull/6626))
- Feature: Clean-LXC now supports Alpine based containers [@MickLesk](https://github.com/MickLesk) ([#6628](https://github.com/community-scripts/ProxmoxVE/pull/6628))
- #### 🔧 Refactor
- Refactor: Tandoor v2 [@MickLesk](https://github.com/MickLesk) ([#6635](https://github.com/community-scripts/ProxmoxVE/pull/6635))
- Refactor: Paymenter [@tremor021](https://github.com/tremor021) ([#6589](https://github.com/community-scripts/ProxmoxVE/pull/6589))
## 2025-08-06
### 🚀 Updated Scripts

View File

@@ -36,10 +36,7 @@ function update_script() {
msg_ok "Services Stopped"
msg_info "Backup Old Installation"
mkdir -p /opt/adventurelog-backup
cp /opt/adventurelog/backend/server/.env /opt/adventurelog-backup/backend/server/.env
cp -r /opt/adventurelog/backend/server/media /opt/adventurelog-backup/backend/server/media
cp /opt/adventurelog/frontend/.env /opt/adventurelog-backup/frontend/.env
cp -r /opt/adventurelog /opt/adventurelog-backup
msg_ok "Backup done"
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"

View File

@@ -27,7 +27,30 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
RELEASE=$(curl -fsSL "https://www.ispyconnect.com/api/Agent/DownloadLocation4?platform=Linux64&fromVersion=0" | grep -o 'https://.*\.zip')
if [[ "${RELEASE}" != "$(cat ~/.agentdvr 2>/dev/null)" ]] || [[ ! -f ~/.agentdvr ]]; then
msg_info "Stopping service"
systemctl stop AgentDVR
msg_ok "Service stopped"
msg_info "Updating $APP"
cd /opt/agentdvr/agent
curl -fsSL "$RELEASE" -o $(basename "$RELEASE")
$STD unzip -o Agent_Linux64*.zip
chmod +x ./Agent
echo $RELEASE > ~/.agentdvr
rm -rf Agent_Linux64*.zip
msg_ok "Updated $APP"
msg_info "Starting service"
systemctl start AgentDVR
msg_ok "Service started"
msg_ok "Updated $APP successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}

View File

@@ -27,16 +27,15 @@ function update_script() {
exit 1
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/CorentinTh/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then
DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip"
msg_info "Updating ${APP} LXC"
curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
mkdir -p /usr/share/nginx/html
rm -rf /usr/share/nginx/html/*
$STD unzip it-tools.zip -d /tmp/it-tools
cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
rm -rf /tmp/it-tools
$STD unzip it-tools.zip -d /tmp
cp -r /tmp/dist/* /usr/share/nginx/html
rm -rf /tmp/dist
rm -f it-tools.zip
msg_ok "Updated Successfully"
else

View File

@@ -20,29 +20,38 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/archivebox ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Stopping ${APP}"
systemctl stop archivebox
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP}"
cd /opt/archivebox/data
pip install --upgrade --ignore-installed archivebox
sudo -u archivebox archivebox init
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start archivebox
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/archivebox ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
NODE_VERSION="22" setup_nodejs
PYTHON_VERSION="3.13" setup_uv
msg_info "Stopping ArchiveBox"
systemctl stop archivebox
msg_ok "Stopped ArchiveBox"
msg_info "Upgrading Playwright"
$STD uv pip install playwright --system
$STD playwright install-deps chromium
msg_ok "Upgraded Playwright"
msg_info "Updating ArchiveBox"
cd /opt/archivebox/data
$STD uv pip install --system --upgrade --no-reinstall archivebox
sudo -u archivebox archivebox init
msg_ok "Updated ArchiveBox"
msg_info "Starting ArchiveBox"
systemctl start archivebox
msg_ok "Started ArchiveBox"
msg_ok "Updated Successfully"
exit
}
start
@@ -52,4 +61,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}:8000/admin/login${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"

View File

@@ -20,20 +20,37 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/bazarr/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
header_info
check_container_storage
check_container_resources
if [[ ! -d /var/lib/bazarr/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
}
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/morpheus65535/bazarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.bazarr 2>/dev/null)" ]] || [[ ! -f ~/.bazarr ]]; then
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
msg_info "Setup Bazarr"
mkdir -p /var/lib/bazarr/
chmod 775 /opt/bazarr /var/lib/bazarr/
sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
$STD uv pip install -r /opt/bazarr/requirements.txt --system
msg_ok "Setup Bazarr"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description
@@ -41,4 +58,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}:6767${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"

View File

@@ -40,16 +40,20 @@ function update_script() {
$STD apt-get install -y rsync
msg_ok "Installed Dependencies"
fi
if [ -d /opt/commafeed/data ] && [ "$(ls -A /opt/commafeed/data)" ]; then
msg_info "Backing up existing data"
mv /opt/commafeed/data /opt/data.bak
msg_ok "Backed up existing data"
fi
fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip"
msg_info "Updating ${APP} to ${RELEASE}"
if [ -d /opt/commafeed/data.bak ] && [ "$(ls -A /opt/commafeed/data.bak)" ]; then
mv /opt/commafeed/data.bak /opt/commafeed/data
if [ -d /opt/data.bak ] && [ "$(ls -A /opt/data.bak)" ]; then
msg_info "Restoring data"
mv /opt/data.bak /opt/commafeed/data
msg_ok "Restored data"
fi
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}"
systemctl start commafeed

View File

@@ -68,10 +68,10 @@ function update_script() {
msg_ok "Started Crafty-Controller"
msg_ok "Updated Successfully"
exit
else
msg_ok "No update required. Crafty-Controller is already at v${RELEASE}."
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start

View File

@@ -90,3 +90,5 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} If you installed Portainer, access it at the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:9443${CL}"

View File

@@ -41,8 +41,10 @@ function update_script() {
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
exit
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start

View File

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

6
ct/headers/hortusfox Normal file
View File

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

6
ct/headers/palmr Normal file
View File

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

View File

@@ -1,165 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.home-assistant.io/
APP="Home Assistant-Core"
var_tags="${var_tags:-automation;smarthome}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-10}"
var_os="${var_os:-ubuntu}"
var_version="${var_version:-24.10}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
if ! lsb_release -d | grep -q "Ubuntu 24.10"; then
msg_error "Wrong OS detected. This script only supports Ubuntu 24.10."
msg_error "Read Guide: https://github.com/community-scripts/ProxmoxVE/discussions/1549"
exit 1
fi
check_container_storage
check_container_resources
if [[ ! -d /srv/homeassistant ]]; then
msg_error "No ${APP} Installation Found!"
exit 1
fi
setup_uv
IP=$(hostname -I | awk '{print $1}')
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
"1" "Update Core" ON \
"2" "Install HACS" OFF \
"3" "Install FileBrowser" OFF \
3>&1 1>&2 2>&3)
if [ "$UPD" == "1" ]; then
if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SELECT BRANCH" --yesno "Use Beta Branch?" 10 58); then
clear
header_info
echo -e "${GN}Updating to Beta Version${CL}"
BR="--pre"
else
clear
header_info
echo -e "${GN}Updating to Stable Version${CL}"
BR=""
fi
msg_info "Stopping Home Assistant"
systemctl stop homeassistant
msg_ok "Stopped Home Assistant"
if [[ -d /srv/homeassistant/bin ]]; then
msg_info "Migrating to .venv-based structure"
$STD source /srv/homeassistant/bin/activate
PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
$STD deactivate
mv /srv/homeassistant "/srv/homeassistant_backup_$PY_VER"
mkdir -p /srv/homeassistant
cd /srv/homeassistant
$STD uv python install 3.13
UV_PYTHON=$(uv python list | awk '/3\.13\.[0-9]+.*\/root\/.local/ {print $2; exit}')
if [[ -z "$UV_PYTHON" ]]; then
msg_error "No local Python 3.13 found via uv"
exit 1
fi
$STD uv venv .venv --python "$UV_PYTHON"
$STD source .venv/bin/activate
$STD uv pip install homeassistant mysqlclient psycopg2-binary isal webrtcvad wheel
mkdir -p /root/.homeassistant
msg_ok "Migration complete"
else
source /srv/homeassistant/.venv/bin/activate
fi
msg_info "Updating Home Assistant"
$STD uv pip install $BR --upgrade homeassistant
msg_ok "Updated Home Assistant"
msg_info "Starting Home Assistant"
if [[ -f /etc/systemd/system/homeassistant.service ]] && grep -q "/srv/homeassistant/bin/python3" /etc/systemd/system/homeassistant.service; then
sed -i 's|ExecStart=/srv/homeassistant/bin/python3|ExecStart=/srv/homeassistant/.venv/bin/python3|' /etc/systemd/system/homeassistant.service
sed -i 's|PATH=/srv/homeassistant/bin|PATH=/srv/homeassistant/.venv/bin|' /etc/systemd/system/homeassistant.service
$STD systemctl daemon-reload
fi
systemctl start homeassistant
sleep 5
msg_ok "Started Home Assistant"
msg_ok "Update Successful"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
exit
fi
if [ "$UPD" == "2" ]; then
msg_info "Installing Home Assistant Community Store (HACS)"
$STD apt update
cd /root/.homeassistant
$STD bash <(curl -fsSL https://get.hacs.xyz)
msg_ok "Installed Home Assistant Community Store (HACS)"
echo -e "\n Reboot Home Assistant and clear browser cache then Add HACS integration.\n"
exit
fi
if [ "$UPD" == "3" ]; then
set +Eeuo pipefail
read -r -p "${TAB3}Would you like to use No Authentication? <y/N> " prompt
msg_info "Installing FileBrowser"
RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')
$STD curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
$STD filebrowser config init -a '0.0.0.0'
$STD filebrowser config set -a '0.0.0.0'
$STD filebrowser config set --auth.method=noauth
$STD filebrowser users add ID 1 --perm.admin
else
$STD filebrowser config init -a '0.0.0.0'
$STD filebrowser config set -a '0.0.0.0'
$STD filebrowser users add admin helper-scripts.com --perm.admin
fi
msg_ok "Installed FileBrowser"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/filebrowser.service
[Unit]
Description=Filebrowser
After=network-online.target
[Service]
User=root
WorkingDirectory=/root/
ExecStart=/usr/local/bin/filebrowser -r /root/.homeassistant
[Install]
WantedBy=default.target
EOF
systemctl enable --now -q filebrowser.service
msg_ok "Created Service"
msg_ok "Completed Successfully!\n"
echo -e "FileBrowser should be reachable by going to the following URL.
${BL}http://$IP:8080${CL} admin|helper-scripts.com\n"
exit
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}:8123${CL}"

View File

@@ -22,13 +22,14 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/homebox ]]; then
if [[ ! -f /etc/systemd/system/homebox.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if [[ -x /opt/homebox ]]; then
sed -i 's|/opt\b|/opt/homebox|g' /etc/systemd/system/homebox.service
sed -i 's|^ExecStart=/opt/homebox$|ExecStart=/opt/homebox/homebox|' /etc/systemd/system/homebox.service
systemctl daemon-reload
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
@@ -37,9 +38,11 @@ function update_script() {
systemctl stop homebox
msg_ok "${APP} Stopped"
[ -x /opt/homebox ] && rm -f /opt/homebox
fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_x86_64.tar.gz"
chmod +x /opt/homebox/homebox
[ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
[ -d /opt/.data ] && mv /opt/.data /opt/homebox/.data
msg_info "Starting ${APP}"
systemctl start homebox

74
ct/hortusfox.sh Normal file
View File

@@ -0,0 +1,74 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/danielbrendel/hortusfox-web
APP="HortusFox"
var_tags="${var_tags:-plants}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-5}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/hortusfox ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/danielbrendel/hortusfox-web/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ ! -f ~/.hortusfox ]] || [[ "${RELEASE}" != "$(cat ~/.hortusfox)" ]]; then
msg_info "Stopping Service"
systemctl stop apache2
msg_ok "Stopped Service"
msg_info "Backing up current HortusFox installation"
cd /opt
mv /opt/hortusfox/ /opt/hortusfox-backup
msg_ok "Backed up current HortusFox installation"
fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web"
msg_info "Updating HortusFox"
cd /opt/hortusfox
mv /opt/hortusfox-backup/.env /opt/hortusfox/.env
$STD composer install --no-dev --optimize-autoloader
$STD php asatru migrate --no-interaction
$STD php asatru plants:attributes
$STD php asatru calendar:classes
chown -R www-data:www-data /opt/hortusfox
msg_ok "Updated HortusFox"
msg_info "Starting Service"
systemctl start apache2
msg_ok "Started Service"
msg_info "Cleaning up"
rm -r /opt/hortusfox-backup
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@@ -58,7 +58,7 @@ function update_script() {
done
msg_ok "Image-processing libraries updated"
fi
RELEASE="1.137.3"
RELEASE="1.138.0"
#RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
msg_ok "No update required. ${APP} is already at v${RELEASE}"
@@ -74,7 +74,8 @@ function update_script() {
APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning"
GEO_DIR="${INSTALL_DIR}/geodata"
VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
VCHORD_RELEASE="0.4.3"
# VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
msg_info "Updating VectorChord"
@@ -91,7 +92,8 @@ function update_script() {
$STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
systemctl restart postgresql
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
$STD sudo -u postgres psql -d immich -c "REINDEX DATABASE;"
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX face_index;"
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
fi
echo "$VCHORD_RELEASE" >~/.vchord_version
rm ./vchord.deb
@@ -180,7 +182,10 @@ EOF
msg_ok "Updated Immich CLI"
chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt
if [[ ! -f ~/.debian_version.bak ]]; then
cp /etc/debian_version ~/.debian_version.bak
sed -i 's/.*/13.0/' /etc/debian_version
fi
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Cleaning up"
@@ -315,8 +320,7 @@ function compile_imagemagick() {
function compile_libvips() {
SOURCE=$SOURCE_DIR/libvips
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
if [[ "${update:-}" ]] || [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libvips"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi

View File

@@ -78,7 +78,7 @@ function update_script() {
cd /opt/karakeep/apps/cli
$STD pnpm install --frozen-lockfile
$STD pnpm build
DATA_DIR="$(sed -n '/^DATA_DIR/p' /etc/karakeep/karakeep.env | awk -F= '{print $2}')"
DATA_DIR="$(sed -n '/^DATA_DIR/p' /etc/karakeep/karakeep.env | awk -F= '{print $2}' | tr -d '="=')"
export DATA_DIR="${DATA_DIR:-/opt/karakeep_data}"
cd /opt/karakeep/packages/db
$STD pnpm migrate

View File

@@ -20,51 +20,46 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
header_info
check_container_storage
check_container_resources
if [[ ! -f "/opt/kometa/kometa.py" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/kometa_version.txt)" ]] || [[ ! -f /opt/kometa_version.txt ]]; then
msg_info "Updating $APP"
msg_info "Stopping $APP"
systemctl stop kometa
msg_ok "Stopped $APP"
msg_info "Updating $APP to ${RELEASE}"
cd /tmp
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/Kometa-Team/Kometa/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
tar -xzf "$temp_file"
cp /opt/kometa/config/config.yml /opt
rm -rf /opt/kometa
mv Kometa-${RELEASE} /opt/kometa
cd /opt/kometa
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
$STD pip install -r requirements.txt --ignore-installed
mkdir -p config/assets
cp /opt/config.yml config/config.yml
echo "${RELEASE}" >/opt/kometa_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting $APP"
systemctl start kometa
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -f $temp_file
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
if [[ ! -d "/opt/kometa" ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | jq -r '.tag_name | sub("^v";"")')
if [[ "${RELEASE}" != "$(cat ~/.kometa 2>/dev/null)" ]] || [[ ! -f ~/.kometa ]]; then
msg_info "Stopping Service"
systemctl stop kometa
msg_ok "Stopped Service"
msg_info "Backing up data"
cp /opt/kometa/config/config.yml /opt
msg_ok "Backup completed"
PYTHON_VERSION="3.12" setup_uv
$STD uv python update-shell
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa"
msg_info "Updating Kometa"
$STD uv pip install -r requirements.txt --system
mkdir -p config/assets
cp /opt/config.yml config/config.yml
msg_ok "Updated Kometa"
msg_info "Starting Service"
systemctl start kometa
msg_ok "Started Service"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
@@ -74,4 +69,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access the LXC at following IP address:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}${CL}"
echo -e "${TAB}${GATEWAY}${BGN}${IP}${CL}"

View File

@@ -24,10 +24,6 @@ function update_script() {
check_container_storage
check_container_resources
if [[ ! -d /opt/meilisearch ]]; then
msg_error "No Meilisearch Installation Found!"
exit
fi
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Meilisearch Update" --radiolist --cancel-button Exit-Script "Spacebar = Select" 10 58 2 \
"1" "Update Meilisearch" ON \
"2" "Update Meilisearch-UI" OFF \

View File

@@ -44,7 +44,10 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/myspeed
$STD npm install
cp -r /opt/myspeed_bak/data/* /opt/myspeed/data/
if [[ -d /opt/myspeed_bak/data ]]; then
mkdir -p /opt/myspeed/data/
cp -r /opt/myspeed_bak/data/* /opt/myspeed/data/
fi
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP} Service"

View File

@@ -42,11 +42,12 @@ function update_script() {
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/outline
mv /opt/.env /opt/outline
export NODE_ENV=development
export NODE_OPTIONS="--max-old-space-size=3584"
$STD yarn install --frozen-lockfile
export NODE_ENV=production
$STD yarn build
mv /opt/.env /opt/outline
msg_ok "Updated ${APP}"
msg_info "Starting Services"

79
ct/palmr.sh Normal file
View File

@@ -0,0 +1,79 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/kyantech/Palmr
APP="Palmr"
var_tags="${var_tags:-files}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-6144}"
var_disk="${var_disk:-6}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/palmr_data ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/kyantech/palmr/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
if [[ "${RELEASE}" != "$(cat ~/.palmr 2>/dev/null)" ]] || [[ ! -f ~/.palmr ]]; then
msg_info "Stopping Services"
systemctl stop palmr-frontend palmr-backend
msg_ok "Stopped Services"
cp /opt/palmr/apps/server/.env /opt/palmr.env
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)"
NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs
msg_info "Updating ${APP}"
cd /opt/palmr/apps/server
mv /opt/palmr.env /opt/palmr/apps/server/.env
$STD pnpm install
$STD pnpm dlx prisma generate
$STD pnpm dlx prisma migrate deploy
$STD pnpm dlx prisma db push
$STD pnpm build
cd /opt/palmr/apps/web
export NODE_ENV=production
export NEXT_TELEMETRY_DISABLED=1
mv ./.env.example ./.env
$STD pnpm install
$STD pnpm build
chown -R palmr:palmr /opt/palmr_data /opt/palmr
msg_ok "Updated $APP"
msg_info "Starting Services"
systemctl start palmr-backend palmr-frontend
msg_ok "Started Services"
msg_ok "Updated Successfully"
else
msg_ok "Already up to date"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@@ -9,7 +9,7 @@ APP="Paperless-AI"
var_tags="${var_tags:-ai;document}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-12}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"

View File

@@ -23,32 +23,25 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/paymenter ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
CURRENT_PHP=$(php -v 2>/dev/null | awk '/^PHP/{print $2}' | cut -d. -f1,2)
if [[ "$CURRENT_PHP" != "8.3" ]]; then
msg_info "Migrating PHP $CURRENT_PHP to 8.3"
$STD curl -fsSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update
$STD apt-get remove -y php"${CURRENT_PHP//./}"*
$STD apt-get install -y \
php8.3 \
php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,redis,fpm}
PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULE="common,mysql,fpm,redis" setup_php
setup_composer
sed -i 's|php8\.2-fpm\.sock|php8.3-fpm.sock|g' /etc/nginx/sites-available/paymenter.conf
$STD systemctl reload nginx
msg_ok "Migrated PHP $CURRENT_PHP to 8.3"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.paymenter ]] || [[ "${RELEASE}" != "$(cat ~/.paymenter)" ]]; then
msg_info "Updating ${APP} to ${RELEASE}"
echo "${RELEASE}" >/opt/${APP}_version.txt
cd /opt/paymenter
$STD php artisan p:upgrade --no-interaction
echo "${RELEASE}" >~/.paymenter
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: rcourtman
# Author: rcourtman & vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/rcourtman/Pulse
@@ -34,16 +34,30 @@ function update_script() {
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | jq -r '.tag_name' | sed 's/^v//')
SERVICE_PATH="/etc/systemd/system"
if [[ "${RELEASE}" != "$(cat ~/.pulse 2>/dev/null)" ]] || [[ ! -f ~/.pulse ]]; then
msg_info "Stopping ${APP}"
systemctl stop pulse
systemctl stop pulse*.service
msg_ok "Stopped ${APP}"
if [[ -f /opt/pulse/pulse ]]; then
rm -f /opt/pulse/pulse
fi
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
chown -R pulse:pulse /etc/pulse /opt/pulse
if [[ -f "$SERVICE_PATH"/pulse.service ]]; then
mv "$SERVICE_PATH"/pulse.service "$SERVICE_PATH"/pulse-backend.service
fi
sed -i -e 's|pulse/pulse|pulse/bin/pulse|' \
-e 's/^Environment="API.*$//' "$SERVICE_PATH"/pulse-backend.service
systemctl daemon-reload
if grep -q 'pulse-home:/bin/bash' /etc/passwd; then
usermod -s /usr/sbin/nologin pulse
fi
msg_info "Starting ${APP}"
systemctl start pulse
systemctl start pulse-backend
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"

View File

@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
APP="Reactive-Resume"
var_tags="${var_tags:-documents}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-3072}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
@@ -28,15 +28,16 @@ function update_script() {
msg_error "No $APP Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/lazy-media/Reactive-Resume/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
RELEASE=$(curl -fsSL https://api.github.com/repos/lazy-media/Reactive-Resume/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ ! -f "$HOME"/.reactive-resume ]] || [[ "$RELEASE" != "$(cat "$HOME"/.reactive-resume)" ]]; then
msg_info "Stopping services"
systemctl stop Reactive-Resume
msg_ok "Stopped services"
cp /opt/"$APP"/.env /opt/rxresume.env
rm -rf /opt/"$APP"
fetch_and_deploy_gh_release "Reactive-Resume" "lazy-media/Reactive-Resume"
fetch_and_deploy_gh_release "Reactive-Resume" "lazy-media/Reactive-Resume" "tarball" "latest" "/opt/Reactive-Resume"
msg_info "Updating $APP to v${RELEASE}"
cd /opt/"$APP"
export PUPPETEER_SKIP_DOWNLOAD="true"
@@ -84,9 +85,9 @@ function update_script() {
rm -f "$brwsr_tmp"
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
msg_ok "Updated Successfully"
else
msg_ok "No update required. $APP is already at v{$RELEASE}"
msg_ok "No update required. $APP is already at v${RELEASE}"
fi
exit
}

View File

@@ -34,7 +34,7 @@ function update_script() {
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
APIRELEASE=$(curl -fsSL https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/rustdesk_version.txt)" ]] || [[ "${APIRELEASE}" != "$(cat /opt/rustdesk-api.txt)" ]] || [[ ! -f /opt/rustdesk_version.txt ]] || [[ ! -f /opt/rustdesk-api.txt ]]; then
if [[ "${RELEASE}" != "$(cat /opt/rustdesk_version.txt)" ]] || [[ "${APIRELEASE}" != "$(cat /opt/rustdeskapi_version.txt)" ]] || [[ ! -f /opt/rustdesk_version.txt ]] || [[ ! -f /opt/rustdeskapi_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop rustdesk-hbbr
systemctl stop rustdesk-hbbs

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://tandoor.dev/
@@ -27,27 +27,57 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
#if ! [[ $(dpkg -s python3-xmlsec 2>/dev/null) ]]; then
#$STD apt-get update
#$STD apt-get install -y python3-xmlsec
#fi
#if cd /opt/tandoor && git pull | grep -q 'Already up to date'; then
msg_ok "There is currently no update available."
#else
#msg_info "Updating ${APP} (Patience)"
#export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
#cd /opt/tandoor/
#$STD pip3 install -r requirements.txt
#$STD /usr/bin/python3 /opt/tandoor/manage.py migrate
#$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic --no-input
#$STD /usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse
#cd /opt/tandoor/vue
#$STD yarn install
#$STD yarn build
#cd /opt/tandoor
#$STD python3 version.py
#systemctl restart gunicorn_tandoor
#msg_ok "Updated ${APP}"
if [[ ! -f ~/.tandoor ]]; then
msg_error "v1 Installation found, please export your data and create an new LXC."
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.tandoor 2>/dev/null)" ]] || [[ ! -f ~/.tandoor ]]; then
msg_info "Stopping $APP"
systemctl stop tandoor
msg_ok "Stopped $APP"
msg_info "Creating Backup"
mv /opt/tandoor /opt/tandoor.bak
msg_ok "Backup Created"
NODE_VERSION="20" NODE_MODULE="yarn" setup_nodejs
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"
msg_info "Updating $APP to ${RELEASE}"
cp -r /opt/tandoor.bak/{config,api,mediafiles,staticfiles} /opt/tandoor/
mv /opt/.env /opt/tandoor/.env
cd /opt/tandoor
$STD uv venv .venv --python=python3
$STD uv pip install -r requirements.txt --python .venv/bin/python
cd /opt/tandoor/vue3
$STD yarn install
$STD yarn build
TANDOOR_VERSION="$(curl -fsSL https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r .tag_name)"
cat <<EOF >/opt/tandoor/cookbook/version_info.py
TANDOOR_VERSION = "$TANDOOR_VERSION"
TANDOOR_REF = "bare-metal"
VERSION_INFO = []
EOF
cd /opt/tandoor
$STD /opt/tandoor/.venv/bin/python manage.py migrate
$STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting $APP"
systemctl start tandoor
systemctl reload nginx
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf /opt/tandoor.bak
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -29,33 +29,26 @@ function update_script() {
if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq
fi
if ! command -v node >/dev/null || [[ "$(/usr/bin/env node -v | grep -oP '^v\K[0-9]+')" != "22" ]]; then
msg_info "Installing Node.js 22"
$STD apt-get purge -y nodejs
rm -f /etc/apt/sources.list.d/nodesource.list
rm -f /etc/apt/keyrings/nodesource.gpg
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g pnpm@9.7.1
msg_ok "Node.js 22 installed"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP} Service"
systemctl stop tianji
msg_ok "Stopped ${APP} Service"
msg_info "Updating ${APP} to v${RELEASE}"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/msgbyte/tianji/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [[ "${RELEASE}" != "$(cat ~/.tianji 2>/dev/null)" ]] || [[ ! -f ~/.tianji ]]; then
setup_uv
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
msg_info "Stopping Service"
systemctl stop tianji
msg_ok "Stopped Service"
msg_info "Backing up data"
cp /opt/tianji/src/server/.env /opt/.env
mv /opt/tianji /opt/tianji_bak
curl -fsSL "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip")
$STD unzip v${RELEASE}.zip
mv tianji-${RELEASE} /opt/tianji
cd tianji
msg_ok "Backed up data"
fetch_and_deploy_gh_release "tianji" "msgbyte/tianji"
msg_info "Updating ${APP}"
cd /opt/tianji
export NODE_OPTIONS="--max_old_space_size=4096"
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
$STD pnpm build:static
@@ -66,15 +59,17 @@ function update_script() {
mv /opt/.env /opt/tianji/src/server/.env
cd src/server
$STD pnpm db:migrate:apply
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_ok "Updated ${APP}"
msg_info "Updating AppRise"
$STD uv pip install apprise cryptography --system
msg_ok "Updated AppRise"
msg_info "Starting ${APP}"
systemctl start tianji
msg_ok "Started ${APP}"
msg_info "Cleaning up"
rm -R /opt/v${RELEASE}.zip
rm -rf /opt/tianji_bak
rm -rf /opt/tianji/src/client
rm -rf /opt/tianji/website

View File

@@ -9,7 +9,7 @@ APP="Vaultwarden"
var_tags="${var_tags:-password-manager}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-6144}"
var_disk="${var_disk:-6}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"

View File

@@ -35,8 +35,15 @@ function update_script() {
[[ -f /etc/systemd/system/victoriametrics-logs.service ]] && systemctl stop victoriametrics-logs
msg_ok "Stopped $APP"
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "victoria-metrics-linux-amd64-v+([0-9.]).tar.gz"
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "vmutils-linux-amd64-v+([0-9.]).tar.gz"
victoriametrics_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" |
jq -r '.assets[].name' |
grep -E '^victoria-metrics-linux-amd64-v[0-9.]+\.tar\.gz$')
vmutils_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" |
jq -r '.assets[].name' |
grep -E '^vmutils-linux-amd64-v[0-9.]+\.tar\.gz$')
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "$victoriametrics_filename"
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "$vmutils_filename"
if [[ -f /etc/systemd/system/victoriametrics-logs.service ]]; then
fetch_and_deploy_gh_release "victorialogs" "VictoriaMetrics/VictoriaLogs" "prebuild" "latest" "/opt/victoriametrics" "victoria-logs-linux-amd64*.tar.gz"

View File

@@ -27,22 +27,20 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/sbondCo/Watcharr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ "${RELEASE}" != "$(cat ~/.watcharr)" ]] || [[ ! -f ~/.watcharr ]]; then
msg_info "Updating $APP"
msg_info "Stopping $APP"
systemctl stop watcharr
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
temp_file=$(mktemp)
temp_folder=$(mktemp -d)
curl -fsSL "https://github.com/sbondCo/Watcharr/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
tar -xzf "$temp_file" -C "$temp_folder"
rm -f /opt/watcharr/server/watcharr
rm -rf /opt/watcharr/server/ui
cp -rf ${temp_folder}/Watcharr-${RELEASE}/* /opt/watcharr
fetch_and_deploy_gh_release "watcharr" "sbondCo/Watcharr" "tarball"
msg_info "Updating $APP to v${RELEASE}"
cd /opt/watcharr
export GOOS=linux
$STD npm i
@@ -57,12 +55,6 @@ function update_script() {
systemctl start watcharr
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -f ${temp_file}
rm -rf ${temp_folder}
msg_ok "Cleanup Completed"
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

@@ -27,17 +27,28 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP"
systemctl stop watchyourlan.service
cp -R /data/config.yaml config.yaml
RELEASE=$(curl -fsSL https://api.github.com/repos/aceberg/WatchYourLAN/releases/latest | grep -o '"tag_name": *"[^"]*"' | cut -d '"' -f 4)
curl -fsSL "https://github.com/aceberg/WatchYourLAN/releases/download/$RELEASE/watchyourlan_${RELEASE}_linux_amd64.deb" -o $(basename "https://github.com/aceberg/WatchYourLAN/releases/download/$RELEASE/watchyourlan_${RELEASE}_linux_amd64.deb")
dpkg -i watchyourlan_${RELEASE}_linux_amd64.deb
cp -R config.yaml /data/config.yaml
sed -i 's|/etc/watchyourlan/config.yaml|/data/config.yaml|' /lib/systemd/system/watchyourlan.service
rm watchyourlan_${RELEASE}_linux_amd64.deb config.yaml
systemctl enable -q --now watchyourlan
msg_ok "Updated $APP"
RELEASE=$(curl -fsSL https://api.github.com/repos/aceberg/WatchYourLAN/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping service"
systemctl stop watchyourlan.service
msg_ok "Service stopped"
cp -R /data/config.yaml ~/config.yaml
fetch_and_deploy_gh_release "watchyourlan" "aceberg/WatchYourLAN" "binary"
cp -R config.yaml /data/config.yaml
sed -i 's|/etc/watchyourlan/config.yaml|/data/config.yaml|' /lib/systemd/system/watchyourlan.service
msg_info "Cleaning up"
rm ~/config.yaml
msg_ok "Cleaned up"
msg_info "Starting service"
systemctl enable -q --now watchyourlan
msg_ok "Service started"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}

View File

@@ -27,23 +27,26 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/wavelog/wavelog/releases/latest | grep "tag_name" | cut -d '"' -f 4)
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
RELEASE=$(curl -fsSL https://api.github.com/repos/wavelog/wavelog/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
if [[ ! -f ~/.wavelog ]] || [[ "${RELEASE}" != "$(cat ~/.wavelog)" ]]; then
msg_info "Stopping Services"
systemctl stop apache2
msg_ok "Services Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
msg_info "Creating backup"
cp /opt/wavelog/application/config/config.php /opt/config.php
cp /opt/wavelog/application/config/database.php /opt/database.php
cp -r /opt/wavelog/userdata /opt/userdata
if [[ -f /opt/wavelog/assets/js/sections/custom.js ]]; then
cp /opt/wavelog/assets/js/sections/custom.js /opt/custom.js
fi
curl -fsSL "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip")
$STD unzip ${RELEASE}.zip
msg_ok "Backup created"
rm -rf /opt/wavelog
mv wavelog-${RELEASE}/ /opt/wavelog
fetch_and_deploy_gh_release "wavelog" "wavelog/wavelog" "tarball"
msg_info "Updating ${APP} to ${RELEASE}"
rm -rf /opt/wavelog/install
mv /opt/config.php /opt/wavelog/application/config/config.php
mv /opt/database.php /opt/wavelog/application/config/database.php
@@ -55,16 +58,12 @@ function update_script() {
chown -R www-data:www-data /opt/wavelog/
find /opt/wavelog/ -type d -exec chmod 755 {} \;
find /opt/wavelog/ -type f -exec chmod 664 {} \;
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting Services"
systemctl start apache2
msg_ok "Started Services"
msg_info "Cleaning Up"
rm -rf ${RELEASE}.zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -27,8 +27,9 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/Requarks/wiki/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ "${RELEASE}" != "$(cat ~/.wikijs)" ]] || [[ ! -f ~/.wikijs ]]; then
msg_info "Verifying whether ${APP}' new release is v3.x+ and current install uses SQLite."
SQLITE_INSTALL=$([ -f /opt/wikijs/db.sqlite ] && echo "true" || echo "false")
if [[ "${SQLITE_INSTALL}" == "true" && "${RELEASE}" =~ ^3.* ]]; then
@@ -47,13 +48,9 @@ function update_script() {
cp -R /opt/wikijs/{config.yml,/data} /opt/wikijs-backup
msg_ok "Backed up Data"
msg_info "Updating ${APP}"
rm -rf /opt/wikijs/*
cd /opt/wikijs
curl -fsSL "https://github.com/requarks/wiki/releases/download/v${RELEASE}/wiki-js.tar.gz" -o $(basename "https://github.com/requarks/wiki/releases/download/v${RELEASE}/wiki-js.tar.gz")
tar -xzf wiki-js.tar.gz
msg_ok "Updated ${APP}"
fetch_and_deploy_gh_release "wikijs" "requarks/wiki" "prebuild" "latest" "/opt/wikijs" "wiki-js.tar.gz"
msg_info "Restoring Data"
cp -R /opt/wikijs-backup/* /opt/wikijs
$SQLITE_INSTALL && $STD npm rebuild sqlite3
@@ -64,9 +61,9 @@ function update_script() {
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf /opt/wikijs/wiki-js.tar.gz
rm -rf /opt/wikijs-backup
msg_ok "Cleanup Completed"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"

View File

@@ -30,10 +30,12 @@ function update_script() {
fi
apt-get update
apt-get -y upgrade
sleep 2
cd /etc/wgdashboard/src
./wgd.sh update
./wgd.sh start
if [[ ! -d /etc/wgdashboard ]]; then
sleep 2
cd /etc/wgdashboard/src
./wgd.sh update
./wgd.sh start
fi
exit
}
@@ -43,5 +45,5 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} WGDashboard Access it using the following URL:${CL}"
echo -e "${INFO}${YW}Access WGDashboard (if installed) using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:10086${CL}"

View File

@@ -28,21 +28,20 @@ function update_script() {
exit
fi
msg_info "Updating yt-dlp"
$STD yt-dlp -U
msg_ok "Updated yt-dlp"
RELEASE=$(curl -fsSL https://api.github.com/repos/marcopiovanello/yt-dlp-web-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/yt-dlp-webui_version.txt)" ]] || [[ ! -f /opt/yt-dlp-webui_version.txt ]]; then
if [[ "${RELEASE}" != "$(cat ~/.yt-dlp-webui)" ]] || [[ ! -f ~/.yt-dlp-webui ]]; then
msg_info "Stopping $APP"
systemctl stop yt-dlp-webui
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
msg_info "Updating yt-dlp"
$STD yt-dlp -U
msg_ok "Updated yt-dlp"
rm -rf /usr/local/bin/yt-dlp-webui
curl -fsSL "https://github.com/marcopiovanello/yt-dlp-web-ui/releases/download/v${RELEASE}/yt-dlp-webui_linux-amd64" -o "/usr/local/bin/yt-dlp-webui"
chmod +x /usr/local/bin/yt-dlp-webui
msg_ok "Updated $APP LXC"
fetch_and_deploy_gh_release "yt-dlp-webui" "marcopiovanello/yt-dlp-web-ui" "singlefile" "latest" "/usr/local/bin" "yt-dlp-webui_linux-amd64"
msg_info "Starting $APP"
systemctl start yt-dlp-webui
@@ -60,4 +59,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3033${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3033${CL}"

View File

@@ -32,36 +32,32 @@ function update_script() {
$STD npm install -g pnpm@latest
msg_ok "Installed pnpm"
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/diced/zipline/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
if [[ ! -f ~/.zipline ]] || [[ "${RELEASE}" != "$(cat ~/.zipline)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop zipline
msg_ok "${APP} Stopped"
msg_info "Updating ${APP} to ${RELEASE}"
cp /opt/zipline/.env /opt/
mkdir -p /opt/zipline-uploads
if [ -d /opt/zipline/uploads ] && [ "$(ls -A /opt/zipline/uploads)" ]; then
cp -R /opt/zipline/uploads/* /opt/zipline-uploads/
fi
curl -fsSL "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip")
$STD unzip v"${RELEASE}".zip
cp /opt/zipline/.env /opt/
rm -R /opt/zipline
mv zipline-"${RELEASE}" /opt/zipline
fetch_and_deploy_gh_release "zipline" "diced/zipline" "tarball"
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/zipline
mv /opt/.env /opt/zipline/.env
$STD pnpm install
$STD pnpm build
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting ${APP}"
systemctl start zipline
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -rf v"${RELEASE}".zip
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -27,27 +27,24 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/zitadel/zitadel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt | grep -oP '\d+\.\d+\.\d+')" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
if [[ ! -f ~/.zitadel ]] || [[ "${RELEASE}" != "$(cat ~/.zitadel)" ]]; then
msg_info "Stopping $APP"
systemctl stop zitadel
msg_ok "Stopped $APP"
rm -f /usr/local/bin/zitadel
fetch_and_deploy_gh_release "zitadel" "zitadel/zitadel" "prebuild" "latest" "/usr/local/bin" "zitadel-linux-amd64.tar.gz"
msg_info "Updating $APP to ${RELEASE}"
cd /tmp
curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
mv zitadel-linux-amd64/zitadel /usr/local/bin
$STD zitadel setup --masterkeyFile /opt/zitadel/.masterkey --config /opt/zitadel/config.yaml --init-projections=true
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Starting $APP"
systemctl start zitadel
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf /tmp/zitadel-linux-amd64
msg_ok "Cleanup Completed"
msg_ok "Update Successful"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"

View File

@@ -27,17 +27,21 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/tobychui/zoraxy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}"
RELEASE=$(curl -fsSL https://api.github.com/repos/tobychui/zoraxy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.zoraxy ]] || [[ "${RELEASE}" != "$(cat ~/.zoraxy)" ]]; then
msg_info "Stopping service"
systemctl stop zoraxy
curl -fsSL "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64" -o $(basename "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64")
msg_ok "Service stopped"
rm -rf /opt/zoraxy/zoraxy
mv zoraxy_linux_amd64 /opt/zoraxy/zoraxy
chmod +x /opt/zoraxy/zoraxy
fetch_and_deploy_gh_release "zoraxy" "tobychui/zoraxy" "singlefile" "latest" "/opt/zoraxy" "zoraxy_linux_amd64"
msg_info "Starting service"
systemctl start zoraxy
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP"
msg_ok "Service started"
msg_ok "Updated successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi

View File

@@ -23,25 +23,29 @@ function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /usr/bin/zot ]]; then
msg_error "No ${APP} installation found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/project-zot/zot/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
RELEASE=$(curl -fsSL https://api.github.com/repos/project-zot/zot/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [[ ! -f ~/.${APP} ]] || [[ "${RELEASE}" != "$(cat ~/.${APP})" ]]; then
msg_info "Stopping Zot service"
systemctl stop zot
msg_ok "Stopped Zot service"
msg_info "Updating Zot to ${RELEASE}"
curl -fsSL "https://github.com/project-zot/zot/releases/download/${RELEASE}/zot-linux-amd64" -o /usr/bin/zot
chmod +x /usr/bin/zot
rm -f /usr/bin/zot
fetch_and_deploy_gh_release "zot" "project-zot/zot" "singlefile" "latest" "/usr/bin" "zot-linux-amd64"
msg_info "Configuring Zot Registry"
chown root:root /usr/bin/zot
echo "${RELEASE}" >~/.${APP}
systemctl restart zot
msg_ok "Updated Zot to ${RELEASE}"
msg_ok "Configured Zot Registry"
msg_info "Starting service"
systemctl start zot
msg_ok "Service started"
msg_ok "Updated successfuly"
else
msg_ok "Zot is already up to date (${RELEASE})"
fi

View File

@@ -27,27 +27,24 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/zwave-js/zwave-js-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
RELEASE=$(curl -fsSL https://api.github.com/repos/zwave-js/zwave-js-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f ~/.zwave-js-ui ]] || [[ "${RELEASE}" != "$(cat ~/.zwave-js-ui)" ]]; then
msg_info "Stopping Service"
systemctl stop zwave-js-ui
msg_ok "Stopped Service"
msg_info "Updating Z-Wave JS UI"
rm -rf /opt/zwave-js-ui/*
cd /opt/zwave-js-ui
curl -fsSL "https://github.com/zwave-js/zwave-js-ui/releases/download/${RELEASE}/zwave-js-ui-${RELEASE}-linux.zip" -o $(basename "https://github.com/zwave-js/zwave-js-ui/releases/download/${RELEASE}/zwave-js-ui-${RELEASE}-linux.zip")
$STD unzip zwave-js-ui-${RELEASE}-linux.zip
msg_ok "Updated Z-Wave JS UI"
fetch_and_deploy_gh_release "zwave-js-ui" "zwave-js/zwave-js-ui" "prebuild" "latest" "/opt/zwave-js-ui" "zwave-js-ui*-linux.zip"
msg_info "Starting Service"
systemctl start zwave-js-ui
msg_ok "Started Service"
msg_info "Cleanup"
rm -rf /opt/zwave-js-ui/zwave-js-ui-${RELEASE}-linux.zip
rm -rf /opt/zwave-js-ui/store
msg_ok "Cleaned"
msg_ok "Updated Successfully!\n"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."

View File

@@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": true,
"interface_port": 8090,
"documentation": "https://www.ispyconnect.com/docs/agent/about",

View File

@@ -10,7 +10,7 @@
"privileged": false,
"interface_port": 80,
"documentation": null,
"website": "https://it-tools.tech/",
"website": "https://sharevb-it-tools.vercel.app/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/it-tools.webp",
"config_path": "",
"description": "IT-Tools is a web-based suite of utilities designed to streamline and simplify various IT tasks, providing tools for developers and system administrators to manage their workflows efficiently.",

View File

@@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": 6767,
"documentation": "https://wiki.bazarr.media/",

View File

@@ -6,7 +6,7 @@
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": false,
"updateable": true,
"privileged": false,
"interface_port": null,
"documentation": null,

View File

@@ -13,7 +13,7 @@
"website": "https://docmost.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/docmost.webp",
"config_path": "/opt/docmost/.env",
"description": "Open-source collaborative wiki and documentation software Create, collaborate, and share knowledge seamlessly with Docmost. Ideal for managing your wiki, knowledge-base, documentation and a lot more.",
"description": "Open-source collaborative wiki and documentation software. Create, collaborate, and share knowledge seamlessly with Docmost. Ideal for managing your wiki, knowledge-base, documentation and a lot more.",
"install_methods": [
{
"type": "default",

View File

@@ -1,52 +0,0 @@
{
"name": "Home Assistant Core",
"slug": "homeassistant-core",
"categories": [
16
],
"date_created": "2025-01-17",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8123,
"documentation": "https://www.home-assistant.io/docs/",
"website": "https://www.home-assistant.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/home-assistant.webp",
"config_path": "/root/.homeassistant",
"description": "A standalone installation of Home Assistant Core refers to a setup where the Home Assistant Core software is installed directly on a device or operating system, without the use of Docker containers. This provides a simpler, but less flexible and scalable solution, as the software is tightly coupled with the underlying system.",
"install_methods": [
{
"type": "default",
"script": "ct/homeassistant-core.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 10,
"os": "ubuntu",
"version": "24.10"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.",
"type": "warning"
},
{
"text": "Requires PVE 8.2.2 with kernel 6.8.4-3-pve or newer",
"type": "warning"
},
{
"text": "Deprecation-Warning: This Core-based setup will be deprecated by August 2025. Use Home Assistant OS is strongly recommended to ensure long-term stability and updates.",
"type": "warning"
},
{
"text": "config path: `/root/.homeassistant`",
"type": "info"
}
]
}

View File

@@ -0,0 +1,40 @@
{
"name": "HortusFox",
"slug": "hortusfox",
"categories": [
24
],
"type": "ct",
"updateable": true,
"privileged": false,
"date_created": "2025-08-08",
"config_path": "/opt/hortusfox/.env",
"interface_port": 80,
"documentation": "https://github.com/danielbrendel/hortusfox-web",
"website": "https://www.hortusfox.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/hortusfox.webp",
"description": "HortusFox is a collaborative plant management system for plant enthusiasts. Manage, document and track your entire plant collection self-hosted and privacy-friendly.",
"install_methods": [
{
"type": "default",
"script": "ct/hortusfox.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 5,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Login Credentials : `cat ~/hortusfox.creds`",
"type": "info"
}
]
}

View File

@@ -2,7 +2,7 @@
"name": "Jenkins",
"slug": "jenkins",
"categories": [
22
20
],
"date_created": "2024-12-26",
"type": "ct",

View File

@@ -0,0 +1,48 @@
{
"name": "Palmr",
"slug": "palmr",
"categories": [
11
],
"date_created": "2025-08-08",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://palmr.kyantech.com.br/docs/3.1-beta",
"config_path": "/opt/palmr/apps/server/.env, /opt/palmr/apps/web/.env",
"website": "https://palmr.kyantech.com.br/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/palmr.webp",
"description": "Palmr is a fast and secure platform for sharing files, built with performance and privacy in mind.",
"install_methods": [
{
"type": "default",
"script": "ct/palmr.sh",
"resources": {
"cpu": 4,
"ram": 6144,
"hdd": 6,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "This LXC is very memory-hungry when updating; it requires at least 6GB RAM, but RAM may be reduced to as low as 2GB when running normally",
"type": "warning"
},
{
"text": "To use a bind mount for storage, create symlinks to your mount for both `uploads` and `temp-uploads` in `/opt/palmr_data`",
"type": "info"
},
{
"text": "To use Palmr with a reverse proxy, uncomment `SECURE_SITE` in `/opt/palmr/apps/server/.env`",
"type": "info"
}
]
}

View File

@@ -21,7 +21,7 @@
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 12,
"hdd": 20,
"os": "debian",
"version": "12"
}

View File

@@ -12,7 +12,7 @@
"documentation": null,
"website": "https://github.com/rcourtman/Pulse",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/pulse.webp",
"config_path": "/opt/pulse/.env",
"config_path": "/etc/pulse",
"description": "A lightweight monitoring application for Proxmox VE that displays real-time status for VMs and containers via a simple web interface.",
"install_methods": [
{
@@ -39,6 +39,10 @@
{
"text": "After installation, access the web interface to configure your Proxmox connection details through the built-in setup wizard",
"type": "Info"
},
{
"text": "Configure authentication in the Web UI => Settings => Security",
"type": "Info"
}
]
}

View File

@@ -28,8 +28,8 @@
}
],
"default_credentials": {
"username": null,
"password": null
"username": "proxmox",
"password": "proxmox"
},
"notes": []
}

View File

@@ -20,7 +20,7 @@
"script": "ct/reactive-resume.sh",
"resources": {
"cpu": 2,
"ram": 3072,
"ram": 4096,
"hdd": 8,
"os": "Debian",
"version": "12"

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 7912,
"documentation": null,
"documentation": "https://github.com/Donkie/Spoolman/wiki/Installation",
"website": "https://github.com/Donkie/Spoolman",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/spoolman.webp",
"config_path": "/opt/spoolman/.env",

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -12,7 +12,7 @@
"documentation": "https://github.com/wavelog/wavelog/wiki",
"website": "https://www.wavelog.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wavelog.webp",
"config_path": "",
"config_path": "/opt/wavelog/application/config/config.php",
"description": "Wavelog is a self-hosted PHP application that allows you to log your amateur radio contacts anywhere. All you need is a web browser and active internet connection.",
"install_methods": [
{

View File

@@ -1,35 +1,35 @@
{
"name": "Wiki.js",
"slug": "wikijs",
"categories": [
12
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": null,
"website": "https://js.wiki/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wiki-js.webp",
"config_path": "/opt/wikijs/config.yml",
"description": "Wiki.js is a free, open-source, and modern wiki application built using Node.js. It is designed to be fast, easy to use, and flexible, with a range of features for collaboration, knowledge management, and content creation. Wiki.js supports Markdown syntax for editing pages, and includes features such as version control, page history, and access control, making it easy to manage content and collaborate with others. The software is fully customizable, with a range of themes and extensions available, and can be deployed on a local server or in the cloud, making it an ideal choice for small teams and organizations looking to create and manage a wiki. Wiki.js provides a modern, user-friendly interface, and supports a range of data sources, including local file systems, databases, and cloud storage services.",
"install_methods": [
{
"type": "default",
"script": "ct/wikijs.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 7,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
"name": "Wiki.js",
"slug": "wikijs",
"categories": [
12
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://docs.requarks.io/",
"website": "https://js.wiki/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/wiki-js.webp",
"config_path": "/opt/wikijs/config.yml",
"description": "Wiki.js is a free, open-source, and modern wiki application built using Node.js. It is designed to be fast, easy to use, and flexible, with a range of features for collaboration, knowledge management, and content creation. Wiki.js supports Markdown syntax for editing pages, and includes features such as version control, page history, and access control, making it easy to manage content and collaborate with others. The software is fully customizable, with a range of themes and extensions available, and can be deployed on a local server or in the cloud, making it an ideal choice for small teams and organizations looking to create and manage a wiki. Wiki.js provides a modern, user-friendly interface, and supports a range of data sources, including local file systems, databases, and cloud storage services.",
"install_methods": [
{
"type": "default",
"script": "ct/wikijs.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 7,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -46,6 +46,10 @@
{
"text": "Wireguard and WGDashboard are not the same. More info: `https://docs.wgdashboard.dev/what-is-wireguard-what-is-wgdashboard.html`",
"type": "info"
},
{
"text": "WGDashboard installation is optional.`",
"type": "info"
}
]
}

View File

@@ -9,7 +9,7 @@
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": null,
"documentation": "https://zipline.diced.sh/docs/get-started",
"website": "https://zipline.diced.sh/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zipline.webp",
"config_path": "/opt/zipline/.env",

View File

@@ -1,35 +1,35 @@
{
"name": "Zoraxy",
"slug": "zoraxy",
"categories": [
4
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8000,
"documentation": null,
"website": "https://zoraxy.aroz.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zoraxy.webp",
"config_path": "",
"description": "Zoraxy is an all in one homelab network routing solution.",
"install_methods": [
{
"type": "default",
"script": "ct/zoraxy.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 6,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
"name": "Zoraxy",
"slug": "zoraxy",
"categories": [
4
],
"date_created": "2024-05-02",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8000,
"documentation": "https://github.com/tobychui/zoraxy/wiki",
"website": "https://zoraxy.aroz.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/zoraxy.webp",
"config_path": "",
"description": "Zoraxy is an all in one homelab network routing solution.",
"install_methods": [
{
"type": "default",
"script": "ct/zoraxy.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 6,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -29,6 +29,7 @@ cd /opt/agentdvr/agent
curl -fsSL "$RELEASE" -o $(basename "$RELEASE")
$STD unzip Agent_Linux64*.zip
chmod +x ./Agent
echo $RELEASE > ~/.agentdvr
msg_ok "Installed AgentDVR"
msg_info "Creating Service"

View File

@@ -14,17 +14,17 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apk add nginx
$STD apk add --no-cache \
nginx \
python3
msg_ok "Installed Dependencies"
msg_info "Installing IT-Tools"
RELEASE=$(curl -fsSL https://api.github.com/repos/CorentinTh/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip"
curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
mkdir -p /usr/share/nginx/html
$STD unzip it-tools.zip -d /tmp/it-tools
cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
$STD unzip it-tools.zip -d /tmp/
mv /tmp/dist/* /usr/share/nginx/html
cat <<'EOF' >/etc/nginx/http.d/default.conf
server {
listen 80;
@@ -39,14 +39,14 @@ server {
EOF
$STD rc-update add nginx default
$STD rc-service nginx start
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
msg_ok "Installed IT-Tools"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /tmp/it-tools
rm -rf /tmp/dist
rm -f it-tools.zip
$STD apk cache clean
msg_ok "Cleaned"

View File

@@ -15,6 +15,9 @@ update_os
msg_info "Setup Syncthing"
$STD apk add --no-cache syncthing
rc-service syncthing start
sleep 3
rc-service syncthing stop
sed -i "{s/127.0.0.1:8384/0.0.0.0:8384/g}" /var/lib/syncthing/.local/state/syncthing/config.xml
msg_ok "Setup Syncthing"

View File

@@ -27,16 +27,16 @@ msg_ok "Installed Dependencies"
msg_info "Installing Python Dependencies"
$STD apt-get install -y \
python3-pip \
python3-ldap \
python3-msgpack \
python3-regex
msg_ok "Installed Python Dependencies"
NODE_VERSION="22" setup_nodejs
PYTHON_VERSION="3.13" setup_uv
msg_info "Installing Playwright"
$STD pip install playwright
$STD uv pip install playwright --system
$STD playwright install-deps chromium
msg_ok "Installed Playwright"
@@ -45,7 +45,7 @@ mkdir -p /opt/archivebox/{data,.npm,.cache,.local}
$STD adduser --system --shell /bin/bash --gecos 'Archive Box User' --group --disabled-password --home /home/archivebox archivebox
chown -R archivebox:archivebox /opt/archivebox/{data,.npm,.cache,.local}
chmod -R 755 /opt/archivebox/data
$STD pip install archivebox
$STD uv pip install archivebox --system
cd /opt/archivebox/data
expect <<EOF
set timeout -1

View File

@@ -16,17 +16,17 @@ update_os
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-pip
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
python3-dev
msg_ok "Setup Python3"
PYTHON_VERSION="3.13" setup_uv
fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
msg_info "Installing Bazarr"
mkdir -p /var/lib/bazarr/
curl -fsSL "https://github.com/morpheus65535/bazarr/releases/latest/download/bazarr.zip" -o "bazarr.zip"
$STD unzip bazarr -d /opt/bazarr
chmod 775 /opt/bazarr /var/lib/bazarr/
$STD python3 -m pip install -q -r /opt/bazarr/requirements.txt
sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
$STD uv pip install -r /opt/bazarr/requirements.txt --system
msg_ok "Installed Bazarr"
msg_info "Creating Service"
@@ -56,7 +56,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf bazarr.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -28,7 +28,7 @@ msg_info "Setting up database"
DB_NAME=glpi_db
DB_USER=glpi
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql
mariadb-tzinfo-to-sql /usr/share/zoneinfo | mariadb mysql
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';"

View File

@@ -1,105 +0,0 @@
#!/usr/bin/env bash
# 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/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y \
git \
ca-certificates \
bluez \
libtiff6 \
tzdata \
libffi-dev \
libssl-dev \
libjpeg-dev \
zlib1g-dev \
autoconf \
build-essential \
libopenjp2-7 \
libturbojpeg0-dev \
ffmpeg \
liblapack3 \
liblapack-dev \
dbus-broker \
libpcap-dev \
libavdevice-dev \
libavformat-dev \
libavcodec-dev \
libavutil-dev \
libavfilter-dev \
libmariadb-dev-compat \
libatlas-base-dev \
software-properties-common \
libmariadb-dev \
pkg-config
msg_ok "Installed Dependencies"
setup_uv
msg_info "Setup Python3"
$STD apt-get install -y \
python3.13 \
python3.13-dev \
python3.13-venv
msg_ok "Setup Python3"
msg_info "Preparing Python 3.13 for uv"
$STD uv python install 3.13
UV_PYTHON=$(uv python list | awk '/3\.13\.[0-9]+.*\/root\/.local/ {print $2; exit}')
if [[ -z "$UV_PYTHON" ]]; then
msg_error "No local Python 3.13 found via uv"
exit 1
fi
msg_ok "Prepared Python 3.13"
msg_info "Setting up Home Assistant-Core environment"
rm -rf /srv/homeassistant
mkdir -p /srv/homeassistant
cd /srv/homeassistant
$STD uv venv .venv --python "$UV_PYTHON"
source .venv/bin/activate
msg_ok "Created virtual environment"
msg_info "Installing Home Assistant-Core"
$STD uv pip install homeassistant mysqlclient psycopg2-binary isal webrtcvad wheel
mkdir -p /root/.homeassistant
msg_ok "Installed Home Assistant-Core"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/homeassistant.service
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/root/.homeassistant
Environment="PATH=/srv/homeassistant/.venv/bin:/usr/local/bin:/usr/bin"
ExecStart=/srv/homeassistant/.venv/bin/python3 -m homeassistant --config /root/.homeassistant
Restart=always
RestartForceExitStatus=100
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now homeassistant
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -0,0 +1,104 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/danielbrendel/hortusfox-web
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y apache2
msg_ok "Installed Dependencies"
PHP_MODULE="exif,mysql" PHP_APACHE="YES" PHP_FPM="NO" PHP_VERSION="8.3" setup_php
setup_mariadb
setup_composer
msg_info "Setting up database"
DB_NAME=hortusfox
DB_USER=hortusfox
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;"
$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
$STD mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
{
echo "HortusFox Database Credentials"
echo "Database: $DB_NAME"
echo "Username: $DB_USER"
echo "Password: $DB_PASS"
} >>~/hortusfox.creds
msg_ok "Set up database"
fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web"
msg_info "Configuring .env"
cp /opt/hortusfox/.env.example /opt/hortusfox/.env
sed -i "s|^DB_HOST=.*|DB_HOST=localhost|" /opt/hortusfox/.env
sed -i "s|^DB_USER=.*|DB_USER=$DB_USER|" /opt/hortusfox/.env
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" /opt/hortusfox/.env
sed -i "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" /opt/hortusfox/.env
sed -i "s|^DB_ENABLE=.*|DB_ENABLE=true|" /opt/hortusfox/.env
sed -i "s|^APP_TIMEZONE=.*|APP_TIMEZONE=Europe/Berlin|" /opt/hortusfox/.env
msg_ok ".env configured"
msg_info "Installing Composer dependencies"
cd /opt/hortusfox
$STD composer install --no-dev --optimize-autoloader
msg_ok "Composer dependencies installed"
msg_info "Running DB migration"
$STD php asatru migrate:fresh
msg_ok "Migration finished"
msg_info "Setting up HortusFox"
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO AppModel (workspace, language, created_at) VALUES ('Default Workspace', 'en', NOW());"
$STD php asatru plants:attributes
$STD php asatru calendar:classes
ADMIN_EMAIL="admin@example.com"
ADMIN_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)"
ADMIN_HASH=$(php -r "echo password_hash('$ADMIN_PASS', PASSWORD_BCRYPT);")
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO UserModel (name, email, password, admin) VALUES ('Admin', '$ADMIN_EMAIL', '$ADMIN_HASH', 1);"
{
echo ""
echo "HortusFox-Admin-Creds:"
echo "E-Mail: $ADMIN_EMAIL"
echo "Passwort: $ADMIN_PASS"
} >>~/hortusfox.creds
$STD mariadb -u root -D $DB_NAME -e "INSERT IGNORE INTO LocationsModel (name, active, created_at) VALUES ('Home', 1, NOW());"
msg_ok "Set up HortusFox"
msg_info "Configuring Apache vHost"
cat <<EOF >/etc/apache2/sites-available/hortusfox.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /opt/hortusfox/public
<Directory /opt/hortusfox/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog \${APACHE_LOG_DIR}/hortusfox_error.log
CustomLog \${APACHE_LOG_DIR}/hortusfox_access.log combined
</VirtualHost>
EOF
chown -R www-data:www-data /opt/hortusfox
$STD a2dissite 000-default
$STD a2ensite hortusfox
$STD a2enmod rewrite
systemctl restart apache2
msg_ok "Apache configured"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -115,7 +115,8 @@ NODE_VERSION="22" setup_nodejs
PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql
msg_info "Setting up Postgresql Database"
VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
VCHORD_RELEASE="0.4.3"
# VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
curl -fsSL "https://github.com/tensorchord/VectorChord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
$STD apt install -y ./vchord.deb
rm vchord.deb
@@ -254,8 +255,7 @@ $STD make clean
cd "$STAGING_DIR"
SOURCE=$SOURCE_DIR/libvips
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
$STD git clone https://github.com/libvips/libvips.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBVIPS_REVISION"
@@ -283,7 +283,7 @@ GEO_DIR="${INSTALL_DIR}/geodata"
mkdir -p "$INSTALL_DIR"
mkdir -p {"${APP_DIR}","${UPLOAD_DIR}","${GEO_DIR}","${ML_DIR}","${INSTALL_DIR}"/cache}
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.137.3" "$SRC_DIR"
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.138.0" "$SRC_DIR"
msg_info "Installing ${APPLICATION} (more patience please)"
@@ -456,6 +456,8 @@ systemctl enable -q --now "$APPLICATION"-ml.service "$APPLICATION"-web.service
msg_ok "Created user, env file, scripts and services"
sed -i "$ a VERSION_ID=12" /etc/os-release # otherwise the motd_ssh function will fail
cp /etc/debian_version ~/.debian_version.bak
sed -i 's/.*/13.0/' /etc/debian_version
motd_ssh
customize

View File

@@ -16,10 +16,8 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
build-essential \
git \
ca-certificates \
chromium/stable \
chromium-common/stable \
chromium \
graphicsmagick \
ghostscript
msg_ok "Installed Dependencies"
@@ -69,7 +67,7 @@ cat <<EOF >/etc/karakeep/karakeep.env
SERVER_VERSION="$(cat ~/.karakeep)"
NEXTAUTH_SECRET="$karakeep_SECRET"
NEXTAUTH_URL="http://localhost:3000"
DATA_DIR="$DATA_DIR"
DATA_DIR=${DATA_DIR}
MEILI_ADDR="http://127.0.0.1:7700"
MEILI_MASTER_KEY="$MASTER_KEY"
BROWSER_WEB_URL="http://127.0.0.1:9222"

View File

@@ -13,25 +13,18 @@ setting_up_container
network_check
update_os
msg_info "Setup Python 3"
$STD apt-get install python3-pip -y
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python 3"
PYTHON_VERSION="3.12" setup_uv
$STD uv python update-shell
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa"
msg_info "Setup Kometa"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/Kometa-Team/Kometa/archive/refs/tags/v${RELEASE}.tar.gz" -o """$temp_file"""
tar -xzf "$temp_file"
mv Kometa-"${RELEASE}" /opt/kometa
cd /opt/kometa
$STD pip install -r requirements.txt --ignore-installed
$STD uv pip install -r requirements.txt --system
mkdir -p config/assets
cp config/config.yml.template config/config.yml
echo "${RELEASE}" >/opt/kometa_version.txt
msg_ok "Setup Kometa"
read -p "${TAB3}nter your TMDb API key: " TMDBKEY
read -p "${TAB3}Enter your TMDb API key: " TMDBKEY
read -p "${TAB3}Enter your Plex URL: " PLEXURL
read -p "${TAB3}Enter your Plex token: " PLEXTOKEN
sed -i -e "s#url: http://192.168.1.12:32400#url: $PLEXURL #g" /opt/kometa/config/config.yml
@@ -54,14 +47,13 @@ RestartSec=30
[Install]
WantedBy=multi-user.target
EOF
systemctl enable --now -q kometa
systemctl enable -q --now kometa
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -f "$temp_file"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -16,7 +16,6 @@ update_os
fetch_and_deploy_gh_release "meilisearch" "meilisearch/meilisearch" "binary"
msg_info "Configuring ${APPLICATION}"
cd /opt/meilisearch
curl -fsSL https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml -o /etc/meilisearch.toml
MASTER_KEY=$(openssl rand -base64 12)
LOCAL_IP="$(hostname -I | awk '{print $1}')"

View File

@@ -54,11 +54,11 @@ sed -i "s/user:pass@postgres/${DB_USER}:${DB_PASS}@localhost/g" /opt/outline/.en
sed -i 's/redis:6379/localhost:6379/g' /opt/outline/.env
sed -i "5s#URL=#URL=http://${LOCAL_IP}#g" /opt/outline/.env
sed -i 's/FORCE_HTTPS=true/FORCE_HTTPS=false/g' /opt/outline/.env
$STD yarn install --frozen-lockfile
export NODE_OPTIONS="--max-old-space-size=3584"
$STD yarn build
sed -i 's/NODE_ENV=development/NODE_ENV=production/g' /opt/outline/.env
$STD yarn install --frozen-lockfile
export NODE_ENV=production
sed -i 's/NODE_ENV=development/NODE_ENV=production/g' /opt/outline/.env
$STD yarn build
msg_ok "Configured Outline"
msg_info "Creating Service"

92
install/palmr-install.sh Normal file
View File

@@ -0,0 +1,92 @@
#!/usr/bin/env bash
# Copyright (c) 2025 Community Scripts ORG
# Author: vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/kyantech/Palmr
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "Palmr" "kyantech/Palmr" "tarball" "latest" "/opt/palmr"
PNPM="$(jq -r '.packageManager' /opt/palmr/package.json)" NODE_VERSION="20" NODE_MODULE="$PNPM" setup_nodejs
msg_info "Configuring palmr backend"
PALMR_DIR="/opt/palmr_data"
mkdir -p "$PALMR_DIR"
PALMR_DB="${PALMR_DIR}/palmr.db"
PALMR_KEY="$(openssl rand -hex 32)"
cd /opt/palmr/apps/server
sed -e 's/_ENCRYPTION=true/_ENCRYPTION=false/' \
-e '/^# ENC/s/# //' \
-e "s/ENCRYPTION_KEY=.*$/ENCRYPTION_KEY=$PALMR_KEY/" \
-e "s|file:.*$|file:$PALMR_DB\"|" \
-e '/db"$/a\# Uncomment below when using reverse proxy\
# SECURE_SITE=true' \
.env.example >./.env
$STD pnpm install
$STD pnpm dlx prisma generate
$STD pnpm dlx prisma migrate deploy
$STD pnpm dlx prisma db push
$STD pnpm db:seed
$STD pnpm build
msg_ok "Configured palmr backend"
msg_info "Configuring palmr frontend"
cd /opt/palmr/apps/web
mv ./.env.example ./.env
export NODE_ENV=production
export NEXT_TELEMETRY_DISABLED=1
$STD pnpm install
$STD pnpm build
msg_ok "Configured palmr frontend"
msg_info "Creating service"
useradd -d "$PALMR_DIR" -M -s /usr/sbin/nologin -U palmr
chown -R palmr:palmr "$PALMR_DIR" /opt/palmr
cat <<EOF >/etc/systemd/system/palmr-backend.service
[Unit]
Description=palmr Backend Service
After=network.target
[Service]
Type=simple
User=palmr
Group=palmr
WorkingDirectory=/opt/palmr_data
ExecStart=/usr/bin/node /opt/palmr/apps/server/dist/server.js
[Install]
WantedBy=multi-user.target
EOF
cat <<EOF >/etc/systemd/system/palmr-frontend.service
[Unit]
Description=palmr Frontend Service
After=network.target palmr-backend.service
[Service]
Type=simple
User=palmr
Group=palmr
WorkingDirectory=/opt/palmr/apps/web
ExecStart=/usr/bin/pnpm start
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now palmr-backend palmr-frontend
msg_ok "Created service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -16,42 +16,15 @@ update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
git \
software-properties-common \
apt-transport-https \
ca-certificates \
nginx \
redis-server
msg_ok "Installed Dependencies"
setup_mariadb
msg_info "Adding PHP Repository"
$STD curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
$STD dpkg -i /tmp/debsuryorg-archive-keyring.deb
$STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
$STD apt-get update
msg_ok "Added PHP Repository"
msg_info "Installing PHP"
$STD apt-get remove -y php8.2*
$STD apt-get install -y \
php8.3 \
php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,curl,zip,intl,fpm,redis}
msg_info "Installed PHP"
msg_info "Installing Composer"
$STD curl -fsSL https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
msg_ok "Installed Composer"
msg_info "Installing Paymenter"
RELEASE=$(curl -fsSL https://api.github.com/repos/paymenter/paymenter/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
mkdir -p /opt/paymenter
cd /opt/paymenter
curl -fsSL "https://github.com/paymenter/paymenter/releases/download/${RELEASE}/paymenter.tar.gz" -o paymenter.tar.gz
$STD tar -xzvf paymenter.tar.gz
chmod -R 755 storage/* bootstrap/cache/
msg_ok "Installed Paymenter"
PHP_VERSION="8.3" PHP_FPM="YES" PHP_MODULE="common,mysql,fpm,redis" setup_php
setup_composer
fetch_and_deploy_gh_release "paymenter" "paymenter/paymenter" "prebuild" "latest" "/opt/paymenter" "paymenter.tar.gz"
chmod -R 755 /opt/paymenter/storage/* /opt/paymenter/bootstrap/cache/
msg_info "Setting up database"
DB_NAME=paymenter
@@ -67,6 +40,7 @@ $STD mariadb -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'local
echo "Username: $DB_USER"
echo "Password: $DB_PASS"
} >>~/paymenter_db.creds
cd /opt/paymenter
cp .env.example .env
$STD composer install --no-dev --optimize-autoloader --no-interaction
$STD php artisan key:generate --force
@@ -138,11 +112,11 @@ systemctl enable --now paymenter
systemctl enable --now redis-server
msg_ok "Setup Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opt/paymenter/paymenter.tar.gz
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
motd_ssh
customize

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: rcourtman
# Author: rcourtman & vhsdream
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/rcourtman/Pulse
@@ -21,7 +21,7 @@ $STD apt-get install -y \
msg_ok "Installed Dependencies"
msg_info "Creating User"
if useradd -r -m -d /opt/pulse-home -s /bin/bash pulse; then
if useradd -r -m -d /opt/pulse-home -s /usr/sbin/nologin pulse; then
msg_ok "Created User"
else
msg_error "User creation failed"
@@ -34,7 +34,7 @@ chown -R pulse:pulse /etc/pulse /opt/pulse
msg_ok "Installed Pulse"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/pulse.service
cat <<EOF >/etc/systemd/system/pulse-backend.service
[Unit]
Description=Pulse Monitoring Server
After=network.target
@@ -44,7 +44,7 @@ Type=simple
User=pulse
Group=pulse
WorkingDirectory=/opt/pulse
ExecStart=/opt/pulse/pulse
ExecStart=/opt/pulse/bin/pulse
Restart=always
RestartSec=3
StandardOutput=journal
@@ -55,7 +55,7 @@ Environment="PULSE_DATA_DIR=/etc/pulse"
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now pulse
systemctl enable -q --now pulse-backend
msg_ok "Created Service"
motd_ssh

View File

@@ -19,7 +19,7 @@ curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/minio.deb -o minio
$STD dpkg -i minio.deb
msg_ok "Installed Dependencies"
PG_VERSION="16" PG_MODULES="common" setup_postgresql
PG_VERSION="16" setup_postgresql
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
msg_info "Setting up Database"
@@ -32,7 +32,6 @@ $STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME to $DB_
$STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
msg_ok "Set up Database"
msg_info "Installing $APPLICATION"
MINIO_PASS=$(openssl rand -base64 48)
ACCESS_TOKEN=$(openssl rand -base64 48)
REFRESH_TOKEN=$(openssl rand -base64 48)
@@ -41,6 +40,8 @@ LOCAL_IP=$(hostname -I | awk '{print $1}')
TAG=$(curl -fsSL https://api.github.com/repos/browserless/browserless/tags?per_page=1 | grep "name" | awk '{print substr($2, 3, length($2)-4) }')
fetch_and_deploy_gh_release "Reactive-Resume" "lazy-media/Reactive-Resume"
msg_info "Installing $APPLICATION"
cd /opt/"$APPLICATION"
export CI="true"
export PUPPETEER_SKIP_DOWNLOAD="true"
@@ -48,7 +49,6 @@ export NODE_ENV="production"
export NEXT_TELEMETRY_DISABLED=1
$STD pnpm install --frozen-lockfile
$STD pnpm run build
$STD pnpm install --prod --frozen-lockfile
$STD pnpm run prisma:generate
msg_ok "Installed $APPLICATION"

View File

@@ -13,34 +13,36 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies (Patience)"
msg_info "Installing SearXNG dependencies"
echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/backports.list
$STD apt-get update
$STD apt-get install -y \
redis-server \
build-essential \
libffi-dev \
libssl-dev \
git
msg_ok "Installed Dependencies"
python3-dev python3-babel python3-venv python-is-python3 \
uwsgi uwsgi-plugin-python3 \
git build-essential libxslt-dev zlib1g-dev libffi-dev libssl-dev sudo valkey
msg_ok "Installed dependencies"
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-{pip,venv,yaml,dev}
$STD pip install --upgrade pip setuptools wheel
$STD pip install pyyaml
msg_ok "Setup Python3"
msg_info "Creating user and preparing directories"
useradd --system --shell /bin/bash --home-dir "/usr/local/searxng" --comment 'Privacy-respecting metasearch engine' searxng || true
mkdir -p /usr/local/searxng
chown -R searxng:searxng /usr/local/searxng
msg_ok "User and directories ready"
msg_info "Setup SearXNG"
mkdir -p /usr/local/searxng /etc/searxng
useradd -d /etc/searxng searxng
chown searxng:searxng /usr/local/searxng /etc/searxng
$STD git clone https://github.com/searxng/searxng.git /usr/local/searxng/searxng-src
cd /usr/local/searxng/
sudo -u searxng python3 -m venv /usr/local/searxng/searx-pyenv
source /usr/local/searxng/searx-pyenv/bin/activate
$STD pip install --upgrade pip setuptools wheel
$STD pip install pyyaml
$STD pip install --use-pep517 --no-build-isolation -e /usr/local/searxng/searxng-src
msg_info "Cloning SearXNG source"
$STD sudo -H -u searxng git clone https://github.com/searxng/searxng /usr/local/searxng/searxng-src
msg_ok "Cloned SearXNG"
msg_info "Creating Python virtual environment"
sudo -H -u searxng bash -c "
python3 -m venv /usr/local/searxng/searx-pyenv &&
. /usr/local/searxng/searx-pyenv/bin/activate &&
$STD pip install -U pip setuptools wheel pyyaml &&
$STD pip install --use-pep517 --no-build-isolation -e /usr/local/searxng/searxng-src
"
msg_ok "Python environment ready"
msg_info "Configuring SearXNG settings"
mkdir -p /etc/searxng
SECRET_KEY=$(openssl rand -hex 32)
cat <<EOF >/etc/searxng/settings.yml
# SearXNG settings
@@ -56,8 +58,8 @@ server:
secret_key: "${SECRET_KEY}"
limiter: false
image_proxy: true
redis:
url: "redis://127.0.0.1:6379/0"
valkey:
url: "valkey://localhost:6379/0"
ui:
static_use_hash: true
enabled_plugins:
@@ -78,16 +80,17 @@ engines:
shortcut: ddg
display_error_messages: true
EOF
chown searxng:searxng /etc/searxng/settings.yml
chmod 640 /etc/searxng/settings.yml
msg_ok "Setup SearXNG"
msg_ok "Configured settings"
msg_info "Set up web services"
cat <<EOF >/etc/systemd/system/searxng.service
[Unit]
Description=SearXNG service
After=network.target redis-server.service
Wants=redis-server.service
After=network.target valkey-server.service
Wants=valkey-server.service
[Service]
Type=simple

View File

@@ -43,17 +43,19 @@ echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Spoolman"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/spoolman.service
cat <<'EOF' >/etc/systemd/system/spoolman.service
[Unit]
Description=Spoolman
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/spoolman
EnvironmentFile=/opt/spoolman/.env
ExecStart=uvicorn spoolman.main:app --host 0.0.0.0 --port 7912
ExecStart=uvicorn spoolman.main:app --host "${SPOOLMAN_HOST}" --port "${SPOOLMAN_PORT}"
Restart=always
User=root
[Install]
WantedBy=multi-user.target
EOF

View File

@@ -1,8 +1,7 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck
# Author: tteck
# Co-Author: MickLesk (Canbiz)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (Canbiz)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://tandoor.dev/
@@ -17,6 +16,7 @@ update_os
msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y --no-install-recommends \
build-essential \
python3 \
libpq-dev \
libmagic-dev \
libzbar0 \
@@ -24,72 +24,72 @@ $STD apt-get install -y --no-install-recommends \
libsasl2-dev \
libldap2-dev \
libssl-dev \
git \
make \
pkg-config \
libxmlsec1-dev \
libxml2-dev \
libxmlsec1-openssl
msg_ok "Installed Dependencies"
msg_info "Setup Python3"
$STD apt-get install -y \
python3 \
python3-dev \
python3-setuptools \
python3-pip \
python3-xmlsec
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
msg_ok "Setup Python3"
NODE_VERSION="20" NODE_MODULE="yarn" setup_nodejs
fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"
PG_VERSION="16" setup_postgresql
PYTHON_VERSION="3.13" setup_uv
NODE_VERSION="20" NODE_MODULE="yarn@latest" setup_nodejs
msg_info "Installing Tandoor (Patience)"
$STD git clone https://github.com/TandoorRecipes/recipes -b master /opt/tandoor
mkdir -p /opt/tandoor/{config,api,mediafiles,staticfiles}
$STD pip3 install -r /opt/tandoor/requirements.txt
cd /opt/tandoor/vue
$STD yarn install
$STD yarn build
curl -fsSL "https://raw.githubusercontent.com/TandoorRecipes/recipes/develop/.env.template" -o "/opt/tandoor/.env"
msg_info "Set up PostgreSQL Database"
DB_NAME=db_recipes
DB_USER=tandoor
DB_ENCODING=utf8
DB_TIMEZONE=UTC
secret_key=$(openssl rand -base64 45 | sed 's/\//\\\//g')
SECRET_KEY=$(openssl rand -base64 45 | sed 's/\//\\\//g')
DB_PASS="$(openssl rand -base64 18 | cut -c1-13)"
sed -i -e "s|SECRET_KEY=.*|SECRET_KEY=$secret_key|g" \
-e "s|POSTGRES_HOST=.*|POSTGRES_HOST=localhost|g" \
-e "s|POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=$DB_PASS|g" \
-e "s|POSTGRES_DB=.*|POSTGRES_DB=$DB_NAME|g" \
-e "s|POSTGRES_USER=.*|POSTGRES_USER=$DB_USER|g" \
-e "\$a\STATIC_URL=/staticfiles/" /opt/tandoor/.env
cd /opt/tandoor
$STD python3 version.py
msg_ok "Installed Tandoor"
msg_info "Install/Set up PostgreSQL Database"
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >/etc/apt/sources.list.d/pgdg.list
$STD apt-get update
$STD apt-get install -y postgresql-16
$STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER TEMPLATE template0;"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
echo "" >>~/tandoor.creds
echo -e "Tandoor Database Name: \e[32m$DB_NAME\e[0m" >>~/tandoor.creds
echo -e "Tandoor Database User: \e[32m$DB_USER\e[0m" >>~/tandoor.creds
echo -e "Tandoor Database Password: \e[32m$DB_PASS\e[0m" >>~/tandoor.creds
export $(cat /opt/tandoor/.env | grep "^[^#]" | xargs)
/usr/bin/python3 /opt/tandoor/manage.py migrate >/dev/null 2>&1
/usr/bin/python3 /opt/tandoor/manage.py collectstatic --no-input >/dev/null 2>&1
/usr/bin/python3 /opt/tandoor/manage.py collectstatic_js_reverse >/dev/null 2>&1
{
echo "Tandoor-Credentials"
echo "Tandoor Database Name: $DB_NAME"
echo "Tandoor Database User: $DB_USER"
echo "Tandoor Database Password: $DB_PASS"
} >>~/tandoor.creds
msg_ok "Set up PostgreSQL Database"
msg_info "Setup Tandoor"
mkdir -p /opt/tandoor/{config,api,mediafiles,staticfiles}
cd /opt/tandoor
$STD uv venv .venv --python=python3
$STD uv pip install -r requirements.txt --python .venv/bin/python
cd /opt/tandoor/vue3
$STD yarn install
$STD yarn build
cat <<EOF >/opt/tandoor/.env
SECRET_KEY=$SECRET_KEY
TZ=Europe/Berlin
DB_ENGINE=django.db.backends.postgresql
POSTGRES_HOST=localhost
POSTGRES_DB=$DB_NAME
POSTGRES_PORT=5432
POSTGRES_USER=$DB_USER
POSTGRES_PASSWORD=$DB_PASS
STATIC_URL=/staticfiles/
MEDIA_URL=/mediafiles/
EOF
TANDOOR_VERSION="$(curl -s https://api.github.com/repos/TandoorRecipes/recipes/releases/latest | jq -r .tag_name)"
cat <<EOF >/opt/tandoor/cookbook/version_info.py
TANDOOR_VERSION = "$TANDOOR_VERSION"
TANDOOR_REF = "bare-metal"
VERSION_INFO = []
EOF
cd /opt/tandoor
$STD /opt/tandoor/.venv/bin/python manage.py migrate
$STD /opt/tandoor/.venv/bin/python manage.py collectstatic --no-input
msg_ok "Installed Tandoor"
msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/gunicorn_tandoor.service
cat <<EOF >/etc/systemd/system/tandoor.service
[Unit]
Description=gunicorn daemon for tandoor
After=network.target
@@ -100,7 +100,7 @@ Restart=always
RestartSec=3
WorkingDirectory=/opt/tandoor
EnvironmentFile=/opt/tandoor/.env
ExecStart=/usr/local/bin/gunicorn --error-logfile /tmp/gunicorn_err.log --log-level debug --capture-output --bind unix:/opt/tandoor/tandoor.sock recipes.wsgi:application
ExecStart=/opt/tandoor/.venv/bin/gunicorn --error-logfile /tmp/gunicorn_err.log --log-level debug --capture-output --bind unix:/opt/tandoor/tandoor.sock recipes.wsgi:application
[Install]
WantedBy=multi-user.target
@@ -109,8 +109,8 @@ EOF
cat <<'EOF' >/etc/nginx/conf.d/tandoor.conf
server {
listen 8002;
#access_log /var/log/nginx/access.log;
#error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 128M;
# serve media files
location /static/ {
@@ -123,12 +123,15 @@ server {
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://unix:/opt/tandoor/tandoor.sock;
}
}
EOF
systemctl reload nginx
systemctl enable -q --now gunicorn_tandoor
systemctl enable -q --now tandoor
msg_ok "Created Services"
motd_ssh

View File

@@ -21,9 +21,7 @@ $STD apt-get install -y \
g++ \
build-essential \
git \
make \
ca-certificates \
jq
ca-certificates
msg_ok "Installed Dependencies"
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/msgbyte/tianji/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
@@ -39,27 +37,25 @@ $STD sudo -u postgres psql -c "CREATE USER $DB_USER WITH PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER DATABASE $DB_NAME OWNER TO $DB_USER;"
$STD sudo -u postgres psql -c "ALTER USER $DB_USER WITH SUPERUSER;"
echo "" >>~/tianji.creds
echo -e "Tianji Database User: $DB_USER" >>~/tianji.creds
echo -e "Tianji Database Password: $DB_PASS" >>~/tianji.creds
echo -e "Tianji Database Name: $DB_NAME" >>~/tianji.creds
echo -e "Tianji Secret: $TIANJI_SECRET" >>~/tianji.creds
{
echo ""
echo "Database User: $DB_USER"
echo "Database Password: $DB_PASS"
echo "Database Name: $DB_NAME"
echo "Tianji Secret: $TIANJI_SECRET"
} >>~/tianji.creds
msg_ok "Set up PostgreSQL"
msg_info "Installing Tianji (Extreme Patience)"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/msgbyte/tianji/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/msgbyte/tianji/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
$STD unzip v${RELEASE}.zip
mv tianji-${RELEASE} /opt/tianji
cd tianji
fetch_and_deploy_gh_release "tianji" "msgbyte/tianji"
msg_info "Setup Tianji"
cd /opt/tianji
$STD pnpm install --filter @tianji/client... --config.dedupe-peer-dependents=false --frozen-lockfile
$STD pnpm build:static
$STD pnpm install --filter @tianji/server... --config.dedupe-peer-dependents=false
mkdir -p ./src/server/public
cp -r ./geo ./src/server/public
$STD pnpm build:server
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
cat <<EOF >/opt/tianji/src/server/.env
DATABASE_URL="postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME?schema=public"
OPENAI_API_KEY=""
@@ -67,7 +63,11 @@ JWT_SECRET="$TIANJI_SECRET"
EOF
cd /opt/tianji/src/server
$STD pnpm db:migrate:apply
msg_ok "Installed Tianji"
msg_ok "Setup Tianji"
msg_info "Setup AppRise"
$STD uv pip install apprise cryptography --system
msg_ok "Setup AppRise"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/tianji.service
@@ -93,7 +93,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -R /opt/v${RELEASE}.zip
rm -rf /opt/tianji/src/client
rm -rf /opt/tianji/website
rm -rf /opt/tianji/reporter

View File

@@ -28,8 +28,8 @@ if ! grep -q -m1 'avx[^ ]*' /proc/cpuinfo; then
msg_ok "No AVX Support Detected"
msg_info "Installing MongoDB 4.4"
if ! dpkg -l | grep -q "libssl1.1"; then
curl -fsSL "http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1n-0+deb10u6_amd64.deb" -o "libssl1.1_1.1.1n-0+deb10u6_amd64.deb"
$STD dpkg -i libssl1.1_1.1.1n-0+deb10u6_amd64.deb
curl -fsSL "https://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.1_1.1.1w-0+deb11u3_amd64.deb" -o "libssl1.1_1.1.1w-0+deb11u3_amd64.deb"
$STD dpkg -i libssl1.1_1.1.1w-0+deb11u3_amd64.deb
fi
curl -fsSL "https://www.mongodb.org/static/pgp/server-4.4.asc" | gpg --dearmor >/usr/share/keyrings/mongodb-server-4.4.gpg
echo "deb [signed-by=/usr/share/keyrings/mongodb-server-4.4.gpg] https://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" >/etc/apt/sources.list.d/mongodb-org-4.4.list

View File

@@ -13,8 +13,17 @@ setting_up_container
network_check
update_os
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "victoria-metrics-linux-amd64-v+([0-9.]).tar.gz"
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "vmutils-linux-amd64-v+([0-9.]).tar.gz"
msg_info "Getting latest version of VictoriaMetrics"
victoriametrics_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" |
jq -r '.assets[].name' |
grep -E '^victoria-metrics-linux-amd64-v[0-9.]+\.tar\.gz$')
vmutils_filename=$(curl -fsSL "https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/releases/latest" |
jq -r '.assets[].name' |
grep -E '^vmutils-linux-amd64-v[0-9.]+\.tar\.gz$')
msg_ok "Got latest version of VictoriaMetrics"
fetch_and_deploy_gh_release "victoriametrics" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "$victoriametrics_filename"
fetch_and_deploy_gh_release "vmutils" "VictoriaMetrics/VictoriaMetrics" "prebuild" "latest" "/opt/victoriametrics" "$vmutils_filename"
read -r -p "${TAB3}Would you like to add VictoriaLogs? <y/N> " prompt

View File

@@ -14,19 +14,14 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
gcc
$STD apt-get install -y gcc
msg_ok "Installed Dependencies"
setup_go
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "watcharr" "sbondCo/Watcharr" "tarball"
msg_info "Setup Watcharr"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/sbondCo/Watcharr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/sbondCo/Watcharr/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar -xzf "$temp_file"
mv Watcharr-${RELEASE}/ /opt/watcharr
cd /opt/watcharr
$STD npm i
$STD npm run build
@@ -35,14 +30,6 @@ cd server
export CGO_ENABLED=1 GOOS=linux
go mod download
go build -o ./watcharr
cat <<EOF >/opt/start.sh
#! /bin/bash
source ~/.bashrc
cd /opt/watcharr/server
./watcharr
EOF
chmod +x /opt/start.sh
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Setup Watcharr"
msg_info "Creating Service"
@@ -53,7 +40,7 @@ After=network.target
[Service]
WorkingDirectory=/opt/watcharr/server
ExecStart=/opt/start.sh
ExecStart=/opt/watcharr/server/watcharr
Restart=always
User=root
@@ -67,7 +54,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -f "$temp_file"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -14,14 +14,15 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y {arp-scan,ieee-data,libwww-perl}
$STD apt-get install -y \
arp-scan \
ieee-data \
libwww-perl
msg_ok "Installed Dependencies"
msg_info "Installing WatchYourLAN"
RELEASE=$(curl -fsSL https://api.github.com/repos/aceberg/WatchYourLAN/releases/latest | grep -o '"tag_name": *"[^"]*"' | cut -d '"' -f 4)
curl -fsSL "https://github.com/aceberg/WatchYourLAN/releases/download/$RELEASE/watchyourlan_${RELEASE}_linux_amd64.deb" -o "watchyourlan_${RELEASE}_linux_amd64.deb"
$STD dpkg -i watchyourlan_${RELEASE}_linux_amd64.deb
rm watchyourlan_${RELEASE}_linux_amd64.deb
fetch_and_deploy_gh_release "watchyourlan" "aceberg/WatchYourLAN" "binary"
msg_info "Configuring WatchYourLAN"
mkdir /data
cat <<EOF >/data/config.yaml
arp_timeout: "500"
@@ -41,7 +42,7 @@ shoutrrr_url: ""
theme: solar
timeout: 60
EOF
msg_ok "Installed WatchYourLAN"
msg_ok "Configured WatchYourLAN"
msg_info "Creating Service"
sed -i 's|/etc/watchyourlan/config.yaml|/data/config.yaml|' /lib/systemd/system/watchyourlan.service

View File

@@ -13,13 +13,9 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
libapache2-mod-php \
php8.2-{curl,mbstring,mysql,xml,zip,gd}
msg_ok "Installed Dependencies"
PHP_VERSION="8.3" PHP_MODULE="mysql" PHP_APACHE="YES" PHP_MAX_EXECUTION_TIME="600" setup_php
setup_mariadb
fetch_and_deploy_gh_release "wavelog" "wavelog/wavelog" "tarball"
msg_info "Setting up Database"
DB_NAME=wavelog
@@ -36,22 +32,11 @@ $STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUS
} >>~/wavelog.creds
msg_ok "Set up database"
msg_info "Setting up PHP"
sed -i '/max_execution_time/s/= .*/= 600/' /etc/php/8.2/apache2/php.ini
sed -i '/memory_limit/s/= .*/= 256M/' /etc/php/8.2/apache2/php.ini
sed -i '/upload_max_filesize/s/= .*/= 8M/' /etc/php/8.2/apache2/php.ini
msg_ok "Set up PHP"
msg_info "Installing Wavelog"
RELEASE=$(curl -fsSL https://api.github.com/repos/wavelog/wavelog/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/wavelog/wavelog/archive/refs/tags/${RELEASE}.zip" -o "${RELEASE}.zip"
$STD unzip ${RELEASE}.zip
mv wavelog-${RELEASE}/ /opt/wavelog
msg_info "Configuring Wavelog"
chown -R www-data:www-data /opt/wavelog/
find /opt/wavelog/ -type d -exec chmod 755 {} \;
find /opt/wavelog/ -type f -exec chmod 664 {} \;
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Wavelog"
msg_ok "Configured Wavelog"
msg_info "Creating Service"
cat <<EOF >/etc/apache2/sites-available/wavelog.conf
@@ -78,7 +63,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -f ${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -20,6 +20,7 @@ msg_ok "Installed Dependencies"
NODE_VERSION="20" NODE_MODULE="yarn@latest,node-gyp" setup_nodejs
PG_VERSION="17" setup_postgresql
fetch_and_deploy_gh_release "wikijs" "requarks/wiki" "prebuild" "latest" "/opt/wikijs" "wiki-js.tar.gz"
msg_info "Set up PostgreSQL"
DB_NAME="wiki"
@@ -39,17 +40,11 @@ $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
} >>~/wikijs.creds
msg_ok "Set up PostgreSQL"
msg_info "Setup Wiki.js"
temp_file=$(mktemp)
RELEASE=$(curl -fsSL https://api.github.com/repos/Requarks/wiki/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/requarks/wiki/releases/download/v${RELEASE}/wiki-js.tar.gz" -o ""$temp_file""
mkdir /opt/wikijs
tar -xzf "$temp_file" -C /opt/wikijs
msg_info "Configuring Wiki.js"
mv /opt/wikijs/config.sample.yml /opt/wikijs/config.yml
sed -i -E 's|^( *user: ).*|\1'"$DB_USER"'|' /opt/wikijs/config.yml
sed -i -E 's|^( *pass: ).*|\1'"$DB_PASS"'|' /opt/wikijs/config.yml
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Wiki.js"
msg_ok "Configured Wiki.js"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/wikijs.service
@@ -75,7 +70,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -f "$temp_file"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -13,28 +13,27 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y git
msg_ok "Installed Dependencies"
msg_info "Installing WireGuard"
$STD apt-get install -y wireguard wireguard-tools net-tools iptables
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install -y iptables-persistent &>/dev/null
$STD netfilter-persistent reload
msg_ok "Installed WireGuard"
msg_info "Installing WGDashboard"
git clone -q https://github.com/donaldzou/WGDashboard.git /etc/wgdashboard
cd /etc/wgdashboard/src
chmod u+x wgd.sh
$STD ./wgd.sh install
echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf
$STD sysctl -p /etc/sysctl.conf
msg_ok "Installed WGDashboard"
read -r -p "${TAB3}Would you like to add WGDashboard? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
fetch_and_deploy_gh_release "wgdashboard" "donaldzou/WGDashboard" "tarball" "latest" "/etc/wgdashboard"
msg_info "Create Example Config for WGDashboard"
private_key=$(wg genkey)
cat <<EOF >/etc/wireguard/wg0.conf
msg_info "Installing WGDashboard"
cd /etc/wgdashboard/src
chmod u+x wgd.sh
$STD ./wgd.sh install
echo "net.ipv4.ip_forward=1" >>/etc/sysctl.conf
$STD sysctl -p /etc/sysctl.conf
msg_ok "Installed WGDashboard"
msg_info "Create Example Config for WGDashboard"
private_key=$(wg genkey)
cat <<EOF >/etc/wireguard/wg0.conf
[Interface]
PrivateKey = ${private_key}
Address = 10.0.0.1/24
@@ -43,10 +42,10 @@ PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACC
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;
ListenPort = 51820
EOF
msg_ok "Created Example Config for WGDashboard"
msg_ok "Created Example Config for WGDashboard"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/wg-dashboard.service
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/wg-dashboard.service
[Unit]
After=syslog.target network-online.target
Wants=wg-quick.target
@@ -66,8 +65,9 @@ Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now wg-dashboard
msg_ok "Created Service"
systemctl enable -q --now wg-dashboard
msg_ok "Created Service"
fi
motd_ssh
customize

View File

@@ -13,13 +13,7 @@ setting_up_container
network_check
update_os
msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y \
apache2 \
php8.2-{bcmath,common,cli,curl,fpm,gd,snmp,imap,mbstring,mysql,xml,zip} \
libapache2-mod-php
msg_ok "Installed Dependencies"
PHP_VERSION="8.4" PHP_FPM="YES" PHP_MODULE="common,snmp,imap,mysql" PHP_APACHE="YES" setup_php
setup_mariadb
msg_info "Setting up Database"

View File

@@ -17,17 +17,8 @@ msg_info "Installing Dependencies"
$STD apt-get install -y ffmpeg
msg_ok "Installed Dependencies"
msg_info "Installing ${APPLICATION}"
RELEASE=$(curl -fsSL https://api.github.com/repos/marcopiovanello/yt-dlp-web-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/marcopiovanello/yt-dlp-web-ui/releases/download/v${RELEASE}/yt-dlp-webui_linux-amd64" -o "/usr/local/bin/yt-dlp-webui"
chmod +x /usr/local/bin/yt-dlp-webui
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed ${APPLICATION}"
msg_info "Installing yt-dlp"
curl -fsSL "https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp" -o "/usr/local/bin/yt-dlp"
chmod a+rx /usr/local/bin/yt-dlp
msg_ok "Installed yt-dlp"
fetch_and_deploy_gh_release "yt-dlp-webui" "marcopiovanello/yt-dlp-web-ui" "singlefile" "latest" "/usr/local/bin" "yt-dlp-webui_linux-amd64"
fetch_and_deploy_gh_release "yt-dlp" "yt-dlp/yt-dlp" "singlefile" "latest" "/usr/local/bin" "yt-dlp"
msg_info "Setting up ${APPLICATION}"
mkdir -p /opt/yt-dlp-webui

View File

@@ -16,6 +16,7 @@ update_os
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
PG_VERSION="16" setup_postgresql
fetch_and_deploy_gh_release "zipline" "diced/zipline" "tarball"
msg_info "Setting up PostgreSQL"
DB_NAME=ziplinedb
@@ -37,11 +38,6 @@ $STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC'"
msg_ok "Set up PostgreSQL"
msg_info "Installing Zipline (Patience)"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/diced/zipline/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/diced/zipline/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
$STD unzip v"${RELEASE}".zip
mv zipline-"${RELEASE}" /opt/zipline
cd /opt/zipline
cat <<EOF >/opt/zipline/.env
DATABASE_URL=postgres://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME
@@ -55,7 +51,6 @@ EOF
mkdir -p /opt/zipline-uploads
$STD pnpm install
$STD pnpm build
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Zipline"
msg_info "Creating Service"
@@ -77,8 +72,8 @@ msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
rm -f /opt/v${RELEASE}.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -17,7 +17,7 @@ msg_info "Installing Dependencies (Patience)"
$STD apt-get install -y ca-certificates
msg_ok "Installed Dependecies"
PG_VERSION="17" PG_MODULES="common" setup_postgresql
PG_VERSION="17" setup_postgresql
msg_info "Installing Postgresql"
DB_NAME="zitadel"
@@ -39,11 +39,7 @@ $STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME OWNER $DB_ADMIN_USER;"
} >>~/zitadel.creds
msg_ok "Installed PostgreSQL"
msg_info "Installing Zitadel"
RELEASE=$(curl -fsSL https://api.github.com/repos/zitadel/zitadel/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
curl -fsSL "https://github.com/zitadel/zitadel/releases/download/v$RELEASE/zitadel-linux-amd64.tar.gz" | tar -xz
mv zitadel-linux-amd64/zitadel /usr/local/bin
msg_ok "Installed Zitadel"
fetch_and_deploy_gh_release "zitadel" "zitadel/zitadel" "prebuild" "latest" "/usr/local/bin" "zitadel-linux-amd64.tar.gz"
msg_info "Setting up Zitadel Environments"
mkdir -p /opt/zitadel
@@ -114,7 +110,7 @@ NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q zitadel.service
systemctl enable -q zitadel
msg_ok "Created Services"
msg_info "Zitadel initial setup"
@@ -122,7 +118,6 @@ zitadel start-from-init --masterkeyFile /opt/zitadel/.masterkey --config /opt/zi
sleep 60
kill $(lsof -i | awk '/zitadel/ {print $2}' | head -n1)
useradd zitadel
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Zitadel initialized"
msg_info "Set ExternalDomain to current IP and restart Zitadel"
@@ -145,7 +140,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm -rf ~/zitadel-linux-amd64
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@@ -13,15 +13,8 @@ setting_up_container
network_check
update_os
msg_info "Installing Zoraxy (Patience)"
RELEASE=$(curl -fsSL https://api.github.com/repos/tobychui/zoraxy/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/tobychui/zoraxy/releases/download/${RELEASE}/zoraxy_linux_amd64" -o zoraxy_linux_amd64
mkdir -p /opt/zoraxy
mv zoraxy_linux_amd64 /opt/zoraxy/zoraxy
chmod +x /opt/zoraxy/zoraxy
fetch_and_deploy_gh_release "zoraxy" "tobychui/zoraxy" "singlefile" "latest" "/opt/zoraxy" "zoraxy_linux_amd64"
ln -s /opt/zoraxy/zoraxy /usr/local/bin/zoraxy
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Zoraxy"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/zoraxy.service

View File

@@ -17,11 +17,9 @@ msg_info "Installing Dependencies"
$STD apt-get install -y apache2-utils
msg_ok "Installed Dependencies"
msg_info "Installing Zot Registry"
RELEASE=$(curl -fsSL https://api.github.com/repos/project-zot/zot/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/project-zot/zot/releases/download/${RELEASE}/zot-linux-amd64" -o /usr/bin/zot
chmod +x /usr/bin/zot
chown root:root /usr/bin/zot
fetch_and_deploy_gh_release "zot" "project-zot/zot" "singlefile" "latest" "/usr/bin" "zot-linux-amd64"
msg_info "Configuring Zot Registry"
mkdir -p /etc/zot
curl -fsSL https://raw.githubusercontent.com/project-zot/zot/refs/heads/main/examples/config-ui.json -o /etc/zot/config.json
ZOTPASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
@@ -31,8 +29,7 @@ $STD htpasswd -b -B -c /etc/zot/htpasswd admin "$ZOTPASSWORD"
echo "Zot User: admin"
echo "Zot Password: $ZOTPASSWORD"
} >>~/zot.creds
echo "${RELEASE}" >~/.${APPLICATION}
msg_ok "Installed Zot Registry"
msg_ok "Configured Zot Registry"
msg_info "Setup Service"
cat <<EOF >/etc/systemd/system/zot.service

View File

@@ -13,19 +13,15 @@ setting_up_container
network_check
update_os
msg_info "Installing Z-Wave JS UI"
mkdir -p /opt/zwave-js-ui
fetch_and_deploy_gh_release "zwave-js-ui" "zwave-js/zwave-js-ui" "prebuild" "latest" "/opt/zwave-js-ui" "zwave-js-ui*-linux.zip"
msg_info "Configuring Z-Wave JS UI"
mkdir -p /opt/zwave_store
cd /opt/zwave-js-ui
RELEASE=$(curl -fsSL https://api.github.com/repos/zwave-js/zwave-js-ui/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
curl -fsSL "https://github.com/zwave-js/zwave-js-ui/releases/download/${RELEASE}/zwave-js-ui-${RELEASE}-linux.zip" -o "zwave-js-ui-${RELEASE}-linux.zip"
$STD unzip zwave-js-ui-${RELEASE}-linux.zip
cat <<EOF >/opt/.env
ZWAVEJS_EXTERNAL_CONFIG=/opt/zwave_store/.config-db
STORE_DIR=/opt/zwave_store
EOF
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Z-Wave JS UI"
msg_ok "Configured Z-Wave JS UI"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/zwave-js-ui.service
@@ -50,7 +46,6 @@ motd_ssh
customize
msg_info "Cleaning up"
rm zwave-js-ui-${RELEASE}-linux.zip
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

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