Compare commits

...

392 Commits

Author SHA1 Message Date
vhsdream
43f02bfc4d Immich: remove commented out psql commands 2025-05-24 16:52:01 -04:00
vhsdream
8b89fb0b52 Immich: increase disk resource; add logic for determining upload location change
- Increasing disk resources to 20GB
- Adding 'IMMICH_MEDIA_LOCATION' env var to .env - edit this to change
Immich upload location
- Read IMMICH_MEDIA_LOCATION from env during update for dynamic symlinks
2025-05-24 13:41:23 -04:00
app-header-generator[bot]
1c484d21be
Update versions.json (#452)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-24 12:34:24 +00:00
app-header-generator[bot]
c5f88156e7
Update .app files (#451)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-24 06:40:50 +00:00
CanbiZ
39fd09330a
Merge pull request #446 from omiinaya/convertx
New Script: ConvertX
2025-05-24 08:40:30 +02:00
app-header-generator[bot]
941477b515
Update versions.json (#450)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-24 01:25:04 +00:00
vhsdream
42641590a9 Immich: increase disk to 16GB; add message about RAM usage for OpenVINO option 2025-05-23 13:11:36 -04:00
vhsdream
ba74e60fe3 Immich: test removal of psql extension commands 2025-05-23 08:58:33 -04:00
app-header-generator[bot]
b9919f8e83
Update versions.json (#449)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-23 12:37:26 +00:00
Michel Roegl-Brunner
42c2690c1e
Update delete_new_script.yaml 2025-05-23 12:55:36 +02:00
app-header-generator[bot]
6a040c95aa
Update .app files (#448)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-23 10:51:30 +00:00
CanbiZ
f1c93fc941 remove 2025-05-23 12:51:05 +02:00
CanbiZ
d2a41c0c61 update icons 2025-05-23 12:49:16 +02:00
CanbiZ
2741ef8498 dev create_lxc performance & stabl. 2025-05-23 12:47:35 +02:00
CanbiZ
21f7b6a63a test 2025-05-23 11:37:42 +02:00
CanbiZ
4321c41f22 performance lxc-creation 2025-05-23 11:31:05 +02:00
CanbiZ
c1b8f35715 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-23 11:25:48 +02:00
CanbiZ
bc6b9afabd Update create_lxc.sh 2025-05-23 11:25:46 +02:00
Omar
e49c02db8c correcting tar cleanup directory 2025-05-23 03:02:12 -04:00
Omar
f6775ba8a7 correcting build.func source 2025-05-23 03:00:24 -04:00
Omar
d0e2f720fc removing curl as not needed 2025-05-23 02:48:31 -04:00
Omar
cf2482cdd1 updating as requested 2025-05-23 02:47:05 -04:00
app-header-generator[bot]
7f0efac009
Update .app files (#447)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-23 06:29:59 +00:00
CanbiZ
88b1ca23f4 - 2025-05-23 08:29:34 +02:00
CanbiZ
4369db931c test 2025-05-23 08:27:13 +02:00
Omar
2173432f97 restarting after updating. 2025-05-23 00:22:48 -04:00
Omar
94beb36e17 init 2025-05-23 00:14:13 -04:00
app-header-generator[bot]
dbcd1db4dc
Update versions.json (#444)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-23 01:28:00 +00:00
vhsdream
7ab488e7f3 Immich.sh: Uninstall previous database extension package 2025-05-22 15:49:53 -04:00
vhsdream
58ad137936 Immich: alternate method of migration 2025-05-22 15:31:00 -04:00
vhsdream
0163e04f1c Immich: replace vectors.so with vchord.so in postgresql.conf 2025-05-22 13:20:39 -04:00
Tobias
c3ca49abc9
Update gitea-mirror-install.sh 2025-05-22 16:32:18 +02:00
Tobias
9ee42682a1
Update gitea-mirror.sh 2025-05-22 16:31:40 +02:00
Tobias
1a5e606a93
Create gitea-mirror-install.sh 2025-05-22 16:31:22 +02:00
Tobias
4e195d0aca
Update gitea-mirror.sh 2025-05-22 16:14:19 +02:00
CanbiZ
4185c237ca Update build.func 2025-05-22 14:57:32 +02:00
CanbiZ
9686d22890 Update build.func 2025-05-22 14:57:15 +02:00
CanbiZ
36ae2dab59 Update build.func 2025-05-22 14:55:49 +02:00
CanbiZ
74931496f6 Update build.func 2025-05-22 14:53:54 +02:00
CanbiZ
de9b58b5e7 Update build.func 2025-05-22 14:52:25 +02:00
CanbiZ
6f0848be86 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-22 14:46:01 +02:00
CanbiZ
c938d74ecb Update build.func 2025-05-22 14:46:00 +02:00
app-header-generator[bot]
29ceeec5b0
Update versions.json (#443)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 12:39:30 +00:00
CanbiZ
973b1b03d2 Update build.func 2025-05-22 14:33:02 +02:00
CanbiZ
4a1a4b949c Update build.func 2025-05-22 14:31:15 +02:00
CanbiZ
563769904f test 2025-05-22 14:25:39 +02:00
CanbiZ
c829611d1a Update build.func 2025-05-22 14:24:33 +02:00
CanbiZ
6924312beb Update argus.sh 2025-05-22 14:21:32 +02:00
CanbiZ
41dd87877b Update build.func 2025-05-22 14:20:11 +02:00
CanbiZ
8ea8e23898 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-22 14:18:21 +02:00
CanbiZ
aa030679a7 Update build.func 2025-05-22 14:18:20 +02:00
vhsdream
bc0554a987 Immich: change env to use vectorchord 2025-05-22 08:15:10 -04:00
CanbiZ
4f3b893e7d Update api.func 2025-05-22 14:14:02 +02:00
CanbiZ
8f03b009cb Update argus.sh 2025-05-22 14:13:10 +02:00
CanbiZ
eef5977f4f Update argus-install.sh 2025-05-22 14:10:54 +02:00
CanbiZ
9038a1d43d Update pulse.sh 2025-05-22 14:09:00 +02:00
CanbiZ
2a925def1d Update pulse.sh 2025-05-22 13:57:21 +02:00
CanbiZ
bf332429b7 Update pulse.sh 2025-05-22 13:57:07 +02:00
CanbiZ
e64dea0ee2 Update pulse.sh 2025-05-22 13:55:21 +02:00
CanbiZ
a19483bc5b Update pulse.sh 2025-05-22 13:54:19 +02:00
CanbiZ
90cd1745f2 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-22 13:53:39 +02:00
CanbiZ
491683276f Update pulse.sh 2025-05-22 13:53:23 +02:00
vhsdream
d0d1f25860 immich.sh: fix issue with sed command 2025-05-22 07:27:08 -04:00
vhsdream
e832770c41 Immich: remove build-lock copy command 2025-05-22 07:14:38 -04:00
CanbiZ
76506bcbfd Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-22 13:13:47 +02:00
CanbiZ
4fb5911400 Update pulse-install.sh 2025-05-22 13:13:46 +02:00
vhsdream
d82a6cc91c fix immich.sh 2025-05-22 07:00:33 -04:00
CanbiZ
b5e17cdaeb Update pulse-install.sh 2025-05-22 12:24:37 +02:00
CanbiZ
b9b85f5782 Update pulse-install.sh 2025-05-22 12:23:47 +02:00
CanbiZ
94a5104975 Update pulse.json 2025-05-22 12:22:50 +02:00
CanbiZ
1aa4e654d3 Update pulse-install.sh 2025-05-22 12:13:02 +02:00
CanbiZ
5a0f0dc934 Update pulse-install.sh 2025-05-22 12:07:11 +02:00
CanbiZ
dadf2d929d fix json 2025-05-22 12:05:51 +02:00
CanbiZ
a03ed4d018 Update pulse-install.sh 2025-05-22 12:03:53 +02:00
CanbiZ
378ad7e7f2 Update pulse-install.sh 2025-05-22 12:03:02 +02:00
CanbiZ
92445d4ae8 fixes 2025-05-22 11:53:51 +02:00
CanbiZ
ce23c8146a FUSE 2025-05-22 11:09:41 +02:00
CanbiZ
c976dd4184 Update pve-privilege-converter.sh 2025-05-22 11:00:28 +02:00
CanbiZ
08fb1cce8b Update pve-privilege-converter.sh 2025-05-22 10:55:40 +02:00
CanbiZ
d2d54c1bf1 Update pve-privilege-converter.sh 2025-05-22 10:52:20 +02:00
CanbiZ
380318d545 Update pve-privilege-converter.sh 2025-05-22 10:48:54 +02:00
CanbiZ
493aa8dfe2 test 2025-05-22 10:47:54 +02:00
app-header-generator[bot]
f2aca21d24
Update .app files (#442)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-22 08:44:32 +00:00
CanbiZ
0dd24be0be Update generate-app-headers.sh 2025-05-22 10:42:41 +02:00
CanbiZ
a44a13f81b fixes 2025-05-22 10:37:09 +02:00
CanbiZ
3e8f4cc4ba Update lyrionmusicserver-install.sh 2025-05-22 10:32:39 +02:00
CanbiZ
5c106d65d0 privilege converter 2025-05-22 10:30:51 +02:00
app-header-generator[bot]
c5e8428e68
Update .app files (#441)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-22 05:02:58 +00:00
Omar Minaya
46973e6118
rebasing... (#438) 2025-05-22 05:02:39 +00:00
Tobias
a0633e94f8
start work on gitea-mirror script 2025-05-22 07:02:21 +02:00
vhsdream
d5e4de57e1 Immich: Untested fix for 1.133.0
- checks if installed version is <1.133.0 and upgrades/migrates to
VectorChord in immich.sh
- Fresh install now uses VectorChord in immich-install.sh
2025-05-21 22:20:44 -04:00
app-header-generator[bot]
2f58662ff7
Update versions.json (#439)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-22 01:27:55 +00:00
CanbiZ
835090396a Update healthchecks-install.sh 2025-05-21 15:23:07 +02:00
CanbiZ
562aa611f0 Update healthchecks-install.sh 2025-05-21 15:03:16 +02:00
CanbiZ
db79261e56 Update healthchecks-install.sh 2025-05-21 14:59:39 +02:00
CanbiZ
1fd66479f6 test 2025-05-21 14:58:16 +02:00
app-header-generator[bot]
f554b54c4d
Update .app files (#435)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-21 12:38:58 +00:00
CanbiZ
fcc33fb2b2 fix some things 2025-05-21 14:38:32 +02:00
CanbiZ
d0561b05a8 Update debian-install.sh 2025-05-21 12:41:09 +02:00
CanbiZ
21d96e62a1 Update immich-install.sh 2025-05-21 11:20:33 +02:00
CanbiZ
583f137424 cleanup 2025-05-21 10:09:43 +02:00
CanbiZ
d0c0fd2a72 update icons 2025-05-21 08:59:09 +02:00
CanbiZ
e10e31211a some fixes 2025-05-21 08:52:52 +02:00
CanbiZ
2aaa7ee87a Update configarr.sh 2025-05-21 08:36:27 +02:00
CanbiZ
92ca930cae fixes 2025-05-21 08:27:00 +02:00
app-header-generator[bot]
e43ecba808
Update .app files (#432)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-21 06:27:00 +00:00
CanbiZ
9982d8eeb6
Merge pull request #416 from omiinaya/kasm
New Script: Kasm
2025-05-21 08:26:29 +02:00
app-header-generator[bot]
b509f1203c
Update versions.json (#431)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-21 01:37:02 +00:00
Omar Minaya
df0839f8d6 applying suggested changes. 2025-05-20 15:49:25 -04:00
Omar Minaya
118d744f54 applying suggested changes. 2025-05-20 15:14:45 -04:00
Omar Minaya
e75ddec54a correcting build.func source 2025-05-20 14:38:37 -04:00
Omar Minaya
7b0864596b using new build.func for tun and fuse 2025-05-20 14:37:19 -04:00
Omar Minaya
e392e5722d Merge branch 'main' of https://github.com/omiinaya/ProxmoxVED into kasm 2025-05-20 14:36:37 -04:00
CanbiZ
46497cdc8d Update build.func 2025-05-20 17:12:34 +02:00
CanbiZ
f6fbb209e9 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-20 17:11:37 +02:00
CanbiZ
9f612cafbb test 2025-05-20 17:11:07 +02:00
app-header-generator[bot]
5c253045d8
[core] update .app files (#430)
* Update argus.sh

* Update .app files

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-20 15:10:59 +00:00
app-header-generator[bot]
0f2af7f39f
Update .app files (#429)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-20 15:10:49 +00:00
CanbiZ
16d6e24f16 Update argus.sh 2025-05-20 17:10:33 +02:00
CanbiZ
5cce814831 Update argus.sh 2025-05-20 17:10:22 +02:00
CanbiZ
c2530348ee Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-20 17:08:46 +02:00
CanbiZ
ee8a808c29 Update build.func 2025-05-20 17:08:45 +02:00
CanbiZ
4e8067e485
Merge pull request #303 from aliaksei135/garmin-grafana
Add garmin-grafana LXC script
2025-05-20 16:57:13 +02:00
CanbiZ
1adf9d06ef
Merge pull request #260 from rcourtman/add-pulse
Add Pulse LXC script
2025-05-20 16:56:56 +02:00
app-header-generator[bot]
683d0e7279
Update versions.json (#427)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-20 12:39:51 +00:00
85c2c99b12 Add LXC-Updater 2025-05-20 14:07:15 +02:00
tremor021
8e1d8bdefa Update oweb 2025-05-20 11:20:04 +02:00
tremor021
98368bdd1b update 2025-05-20 10:54:39 +02:00
CanbiZ
6b1a5349ca Update tools.func 2025-05-20 10:08:34 +02:00
17a862c810 Config File 2025-05-20 10:03:23 +02:00
4cd307543a Config File 2025-05-20 10:02:14 +02:00
cb477e91f1 Config File 2025-05-20 09:59:55 +02:00
7edc2132c2 Config File 2025-05-20 09:57:58 +02:00
957ba3c430 Config File 2025-05-20 09:57:50 +02:00
aebc3cddde Config File 2025-05-20 09:54:41 +02:00
ef0fcb96a1 Config File 2025-05-20 09:52:16 +02:00
24dc2c887a Config File 2025-05-20 09:46:16 +02:00
b8e3bb02d3 Config File 2025-05-20 09:45:04 +02:00
5bdcf2f2bd Config File 2025-05-20 09:43:20 +02:00
77080e6fb5 Config File 2025-05-20 09:38:35 +02:00
27da0b98fe Config File 2025-05-20 09:38:35 +02:00
CanbiZ
d7c78f3269 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-20 09:36:40 +02:00
ece6c7c07b Config File 2025-05-20 09:32:58 +02:00
CanbiZ
bfcd955c0b - 2025-05-20 09:32:49 +02:00
CanbiZ
09273f00dd Update install.func 2025-05-20 09:31:52 +02:00
CanbiZ
3684c3d3b2 Update build.func 2025-05-20 09:31:38 +02:00
CanbiZ
87143ae90f Update core.func 2025-05-20 09:31:04 +02:00
CanbiZ
91852f78ca Update build.func 2025-05-20 09:29:32 +02:00
CanbiZ
5161a371ed Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-20 09:27:27 +02:00
CanbiZ
5f5478b19f test 2025-05-20 09:27:11 +02:00
c3420494dd Config File 2025-05-20 09:26:50 +02:00
74bcd30ef3 Config File 2025-05-20 09:25:32 +02:00
a8bb5347a3 Config File 2025-05-20 09:24:45 +02:00
5f8f57023f Config File 2025-05-20 09:22:00 +02:00
CanbiZ
0e626b5028 reverted 2025-05-20 09:19:14 +02:00
CanbiZ
8428c9a449 test 2025-05-20 09:16:53 +02:00
CanbiZ
cd808970cc Update build.func 2025-05-20 09:14:07 +02:00
CanbiZ
b26c438707 Update build.func 2025-05-20 09:11:42 +02:00
CanbiZ
e1edebd91c Update build.func 2025-05-20 09:02:25 +02:00
CanbiZ
10b980fb86 trap handler 2025-05-20 08:52:48 +02:00
app-header-generator[bot]
1f98e049d2
Update versions.json (#426)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-20 01:37:01 +00:00
tremor021
b8e8a5048b Update oweb 2025-05-19 23:23:05 +02:00
tremor021
e59cc56253 Update oweb 2025-05-19 22:48:48 +02:00
app-header-generator[bot]
cc51e7d9c9
Update .app files (#425)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-19 20:36:43 +00:00
tremor021
2da7eaa41a test 2025-05-19 22:36:09 +02:00
CanbiZ
21bd9618c0 Update argus.json 2025-05-19 14:47:49 +02:00
CanbiZ
1fab51e698 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-19 14:45:22 +02:00
CanbiZ
9d3dea7950 Create argus.json 2025-05-19 14:45:16 +02:00
app-header-generator[bot]
fa09116826
Update .app files (#424)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-19 12:43:41 +00:00
CanbiZ
6e9e4fdcba Argus 2025-05-19 14:43:19 +02:00
app-header-generator[bot]
dd97a162ee
Update versions.json (#423)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-19 12:39:56 +00:00
CanbiZ
8e172e1fd1 Create argus-install.sh 2025-05-19 14:38:26 +02:00
app-header-generator[bot]
cd5be58c84
Update .app files (#421)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-19 11:32:06 +00:00
CanbiZ
b033ef7619 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-19 13:31:42 +02:00
CanbiZ
764a21ef09 Update alpine-homarr.sh 2025-05-19 13:31:38 +02:00
app-header-generator[bot]
a5f64865a6
Update .app files (#420)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-19 11:29:04 +00:00
CanbiZ
fd9889bf8a test 2025-05-19 13:28:43 +02:00
app-header-generator[bot]
d0742ccc0b
Update .app files (#418)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-19 08:03:29 +00:00
finkerle
fcea354de2
Add install script for configarr (#401) 2025-05-19 10:03:09 +02:00
Omar
5bd9c47128 Merge branch 'main' of https://github.com/omiinaya/ProxmoxVED into kasm 2025-05-18 22:09:30 -04:00
Omar
df13dd31b2 init 2025-05-18 21:49:44 -04:00
app-header-generator[bot]
0cc61a148f
Update versions.json (#417)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-19 01:40:24 +00:00
vhsdream
b59473fcf1 immich.sh: use existing array to update installed library revisions file 2025-05-18 18:19:36 -04:00
vhsdream
2569cadee3 immich.sh: correct paths for library revisions and revamp comparison logic 2025-05-18 18:15:57 -04:00
vhsdream
39c97b9aa0 Immich-install.sh: correct paths for libjxl patches 2025-05-18 16:16:32 -04:00
vhsdream
87283b61d2 Immich-install.sh: add labels to library revision tracking 2025-05-18 16:06:58 -04:00
Tobias
eb143cc65a
Update homarr.sh 2025-05-18 19:55:05 +02:00
Tobias
49e71dc56a
Update homarr.sh 2025-05-18 19:52:54 +02:00
Tobias
247f056231
Update homarr.sh 2025-05-18 19:46:58 +02:00
Tobias
0f0a5feaa7
Update homarr.sh 2025-05-18 19:46:15 +02:00
Tobias
00bbe722b7
Update homarr.sh 2025-05-18 19:44:03 +02:00
Tobias
5eb5062a27
Update homarr.sh 2025-05-18 19:41:11 +02:00
Tobias
563270cb5e
Update homarr.sh 2025-05-18 19:34:03 +02:00
Tobias
9004f93ddc
Update homarr.sh 2025-05-18 19:28:37 +02:00
app-header-generator[bot]
36e7dfafff
Update .app files (#414)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-18 15:29:53 +00:00
tremor021
d950fa275e Update app title 2025-05-18 17:29:18 +02:00
app-header-generator[bot]
e561064e85
Update .app files (#413)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-18 15:23:38 +00:00
tremor021
2a6341c952 Add jitsi-meet script 2025-05-18 17:22:58 +02:00
vhsdream
77103dce4b Immich: fix paths to versioned json for image-processing builds 2025-05-18 10:09:22 -04:00
Bas van den Berg
b01fa88815 Fix issues 2025-05-18 15:24:10 +02:00
Bas van den Berg
6405db3a53 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-18 15:12:54 +02:00
Bas van den Berg
bcf0a65cd4 Update bar-assistant-install.sh 2025-05-18 15:12:45 +02:00
app-header-generator[bot]
4bc100b31d
Update versions.json (#412)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-18 12:34:59 +00:00
Bas van den Berg
0f0d883e96 Update bar-assistant-install.sh 2025-05-18 10:43:29 +02:00
Bas van den Berg
728d0b6c78 Update bar-assistant-install.sh 2025-05-18 10:26:33 +02:00
app-header-generator[bot]
752069af38
Update versions.json (#411)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-18 01:41:07 +00:00
app-header-generator[bot]
8634d3f88b
Update versions.json (#410)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-17 12:34:35 +00:00
Bas van den Berg
4a9e202c9c Update bar-assistant-install.sh 2025-05-17 12:13:26 +02:00
app-header-generator[bot]
daf76da6c9
Update versions.json (#409)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-17 01:26:42 +00:00
tremor021
4b12e672d4 Update homarr 2025-05-16 23:22:56 +02:00
Tobias
d593d4e8ad
Update homarr.sh 2025-05-16 23:15:11 +02:00
Tobias
8c881cbe26
Update homarr.sh 2025-05-16 23:11:18 +02:00
Tobias
34fc83e475
Update homarr.sh 2025-05-16 23:09:44 +02:00
Tobias
30abe3e9bc
Update homarr.sh 2025-05-16 22:46:49 +02:00
Tobias
80b63ac95d
Update homarr.sh 2025-05-16 22:40:13 +02:00
Tobias
42f61c1f5b
Update homarr.sh 2025-05-16 22:32:49 +02:00
app-header-generator[bot]
f101782fcb
Update .app files (#408)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-16 20:31:11 +00:00
Tobias
83af3038da
Update homarr.sh 2025-05-16 22:30:51 +02:00
app-header-generator[bot]
efcbd6c3ae
Update versions.json (#407)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-16 12:39:11 +00:00
1c7909cf19 Refactor variable assignments in build function for enhanced configuration management 2025-05-16 12:20:08 +02:00
d76551cd43 Improve APT-Cacher IP validation and handling in config_file function 2025-05-16 12:17:33 +02:00
adb5031166 Add default values for unset variables in build function for improved handling 2025-05-16 12:13:39 +02:00
ccc3c72bb9 Update password check in config_file function for clarity and consistency 2025-05-16 12:08:44 +02:00
19d6c289a7 Add default values for unset variables in build function for improved robustness 2025-05-16 12:07:47 +02:00
8b44ac6874 Add additional variable assignments in build function for improved configuration handling 2025-05-16 12:05:12 +02:00
bd5eeaca30 Update password handling in config_file function to use PW_CONFIG for clarity and improve validation checks 2025-05-16 11:09:29 +02:00
8fb0cc90a7 Fix VERBOSE variable assignment for consistency in build function 2025-05-16 11:04:11 +02:00
6ab44f93e9 Update VERBOSE variable assignment to use VERB for consistency in build function 2025-05-16 11:02:32 +02:00
30d0b807b8 Refactor config_file function to improve variable expansion handling for SSH and VERBOSE checks 2025-05-16 11:01:09 +02:00
033ec6731a Set default value for TAGS in config_file function to ensure tags are initialized 2025-05-16 11:00:26 +02:00
c6613d71d4 test 2025-05-16 10:59:02 +02:00
676a85f99e test 2025-05-16 10:57:57 +02:00
5b6882f13f Fix indentation in config_file function to ensure proper script execution flow 2025-05-16 10:56:40 +02:00
749f22c72b Enhance config_file function to improve MAC address validation by allowing unset variable expansion 2025-05-16 10:55:18 +02:00
741e2942db Enhance config_file function to improve APT-Cacher IP, MTU, DNS settings, VLAN, Tags, SSH access, and Verbose mode handling with user prompts and validation 2025-05-16 10:54:45 +02:00
a0ffccfb5a Enhance config_file function to improve static IP and gateway input handling with user prompts and validation 2025-05-16 10:46:23 +02:00
7044e01015 Enhance config_file function to improve CPU and RAM allocation handling with user prompts and validation 2025-05-16 10:43:38 +02:00
5f6063f57d Enhance config_file function to improve hostname and disk size input handling with user prompts and validation 2025-05-16 10:41:29 +02:00
36809a99dc Enhance config_file function to implement robust password validation and user feedback for root password setup 2025-05-16 10:40:19 +02:00
d8947336f3 Refactor config_file function to improve handling of empty Container Type and enhance user interaction with whiptail for type selection 2025-05-16 10:38:36 +02:00
ffb7e4acd2 Enhance config_file function to handle empty Container ID and improve password variable expansion syntax 2025-05-16 10:36:59 +02:00
f9ef70473f Fix variable expansion syntax in config_file function 2025-05-16 10:35:21 +02:00
0321d3d0a4 Fix variable expansion syntax in config_file function 2025-05-16 10:34:38 +02:00
000126e2a7 Remove unnecessary blank lines and redundant base_settings call in build.func 2025-05-16 10:32:59 +02:00
4356a5592b librenms 2025-05-16 10:30:49 +02:00
5da4211b0f Remove redundant base_settings call in config_file function 2025-05-16 10:24:56 +02:00
07d02737ee librenms 2025-05-16 10:23:28 +02:00
b22e74a85a librenms 2025-05-16 10:21:08 +02:00
1014bd7638 librenms 2025-05-16 09:48:50 +02:00
3ad3d4a626 librenms 2025-05-16 09:42:42 +02:00
253d2a5b7d librenms 2025-05-16 09:35:23 +02:00
ba6dcbba4f librenms 2025-05-16 09:28:31 +02:00
CanbiZ
14c38d4193 fix media 2025-05-16 09:15:46 +02:00
9d2a50057a SSH_KEY 2025-05-16 09:10:42 +02:00
CanbiZ
a74990fb56 add babybuddy json 2025-05-16 09:09:48 +02:00
CanbiZ
971c902f3e Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-16 09:05:27 +02:00
CanbiZ
f8c9a2fa9d Update babybuddy-install.sh 2025-05-16 09:05:26 +02:00
01702a24fe Cleanup 2025-05-16 09:02:33 +02:00
b9af9155ea Changes to build.func 2025-05-16 08:55:56 +02:00
f3dfd62c16 Changes to build.func 2025-05-16 08:55:11 +02:00
CanbiZ
d3d9a7594c Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-16 08:54:46 +02:00
CanbiZ
dc77419b09 finalize 2025-05-16 08:54:37 +02:00
cb82dfb0d4 Changes to build.func 2025-05-16 08:53:30 +02:00
CanbiZ
79e83e12d0 Update babybuddy-install.sh 2025-05-16 08:45:44 +02:00
CanbiZ
09b1572c90 Update babybuddy-install.sh 2025-05-16 08:35:44 +02:00
CanbiZ
e389f015f6 Update babybuddy-install.sh 2025-05-16 08:14:07 +02:00
app-header-generator[bot]
ae69dfd36e
Update versions.json (#402)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-16 01:28:06 +00:00
d0fc6883cc Update debian 2025-05-15 16:26:32 +02:00
13e1503515 Tesing 2025-05-15 16:25:44 +02:00
9f6fde840f testing 2025-05-15 16:21:36 +02:00
931acfbfa4 Testing 2025-05-15 16:18:54 +02:00
CanbiZ
bda95f7a79 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 16:15:48 +02:00
CanbiZ
3fe924e0ca Update create_lxc.sh 2025-05-15 16:15:41 +02:00
0580b1d653 test 2025-05-15 16:13:35 +02:00
CanbiZ
6f8b0a6064 Update create_lxc.sh 2025-05-15 16:13:14 +02:00
CanbiZ
3bb7400985 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 16:11:45 +02:00
CanbiZ
8611b3ea2a Update create_lxc.sh 2025-05-15 16:11:40 +02:00
59426da3e0 tools.func 2025-05-15 16:11:08 +02:00
CanbiZ
f2dd5b140f Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 16:10:47 +02:00
CanbiZ
0c39423a5c Update create_lxc.sh 2025-05-15 16:10:40 +02:00
d9be26d116 build.func 2025-05-15 16:10:17 +02:00
92e75854cb Testing 2025-05-15 16:07:15 +02:00
bc001ed6e3 move ct_deletion 2025-05-15 16:06:13 +02:00
CanbiZ
a7cc9a39ca Update tools.func 2025-05-15 16:04:16 +02:00
CanbiZ
9eb3c07789 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 16:04:06 +02:00
CanbiZ
15d87886e3 Update tools.func 2025-05-15 16:03:33 +02:00
1b963854ce ... 2025-05-15 16:02:56 +02:00
CanbiZ
0c9c28a3e7 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 15:59:52 +02:00
CanbiZ
a4041e4fe5 Update tools.func 2025-05-15 15:59:51 +02:00
2b14665c29 build.func 2025-05-15 15:57:51 +02:00
CanbiZ
918c5051b1 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 15:53:51 +02:00
CanbiZ
bee5db8d15 Update core.func 2025-05-15 15:53:44 +02:00
17429010f4 debian-install.sh 2025-05-15 15:52:52 +02:00
CanbiZ
b94f384c7b Update core.func 2025-05-15 15:49:03 +02:00
CanbiZ
f50126511a Update tools.func 2025-05-15 15:47:10 +02:00
cc7b4102bb Try even harder to silence composer 2025-05-15 15:44:17 +02:00
20c27aa959 test remove script 2025-05-15 15:42:53 +02:00
CanbiZ
63b4e0a627 Update core.func 2025-05-15 15:42:24 +02:00
CanbiZ
1110ed29fc test 2025-05-15 15:39:21 +02:00
f947cb8338 build.func 2025-05-15 15:37:45 +02:00
CanbiZ
72e58aa982 Update debian-install.sh 2025-05-15 15:33:53 +02:00
CanbiZ
d79b5f9ef6 Update install.func 2025-05-15 15:29:09 +02:00
CanbiZ
4ccfe1e4ea Update core.func 2025-05-15 15:27:47 +02:00
7e6453a45a librenms 2025-05-15 15:26:44 +02:00
c5963f8a21 Try and silence composer 2025-05-15 15:25:06 +02:00
CanbiZ
e3d650ae8b testing spinner alpine 2025-05-15 15:21:39 +02:00
818f74ee15 changes to install_php 2025-05-15 15:15:58 +02:00
CanbiZ
bd088f0df2 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 15:10:50 +02:00
CanbiZ
0f2e609a42 testing 2025-05-15 15:10:44 +02:00
7836b8d411 DNSOK 2025-05-15 15:10:13 +02:00
CanbiZ
4ff77c52dc Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 15:07:08 +02:00
CanbiZ
d117ac6263 feature dnscheck 2025-05-15 15:06:49 +02:00
ef9cf17bdd Change CM and cross in dns check 2025-05-15 15:04:34 +02:00
CanbiZ
0c68aba810 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 15:02:44 +02:00
CanbiZ
9d4af5021b add fatal 2025-05-15 15:02:36 +02:00
3c1f478251 librenms 2025-05-15 15:01:12 +02:00
CanbiZ
1c9d0d9665 Update install.func 2025-05-15 14:59:20 +02:00
CanbiZ
5c8d79257e Update install.func 2025-05-15 14:57:56 +02:00
CanbiZ
dd85942058 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 14:52:57 +02:00
CanbiZ
4a9a5ab64c Update core.func 2025-05-15 14:52:55 +02:00
2e8e4101e4 librenms 2025-05-15 14:41:46 +02:00
7c09f84031 Silence composer 2025-05-15 14:40:21 +02:00
CanbiZ
fb1b651b3c Update core.func 2025-05-15 14:39:56 +02:00
CanbiZ
3d5467f0e5 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 14:38:36 +02:00
CanbiZ
015fd29065 Update install.func 2025-05-15 14:38:34 +02:00
app-header-generator[bot]
3453421ff7
Update versions.json (#400)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-15 12:38:31 +00:00
23c5acb9d6 Add git.community-scripts.org to dns check 2025-05-15 14:36:58 +02:00
bb519910b6 Librenms 2025-05-15 14:34:24 +02:00
CanbiZ
48361da65d Update install.func 2025-05-15 14:32:35 +02:00
CanbiZ
be202679bb Update core.func 2025-05-15 14:27:53 +02:00
CanbiZ
89e5720cc2 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 14:26:05 +02:00
CanbiZ
4c2a3157ce Update install.func 2025-05-15 14:26:03 +02:00
e6acb092b3 Freepbx.json 2025-05-15 14:25:25 +02:00
CanbiZ
b60fca3307 Update core.func 2025-05-15 14:25:12 +02:00
CanbiZ
d92fa651db Update core.func 2025-05-15 14:15:12 +02:00
CanbiZ
cae912d5ec Update core.func 2025-05-15 14:12:29 +02:00
CanbiZ
f259e06a97 Update create_lxc.sh 2025-05-15 14:06:00 +02:00
CanbiZ
6d02ec4000 Update core.func 2025-05-15 14:05:40 +02:00
CanbiZ
8198a3c0c3 Update create_lxc.sh 2025-05-15 14:02:57 +02:00
CanbiZ
644b9fec83 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 13:59:34 +02:00
CanbiZ
3734deb56f Update tools.func 2025-05-15 13:59:33 +02:00
aa46a88665 librenms 2025-05-15 13:55:40 +02:00
CanbiZ
4d3492083c Update create_lxc.sh 2025-05-15 13:55:11 +02:00
CanbiZ
38c3e318a6 Update install.func 2025-05-15 13:41:50 +02:00
CanbiZ
0731a296f5 Update core.func 2025-05-15 13:37:18 +02:00
CanbiZ
b8e9eda05b Update core.func 2025-05-15 13:34:29 +02:00
CanbiZ
18f3b2a941 Update core.func 2025-05-15 13:14:16 +02:00
CanbiZ
e59cd135df Update core.func 2025-05-15 13:07:44 +02:00
2ae6d0abc5 Update build.func 2025-05-15 11:43:54 +02:00
CanbiZ
d8a5421a11 Update core.func 2025-05-15 11:41:49 +02:00
CanbiZ
ecd561f525 Update install.func 2025-05-15 11:36:17 +02:00
CanbiZ
04d2af78a7 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 11:35:54 +02:00
CanbiZ
ae4fcc9546 Update install.func 2025-05-15 11:35:53 +02:00
362da467da Updates 2025-05-15 11:34:44 +02:00
0a07f34b4b Updates 2025-05-15 11:33:14 +02:00
CanbiZ
c7ba6705aa Update core.func 2025-05-15 11:29:06 +02:00
CanbiZ
79533c055b Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 11:25:13 +02:00
CanbiZ
5d8318df47 github resolve DNS 2025-05-15 11:25:12 +02:00
626ecd2248 Updates 2025-05-15 11:23:10 +02:00
CanbiZ
937d2f574c Update core.func 2025-05-15 11:12:13 +02:00
CanbiZ
4bd4f3d9cd Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 11:11:44 +02:00
CanbiZ
35987d3a44 Update core.func 2025-05-15 11:11:38 +02:00
e09f7f5309 LibreNMS 2025-05-15 11:11:26 +02:00
CanbiZ
cac10d70ea Update core.func 2025-05-15 11:06:11 +02:00
CanbiZ
add348f462 Update core.func 2025-05-15 11:02:27 +02:00
CanbiZ
81d9c15713 Update core.func 2025-05-15 10:54:34 +02:00
CanbiZ
6e23df9da4 test 2025-05-15 10:50:47 +02:00
CanbiZ
5f7c5deb17 Update core.func 2025-05-15 10:45:23 +02:00
CanbiZ
006d9e3c66 Update core.func 2025-05-15 10:44:58 +02:00
CanbiZ
d483aee0d9 move 2025-05-15 10:42:33 +02:00
CanbiZ
3e3ba480e4 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 10:37:28 +02:00
app-header-generator[bot]
69cca43f5c
Update versions.json (#399)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-15 08:37:31 +00:00
CanbiZ
ca8ae41880 switch scripts to deferred 2025-05-15 10:37:20 +02:00
b14c1b8b5d Changes to workflow 2025-05-15 10:36:18 +02:00
CanbiZ
103e585802 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 10:32:44 +02:00
CanbiZ
5cce8e6efd Update core.func 2025-05-15 10:32:37 +02:00
app-header-generator[bot]
4db0956d83
Update .app files (#397)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-05-15 08:32:27 +00:00
39825cd0cd Changes to workflow 2025-05-15 10:30:24 +02:00
CanbiZ
57a832e476 debug 2025-05-15 10:29:18 +02:00
5ea60410aa Changes to workflow 2025-05-15 10:27:12 +02:00
18a30817af Changes to workflow 2025-05-15 10:26:19 +02:00
CanbiZ
6bf0d438f9 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 10:21:15 +02:00
CanbiZ
789fcf3851 test 2025-05-15 10:21:12 +02:00
Aliaksei Pilko
c21a9345ec PR fixes 2025-05-09 19:45:24 +01:00
Aliaksei Pilko
7d45266c30 Change URLs back to community-scripts 2025-05-09 16:47:02 +01:00
Aliaksei Pilko
89cf0e3b52 Add garmin-grafana scripts 2025-05-09 16:35:24 +01:00
CanbiZ
b30110413f
Update pulse-install.sh 2025-05-05 15:26:16 +02:00
courtmanr@gmail.com
1e7e26acf6 Refactor(update): Remove version file missing warning 2025-05-04 23:54:51 +01:00
courtmanr@gmail.com
2a50bf6ab9 Refactor(update): Address reviewer feedback on update script 2025-05-04 23:49:48 +01:00
courtmanr@gmail.com
65d85674cf Refactor: Remove shellcheck disable comments per reviewer feedback 2025-05-04 23:48:23 +01:00
courtmanr@gmail.com
a7a7988360 Refactor: Remove comments per reviewer feedback 2025-05-04 23:44:26 +01:00
courtmanr@gmail.com
8bce4aa4c1 Add Pulse LXC script and JSON definition 2025-05-04 22:51:41 +01:00
137 changed files with 4969 additions and 2512 deletions

View File

@ -105,10 +105,10 @@ jobs:
run: |
git config --global user.name "github-actions-automege[bot]"
git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[0].number')
if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve
gh pr merge $PR_NUMBER --squash --admin
gh pr review "$PR_NUMBER" --approve
gh pr merge "$PR_NUMBER" --squash --admin
fi
# Step 8: Output success message when no changes

View File

@ -59,7 +59,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
branch=$(echo "delete-files_${{ github.event.issue.number }}_${TITLE}" | tr '[:upper:]' '[:lower:]' | sed 's/ /_/g')
branch="delete_files"
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git checkout -b $branch
@ -72,7 +72,7 @@ jobs:
exit 0
fi
git commit -m "Deleted files for issue: ${{ github.event.issue.title }}"
git push origin $branch
git push origin $branch --force
gh pr create --title "Delete Files for ${{ github.event.issue.title }} after Merge to Main" --body "Delete files after merge in main repo." --base main --head $branch
pr_number=$(gh pr list | grep -m 1 $branch | awk '{print $1}')

View File

@ -121,8 +121,8 @@ jobs:
run: |
git config --global user.name "github-actions-automege[bot]"
git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[0].number')
if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve
gh pr merge $PR_NUMBER --squash --admin
gh pr review "$PR_NUMBER" --approve
gh pr merge "$PR_NUMBER" --squash --admin
fi

View File

@ -1,34 +1,50 @@
#!/usr/bin/env bash
# Base directory for headers
headers_dir="./ct/headers"
# Function for generating Figlet headers
generate_headers() {
local base_dir=$1
local target_subdir=$2
local search_pattern=$3
# Ensure the headers directory exists and clear it
mkdir -p "$headers_dir"
rm -f "$headers_dir"/*
local headers_dir="${base_dir}/headers"
mkdir -p "$headers_dir"
rm -f "$headers_dir"/*
# Find all .sh files in ./ct directory, sorted alphabetically
find ./ct -type f -name "*.sh" | sort | while read -r script; do
# Extract the APP name from the APP line
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
if [[ -n "$app_name" ]]; then
# Define the output file name in the headers directory
output_file="${headers_dir}/$(basename "${script%.*}")"
# Generate figlet output
figlet_output=$(figlet -w 500 -f slant "$app_name")
# Check if figlet output is not empty
if [[ -n "$figlet_output" ]]; then
echo "$figlet_output" > "$output_file"
echo "Generated: $output_file"
else
echo "Figlet failed for $app_name in $script"
fi
# Recursive or non-recursive search
if [[ "$search_pattern" == "**" ]]; then
shopt -s globstar nullglob
file_list=("${base_dir}"/**/*.sh)
shopt -u globstar
else
echo "No APP name found in $script, skipping."
file_list=("${base_dir}"/*.sh)
fi
done
echo "Completed processing .sh files."
for script in "${file_list[@]}"; do
[[ -f "$script" ]] || continue
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
if [[ -n "$app_name" ]]; then
output_file="${headers_dir}/$(basename "${script%.*}")"
figlet_output=$(figlet -w 500 -f slant "$app_name")
if [[ -n "$figlet_output" ]]; then
echo "$figlet_output" >"$output_file"
echo "Generated: $output_file"
else
echo "Figlet failed for $app_name in $script"
fi
else
echo "No APP name found in $script, skipping."
fi
done
}
# ct
generate_headers "./ct" "headers" "*"
# tools (addon, pve, ...)
generate_headers "./tools" "headers" "**"
# vm
generate_headers "./vm" "headers" "*"
echo "Completed processing all sections."

View File

@ -1,89 +0,0 @@
#!/usr/bin/env bash
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/bitmagnet-io/bitmagnet
APP="Alpine-bitmagnet"
var_tags="${var_tags:-alpine;torrent}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-256}"
var_disk="${var_disk:-3}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
if [[ ! -d /opt/bitmagnet ]]; then
msg_error "No ${APP} Installation Found!"
exit 1
fi
RELEASE=$(curl -s https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [ "${RELEASE}" != "$(cat /opt/bitmagnet_version.txt)" ] || [ ! -f /opt/bitmagnet_version.txt ]; then
msg_info "Backing up database"
rm -f /tmp/backup.sql
$STD sudo -u postgres pg_dump \
--column-inserts \
--data-only \
--on-conflict-do-nothing \
--rows-per-insert=1000 \
--table=metadata_sources \
--table=content \
--table=content_attributes \
--table=content_collections \
--table=content_collections_content \
--table=torrent_sources \
--table=torrents \
--table=torrent_files \
--table=torrent_hints \
--table=torrent_contents \
--table=torrent_tags \
--table=torrents_torrent_sources \
--table=key_values \
bitmagnet \
>/tmp/backup.sql
mv /tmp/backup.sql /opt/
msg_ok "Database backed up"
msg_info "Updating ${APP} from $(cat /opt/bitmagnet_version.txt) to ${RELEASE}"
$STD apk -U upgrade
$STD service bitmagnet stop
[ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
[ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
rm -rf /opt/bitmagnet/*
temp_file=$(mktemp)
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
cd /opt/bitmagnet
VREL=v$RELEASE
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
chmod +x bitmagnet
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
rm -f "$temp_file"
echo "${RELEASE}" >/opt/bitmagnet_version.txt
$STD service bitmagnet start
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit 0
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3333${CL}"

114
ct/alpine-homarr.sh Normal file
View File

@ -0,0 +1,114 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://homarr.dev/
APP="alpine-homarr"
var_tags="${var_tags:-arr;dashboard}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-8}"
var_os="${var_os:-alpine}"
var_version="${var_version:-3.21}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
RELEASE=$(curl -fsSL https://api.github.com/repos/homarr-labs/homarr/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 Services (Patience)"
systemctl stop homarr
msg_ok "Services Stopped"
msg_info "Backup Data"
mkdir -p /opt/homarr-data-backup
cp /opt/homarr/.env /opt/homarr-data-backup/.env
msg_ok "Backup Data"
msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
rm /opt/run_homarr.sh
cat <<'EOF' >/opt/run_homarr.sh
#!/bin/bash
set -a
source /opt/homarr/.env
set +a
export DB_DIALECT='sqlite'
export AUTH_SECRET=$(openssl rand -base64 32)
node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT
for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do
dirname=$(basename "$dir")
mkdir -p "/opt/homarr_db/migrations/$dirname"
cp -r "$dir"/* "/opt/homarr_db/migrations/$dirname/" 2>/dev/null || true
done
export HOSTNAME=$(ip route get 1.1.1.1 | grep -oP 'src \K[^ ]+')
envsubst '${HOSTNAME}' < /etc/nginx/templates/nginx.conf > /etc/nginx/nginx.conf
nginx -g 'daemon off;' &
redis-server /opt/homarr/packages/redis/redis.conf &
node apps/tasks/tasks.cjs &
node apps/websocket/wssServer.cjs &
node apps/nextjs/server.js & PID=$!
wait $PID
EOF
chmod +x /opt/run_homarr.sh
NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
install_node_and_modules
rm -rf /opt/homarr
fetch_and_deploy_gh_release "homarr-labs/homarr"
mv /opt/homarr-data-backup/.env /opt/homarr/.env
cd /opt/homarr
echo "test2"
export NODE_ENV=""
$STD pnpm install --recursive --frozen-lockfile --shamefully-hoist
$STD pnpm build
cp /opt/homarr/apps/nextjs/next.config.ts .
cp /opt/homarr/apps/nextjs/package.json .
cp -r /opt/homarr/packages/db/migrations /opt/homarr_db/migrations
cp -r /opt/homarr/apps/nextjs/.next/standalone/* /opt/homarr
mkdir -p /appdata/redis
cp /opt/homarr/packages/redis/redis.conf /opt/homarr/redis.conf
rm /etc/nginx/nginx.conf
mkdir -p /etc/nginx/templates
cp /opt/homarr/nginx.conf /etc/nginx/templates/nginx.conf
mkdir -p /opt/homarr/apps/cli
cp /opt/homarr/packages/cli/cli.cjs /opt/homarr/apps/cli/cli.cjs
echo $'#!/bin/bash\ncd /opt/homarr/apps/cli && node ./cli.cjs "$@"' >/usr/bin/homarr
chmod +x /usr/bin/homarr
mkdir /opt/homarr/build
cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP}"
msg_info "Starting Services"
systemctl start homarr
msg_ok "Started Services"
msg_ok "Updated Successfully"
read -p "It's recommended to reboot the LXC after an update, would you like to reboot the LXC now ? (y/n): " choice
if [[ "$choice" =~ ^[Yy]$ ]]; then
reboot
fi
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}:7575${CL}"

53
ct/argus.sh Normal file
View File

@ -0,0 +1,53 @@
#!/usr/bin/env bash
source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://release-argus.io/
APP="Argus"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-3}"
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/argus ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}"
rm -f /opt/argus/Argus
curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-amd64" -o /opt/argus/Argus
chmod +x /opt/argus/Argus
systemctl restart argus
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
else
msg_ok "${APP} is already up to date (${RELEASE})"
fi
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

View File

@ -5,7 +5,7 @@ source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source:
APP="BabyBuddy"
APP="Baby Buddy"
var_tags="${var_tags:-baby}"
var_disk="${var_disk:-5}"
var_cpu="${var_cpu:-2}"
@ -20,19 +20,60 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/maxun ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/xxxxx/xxxxx/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 Services"
systemctl stop APP
msg_ok "Services Stopped"
fi
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/babybuddy ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/babybuddy_version.txt)" ]]; then
setup_uv
msg_info "Stopping Services"
systemctl stop nginx
systemctl stop uwsgi
msg_ok "Services Stopped"
msg_info "Cleaning old files"
cp babybuddy/settings/production.py /tmp/production.py.bak
find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
msg_ok "Cleaned old files"
msg_info "Updating ${APP} to v${RELEASE}"
temp_file=$(mktemp)
curl -fsSL "https://github.com/babybuddy/babybuddy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
cd /opt/babybuddy
tar zxf "$temp_file" --strip-components=1 -C /opt/babybuddy
mv /tmp/production.py.bak babybuddy/settings/production.py
cd /opt/babybuddy
source .venv/bin/activate
$STD uv pip install -r requirements.txt
$STD python manage.py migrate
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"
msg_info "Fixing permissions"
chown -R www-data:www-data /opt/data
chmod 640 /opt/data/db.sqlite3
chmod 750 /opt/data
msg_ok "Permissions fixed"
msg_info "Starting Services"
systemctl start uwsgi
systemctl start nginx
msg_ok "Services Started"
msg_info "Cleaning up"
rm -f "$temp_file"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
@ -42,4 +83,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

View File

@ -48,13 +48,13 @@ function update_script() {
cp /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
cd /opt/bar-assistant
composer install
php artisan migrate --force
php artisan storage:link
php artisan bar:setup-meilisearch
php artisan scout:sync-index-settings
php artisan config:cache
php artisan route:cache
php artisan event:cache
$STD php artisan migrate --force
$STD php artisan storage:link
$STD php artisan bar:setup-meilisearch
$STD php artisan scout:sync-index-settings
$STD php artisan config:cache
$STD php artisan route:cache
$STD php artisan event:cache
echo "${RELEASE_BARASSISTANT}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE_BARASSISTANT}"

View File

@ -1,98 +0,0 @@
#!/usr/bin/env bash
source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/bitmagnet/bitmagnet
APP="Bitmagnet"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-4}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/bitmagnet ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
systemctl stop bitmagnet-web
msg_ok "Stopped Service"
msg_info "Backing up database"
rm -f /tmp/backup.sql
$STD sudo -u postgres pg_dump \
--column-inserts \
--data-only \
--on-conflict-do-nothing \
--rows-per-insert=1000 \
--table=metadata_sources \
--table=content \
--table=content_attributes \
--table=content_collections \
--table=content_collections_content \
--table=torrent_sources \
--table=torrents \
--table=torrent_files \
--table=torrent_hints \
--table=torrent_contents \
--table=torrent_tags \
--table=torrents_torrent_sources \
--table=key_values \
bitmagnet \
>/tmp/backup.sql
mv /tmp/backup.sql /opt/
msg_ok "Database backed up"
msg_info "Updating ${APP} to v${RELEASE}"
[ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
[ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
rm -rf /opt/bitmagnet/*
temp_file=$(mktemp)
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
cd /opt/bitmagnet
VREL=v$RELEASE
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
chmod +x bitmagnet
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service"
systemctl start bitmagnet-web
msg_ok "Started Service"
msg_info "Cleaning up"
rm -f "$temp_file"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at 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}:3333${CL}"

View File

@ -20,15 +20,15 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/cloudflare-ddns.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is no update function for ${APP}."
header_info
check_container_storage
check_container_resources
if [[ ! -f /etc/systemd/system/cloudflare-ddns.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "There is no update function for ${APP}."
exit
}
start

51
ct/convertx.sh Normal file
View File

@ -0,0 +1,51 @@
#!/usr/bin/env bash
source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/C4illin/ConvertX
APP="ConvertX"
var_tags="${var_tags:-converter}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
RELEASE=$(curl -fsSL https://api.github.com/repos/C4illin/ConvertX/releases/latest | jq -r .tag_name | sed 's/^v//')
curl -fsSL -o "/opt/convertx/ConvertX-${RELEASE}.tar.gz" "https://github.com/C4illin/ConvertX/archive/refs/tags/v${RELEASE}.tar.gz"
tar --strip-components=1 -xf "/opt/convertx/ConvertX-${RELEASE}.tar.gz" -C /opt/convertx
cd /opt/convertx
bun update
$STD systemctl restart convertx
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

View File

@ -49,59 +49,64 @@ fi
# This function is used to select the storage class and determine the corresponding storage content type and label.
function select_storage() {
local CLASS=$1
local CLASS="$1"
local CONTENT
local CONTENT_LABEL
case $CLASS in
case "$CLASS" in
container)
CONTENT='rootdir'
CONTENT_LABEL='Container'
;;
template)
CONTENT='vztmpl'
CONTENT_LABEL='Container template'
CONTENT_LABEL='Container Template'
;;
*) false || {
msg_error "Invalid storage class."
*)
msg_error "Invalid storage class: $CLASS"
exit 201
} ;;
;;
esac
# This Queries all storage locations
# Collect storage options
local -a MENU
while read -r line; do
local TAG=$(echo $line | awk '{print $1}')
local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
local ITEM="Type: $TYPE Free: $FREE "
local OFFSET=2
if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
fi
MENU+=("$TAG" "$ITEM" "OFF")
done < <(pvesm status -content $CONTENT | awk 'NR>1')
local MSG_MAX_LENGTH=0
# Select storage location
if [ $((${#MENU[@]} / 3)) -eq 1 ]; then
printf ${MENU[0]}
else
local STORAGE
while [ -z "${STORAGE:+x}" ]; do
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
"Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \
16 $(($MSG_MAX_LENGTH + 23)) 6 \
"${MENU[@]}" 3>&1 1>&2 2>&3) || {
msg_error "Menu aborted."
exit 202
}
if [ $? -ne 0 ]; then
echo -e "${CROSS}${RD} Menu aborted by user.${CL}"
exit 0
fi
done
printf "%s" "$STORAGE"
while read -r TAG TYPE _ _ _ FREE _; do
local TYPE_PADDED
local FREE_FMT
TYPE_PADDED=$(printf "%-10s" "$TYPE")
FREE_FMT=$(numfmt --to=iec --from-unit=K --format %.2f <<<"$FREE")B
local ITEM="Type: $TYPE_PADDED Free: $FREE_FMT"
((${#ITEM} + 2 > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=$((${#ITEM} + 2))
MENU+=("$TAG" "$ITEM" "OFF")
done < <(pvesm status -content "$CONTENT" | awk 'NR>1')
local OPTION_COUNT=$((${#MENU[@]} / 3))
# Auto-select if only one option available
if [[ "$OPTION_COUNT" -eq 1 ]]; then
echo "${MENU[0]}"
return 0
fi
# Display selection menu
local STORAGE
while [[ -z "${STORAGE:+x}" ]]; do
STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
"Select the storage pool to use for the ${CONTENT_LABEL,,}.\nUse the spacebar to make a selection.\n" \
16 $((MSG_MAX_LENGTH + 23)) 6 \
"${MENU[@]}" 3>&1 1>&2 2>&3) || {
msg_error "Storage selection cancelled."
exit 202
}
done
echo "$STORAGE"
}
# Test if required variables are set
[[ "${CTID:-}" ]] || {
msg_error "You need to set 'CTID' variable."
@ -126,53 +131,63 @@ if qm status "$CTID" &>/dev/null || pct status "$CTID" &>/dev/null; then
exit 206
fi
# # Get template storage
# TEMPLATE_STORAGE=$(select_storage template)
# CONTAINER_STORAGE=$(select_storage container) || exit
# msg_ok "Template Storage: ${BL}$TEMPLATE_STORAGE${CL} ${GN}Container Storage: ${BL}$CONTAINER_STORAGE${CL}."
# Get template storage
TEMPLATE_STORAGE=$(select_storage template) || exit
TEMPLATE_STORAGE=$(select_storage template)
msg_ok "Using ${BL}$TEMPLATE_STORAGE${CL} ${GN}for Template Storage."
# Get container storage
CONTAINER_STORAGE=$(select_storage container) || exit
CONTAINER_STORAGE=$(select_storage container)
msg_ok "Using ${BL}$CONTAINER_STORAGE${CL} ${GN}for Container Storage."
# Update LXC template list
msg_info "Updating LXC Template List"
#check_network
pveam update >/dev/null
msg_ok "Updated LXC Template List"
$STD msg_info "Updating LXC Template List"
if ! timeout 10 pveam update >/dev/null 2>&1; then
msg_error "Failed to update LXC template list. Please check your Proxmox host's internet connection and DNS resolution."
exit 201
fi
$STD msg_ok "LXC Template List Updated"
# Get LXC template string
TEMPLATE_SEARCH=${PCT_OSTYPE}-${PCT_OSVERSION:-}
TEMPLATE_SEARCH="${PCT_OSTYPE}-${PCT_OSVERSION:-}"
mapfile -t TEMPLATES < <(pveam available -section system | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
[ ${#TEMPLATES[@]} -gt 0 ] || {
msg_error "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
if [ ${#TEMPLATES[@]} -eq 0 ]; then
msg_error "No matching LXC template found for '${TEMPLATE_SEARCH}'. Make sure your host can reach the Proxmox template repository."
exit 207
}
fi
TEMPLATE="${TEMPLATES[-1]}"
TEMPLATE_PATH="$(pvesm path $TEMPLATE_STORAGE:vztmpl/$TEMPLATE)"
# Without NAS/Mount: TEMPLATE_PATH="/var/lib/vz/template/cache/$TEMPLATE"
# Check if template exists, if corrupt remove and redownload
TEMPLATE_PATH="$(pvesm path "$TEMPLATE_STORAGE":vztmpl/$TEMPLATE)"
# Check if template exists and is valid
if ! pveam list "$TEMPLATE_STORAGE" | grep -q "$TEMPLATE" || ! zstdcat "$TEMPLATE_PATH" | tar -tf - >/dev/null 2>&1; then
msg_warn "Template $TEMPLATE not found in storage or seems to be corrupted. Redownloading."
msg_warn "Template $TEMPLATE not found or appears to be corrupted. Re-downloading."
[[ -f "$TEMPLATE_PATH" ]] && rm -f "$TEMPLATE_PATH"
# Download with 3 attempts
for attempt in {1..3}; do
msg_info "Attempt $attempt: Downloading LXC template..."
if timeout 120 pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null; then
if timeout 120 pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null 2>&1; then
msg_ok "Template download successful."
break
fi
if [ $attempt -eq 3 ]; then
msg_error "Three failed attempts. Aborting."
msg_error "Failed after 3 attempts. Please check your Proxmox hosts internet access or manually run:\n pveam download $TEMPLATE_STORAGE $TEMPLATE"
exit 208
fi
sleep $((attempt * 5))
done
fi
msg_ok "LXC Template is ready to use."
msg_ok "LXC Template '$TEMPLATE' is ready to use."
# Check and fix subuid/subgid
grep -q "root:100000:65536" /etc/subuid || echo "root:100000:65536" >>/etc/subuid
@ -182,29 +197,54 @@ grep -q "root:100000:65536" /etc/subgid || echo "root:100000:65536" >>/etc/subgi
PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs "$CONTAINER_STORAGE:${PCT_DISK_SIZE:-8}")
# Secure creation of the LXC container with lock and template check
lockfile="/tmp/template.${TEMPLATE}.lock"
exec 9>"$lockfile"
flock -w 60 9 || {
msg_error "Timeout while waiting for template lock"
exit 211
}
msg_info "Creating LXC Container"
if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then
msg_error "Container creation failed. Checking if template is corrupted."
msg_error "Container creation failed. Checking if template is corrupted or incomplete."
if ! zstdcat "$TEMPLATE_PATH" | tar -tf - >/dev/null 2>&1; then
msg_error "Template appears to be corrupted. Removing and re-downloading."
if [[ ! -s "$TEMPLATE_PATH" || "$(stat -c%s "$TEMPLATE_PATH")" -lt 1000000 ]]; then
msg_error "Template file too small or missing re-downloading."
rm -f "$TEMPLATE_PATH"
elif ! zstdcat "$TEMPLATE_PATH" | tar -tf - &>/dev/null; then
msg_error "Template appears to be corrupted re-downloading."
rm -f "$TEMPLATE_PATH"
if ! timeout 120 pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null; then
msg_error "Failed to re-download template."
exit 208
fi
msg_ok "Re-downloaded LXC Template"
if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then
msg_error "Container creation failed after re-downloading template."
exit 200
fi
else
msg_error "Container creation failed, but template is not corrupted."
msg_error "Template is valid, but container creation still failed."
exit 209
fi
# Retry download
for attempt in {1..3}; do
msg_info "Attempt $attempt: Re-downloading template..."
if timeout 120 pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null; then
msg_ok "Template re-download successful."
break
fi
if [ "$attempt" -eq 3 ]; then
msg_error "Three failed attempts. Aborting."
exit 208
fi
sleep $((attempt * 5))
done
sleep 1 # I/O-Sync-Delay
if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then
msg_error "Container creation failed after re-downloading template."
exit 200
fi
fi
if ! pct status "$CTID" &>/dev/null; then
msg_error "Container not found after pct create assuming failure."
exit 210
fi
: "${UDHCPC_FIX:=}"
if [ "$UDHCPC_FIX" == "yes" ]; then

View File

@ -13,6 +13,8 @@ var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}"
var_tun="${var_tun:-yes}"
header_info "$APP"
variables
@ -20,18 +22,18 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; 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 ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
}
start
@ -40,3 +42,12 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
read -p "Remove this Container? <y/N> " prompt
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
pct stop "$CTID"
pct destroy "$CTID"
msg_ok "Removed this script"
else
msg_warn "Did not remove this script"
fi

101
ct/garmin-grafana.sh Normal file
View File

@ -0,0 +1,101 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/raw/main/garmin-grafana/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: aliaksei135
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/arpanghosh8453/garmin-grafana
APP="garmin-grafana"
var_tags="${var_tags:-sports;visualization}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-8}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
# this only updates garmin-grafana, not influxdb or grafana, which are upgraded with apt
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/garmin-grafana/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/arpanghosh8453/garmin-grafana/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
if [[ ! -d /opt/garmin-grafana/ ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop garmin-grafana
systemctl stop grafana-server
systemctl stop influxdb
msg_ok "Stopped $APP"
if [[ ! -f /opt/garmin-grafana/.env ]]; then
msg_error "No .env file found in /opt/garmin-grafana/.env"
exit
fi
source /opt/garmin-grafana/.env
if [[ -z "${INFLUXDB_USER}" || -z "${INFLUXDB_PASSWORD}" || -z "${INFLUXDB_NAME}" ]]; then
msg_error "INFLUXDB_USER, INFLUXDB_PASSWORD, or INFLUXDB_NAME not set in .env file"
exit
fi
msg_info "Creating Backup"
tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" /opt/garmin-grafana/.garminconnect /opt/garmin-grafana/.env
mv /opt/garmin-grafana/ /opt/garmin-grafana-backup/
msg_ok "Backup Created"
msg_info "Updating $APP to v${RELEASE}"
curl -fsSL -o "${RELEASE}.zip" "https://github.com/arpanghosh8453/garmin-grafana/archive/refs/tags/${RELEASE}.zip"
unzip -q "${RELEASE}.zip"
mv "garmin-grafana-${RELEASE}/" "/opt/garmin-grafana"
rm -f "${RELEASE}.zip"
$STD uv sync --locked --project /opt/garmin-grafana/
# shellcheck disable=SC2016
sed -i 's/\${DS_GARMIN_STATS}/garmin_influxdb/g' /opt/garmin-grafana/Grafana_Dashboard/Garmin-Grafana-Dashboard.json
sed -i 's/influxdb:8086/localhost:8086/' /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
sed -i "s/influxdb_user/${INFLUXDB_USER}/" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
sed -i "s/influxdb_secret_password/${INFLUXDB_PASSWORD}/" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
sed -i "s/GarminStats/${INFLUXDB_NAME}/" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
# Copy across grafana data
cp -r /opt/garmin-grafana/Grafana_Datasource/* /etc/grafana/provisioning/datasources
cp -r /opt/garmin-grafana/Grafana_Dashboard/* /etc/grafana/provisioning/dashboards
# Copy back the env and token files
cp /opt/garmin-grafana-backup/.env /opt/garmin-grafana/.env
cp -r /opt/garmin-grafana-backup/.garminconnect /opt/garmin-grafana/.garminconnect
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start garmin-grafana
systemctl start grafana-server
systemctl start influxdb
msg_ok "Started $APP"
msg_info "Cleaning Up"
rm -rf /opt/garmin-grafana-backup
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}"
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}"

71
ct/gitea-mirror.sh Normal file
View File

@ -0,0 +1,71 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/arunavo4/gitea-mirror
APP="gitea-mirror"
var_tags="${var_tags:-arr;dashboard}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}"
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/gite-mirror ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/arunavo4/gitea-mirror/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 Services (Patience)"
systemctl stop gitea-mirror
msg_ok "Services Stopped"
msg_info "Backup Data"
mkdir -p /opt/homarr-data-backup
cp /opt/homarr/.env /opt/homarr-data-backup/.env
msg_ok "Backup Data"
msg_info "Installing Bun"
export BUN_INSTALL=/opt/bun
curl -fsSL https://bun.sh/install | bash
ln -sf /opt/bun/bin/bun /usr/local/bin/bun
ln -sf /opt/bun/bin/bun /usr/local/bin/bunx
msg_ok "Installed Bun"
msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
apt install -y git
rm -rf /opt/homarr
fetch_and_deploy_gh_release "arunavo4/gitea-mirror"
cd /opt/gitea-mirror
bun install
bun run build
bun run manage-db init
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}:4321${CL}"

View File

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

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

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

View File

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

6
ct/headers/argus Normal file
View File

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

View File

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

View File

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

6
ct/headers/convertx Normal file
View File

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

View File

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

View File

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

View File

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

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

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

View File

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

6
ct/headers/jitsi-meet Normal file
View File

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

6
ct/headers/kasm Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

6
ct/headers/openwebui Normal file
View File

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

View File

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

6
ct/headers/pulse Normal file
View File

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

View File

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

View File

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

6
ct/headers/searxng Normal file
View File

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

View File

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

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@ -124,7 +124,9 @@ EOF
fetch_and_deploy_gh_release "homarr-labs/homarr"
mv /opt/homarr-data-backup/.env /opt/homarr/.env
cd /opt/homarr
$STD pnpm install --config.allowBuildScripts=true
echo "test2"
export NODE_ENV=""
$STD pnpm install --recursive --frozen-lockfile --shamefully-hoist
$STD pnpm build
cp /opt/homarr/apps/nextjs/next.config.ts .
cp /opt/homarr/apps/nextjs/package.json .

View File

@ -7,7 +7,7 @@ source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/
APP="immich"
var_tags="${var_tags:-photos}"
var_disk="${var_disk:-12}"
var_disk="${var_disk:-20}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-4096}"
var_os="${var_os:-debian}"
@ -46,13 +46,13 @@ function update_script() {
rm ~/Dockerfile
fi
if [[ -f ~/.immich_library_revisions ]]; then
curl -fsSLO https://raw.githubusercontent.com/immich-app/base-images/refs/heads/main/server/bin/build-lock.json
jq -cr '.sources[].revision' ./build-lock.json >~/.new_revisions
readarray -t UPDATED_REVISIONS < <(comm -13 <(sort ~/.immich_library_revisions) <(sort ~/.new_revisions))
if [[ "${#UPDATED_REVISIONS[@]}" -gt 0 ]]; then
readarray -t NAMES < <(for revision in "${UPDATED_REVISIONS[@]}"; do
jq -cr --arg jq_revision "$revision" '.sources[] | select(.revision == $jq_revision).name' ./build-lock.json
done)
libraries=("libjxl" "libheif" "libraw" "imagemagick" "libvips")
readarray -d '' NEW_REVISIONS < <(for library in "${libraries[@]}"; do
echo "$library: $(curl -fsSL https://raw.githubusercontent.com/immich-app/base-images/refs/heads/main/server/sources/"$library".json | jq -cr '.revision' -)"
done)
UPDATED_REVISIONS="$(comm -13 <(sort ~/.immich_library_revisions) <(echo -n "${NEW_REVISIONS[@]}" | sort))"
if [[ "$UPDATED_REVISIONS" ]]; then
readarray -t NAMES < <(echo "$UPDATED_REVISIONS" | awk -F ':' '{print $1}')
rm -rf "$SOURCE_DIR"
mkdir -p "$SOURCE_DIR"
cd "$BASE_DIR"
@ -64,13 +64,13 @@ function update_script() {
SOURCE=${SOURCE_DIR}/libjxl
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
: "${LIBJXL_REVISION:=$(jq -cr '.sources[] | select(.name == "libjxl").revision' $BASE_DIR/server/bin/build-lock.json)}"
: "${LIBJXL_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libjxl.json)}"
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBJXL_REVISION"
$STD git submodule update --init --recursive --depth 1 --recommend-shallow
$STD git apply "$BASE_DIR"/server/bin/patches/jpegli-empty-dht-marker.patch
$STD git apply "$BASE_DIR"/server/bin/patches/jpegli-icc-warning.patch
$STD git apply "$BASE_DIR"/server/sources/libjxl-patches/jpegli-empty-dht-marker.patch
$STD git apply "$BASE_DIR"/server/sources/libjxl-patches/jpegli-icc-warning.patch
mkdir build
cd build
$STD cmake \
@ -102,7 +102,7 @@ function update_script() {
if [[ "$name" == "libheif" ]]; then
msg_info "Recompiling libheif"
SOURCE=${SOURCE_DIR}/libheif
: "${LIBHEIF_REVISION:=$(jq -cr '.sources[] | select(.name == "libheif").revision' $BASE_DIR/server/bin/build-lock.json)}"
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
$STD git clone https://github.com/strukturag/libheif.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBHEIF_REVISION"
@ -128,7 +128,7 @@ function update_script() {
if [[ "$name" == "libraw" ]]; then
msg_info "Recompiling libraw"
SOURCE=${SOURCE_DIR}/libraw
: "${LIBRAW_REVISION:=$(jq -cr '.sources[] | select(.name == "libraw").revision' $BASE_DIR/server/bin/build-lock.json)}"
: "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
$STD git clone https://github.com/libraw/libraw.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBRAW_REVISION"
@ -144,7 +144,7 @@ function update_script() {
if [[ "$name" == "imagemagick" ]]; then
msg_info "Recompiling ImageMagick"
SOURCE=$SOURCE_DIR/imagemagick
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.sources[] | select(.name == "imagemagick").revision' $BASE_DIR/server/bin/build-lock.json)}"
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/imagemagick.json)}"
$STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$IMAGEMAGICK_REVISION"
@ -159,7 +159,7 @@ function update_script() {
if [[ "$name" == "libvips" ]]; then
msg_info "Recompiling libvips"
SOURCE=$SOURCE_DIR/libvips
: "${LIBVIPS_REVISION:=$(jq -cr '.sources[] | select(.name == "libvips").revision' $BASE_DIR/server/bin/build-lock.json)}"
: "${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"
@ -172,10 +172,9 @@ function update_script() {
msg_ok "Recompiled libvips"
fi
done
mv ~/.new_revisions ~/.immich_library_revisions
echo -n "${NEW_REVISIONS[@]}" >~/.immich_library_revisions
msg_ok "Image-processing libraries compiled"
fi
rm ~/build-lock.json
fi
RELEASE=$(curl -s https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
@ -183,8 +182,44 @@ function update_script() {
systemctl stop immich-web
systemctl stop immich-ml
msg_ok "Stopped ${APP}"
if [[ "$(cat /opt/${APP}_version.txt)" < "1.133.0" ]]; then
msg_info "Upgrading to the VectorChord PostgreSQL extension"
NUMBER="$(
sed -n '2p' <(
sudo -u postgres psql -A -d immich <<EOF
SELECT atttypmod as dimsize
FROM pg_attribute f
JOIN pg_class c ON c.oid = f.attrelid
WHERE c.relkind = 'r'::char
AND f.attnum > 0
AND c.relname = 'smart_search'::text
AND f.attname = 'embedding'::text;
EOF
)
)"
$STD sudo -u postgres psql -d immich <<EOF
DROP INDEX IF EXISTS clip_index;
DROP INDEX IF EXISTS face_index;
ALTER TABLE smart_search ALTER COLUMN embedding SET DATA TYPE real[];
ALTER TABLE face_search ALTER COLUMN embedding SET DATA TYPE real[];
EOF
$STD apt-get update
$STD apt-get install postgresql-16-pgvector -y
curl -fsSL https://github.com/tensorchord/VectorChord/releases/download/0.3.0/postgresql-16-vchord_0.3.0-1_amd64.deb -o vchord.deb
$STD dpkg -i vchord.deb
rm vchord.deb
sed -i "s|vectors.so|vchord.so|" /etc/postgresql/16/main/postgresql.conf
systemctl restart postgresql.service
$STD sudo -u postgres psql -d immich <<EOF
CREATE EXTENSION IF NOT EXISTS vchord CASCADE;
ALTER TABLE smart_search ALTER COLUMN embedding SET DATA TYPE vector($NUMBER);
ALTER TABLE face_search ALTER COLUMN embedding SET DATA TYPE vector(512);
EOF
$STD apt purge vectors-pg16 -y
msg_ok "Database upgrade complete"
fi
INSTALL_DIR="/opt/${APP}"
UPLOAD_DIR="${INSTALL_DIR}/upload"
UPLOAD_DIR="$(sed -n '/IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
SRC_DIR="${INSTALL_DIR}/source"
APP_DIR="${INSTALL_DIR}/app"
ML_DIR="${APP_DIR}/machine-learning"
@ -213,7 +248,6 @@ function update_script() {
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/
cp -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR"
cp "$BASE_DIR"/server/bin/build-lock.json "$APP_DIR"
msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning
@ -257,6 +291,8 @@ function update_script() {
$STD npm i -g @immich/cli
msg_ok "Updated Immich CLI"
sed -i "s|pgvecto.rs|vectorchord|" /opt/"${APP}"/.env
chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt
msg_ok "Updated ${APP} to v${RELEASE}"

View File

@ -1,14 +1,14 @@
#!/usr/bin/env bash
source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Arian Nasr (arian-nasr)
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://www.freepbx.org/
# Source: https://github.com/jitsi/jitsi-meet
APP="FreePBX"
var_tags="pbx;voip;telephony"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
APP="Jitsi-Meet"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}"
var_disk="${var_disk:-20}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
@ -20,17 +20,18 @@ color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
# Check if installation is present | -f for file, -d for folder
if [[ ! -f /lib/systemd/system/freepbx.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "Currently we don't provide an update function for this ${APP}."
header_info
check_container_storage
check_container_resources
if [[ ! -f /lib/systemd/system/jitsi-videobridge2.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating Jitsi-Meet LXC"
$STD apt-get update
$STD apt-get upgrade -y
msg_ok "Updated Jitsi-Meet LXC"
exit
}
start
@ -40,4 +41,4 @@ description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}${CL}"

46
ct/kasm.sh Normal file
View File

@ -0,0 +1,46 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://www.kasmweb.com/docs/latest/index.html
APP="Kasm"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4192}"
var_disk="${var_disk:-30}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}"
var_fuse="${var_fuse:-yes}"
var_tun="${var_tun:-yes}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "Updating $APP LXC"
$STD apt-get update
$STD apt-get -y upgrade
msg_ok "Updated $APP LXC"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}${CL}"

View File

@ -38,7 +38,7 @@ function update_script() {
start
build_container
description
desiption
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

61
ct/lyrionmusicserver.sh Normal file
View File

@ -0,0 +1,61 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/refs/heads/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://lyrion.org/getting-started/
APP="Lyrion Music Server"
var_tags="${var_tags:-media}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-3}"
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 [[ ! -f /lib/systemd/system/lyrionmusicserver.service ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
DEB_URL=$(curl -s 'https://lyrion.org/getting-started/' | grep -oP '<a\s[^>]*href="\K[^"]*amd64\.deb(?="[^>]*>)' | head -n 1)
RELEASE=$(echo "$DEB_URL" | grep -oP 'lyrionmusicserver_\K[0-9.]+(?=_amd64\.deb)')
DEB_FILE="/tmp/lyrionmusicserver_${RELEASE}_amd64.deb"
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Updating $APP to ${RELEASE}"
curl -fsSL -o "$DEB_FILE" "$DEB_URL"
$STD apt install "$DEB_FILE" -y
systemctl restart lyrion
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to ${RELEASE}"
msg_info "Cleaning up"
$STD rm -f "$DEB_FILE"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
else
msg_ok "$APP is already up to date (${RELEASE})"
fi
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access the web interface at:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9000${CL}"
echo -e "${INFO}${YW} Check logs for setup details: ~/lyrion-install.log${CL}"

73
ct/openwebui.sh Normal file
View File

@ -0,0 +1,73 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 tteck
# Author: havardthom
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://openwebui.com/
APP="Open WebUI"
var_tags="${var_tags:-ai;interface}"
var_cpu="${var_cpu:-4}"
var_ram="${var_ram:-8192}"
var_disk="${var_disk:-25}"
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/open-webui ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if [ -x "/usr/bin/ollama" ]; then
msg_info "Updating Ollama"
OLLAMA_VERSION=$(ollama -v | awk '{print $NF}')
RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then
curl -fsSLO https://ollama.com/download/ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz
rm -rf ollama-linux-amd64.tgz
msg_ok "Ollama updated to version $RELEASE"
else
msg_ok "Ollama is already up to date."
fi
fi
msg_info "Updating ${APP} (Patience)"
systemctl stop open-webui.service
mkdir -p /opt/openwebui-backup
cp -rf /opt/openwebui/backend/data /opt/openwebui-backup
cp /opt/openwebui/.env /opt
rm -rf /opt/openwebui
fetch_and_deploy_gh_release "open-webui/open-webui"
cd /opt/openwebui
$STD npm install
export NODE_OPTIONS="--max-old-space-size=3584"
sed -i "s/git rev-parse HEAD/openssl rand -hex 20/g" /opt/openwebui/svelte.config.js
$STD npm run build
cd ./backend
$STD pip install -r requirements.txt -U
cp -rf /opt/openwebui-backup/* /opt/openwebui/backend
mv /opt/.env /opt/openwebui/
systemctl start open-webui.service
msg_ok "Updated Successfully"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

79
ct/pulse.sh Normal file
View File

@ -0,0 +1,79 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: rcourtman
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/rcourtman/Pulse
APP="Pulse"
var_tags="monitoring;proxmox"
var_cpu="1"
var_ram="1024"
var_disk="4"
var_os="debian"
var_version="12"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/pulse-proxmox ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping ${APP}"
systemctl stop pulse-monitor
msg_ok "Stopped ${APP}"
msg_info "Updating Pulse"
if [[ -f /opt/pulse-proxmox/.env ]]; then
cp /opt/pulse-proxmox/.env /tmp/.env.backup.pulse
fi
temp_file=$(mktemp)
mkdir -p /opt/pulse-proxmox
rm -rf /opt/pulse-proxmox/*
curl -fsSL "https://github.com/rcourtman/Pulse/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse-proxmox
if [[ -f /tmp/.env.backup.pulse ]]; then
mv /tmp/.env.backup.pulse /opt/pulse-proxmox/.env
fi
cd /opt/pulse-proxmox
$STD npm install --unsafe-perm
cd /opt/pulse-proxmox/server
$STD npm install --unsafe-perm
cd /opt/pulse-proxmox
$STD npm run build:css
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated Pulse to ${RELEASE}"
msg_info "Setting permissions for /opt/pulse-proxmox..."
chown -R pulse:pulse "/opt/pulse-proxmox"
find "/opt/pulse-proxmox" -type d -exec chmod 755 {} \;
find "/opt/pulse-proxmox" -type f -exec chmod 644 {} \;
chmod 600 /opt/pulse-proxmox/.env
msg_ok "Set permissions."
msg_info "Starting ${APP}"
systemctl start pulse-monitor
msg_ok "Started ${APP}"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}."
fi
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}(:your_port)${CL}"

View File

@ -1,65 +0,0 @@
#!/usr/bin/env bash
source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/rclone/rclone
APP="Rclone"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-12}"
var_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/rclone ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
msg_info "Stopping Service"
systemctl stop rclone-web
msg_ok "Stopped Service"
msg_info "Updating ${APP} to v${RELEASE}"
temp_file=$(mktemp)
rm -rf /opt/rclone/*
curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-amd64.zip" -o "$temp_file"
$STD unzip -j "$temp_file" '*/**' -d /opt/rclone
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting Service"
systemctl start rclone-web
msg_ok "Started Service"
msg_info "Cleaning up"
rm -f "$temp_file"
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at v${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

42
ct/searxng.sh Normal file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/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/searxng/searxng
APP="SearXNG"
var_tags="${var_tags:-search}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-7}"
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 /usr/local/searxng/searxng-src ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if cd /usr/local/searxng/searxng-src && git pull | grep -q 'Already up to date'; then
msg_ok "There is currently no update available."
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}:8888${CL}"

View File

@ -11,7 +11,7 @@
"interface_port": null,
"documentation": "https://allstarlink.github.io/",
"website": "https://www.allstarlink.org/",
"logo": "https://raw.githubusercontent.com/AllStarLink/ASL3-Manual/blob/main/docs/assets/allstar-logo-small.png",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/allstar-link.webp",
"config_path": "",
"description": "AllStarLink is a network of Amateur Radio repeaters, remote base stations and hot spots accessible to each other via Voice over Internet Protocol.",
"install_methods": [

View File

@ -0,0 +1,35 @@
{
"name": "Argus",
"slug": "argus",
"categories": [
11
],
"date_created": "2025-05-19",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://release-argus.io/docs/overview/",
"website": "https://release-argus.io/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/argus.webp",
"config_path": "/opt/argus/config.yml",
"description": "Argus will query websites at a user defined interval for new software releases and then trigger Gotify/Slack/Other notification(s) and/or WebHook(s) when one has been found. For example, you could set it to monitor the Argus repo (release-argus/argus). This will query the GitHub API and track the tag_name variable. When this variable changes from what it was on a previous query, a GitHub-style WebHook could be sent that triggers something (like AWX) to update Argus on your server.",
"install_methods": [
{
"type": "default",
"script": "ct/argus.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 3,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -0,0 +1,40 @@
{
"name": "Baby Buddy",
"slug": "babybuddy",
"categories": [
23
],
"date_created": "2025-05-16",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://docs.baby-buddy.net/",
"website": "https://github.com/babybuddy/babybuddy",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/baby-buddy.webp",
"config_path": "/opt/babybuddy/babybuddy/production.py",
"description": "Baby Buddy is an open-source web application designed to assist caregivers in tracking various aspects of a baby's daily routine, including sleep, feedings, diaper changes, tummy time, and more. By recording this data, caregivers can better understand and anticipate their baby's needs, reducing guesswork in daily care. The application offers a user-friendly dashboard for data entry and visualization, supports multiple users, and provides features like timers and reminders. Additionally, Baby Buddy can be integrated with platforms like Home Assistant and Grafana for enhanced functionality.",
"install_methods": [
{
"type": "default",
"script": "ct/babybuddy.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 5,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": "admin"
},
"notes": [
{
"text": "for private SSL setup visit: `https://github.com/babybuddy/babybuddy/blob/master/docs/setup/ssl.md`",
"type": "info"
}
]
}

View File

@ -1,40 +1,40 @@
{
"name": "Backrest",
"slug": "backrest",
"categories": [
7
],
"date_created": "2025-05-11",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9898,
"documentation": "https://garethgeorge.github.io/backrest/introduction/getting-started",
"website": "https://garethgeorge.github.io/backrest",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/backrest-light.svg",
"config_path": "/opt/backrest/config/config.json",
"description": "Backrest is a web-accessible backup solution built on top of restic and providing a WebUI which wraps the restic CLI and makes it easy to create repos, browse snapshots, and restore files. Additionally, Backrest can run in the background and take an opinionated approach to scheduling snapshots and orchestrating repo health operations.",
"install_methods": [
{
"type": "default",
"script": "ct/backrest.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 8,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"type": "info",
"text": "`cat ~/.ssh/id_ed25519.pub` to view ssh public key. This key is used to authenticate with sftp targets. You can add this key on the sftp server."
}
]
}
"name": "Backrest",
"slug": "backrest",
"categories": [
7
],
"date_created": "2025-05-11",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9898,
"documentation": "https://garethgeorge.github.io/backrest/introduction/getting-started",
"website": "https://garethgeorge.github.io/backrest",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/backrest.webp",
"config_path": "/opt/backrest/config/config.json",
"description": "Backrest is a web-accessible backup solution built on top of restic and providing a WebUI which wraps the restic CLI and makes it easy to create repos, browse snapshots, and restore files. Additionally, Backrest can run in the background and take an opinionated approach to scheduling snapshots and orchestrating repo health operations.",
"install_methods": [
{
"type": "default",
"script": "ct/backrest.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 8,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"type": "info",
"text": "`cat ~/.ssh/id_ed25519.pub` to view ssh public key. This key is used to authenticate with sftp targets. You can add this key on the sftp server."
}
]
}

View File

@ -1,51 +0,0 @@
{
"name": "Bitmagnet",
"slug": "bitmagnet",
"categories": [
11
],
"date_created": "2025-05-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3333,
"documentation": "https://bitmagnet.io/setup.html",
"website": "https://bitmagnet.io/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/bitmagnet.webp",
"config_path": "`/opt/bitmagnet/config.yml` or `/opt/bitmagnet/.env`",
"description": "A self-hosted BitTorrent indexer, DHT crawler, content classifier and torrent search engine with web UI, GraphQL API and Servarr stack integration.",
"install_methods": [
{
"type": "default",
"script": "ct/bitmagnet.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "debian",
"version": "12"
}
},
{
"type": "alpine",
"script": "ct/alpine-bitmagnet.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 3,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "During installation you will be asked to enter your TMDB API key, if you wanna use it. Make sure you have it ready.",
"type": "info"
}
]
}

View File

@ -12,7 +12,7 @@
"documentation": "https://github.com/favonia/cloudflare-ddns/blob/main/README.markdown",
"config_path": "/etc/systemd/system/cloudflare-ddns.service",
"website": "https://github.com/favonia/cloudflare-ddns",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/cloudflare.svg",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/cloudflare.webp",
"description": "A feature-rich and robust Cloudflare DDNS updater with a small footprint. The program will detect your machines public IP addresses and update DNS records using the Cloudflare API",
"install_methods": [
{
@ -41,4 +41,4 @@
"type": "info"
}
]
}
}

View File

@ -0,0 +1,40 @@
{
"name": "ConvertX",
"slug": "convertx",
"categories": [
9
],
"date_created": "2025-05-22",
"type": "ct",
"updateable": true,
"privileged": false,
"config_path": "/opt/convertx/.env",
"interface_port": 3000,
"documentation": "https://github.com/C4illin/ConvertX",
"website": "https://github.com/C4illin/ConvertX",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/convertx.svg",
"description": "ConvertX is a self-hosted online file converter supporting over 1000 formats, including images, audio, video, documents, and more, powered by FFmpeg, GraphicsMagick, and other libraries.",
"install_methods": [
{
"type": "default",
"script": "ct/convertx.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 20,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Complete setup via the web interface at http://<container-ip>:3000. Create and secure the admin account immediately.",
"type": "info"
}
]
}

View File

@ -1,36 +0,0 @@
{
"name": "FreePBX",
"slug": "freepbx",
"categories": [
0
],
"date_created": "2025-03-10",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 80,
"documentation": "https://sangomakb.atlassian.net/wiki/spaces/FP/overview?homepageId=8454359",
"website": "https://www.freepbx.org/",
"logo": "https://avatars.githubusercontent.com/u/696423?s=200&v=4",
"config_path": "",
"description": "FreePBX is a web-based open-source graphical user interface that manages Asterisk, a voice over IP and telephony server.",
"install_methods": [
{
"type": "default",
"script": "ct/freepbx.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 20,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -0,0 +1,44 @@
{
"name": "garmin-grafana",
"slug": "garmin-grafana",
"categories": [
24
],
"date_created": "2025-05-08",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://github.com/arpanghosh8453/garmin-grafana",
"config_path": "",
"website": "https://github.com/arpanghosh8453/garmin-grafana",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/garmin-grafana.webp",
"description": "A docker container to fetch data from Garmin servers and store the data in a local influxdb database for appealing visualization with Grafana.",
"install_methods": [
{
"type": "default",
"script": "ct/garmin-grafana.sh",
"resources": {
"cpu": 2,
"ram": 2,
"hdd": 8,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Show login and database credentials: `cat ~/.garmin-grafana.creds`",
"type": "info"
},
{
"text": "`garmin-grafana` only imports the past 7 days by default. To import historical data, use the `~/bulk-import.sh` script after installation.",
"type": "info"
}
]
}

View File

@ -1,35 +0,0 @@
{
"name": "Homarr",
"slug": "homarr",
"categories": [
10
],
"date_created": "2025-05-08",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 7575,
"documentation": null,
"website": "https://homarr.dev/",
"logo": "https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/homarr.svg",
"config_path": "/opt/homarr/.env",
"description": "Homarr is a sleek, modern dashboard that puts all of your apps and services at your fingertips.",
"install_methods": [
{
"type": "default",
"script": "ct/homarr.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 8,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -11,7 +11,7 @@
"interface_port": 2283,
"documentation": "https://immich.app/docs/overview/introduction",
"website": "https://immich.app",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/png/immich.png",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/immich.webp",
"config_path": "/opt/immich/.env",
"description": "High performance self-hosted photo and video management solution.",
"install_methods": [
@ -21,7 +21,7 @@
"resources": {
"cpu": 4,
"ram": 4096,
"hdd": 12,
"hdd": 20,
"os": "Debian",
"version": "12"
}
@ -33,9 +33,16 @@
},
"notes": [
{
"text": "During installation, HW-accelerated machine-learning is an available option. This also allows for HW-accelerated transcoding, but it must be enabled in Video Transcoding Settings",
"text": "During installation, HW-accelerated machine-learning (with OpenVINO) is an available option. This also allows for HW-accelerated transcoding, but it must be enabled in Video Transcoding Settings",
"type": "info"
},
{
"text": "If using OpenVINO HW machine-learning, increase RAM because OpenVINO is memory-intensive",
"type": "info"
},
{
"text": "To change upload location, edit 'IMMICH_MEDIA_LOCATION' in `/opt/immich/.env`",
"type": "info"
}
]
}

View File

@ -0,0 +1,35 @@
{
"name": "jitsi-meet",
"slug": "jitsi-meet",
"categories": [
18
],
"date_created": "2025-05-06",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 443,
"documentation": "https://jitsi.github.io/handbook/docs/intro",
"website": "https://jitsi.org/jitsi-meet/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/jitsi-meet.webp",
"config_path": "/etc/jitsi/meet/[your-hostname]-config.js",
"description": "Go ahead, video chat with the whole team. In fact, invite everyone you know. Jitsi Meet is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.",
"install_methods": [
{
"type": "default",
"script": "ct/jitsi-meet.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 20,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -11,7 +11,7 @@
"interface_port": 80,
"documentation": "https://www.jumpserver.com/docs",
"website": "https://www.jumpserver.com/",
"logo": "https://raw.githubusercontent.com/jumpserver/jumpserver/refs/heads/dev/apps/static/img/logo.png",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/jumpserver.webp",
"config_path": "",
"description": "JumpServer is an open-source Privileged Access Management (PAM) tool that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.",
"install_methods": [

View File

@ -0,0 +1,44 @@
{
"name": "Kasm",
"slug": "kasm",
"categories": [
9
],
"date_created": "2025-03-24",
"type": "ct",
"updateable": false,
"privileged": true,
"config_path": "",
"interface_port": 443,
"documentation": "https://www.kasmweb.com/docs/",
"website": "https://www.kasmweb.com/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/kasm-workspaces.webp",
"description": "Kasm Workspaces is a container streaming platform that delivers browser-based access to desktops, applications, and web services with enhanced security and scalability.",
"install_methods": [
{
"type": "default",
"script": "ct/kasm.sh",
"resources": {
"cpu": 2,
"ram": 4096,
"hdd": 50,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
"type": "warning"
},
{
"text": "Show password: `cat ~/kasm.creds`",
"type": "info"
}
]
}

View File

@ -11,7 +11,7 @@
"interface_port": 80,
"documentation": "https://docs.librenms.org/",
"website": "https://librenms.org/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/librenms.svg",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/librenms.webp",
"config_path": "/opt/librenms/config.php and /opt/librenms/.env",
"description": "LibreNMS is an open-source, community-driven network monitoring system that provides automatic discovery, alerting, and performance tracking for network devices. It supports a wide range of hardware and integrates with various notification and logging platforms.",
"install_methods": [
@ -33,4 +33,3 @@
},
"notes": []
}

View File

@ -1,35 +1,35 @@
{
"name": "Librespeed",
"slug": "librespeed",
"categories": [
4
],
"date_created": "2025-04-26",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://github.com/librespeed/speedtest/blob/master/doc.md",
"config_path": "",
"website": "https://librespeed.org",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/librespeed.svg",
"description": "No Flash, No Java, No Websocket, No Bullshit. This is a very lightweight speed test implemented in Javascript, using XMLHttpRequest and Web Workers.",
"install_methods": [
{
"type": "default",
"script": "ct/librespeed.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "root",
"password": null
},
"notes": []
"name": "Librespeed",
"slug": "librespeed",
"categories": [
4
],
"date_created": "2025-04-26",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://github.com/librespeed/speedtest/blob/master/doc.md",
"config_path": "",
"website": "https://librespeed.org",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/librespeed.webp",
"description": "No Flash, No Java, No Websocket, No Bullshit. This is a very lightweight speed test implemented in Javascript, using XMLHttpRequest and Web Workers.",
"install_methods": [
{
"type": "default",
"script": "ct/librespeed.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "root",
"password": null
},
"notes": []
}

View File

@ -0,0 +1,35 @@
{
"name": "Lyrion Music Server",
"slug": "lyrionmusicserver",
"categories": [
9
],
"date_created": "2025-05-21",
"type": "ct",
"updateable": true,
"privileged": false,
"config_path": "/etc/default/lyrionmusicserver",
"interface_port": 9000,
"documentation": "https://lyrion.org/",
"website": "https://lyrion.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/lyrion-media-server.webp",
"description": "Lyrion Music Server is an open-source server software to stream local music collections, internet radio, and music services to Squeezebox and compatible audio players.",
"install_methods": [
{
"type": "default",
"script": "ct/lyrionmusicserver.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 3,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -1,36 +1,35 @@
{
"name": "Manyfold",
"slug": "manyfold",
"categories": [
24
],
"date_created": "2025-03-18",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 80,
"documentation": "https://manyfold.app/sysadmin/",
"website": "https://manyfold.app/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/manyfold.webp",
"config_path": "",
"description": "Manyfold is an open source, self-hosted web application for managing a collection of 3d models, particularly focused on 3d printing.",
"install_methods": [
{
"type": "default",
"script": "ct/manyfold.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 15,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
"name": "Manyfold",
"slug": "manyfold",
"categories": [
24
],
"date_created": "2025-03-18",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": 80,
"documentation": "https://manyfold.app/sysadmin/",
"website": "https://manyfold.app/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/manyfold.webp",
"config_path": "",
"description": "Manyfold is an open source, self-hosted web application for managing a collection of 3d models, particularly focused on 3d printing.",
"install_methods": [
{
"type": "default",
"script": "ct/manyfold.sh",
"resources": {
"cpu": 2,
"ram": 1024,
"hdd": 15,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@ -11,7 +11,7 @@
"interface_port": 80,
"documentation": "https://github.com/agersant/polaris/blob/master/docs/SETUP.md",
"website": "https://github.com/agersant/polaris",
"logo": "https://raw.githubusercontent.com/agersant/polaris/refs/heads/master/res/branding/logo/sticker_print.svg",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/polaris.webp",
"config_path": "",
"description": "Polaris is a self-hosted music streaming server that allows you to enjoy your personal music collection from any computer or mobile device. It is a free and open-source application with no premium version. Polaris is highly performant and responsive, supporting large music libraries with over 100,000 tracks. It features an intuitive user interface and supports various audio formats, including FLAC, MP3, MP4, OGG, and WAV. There is an Android client available through the Google Play Store, F-Droid, or GitHub Releases.",
"install_methods": [

View File

@ -0,0 +1,40 @@
{
"name": "Pulse",
"slug": "pulse",
"categories": [
9
],
"date_created": "2025-05-22",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 7655,
"documentation": null,
"website": "https://github.com/rcourtman/Pulse",
"logo": "https://raw.githubusercontent.com/rcourtman/Pulse/main/src/public/logos/pulse-logo-256x256.png",
"config_path": "/opt/pulse-proxmox/.env",
"description": "A lightweight monitoring application for Proxmox VE that displays real-time status for VMs and containers via a simple web interface.",
"install_methods": [
{
"type": "default",
"script": "ct/pulse.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Create Proxmox-API-Token first: `https: //github.com/rcourtman/Pulse?tab=readme-ov-file#creating-a-proxmox-api-token`",
"type": "Info"
}
]
}

View File

@ -0,0 +1,48 @@
{
"name": "PVE Privilege Converter",
"slug": "pve-privilege-converter",
"categories": [
1
],
"date_created": "2025-05-22",
"type": "pve",
"updateable": false,
"privileged": false,
"interface_port": null,
"documentation": "https://github.com/onethree7/proxmox-lxc-privilege-converter",
"website": null,
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/proxmox.webp",
"config_path": "",
"description": "This script allows converting Proxmox LXC containers between privileged and unprivileged modes using vzdump backup and restore. It guides you through container selection, backup storage, ID assignment, and privilege flipping via automated restore. Useful for applying changes that require different LXC modes.",
"install_methods": [
{
"type": "default",
"script": "tools/pve/pve-privilege-converter.sh",
"resources": {
"cpu": null,
"ram": null,
"hdd": null,
"os": null,
"version": null
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Execute this script inside the Proxmox shell as root.",
"type": "info"
},
{
"text": "Ensure that the backup and target storage have enough space.",
"type": "warning"
},
{
"text": "The container will be recreated with a new ID and desired privilege setting.",
"type": "info"
}
]
}

View File

@ -1,44 +0,0 @@
{
"name": "Rclone",
"slug": "rclone",
"categories": [
11
],
"date_created": "2025-05-06",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 3000,
"documentation": "https://rclone.org/docs/",
"website": "https://rclone.org/",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/svg/rclone.svg",
"config_path": "~/.config/rclone/rclone.conf",
"description": "Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces",
"install_methods": [
{
"type": "default",
"script": "ct/rclone.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 1,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"type": "info",
"text": "`cat ~/rclone.creds` to view login credentials"
},
{
"type": "info",
"text": "`htpasswd -b -B /opt/login.pwd newuser newuserpassword` to add more users."
}
]
}

View File

@ -1,33 +1,213 @@
[
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
"name": "pocketbase/pocketbase",
"version": "v0.28.2",
"date": "2025-05-24T07:59:15Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0p1-rc1",
"date": "2025-05-14T07:54:22Z"
"name": "Jackett/Jackett",
"version": "v0.22.1945",
"date": "2025-05-24T05:50:58Z"
},
{
"name": "traccar/traccar",
"version": "v6.7.1",
"date": "2025-05-24T04:51:02Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.13",
"date": "2025-05-24T04:31:52Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.21.0",
"date": "2025-05-23T19:17:15Z"
},
{
"name": "immich-app/immich",
"version": "v1.133.1",
"date": "2025-05-23T18:14:44Z"
},
{
"name": "Threadfin/Threadfin",
"version": "1.2.33",
"date": "2025-05-23T15:59:05Z"
},
{
"name": "home-assistant/core",
"version": "2025.5.3",
"date": "2025-05-23T15:10:33Z"
},
{
"name": "docker/compose",
"version": "v2.36.2",
"date": "2025-05-23T14:21:20Z"
},
{
"name": "zitadel/zitadel",
"version": "v3.2.0",
"date": "2025-05-23T13:58:07Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.1.4",
"date": "2025-05-23T12:29:19Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.10.2",
"date": "2025-05-23T11:56:41Z"
},
{
"name": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12:04Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.12",
"date": "2025-05-15T14:06:52Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.2",
"date": "2025-05-11T16:40:55Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1895",
"date": "2025-05-14T05:59:00Z"
"name": "ollama/ollama",
"version": "v0.7.1-rc2",
"date": "2025-05-23T01:53:31Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.0.0-alpha-4",
"date": "2025-05-14T05:01:45Z"
"name": "rogerfar/rdt-client",
"version": "v2.0.113",
"date": "2025-05-23T01:47:35Z"
},
{
"name": "grafana/grafana",
"version": "v11.2.10",
"date": "2025-05-22T23:50:45Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.8",
"date": "2025-03-25T13:33:10Z"
},
{
"name": "MariaDB/server",
"version": "mariadb-11.4.7",
"date": "2025-05-22T14:22:22Z"
},
{
"name": "neo4j/neo4j",
"version": "4.4.44",
"date": "2025-05-22T13:58:43Z"
},
{
"name": "apache/cassandra",
"version": "4.0.18-tentative",
"date": "2025-05-22T11:46:18Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.1.1",
"date": "2025-05-16T17:37:30Z"
},
{
"name": "0xERR0R/blocky",
"version": "v0.26.2",
"date": "2025-05-22T05:24:42Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.1.9",
"date": "2025-03-01T02:24:33Z"
},
{
"name": "apache/tika",
"version": "3.2.0-rc2",
"date": "2025-05-21T20:09:07Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.84.0",
"date": "2025-05-21T19:39:53Z"
},
{
"name": "clusterzx/paperless-ai",
"version": "v3.0.4",
"date": "2025-05-21T19:03:53Z"
},
{
"name": "mongodb/mongo",
"version": "r8.0.10-rc0",
"date": "2025-05-21T18:22:25Z"
},
{
"name": "ipfs/kubo",
"version": "v0.35.0",
"date": "2025-05-21T18:00:32Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.20.10",
"date": "2025-05-21T17:22:32Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.12.5",
"date": "2025-05-17T02:52:33Z"
},
{
"name": "cockpit-project/cockpit",
"version": "339",
"date": "2025-05-21T14:49:36Z"
},
{
"name": "mattermost/mattermost",
"version": "v9.11.16",
"date": "2025-05-21T13:57:13Z"
},
{
"name": "theonedev/onedev",
"version": "v11.9.9",
"date": "2025-05-21T13:13:31Z"
},
{
"name": "glpi-project/glpi",
"version": "10.0.18",
"date": "2025-02-12T11:07:02Z"
},
{
"name": "esphome/esphome",
"version": "2025.5.0",
"date": "2025-05-21T08:32:53Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.6",
"date": "2025-05-06T07:57:02Z"
},
{
"name": "inventree/InvenTree",
"version": "0.17.12",
"date": "2025-05-21T05:44:55Z"
},
{
"name": "diced/zipline",
"version": "v4.1.0",
"date": "2025-05-21T04:12:44Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.19.0",
"date": "2025-05-21T03:46:14Z"
},
{
"name": "matze/wastebin",
"version": "3.1.0",
"date": "2025-05-20T19:20:03Z"
},
{
"name": "MediaBrowser/Emby.Releases",
@ -35,55 +215,245 @@
"date": "2025-03-10T06:39:11Z"
},
{
"name": "ollama/ollama",
"version": "v0.6.9-rc0",
"date": "2025-05-10T18:57:30Z"
"name": "jenkinsci/jenkins",
"version": "jenkins-2.511",
"date": "2025-05-20T15:39:17Z"
},
{
"name": "esphome/esphome",
"version": "2025.4.2",
"date": "2025-05-11T22:18:43Z"
"name": "element-hq/synapse",
"version": "v1.130.0",
"date": "2025-05-20T15:33:54Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.12.4",
"date": "2025-05-11T11:41:32Z"
"name": "documenso/documenso",
"version": "v1.11.1",
"date": "2025-05-20T12:37:46Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.2.12",
"date": "2025-04-20T19:22:17Z"
"name": "Stirling-Tools/Stirling-PDF",
"version": "v0.46.2",
"date": "2025-05-20T11:21:04Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.7",
"date": "2025-05-20T11:00:56Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.0.3",
"date": "2025-05-20T06:51:42Z"
},
{
"name": "crafty-controller/crafty-4",
"version": "v4.4.9",
"date": "2025-05-20T00:08:29Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.36.4",
"date": "2025-05-19T22:28:11Z"
},
{
"name": "paperless-ngx/paperless-ngx",
"version": "v2.16.1",
"date": "2025-05-19T21:26:44Z"
},
{
"name": "glanceapp/glance",
"version": "v0.8.3",
"date": "2025-05-19T20:45:10Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.1",
"date": "2025-03-15T17:29:17Z"
},
{
"name": "Forceu/Gokapi",
"version": "v1.9.6",
"date": "2024-12-18T14:35:37Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0p2",
"date": "2025-05-19T17:06:15Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.91.3",
"date": "2025-05-08T12:25:10Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.3.0-beta.1",
"date": "2025-05-19T11:23:27Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.10",
"date": "2025-05-19T01:34:37Z"
},
{
"name": "Part-DB/Part-DB-server",
"version": "v1.17.1",
"date": "2025-05-18T21:06:41Z"
},
{
"name": "sbondCo/Watcharr",
"version": "v2.1.0",
"date": "2025-05-18T18:20:43Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.6.1",
"date": "2025-05-18T17:01:42Z"
},
{
"name": "kimai/kimai",
"version": "2.34.0",
"date": "2025-05-18T13:22:17Z"
},
{
"name": "hansmi/prometheus-paperless-exporter",
"version": "v0.0.8",
"date": "2025-05-18T11:37:31Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.35.1.5034",
"date": "2025-04-30T11:02:36Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.23.3.9987",
"date": "2025-05-17T12:55:29Z"
},
{
"name": "bastienwirtz/homer",
"version": "v25.05.2",
"date": "2025-05-17T12:53:29Z"
},
{
"name": "BookStackApp/BookStack",
"version": "v25.02.5",
"date": "2025-05-17T11:24:01Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.1.1",
"date": "2025-05-17T10:10:36Z"
},
{
"name": "evcc-io/evcc",
"version": "0.203.6",
"date": "2025-05-17T07:30:49Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.304.0",
"date": "2025-05-17T07:29:09Z"
},
{
"name": "advplyr/audiobookshelf",
"version": "v2.23.0",
"date": "2025-05-16T22:13:53Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.4.1",
"date": "2025-05-16T16:37:51Z"
},
{
"name": "influxdata/influxdb",
"version": "v3.0.3",
"date": "2025-05-16T15:41:16Z"
},
{
"name": "wavelog/wavelog",
"version": "2.0.4",
"date": "2025-05-16T15:09:53Z"
},
{
"name": "emqx/emqx",
"version": "e5.10.0-alpha.1",
"date": "2025-05-16T13:30:53Z"
},
{
"name": "gotson/komga",
"version": "1.21.3",
"date": "2025-05-16T04:31:05Z"
},
{
"name": "coder/code-server",
"version": "v4.100.2",
"date": "2025-05-15T23:02:46Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.4.1",
"date": "2025-05-15T17:48:29Z"
},
{
"name": "cloudflare/cloudflared",
"version": "2025.5.0",
"date": "2025-05-15T17:09:50Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.117.1",
"date": "2025-05-15T15:45:22Z"
},
{
"name": "ellite/Wallos",
"version": "v3.1.1",
"date": "2025-05-15T15:17:57Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.5.1",
"date": "2025-05-15T09:59:28Z"
},
{
"name": "FlowiseAI/Flowise",
"version": "flowise@3.0.0",
"date": "2025-05-15T01:49:47Z"
},
{
"name": "Ombi-app/Ombi",
"version": "v4.47.1",
"date": "2025-01-05T21:14:23Z"
},
{
"name": "Athou/commafeed",
"version": "5.9.0",
"date": "2025-05-14T15:29:48Z"
},
{
"name": "juanfont/headscale",
"version": "v0.26.0",
"date": "2025-05-14T15:12:14Z"
},
{
"name": "motioneye-project/motioneye",
"version": "0.42.1",
"date": "2020-06-07T07:27:04Z"
},
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.0.0-alpha-4",
"date": "2025-05-14T05:01:45Z"
},
{
"name": "netbox-community/netbox",
"version": "v4.3.1",
"date": "2025-05-13T19:45:00Z"
},
{
"name": "glanceapp/glance",
"version": "v0.8.1",
"date": "2025-05-13T19:42:42Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.28.1",
"date": "2025-05-13T18:45:47Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.510",
"date": "2025-05-13T18:33:42Z"
},
{
"name": "mongodb/mongo",
"version": "r6.0.23",
"date": "2025-05-13T18:28:23Z"
},
{
"name": "keycloak/keycloak",
"version": "26.2.4",
"date": "2025-05-08T09:10:10Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.11.1",
@ -93,405 +463,5 @@
"name": "redis/redis",
"version": "8.0.1",
"date": "2025-05-13T13:31:53Z"
},
{
"name": "theonedev/onedev",
"version": "v11.9.6",
"date": "2025-05-13T12:16:17Z"
},
{
"name": "element-hq/synapse",
"version": "v1.129.0",
"date": "2025-05-06T12:28:54Z"
},
{
"name": "zabbix/zabbix",
"version": "7.2.7rc1",
"date": "2025-05-13T11:55:32Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.3.0-alpha.4",
"date": "2025-05-13T11:18:29Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.65.9",
"date": "2025-05-13T05:14:39Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.23.8",
"date": "2025-05-12T22:40:50Z"
},
{
"name": "leiweibau/Pi.Alert",
"version": "v2025-05-11",
"date": "2025-05-12T19:14:57Z"
},
{
"name": "duplicati/duplicati",
"version": "v2.1.0.118-2.1.0.118_canary_2025-05-12",
"date": "2025-05-12T18:50:44Z"
},
{
"name": "runtipi/runtipi",
"version": "v4.1.0",
"date": "2025-05-12T07:13:15Z"
},
{
"name": "coder/code-server",
"version": "v4.100.0",
"date": "2025-05-12T18:23:47Z"
},
{
"name": "neo4j/neo4j",
"version": "4.4.43",
"date": "2025-05-12T15:33:17Z"
},
{
"name": "usememos/memos",
"version": "v0.24.3",
"date": "2025-05-12T15:23:21Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v2.8.18",
"date": "2025-05-12T15:08:09Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.91.3",
"date": "2025-05-08T12:25:10Z"
},
{
"name": "Paymenter/Paymenter",
"version": "v1.1.0",
"date": "2025-05-12T14:40:27Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.117.0",
"date": "2025-05-12T13:24:20Z"
},
{
"name": "apache/tika",
"version": "3.2.0-rc1",
"date": "2025-05-12T13:06:47Z"
},
{
"name": "mattermost/mattermost",
"version": "v10.7.2",
"date": "2025-05-12T10:42:32Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.49.17",
"date": "2025-05-12T08:48:30Z"
},
{
"name": "stackblitz-labs/bolt.diy",
"version": "1.0.0",
"date": "2025-05-12T07:39:23Z"
},
{
"name": "umami-software/umami",
"version": "v2.18.1",
"date": "2025-05-12T07:16:12Z"
},
{
"name": "outline/outline",
"version": "v0.84.0",
"date": "2025-05-11T15:50:48Z"
},
{
"name": "Kozea/Radicale",
"version": "v3.5.3",
"date": "2025-05-11T15:17:13Z"
},
{
"name": "Prowlarr/Prowlarr",
"version": "v1.35.1.5034",
"date": "2025-04-30T11:02:36Z"
},
{
"name": "authelia/authelia",
"version": "v4.39.3",
"date": "2025-05-11T11:12:15Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.22.4.9896",
"date": "2025-04-23T18:51:12Z"
},
{
"name": "owncast/owncast",
"version": "v0.2.3",
"date": "2025-05-10T21:14:45Z"
},
{
"name": "open-webui/open-webui",
"version": "v0.6.9",
"date": "2025-05-10T19:05:02Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v0.46.1",
"date": "2025-05-10T15:39:10Z"
},
{
"name": "juanfont/headscale",
"version": "v0.25.1",
"date": "2025-02-25T17:30:48Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta13",
"date": "2025-05-09T23:14:41Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta21",
"date": "2025-05-09T23:14:23Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.19.1",
"date": "2025-05-09T19:15:10Z"
},
{
"name": "home-assistant/core",
"version": "2025.5.1",
"date": "2025-05-09T15:05:54Z"
},
{
"name": "crowdsecurity/crowdsec",
"version": "v1.6.8",
"date": "2025-03-25T13:33:10Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v0.53.0",
"date": "2025-05-08T19:56:55Z"
},
{
"name": "ellite/Wallos",
"version": "v3.1.0",
"date": "2025-05-08T15:33:17Z"
},
{
"name": "BookStackApp/BookStack",
"version": "v25.02.4",
"date": "2025-05-08T15:03:17Z"
},
{
"name": "wazuh/wazuh",
"version": "v4.12.0",
"date": "2025-05-08T13:27:46Z"
},
{
"name": "apache/tomcat",
"version": "10.1.41",
"date": "2025-05-08T12:45:44Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v10.4.2",
"date": "2025-05-08T08:11:27Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.14.10",
"date": "2025-05-07T20:23:29Z"
},
{
"name": "readeck/readeck",
"version": "0.18.2",
"date": "2025-05-07T19:22:22Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.36.3",
"date": "2025-05-07T17:22:07Z"
},
{
"name": "ipfs/kubo",
"version": "v0.34.1",
"date": "2025-03-25T18:11:12Z"
},
{
"name": "donaldzou/WGDashboard",
"version": "v4.2.3",
"date": "2025-05-07T15:35:04Z"
},
{
"name": "stonith404/pingvin-share",
"version": "v1.12.0",
"date": "2025-05-07T14:12:11Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.7.5",
"date": "2025-05-07T14:01:45Z"
},
{
"name": "glpi-project/glpi",
"version": "10.0.18",
"date": "2025-02-12T11:07:02Z"
},
{
"name": "ZoeyVid/NPMplus",
"version": "2025-05-07-r1",
"date": "2025-05-07T12:18:42Z"
},
{
"name": "docker/compose",
"version": "v2.36.0",
"date": "2025-05-07T11:54:14Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.14.7",
"date": "2025-05-07T11:32:23Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.1.3",
"date": "2025-05-07T11:09:21Z"
},
{
"name": "cockpit-project/cockpit",
"version": "338",
"date": "2025-05-07T10:43:29Z"
},
{
"name": "jupyter/notebook",
"version": "@jupyter-notebook/ui-components@7.5.0-alpha.0",
"date": "2025-05-07T09:12:08Z"
},
{
"name": "influxdata/influxdb",
"version": "v1.12.1rc0",
"date": "2025-05-06T20:56:30Z"
},
{
"name": "Athou/commafeed",
"version": "5.8.0",
"date": "2025-05-06T18:33:07Z"
},
{
"name": "sysadminsmedia/homebox",
"version": "v0.19.0",
"date": "2025-05-06T18:05:42Z"
},
{
"name": "MariaDB/server",
"version": "mariadb-11.4.6",
"date": "2025-05-06T15:30:49Z"
},
{
"name": "bluenviron/mediamtx",
"version": "v1.12.2",
"date": "2025-05-06T15:30:10Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.61",
"date": "2025-04-22T12:42:26Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.0.1",
"date": "2025-05-06T10:24:43Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.6",
"date": "2025-05-06T07:57:02Z"
},
{
"name": "linkwarden/linkwarden",
"version": "v2.10.2",
"date": "2025-05-06T03:12:53Z"
},
{
"name": "fallenbagel/jellyseerr",
"version": "preview-tvdb",
"date": "2025-05-06T01:32:52Z"
},
{
"name": "autobrr/autobrr",
"version": "v1.62.0",
"date": "2025-05-05T20:35:18Z"
},
{
"name": "postgres/postgres",
"version": "REL_13_21",
"date": "2025-05-05T20:34:49Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.20.9",
"date": "2025-05-05T19:24:09Z"
},
{
"name": "grafana/grafana",
"version": "v12.0.0",
"date": "2025-05-05T18:28:19Z"
},
{
"name": "apache/couchdb",
"version": "3.5.0",
"date": "2025-05-05T16:28:24Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.18.0",
"date": "2025-05-05T15:34:40Z"
},
{
"name": "traefik/traefik",
"version": "v3.4.0",
"date": "2025-05-05T13:59:23Z"
},
{
"name": "evcc-io/evcc",
"version": "0.203.5",
"date": "2025-05-05T06:41:02Z"
},
{
"name": "moghtech/komodo",
"version": "v1.17.5",
"date": "2025-05-04T22:17:06Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.0.16",
"date": "2025-05-04T22:06:15Z"
},
{
"name": "Lidarr/Lidarr",
"version": "v2.11.2.4629",
"date": "2025-04-28T11:59:37Z"
},
{
"name": "Readarr/Readarr",
"version": "v2.0.0.4645",
"date": "2017-03-07T18:56:06Z"
},
{
"name": "bastienwirtz/homer",
"version": "v25.05.1",
"date": "2025-05-04T12:17:00Z"
},
{
"name": "FreshRSS/FreshRSS",
"version": "1.26.2",
"date": "2025-05-03T20:23:27Z"
},
{
"name": "prometheus-pve/prometheus-pve-exporter",
"version": "v3.5.4",
"date": "2025-05-02T13:42:06Z"
}
]

View File

@ -1,85 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/bitmagnet-io/bitmagnet
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing dependencies"
$STD apk add --no-cache \
gcc \
musl-dev \
git \
iproute2-ss \
sudo
$STD apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community go
msg_ok "Installed dependencies"
msg_info "Installing PostgreSQL"
$STD apk add --no-cache \
postgresql16 \
postgresql16-contrib \
postgresql16-openrc
$STD rc-update add postgresql
$STD rc-service postgresql start
msg_ok "Installed PostreSQL"
RELEASE=$(curl -s https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
msg_info "Installing bitmagnet v${RELEASE}"
mkdir -p /opt/bitmagnet
temp_file=$(mktemp)
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
cd /opt/bitmagnet
VREL=v$RELEASE
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
chmod +x bitmagnet
$STD su - postgres -c "psql -c 'CREATE DATABASE bitmagnet;'"
echo "${RELEASE}" >/opt/bitmagnet_version.txt
msg_ok "Installed bitmagnet v${RELEASE}"
read -rp "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey
msg_info "Enabling bitmagnet Service"
cat <<EOF >/etc/init.d/bitmagnet
#!/sbin/openrc-run
description="bitmagnet Service"
directory="/opt/bitmagnet"
command="/opt/bitmagnet/bitmagnet"
command_args="worker run --all"
command_background="true"
command_user="root"
pidfile="/var/run/bitmagnet.pid"
depend() {
use net
}
start_pre() {
export TMDB_API_KEY="$tmdbapikey"
}
EOF
chmod +x /etc/init.d/bitmagnet
$STD rc-update add bitmagnet default
msg_ok "Enabled bitmagnet Service"
msg_info "Starting bitmagnet"
$STD service bitmagnet start
msg_ok "Started bitmagnet"
motd_ssh
customize
msg_info "Cleaning up"
rm -f "$temp_file"
$STD apk cache clean
msg_ok "Cleaned"

View File

@ -0,0 +1,105 @@
#!/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/homarr-labs/homarr
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apk add --no-cache \
redis \
nginx \
ca-certificates \
openssl \
jq \
make \
g++ \
gettext \
libstdc++ \
libgcc \
python3 \
py3-pip
msg_ok "Installed Dependencies"
NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
install_node_and_modules
fetch_and_deploy_gh_release "homarr-labs/homarr"
msg_info "Installing Homarr"
mkdir -p /opt/homarr_db
touch /opt/homarr_db/db.sqlite
SECRET_ENCRYPTION_KEY="$(openssl rand -hex 32)"
cd /opt/homarr
cat <<EOF >/opt/homarr/.env
DB_DRIVER='better-sqlite3'
DB_DIALECT='sqlite'
SECRET_ENCRYPTION_KEY='${SECRET_ENCRYPTION_KEY}'
DB_URL='/opt/homarr_db/db.sqlite'
TURBO_TELEMETRY_DISABLED=1
AUTH_PROVIDERS='credentials'
NODE_ENV='production'
EOF
$STD pnpm install
$STD pnpm build
msg_ok "Installed Homarr"
msg_info "Copying build and config files"
cp /opt/homarr/apps/nextjs/next.config.ts .
cp /opt/homarr/apps/nextjs/package.json .
cp -r /opt/homarr/packages/db/migrations /opt/homarr_db/migrations
cp -r /opt/homarr/apps/nextjs/.next/standalone/* /opt/homarr
mkdir -p /appdata/redis
cp /opt/homarr/packages/redis/redis.conf /opt/homarr/redis.conf
mkdir -p /etc/nginx/templates
cp /opt/homarr/nginx.conf /etc/nginx/templates/nginx.conf
mkdir -p /opt/homarr/apps/cli
cp /opt/homarr/packages/cli/cli.cjs /opt/homarr/apps/cli/cli.cjs
echo -e '#!/bin/sh\ncd /opt/homarr/apps/cli && node ./cli.cjs "$@"' >/usr/bin/homarr
chmod +x /usr/bin/homarr
mkdir -p /opt/homarr/build
cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Finished copying"
msg_info "Creating run script"
cat <<'EOF' >/opt/run_homarr.sh
#!/bin/sh
set -a
. /opt/homarr/.env
set +a
export DB_DIALECT='sqlite'
export AUTH_SECRET=$(openssl rand -base64 32)
node /opt/homarr_db/migrations/$DB_DIALECT/migrate.cjs /opt/homarr_db/migrations/$DB_DIALECT
for dir in $(find /opt/homarr_db/migrations/migrations -mindepth 1 -maxdepth 1 -type d); do
dirname=$(basename "$dir")
mkdir -p "/opt/homarr_db/migrations/$dirname"
cp -r "$dir"/* "/opt/homarr_db/migrations/$dirname/" 2>/dev/null || true
done
export HOSTNAME=$(ip route get 1.1.1.1 | awk '/src/ { print $7 }')
envsubst '${HOSTNAME}' < /etc/nginx/templates/nginx.conf > /etc/nginx/nginx.conf
nginx -g 'daemon off;' &
redis-server /opt/homarr/redis.conf &
node apps/tasks/tasks.cjs &
node apps/websocket/wssServer.cjs &
node apps/nextjs/server.js & PID=$!
wait $PID
EOF
chmod +x /opt/run_homarr.sh
msg_ok "Created run script"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf /opt/v${RELEASE}.zip
msg_ok "Cleaned"

100
install/argus-install.sh Normal file
View File

@ -0,0 +1,100 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://release-argus.io/
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 \
jq
msg_ok "Installed Dependencies"
msg_info "Setup Argus"
RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
mkdir -p /opt/argus
curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-amd64" -o /opt/argus/Argus
chmod +x /opt/argus/Argus
msg_ok "Setup Argus"
msg_info "Setup Argus Config"
cat <<EOF >/opt/argus/config.yml
settings:
log:
level: INFO
timestamps: false
data:
database_file: data/argus.db
web:
listen_host: 0.0.0.0
listen_port: 8080
route_prefix: /
defaults:
service:
options:
interval: 30m
semantic_versioning: true
latest_version:
allow_invalid_certs: false
use_prerelease: false
dashboard:
auto_approve: true
webhook:
desired_status_code: 201
service:
release-argus/argus:
latest_version:
type: github
url: release-argus/argus
dashboard:
icon: https://raw.githubusercontent.com/release-argus/Argus/master/web/ui/react-app/public/favicon.svg
icon_link_to: https://release-argus.io
web_url: https://github.com/release-argus/Argus/blob/master/CHANGELOG.md
community-scripts/ProxmoxVE:
latest_version:
type: github
url: community-scripts/ProxmoxVE
use_prerelease: false
dashboard:
icon: https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/images/logo.png
icon_link_to: https://helper-scripts.com/
web_url: https://github.com/community-scripts/ProxmoxVE/releases
EOF
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
msg_ok "Setup Config"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/argus.service
[Unit]
Description=Argus
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/argus
ExecStart=/opt/argus/Argus
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now argus
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

@ -1,9 +1,9 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 community-scripts ORG
# Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ)
# License: MIT | htt
# Source: https://github.com/AnalogJ/scrutiny
# License: MIT | http
# Source: https://github.com/babybuddy/babybuddy
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
@ -13,7 +13,6 @@ setting_up_container
network_check
update_os
# Installiere benötigte Pakete
msg_info "Installing Dependencies"
$STD apt-get install -y \
uwsgi \
@ -21,31 +20,22 @@ $STD apt-get install -y \
libopenjp2-7-dev \
libpq-dev \
nginx \
python3 \
python3-venv \
python3-pip
python3
msg_ok "Installed Dependencies"
msg_info "Installing Babybuddy"
cd /opt
RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
wget -q "https://github.com/babybuddy/babybuddy/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip
mv babybuddy-${RELEASE} /opt/babybuddy
rm "v${RELEASE}.zip"
cd /opt/babybuddy
$STD pip install -U pip wheel pipenv
export PIPENV_VENV_IN_PROJECT=1
export PIPENV_IGNORE_VIRTUALENVS=1
export PIPENV_VERBOSITY=-1
$STD pipenv install
#$STD pipenv shell
cp babybuddy/settings/production.example.py babybuddy/settings/production.py
touch /opt/babybuddy/data/db.sqlite3
chown -R www-data:www-data /opt/babybuddy/data
chmod 640 /opt/babybuddy/data/db.sqlite3
chmod 750 /opt/babybuddy/data
setup_uv
msg_info "Installing Babybuddy"
RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
temp_file=$(mktemp)
mkdir -p /opt/{babybuddy,data}
curl -fsSL "https://github.com/babybuddy/babybuddy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/babybuddy
cd /opt/babybuddy
$STD uv venv .venv
$STD source .venv/bin/activate
$STD uv pip install -r requirements.txt
cp babybuddy/settings/production.example.py babybuddy/settings/production.py
SECRET_KEY=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)
ALLOWED_HOSTS=$(hostname -I | tr ' ' ',' | sed 's/,$//')",127.0.0.1,localhost"
sed -i \
@ -54,38 +44,14 @@ sed -i \
babybuddy/settings/production.py
export DJANGO_SETTINGS_MODULE=babybuddy.settings.production
python manage.py migrate
$STD python manage.py migrate
chown -R www-data:www-data /opt/data
chmod 640 /opt/data/db.sqlite3
chmod 750 /opt/data
msg_ok "Installed Babybuddy"
# Berechtigungen setzen
chown -R www-data:www-data /opt/babybuddy/data
chmod 640 /opt/babybuddy/data/db.sqlite3
chmod 750 /opt/babybuddy/data
msg_ok "Installed BabyBuddy WebApp"
# Django Admin Setup
DJANGO_ADMIN_USER=admin
DJANGO_ADMIN_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)
python manage.py shell <<EOF
from django.contrib.auth import get_user_model
User = get_user_model()
if not User.objects.filter(username='$DJANGO_ADMIN_USER').exists():
u = User.objects.create_user('$DJANGO_ADMIN_USER', password='$DJANGO_ADMIN_PASS')
u.is_superuser = True
u.is_staff = True
u.save()
EOF
{
echo ""
echo "Django-Credentials"
echo "Django Admin User: $DJANGO_ADMIN_USER"
echo "Django Admin Password: $DJANGO_ADMIN_PASS"
} >>~/babybuddy.creds
msg_ok "Setup Django Admin"
# uWSGI konfigurieren
msg_info "Configuring uWSGI"
sudo bash -c "cat > /etc/uwsgi/apps-available/babybuddy.ini" <<EOF
cat <<EOF >/etc/uwsgi/apps-available/babybuddy.ini
[uwsgi]
plugins = python3
project = babybuddy
@ -96,12 +62,15 @@ module = %(project).wsgi:application
env = DJANGO_SETTINGS_MODULE=%(project).settings.production
master = True
vacuum = True
socket = /var/run/uwsgi/app/babybuddy/socket
chmod-socket = 660
uid = www-data
gid = www-data
EOF
ln -sf /etc/uwsgi/apps-available/babybuddy.ini /etc/uwsgi/apps-enabled/babybuddy.ini
service uwsgi restart
msg_ok "Configured uWSGI"
sudo ln -sf /etc/uwsgi/apps-available/babybuddy.ini /etc/uwsgi/apps-enabled/babybuddy.ini
sudo service uwsgi restart
# NGINX konfigurieren
msg_info "Configuring NGINX"
cat <<EOF >/etc/nginx/sites-available/babybuddy
upstream babybuddy {
@ -118,16 +87,22 @@ server {
}
location /media {
alias /opt/babybuddy/media;
alias /opt/data/media;
}
}
EOF
ln -sf /etc/nginx/sites-available/babybuddy /etc/nginx/sites-enabled/babybuddy
service nginx restart
rm /etc/nginx/sites-enabled/default
systemctl enable -q --now nginx
service nginx reload
msg_ok "Configured NGINX"
motd_ssh
customize
# Bereinigung
msg_info "Cleaning up"
rm -f "$temp_file"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -21,7 +21,8 @@ $STD apt-get install -y \
redis-server \
npm \
nginx \
lsb-release
lsb-release \
libvips
msg_ok "Installed Dependencies"
msg_info "Adding PHP8.4 Repository"
@ -31,12 +32,15 @@ $STD sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https
$STD apt-get update
msg_ok "Added PHP8.4 Repository"
msg_info "Installing PHP"
msg_info "Installing / configuring PHP"
$STD apt-get remove -y php8.2*
$STD apt-get install -y \
php8.4 \
php8.4-{ffi,opcache,redis,zip,pdo-sqlite,bcmath,pdo,curl,dom,fpm}
msg_info "Installed PHP"
PHPVER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION . "\n";')
sed -i.bak -E 's/^\s*;?\s*ffi\.enable\s*=.*/ffi.enable=true/' /etc/php/${PHPVER}/fpm/php.ini
$STD systemctl reload php${PHPVER}-fpm
msg_info "Installed / configured PHP"
msg_info "Installing MeiliSearch"
cd /opt
@ -74,7 +78,8 @@ systemctl enable -q --now meilisearch
msg_ok "Created Service MeiliSearch"
msg_info "Installing Bar Assistant"
RELEASE_BARASSISTANT=$(curl -s https://api.github.com/repos/karlomikus/bar-assistant/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
# RELEASE_BARASSISTANT=$(curl -s https://api.github.com/repos/karlomikus/bar-assistant/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
RELEASE_BARASSISTANT="5.3.0"
cd /opt
curl -fsSL "https://github.com/karlomikus/bar-assistant/archive/refs/tags/v${RELEASE_BARASSISTANT}.zip" -o barassistant.zip
unzip -q barassistant.zip
@ -100,6 +105,7 @@ $STD php artisan scout:sync-index-settings
$STD php artisan config:cache
$STD php artisan route:cache
$STD php artisan event:cache
mkdir /opt/bar-assistant/storage/bar-assistant/uploads/temp
chown -R www-data:www-data /opt/bar-assistant
echo "${RELEASE_BARASSISTANT}" >/opt/${APPLICATION}_version.txt
msg_ok "Installed Bar Assistant"

View File

@ -1,78 +0,0 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/bitmagnet-io/bitmagnet
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 \
iproute2 \
gcc \
musl-dev
msg_ok "Installed Dependencies"
PG_VERSION="16" install_postgresql
install_go
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
msg_info "Installing bitmagnet v${RELEASE}"
mkdir -p /opt/bitmagnet
temp_file=$(mktemp)
curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
cd /opt/bitmagnet
VREL=v$RELEASE
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
chmod +x bitmagnet
POSTGRES_PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$POSTGRES_PASSWORD';"
$STD sudo -u postgres psql -c "CREATE DATABASE bitmagnet;"
{
echo "PostgreSQL Credentials"
echo ""
echo "postgres user password: $POSTGRES_PASSWORD"
} >>~/postgres.creds
echo "${RELEASE}" >/opt/bitmagnet_version.txt
msg_ok "Installed bitmagnet v${RELEASE}"
read -r -p "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/bitmagnet-web.service
[Unit]
Description=bitmagnet Web GUI
After=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/bitmagnet
ExecStart=/opt/bitmagnet/bitmagnet worker run --all
Environment=POSTGRES_HOST=localhost
Environment=POSTGRES_PASSWORD=$POSTGRES_PASSWORD
Environment=TMDB_API_KEY=$tmdbapikey
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now bitmagnet-web
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

@ -13,21 +13,7 @@ setting_up_container
network_check
update_os
msg_info "Installing dependencies"
install_go
msg_ok "Installed dependencies"
# msg_info "Installing Go"
# GO_VERSION=$(curl -s https://go.dev/VERSION?m=text | grep -m1 '^go')
# GO_TARBALL="${GO_VERSION}.linux-amd64.tar.gz"
# GO_URL="https://go.dev/dl/${GO_TARBALL}"
# INSTALL_DIR="/usr/bin"
# rm -rf "${INSTALL_DIR}/go"
# curl -LO "$GO_URL"
# tar -C "$INSTALL_DIR" -xzf "$GO_TARBALL"
# echo 'export PATH=$PATH:/usr/bin/go/bin' >>~/.bashrc
# source ~/.bashrc
# msg_ok "Installed Go"
msg_info "Configure Application"
var_cf_api_token="default"
@ -38,33 +24,33 @@ read -rp "Enter the domains separated with a comma (*.example.org,www.example.or
var_cf_proxied="false"
while true; do
read -rp "Proxied? (y/n): " answer
case "$answer" in
[Yy]*)
var_cf_proxied="true"
break
;;
[Nn]*)
var_cf_proxied="false"
break
;;
*) echo "Please answer y or n." ;;
esac
read -rp "Proxied? (y/n): " answer
case "$answer" in
[Yy]*)
var_cf_proxied="true"
break
;;
[Nn]*)
var_cf_proxied="false"
break
;;
*) echo "Please answer y or n." ;;
esac
done
var_cf_ip6_provider="none"
while true; do
read -rp "Enable IPv6 support? (y/n): " answer
case "$answer" in
[Yy]*)
var_cf_ip6_provider="auto"
break
;;
[Nn]*)
var_cf_ip6_provider="none"
break
;;
*) echo "Please answer y or n." ;;
esac
read -rp "Enable IPv6 support? (y/n): " answer
case "$answer" in
[Yy]*)
var_cf_ip6_provider="auto"
break
;;
[Nn]*)
var_cf_ip6_provider="none"
break
;;
*) echo "Please answer y or n." ;;
esac
done
msg_ok "Configured Application"
@ -98,5 +84,4 @@ customize
msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
#rm -f "$GO_TARBALL"
msg_ok "Cleaned"

View File

@ -0,0 +1,77 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Omar Minaya
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/C4illin/ConvertX
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 \
ffmpeg \
jq
msg_ok "Installed Dependencies"
msg_info "Installing ConvertX"
curl -fsSL "https://bun.sh/install" | bash
ln -sf /root/.bun/bin/bun /usr/local/bin/bun
mkdir -p /opt/convertx
RELEASE=$(curl -fsSL https://api.github.com/repos/C4illin/ConvertX/releases/latest | jq -r .tag_name | sed 's/^v//')
curl -fsSL -o "/opt/convertx/ConvertX-${RELEASE}.tar.gz" "https://github.com/C4illin/ConvertX/archive/refs/tags/v${RELEASE}.tar.gz"
tar --strip-components=1 -xf "/opt/convertx/ConvertX-${RELEASE}.tar.gz" -C /opt/convertx
cd /opt/convertx
mkdir -p data
bun install
JWT_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | head -c 32)
cat <<EOF >/opt/convertx/.env
JWT_SECRET=$JWT_SECRET
HTTP_ALLOWED=true
PORT=3000
EOF
msg_ok "Installed ConvertX"
msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/convertx.service
[Unit]
Description=ConvertX File Converter
After=network.target
[Service]
Type=exec
WorkingDirectory=/opt/convertx
EnvironmentFile=/opt/convertx/.env
ExecStart=/root/.bun/bin/bun dev
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now convertx
msg_ok "Service Created"
msg_info "Waiting for SQLite database"
for ((COUNT=0; COUNT<60; COUNT++)); do
[ -f "/opt/convertx/data/mydb.sqlite" ] && { systemctl restart convertx; exit 0; }
sleep 0.5
done
msg_error "Timed out waiting for database!"
exit 1
msg_ok "Database created"
motd_ssh
customize
msg_info "Cleaning up"
$STD rm -f /opt/convertx/ConvertX-${RELEASE}.tar.gz
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"

View File

@ -13,9 +13,12 @@ setting_up_container
network_check
update_os
# msg_info "Installing Dependencies"
# $STD apt-get install -y gnupg2
# msg_ok "Installed Dependencies"
msg_info "Installing Dependencies"
#$STD apt-get install -y gnup
msg_ok "Installed Dependencies"
#PHP_VERSION=8.2 PHP_FPM=YES install_php
#install_composer
# Example Setting for Test
#NODE_MODULE="pnpm@10.1,yarn"
@ -23,76 +26,18 @@ update_os
#msg_ok "Get Release $RELEASE"
#NODE_VERSION="22" NODE_MODULE="yarn" install_node_and_modules
#PG_VERSION="15"
PG_VERSION="16" install_postgresql
#MARIADB_VERSION="11.8"
#MYSQL_VERSION="8.0"
#install_postgresql
install_mariadb
#install_mariadb
#install_mysql
# msg_info "Setup DISTRO env"
# DISTRO="$(awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release)"
# msg_ok "Setup DISTRO"
# echo -e $DISTRO
# msg_info "Setting up PostgreSQL Repository"
# 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 ${DISTRO}-pgdg main" >/etc/apt/sources.list.d/pgdg.list
# apt-get update
# $STD apt-get install -y postgresql
# msg_ok "Set up PostgreSQL Repository"
# msg_info "Setting up Matrix Server"
# curl -fsSL https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg -o /usr/share/keyrings/matrix-org-archive-keyring.gpg
# echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian ${DISTRO} main" >/etc/apt/sources.list.d/matrix-org.list
# apt-get update
# $STD apt-get install -y matrix-synapse-py3
# msg_info "Set up Matrix Server"
# msg_info "Setup EVCC"
# curl -fsSL https://dl.evcc.io/public/evcc/stable/gpg.EAD5D0E07B0EC0FD.key | gpg --dearmor -o /etc/apt/keyrings/evcc-stable.gpg
# echo "deb [signed-by=/etc/apt/keyrings/evcc-stable.gpg] https://dl.evcc.io/public/evcc/stable/deb/debian ${DISTRO} main" >/etc/apt/sources.list.d/evcc-stable.list
# apt-get update
# $STD apt-get install -y evcc
# msg_ok "Setup EVCC"
# msg_info "Setup PHP"
# curl -fsSL https://packages.sury.org/php/apt.gpg -o /usr/share/keyrings/deb.sury.org-php.gpg
# echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ ${DISTRO} main" >/etc/apt/sources.list.d/php.list
# apt-get update
# $STD apt-get install -y php
# msg_ok "Setup PHP"
# msg_info "Adding Adoptium repository"
# curl -fsSL https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor -o /etc/apt/trusted.gpg.d/adoptium.gpg
# echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/adoptium.gpg] https://packages.adoptium.net/artifactory/deb ${DISTRO} main" > /etc/apt/sources.list.d/adoptium.list
# apt-get update
# $STD apt-get install -y temurin-11-jdk
# msg_ok "Adoptium installed"
# msg_info "Adding Nginx repository"
# curl -fsSL https://nginx.org/keys/nginx_signing.key | gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg
# echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/debian ${DISTRO} nginx" > /etc/apt/sources.list.d/nginx.list
# apt-get update
# $STD apt-get install -y nginx=1.26.3*
# msg_ok "Nginx installed"
# msg_info "Adding MongoDB repository"
# curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
# echo "deb [signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg] http://repo.mongodb.org/apt/debian ${DISTRO}/mongodb-org/7.0 main" > /etc/apt/sources.list.d/mongodb-org-7.0.list
# apt-get update
# $STD apt-get install -y mongodb-org
# msg_ok "MongoDB installed"
# msg_info "Adding SFTPGo repository"
# curl -fsSL https://ftp.osuosl.org/pub/sftpgo/apt/gpg.key | gpg --dearmor -o /usr/share/keyrings/sftpgo-archive-keyring.gpg
# echo "deb [signed-by=/usr/share/keyrings/sftpgo-archive-keyring.gpg] https://ftp.osuosl.org/pub/sftpgo/apt ${DISTRO} main" > /etc/apt/sources.list.d/sftpgo.list
# apt-get update
# $STD apt-get install -y sftpgo
# msg_ok "SFTPGo installed"
motd_ssh
customize
@ -100,3 +45,12 @@ msg_info "Cleaning up"
$STD apt-get -y autoremove
$STD apt-get -y autoclean
msg_ok "Cleaned"
# read -p "Remove this script? <y/N> " prompt
# if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
# pct stop "$CTID"
# pct remove "$CTID"
# msg_ok "Removed this script"
# else
# msg_warn "Did not remove this script"
# fi

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