494 Commits

Author SHA1 Message Date
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
17a862c810 Config File 2025-05-20 10:03:23 +02:00
Michel Roegl-Brunner
4cd307543a Config File 2025-05-20 10:02:14 +02:00
Michel Roegl-Brunner
cb477e91f1 Config File 2025-05-20 09:59:55 +02:00
Michel Roegl-Brunner
7edc2132c2 Config File 2025-05-20 09:57:58 +02:00
Michel Roegl-Brunner
957ba3c430 Config File 2025-05-20 09:57:50 +02:00
Michel Roegl-Brunner
aebc3cddde Config File 2025-05-20 09:54:41 +02:00
Michel Roegl-Brunner
ef0fcb96a1 Config File 2025-05-20 09:52:16 +02:00
Michel Roegl-Brunner
24dc2c887a Config File 2025-05-20 09:46:16 +02:00
Michel Roegl-Brunner
b8e3bb02d3 Config File 2025-05-20 09:45:04 +02:00
Michel Roegl-Brunner
5bdcf2f2bd Config File 2025-05-20 09:43:20 +02:00
Michel Roegl-Brunner
77080e6fb5 Config File 2025-05-20 09:38:35 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
c3420494dd Config File 2025-05-20 09:26:50 +02:00
Michel Roegl-Brunner
74bcd30ef3 Config File 2025-05-20 09:25:32 +02:00
Michel Roegl-Brunner
a8bb5347a3 Config File 2025-05-20 09:24:45 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
1c7909cf19 Refactor variable assignments in build function for enhanced configuration management 2025-05-16 12:20:08 +02:00
Michel Roegl-Brunner
d76551cd43 Improve APT-Cacher IP validation and handling in config_file function 2025-05-16 12:17:33 +02:00
Michel Roegl-Brunner
adb5031166 Add default values for unset variables in build function for improved handling 2025-05-16 12:13:39 +02:00
Michel Roegl-Brunner
ccc3c72bb9 Update password check in config_file function for clarity and consistency 2025-05-16 12:08:44 +02:00
Michel Roegl-Brunner
19d6c289a7 Add default values for unset variables in build function for improved robustness 2025-05-16 12:07:47 +02:00
Michel Roegl-Brunner
8b44ac6874 Add additional variable assignments in build function for improved configuration handling 2025-05-16 12:05:12 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
8fb0cc90a7 Fix VERBOSE variable assignment for consistency in build function 2025-05-16 11:04:11 +02:00
Michel Roegl-Brunner
6ab44f93e9 Update VERBOSE variable assignment to use VERB for consistency in build function 2025-05-16 11:02:32 +02:00
Michel Roegl-Brunner
30d0b807b8 Refactor config_file function to improve variable expansion handling for SSH and VERBOSE checks 2025-05-16 11:01:09 +02:00
Michel Roegl-Brunner
033ec6731a Set default value for TAGS in config_file function to ensure tags are initialized 2025-05-16 11:00:26 +02:00
Michel Roegl-Brunner
c6613d71d4 test 2025-05-16 10:59:02 +02:00
Michel Roegl-Brunner
676a85f99e test 2025-05-16 10:57:57 +02:00
Michel Roegl-Brunner
5b6882f13f Fix indentation in config_file function to ensure proper script execution flow 2025-05-16 10:56:40 +02:00
Michel Roegl-Brunner
749f22c72b Enhance config_file function to improve MAC address validation by allowing unset variable expansion 2025-05-16 10:55:18 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
ffb7e4acd2 Enhance config_file function to handle empty Container ID and improve password variable expansion syntax 2025-05-16 10:36:59 +02:00
Michel Roegl-Brunner
f9ef70473f Fix variable expansion syntax in config_file function 2025-05-16 10:35:21 +02:00
Michel Roegl-Brunner
0321d3d0a4 Fix variable expansion syntax in config_file function 2025-05-16 10:34:38 +02:00
Michel Roegl-Brunner
000126e2a7 Remove unnecessary blank lines and redundant base_settings call in build.func 2025-05-16 10:32:59 +02:00
Michel Roegl-Brunner
4356a5592b librenms 2025-05-16 10:30:49 +02:00
Michel Roegl-Brunner
5da4211b0f Remove redundant base_settings call in config_file function 2025-05-16 10:24:56 +02:00
Michel Roegl-Brunner
07d02737ee librenms 2025-05-16 10:23:28 +02:00
Michel Roegl-Brunner
b22e74a85a librenms 2025-05-16 10:21:08 +02:00
Michel Roegl-Brunner
1014bd7638 librenms 2025-05-16 09:48:50 +02:00
Michel Roegl-Brunner
3ad3d4a626 librenms 2025-05-16 09:42:42 +02:00
Michel Roegl-Brunner
253d2a5b7d librenms 2025-05-16 09:35:23 +02:00
Michel Roegl-Brunner
ba6dcbba4f librenms 2025-05-16 09:28:31 +02:00
CanbiZ
14c38d4193 fix media 2025-05-16 09:15:46 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
01702a24fe Cleanup 2025-05-16 09:02:33 +02:00
Michel Roegl-Brunner
b9af9155ea Changes to build.func 2025-05-16 08:55:56 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
d0fc6883cc Update debian 2025-05-15 16:26:32 +02:00
Michel Roegl-Brunner
13e1503515 Tesing 2025-05-15 16:25:44 +02:00
Michel Roegl-Brunner
9f6fde840f testing 2025-05-15 16:21:36 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
d9be26d116 build.func 2025-05-15 16:10:17 +02:00
Michel Roegl-Brunner
92e75854cb Testing 2025-05-15 16:07:15 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
cc7b4102bb Try even harder to silence composer 2025-05-15 15:44:17 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
7e6453a45a librenms 2025-05-15 15:26:44 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
2e8e4101e4 librenms 2025-05-15 14:41:46 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
23c5acb9d6 Add git.community-scripts.org to dns check 2025-05-15 14:36:58 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
362da467da Updates 2025-05-15 11:34:44 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
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
Michel Roegl-Brunner
39825cd0cd Changes to workflow 2025-05-15 10:30:24 +02:00
CanbiZ
57a832e476 debug 2025-05-15 10:29:18 +02:00
Michel Roegl-Brunner
5ea60410aa Changes to workflow 2025-05-15 10:27:12 +02:00
Michel Roegl-Brunner
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
Michel Roegl-Brunner
a0498a331e Update Freepbx 2025-05-15 10:17:28 +02:00
Michel Roegl-Brunner
1e39073985 Update LibreNSM 2025-05-15 10:15:38 +02:00
CanbiZ
80ff5a19a6 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 10:06:27 +02:00
CanbiZ
1b5d455d8a fixes 2025-05-15 10:06:17 +02:00
Michel Roegl-Brunner
9c0304206f Update LibreNMS 2025-05-15 10:06:11 +02:00
CanbiZ
b610d01325 add msg_progress 2025-05-15 10:02:47 +02:00
CanbiZ
800269916d Update core.func 2025-05-15 10:01:53 +02:00
CanbiZ
88d1339a68 Update core.func 2025-05-15 09:58:28 +02:00
CanbiZ
a6f4a69cfd Update core.func 2025-05-15 09:57:50 +02:00
Michel Roegl-Brunner
53b06aa746 Update Librenms 2025-05-15 09:54:17 +02:00
CanbiZ
e33c543859 Update tools.func 2025-05-15 09:52:26 +02:00
CanbiZ
19da53f77d msg_custom 2025-05-15 09:49:18 +02:00
CanbiZ
860f4f3871 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 09:47:38 +02:00
CanbiZ
cf046389d1 Update install.func 2025-05-15 09:47:36 +02:00
Michel Roegl-Brunner
7de3f5768f Bridge Detection 2025-05-15 09:46:37 +02:00
Michel Roegl-Brunner
6eb1cd8488 Bridge Detection 2025-05-15 09:45:45 +02:00
CanbiZ
dae20358d3 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-15 09:44:26 +02:00
CanbiZ
46bd6a5599 spinner my head 2025-05-15 09:44:24 +02:00
Michel Roegl-Brunner
7239210ead Bridge Detection 2025-05-15 09:43:52 +02:00
Michel Roegl-Brunner
bb44863767 Update LibreNSM 2025-05-15 09:43:06 +02:00
Michel Roegl-Brunner
6921f19bee Update LibreNSM 2025-05-15 09:40:47 +02:00
Michel Roegl-Brunner
7f96fef66f Changes to Bridge detection 2025-05-15 09:40:29 +02:00
CanbiZ
14ad92198b fix mariadb crawling 2025-05-15 09:34:18 +02:00
CanbiZ
6172db2ec5 Update tools.func 2025-05-15 09:32:26 +02:00
CanbiZ
4b9b14ae1a try mariadb without value 2025-05-15 09:26:17 +02:00
CanbiZ
f49b5a661f Update core.func 2025-05-15 09:22:54 +02:00
CanbiZ
8dc69f80f2 testing mariadb 2025-05-15 09:13:20 +02:00
CanbiZ
ec2c1b946e Update core.func 2025-05-15 09:09:53 +02:00
CanbiZ
02cf584995 Update core.func 2025-05-15 09:07:06 +02:00
CanbiZ
7bf6257b02 Update tools.func 2025-05-15 09:03:12 +02:00
CanbiZ
3f24a3fcc0 Update tools.func 2025-05-15 08:53:43 +02:00
CanbiZ
02b83804e1 Update bitmagnet-install.sh 2025-05-15 08:49:15 +02:00
CanbiZ
ad0166a8b3 fixes and add ruby.-func 2025-05-15 08:48:32 +02:00
CanbiZ
c54095425e Update freepbx-install.sh 2025-05-15 08:31:38 +02:00
CanbiZ
e2ee08d3ae fix logo bitmagnet 2025-05-15 08:25:32 +02:00
CanbiZ
71128e6082 fix json 2025-05-15 08:23:16 +02:00
CanbiZ
b692e65cf6 remove odoo 2025-05-15 08:21:47 +02:00
CanbiZ
a8ef0300e2 Update odoo.sh 2025-05-15 08:20:57 +02:00
Bas van den Berg
35ddde0256 Add check if thread exist 2025-05-14 22:06:53 +02:00
tremor021
ca35a45ecd Update bitmagnet 2025-05-14 20:49:10 +02:00
tremor021
ada434223e Update bitmagnet 2025-05-14 20:47:41 +02:00
CanbiZ
269d9f0528 Merge pull request #389 from community-scripts/pr-update-app-files
[core] update .app files
2025-05-14 20:20:18 +02:00
GitHub Actions
9e2ec4af31 Update .app files 2025-05-14 18:19:11 +00:00
tremor021
620ad1b84f Update bitmagnet 2025-05-14 20:18:36 +02:00
tremor021
5493caaed5 Update bitmagnet 2025-05-14 19:47:06 +02:00
tremor021
5ebd8dc7ab Update bitmagnet 2025-05-14 19:33:09 +02:00
tremor021
f8e02e1ed5 Update bitmagnet 2025-05-14 19:27:33 +02:00
tremor021
a964925a15 Update bitmagnet 2025-05-14 19:21:34 +02:00
tremor021
6a2ff4feef Update bitmagnet 2025-05-14 19:15:40 +02:00
tremor021
56800199f7 Update Bitmagnet debian 2025-05-14 19:07:42 +02:00
tremor021
17776f3355 Update bitmagnet 2025-05-14 18:36:03 +02:00
tremor021
1b8c74a3b3 Update core.fun, add TAB3 formatting var 2025-05-14 18:35:46 +02:00
tremor021
30f0deed4c Update core.fun, add 3TAB formatting var 2025-05-14 18:34:58 +02:00
tremor021
c4dc609202 Update bitmagnet 2025-05-14 18:27:14 +02:00
tremor021
9265e10243 Update bitmagnet json 2025-05-14 18:18:53 +02:00
tremor021
7242fc2880 Update bitmagnet 2025-05-14 18:17:17 +02:00
tremor021
b82284d041 Update bitmagnet 2025-05-14 18:09:31 +02:00
tremor021
474d97322d Update bitmagnet 2025-05-14 18:06:29 +02:00
tremor021
0ded7bf751 Update bitmagnet 2025-05-14 17:57:30 +02:00
tremor021
584442e3c7 Update bitmagnet 2025-05-14 17:50:40 +02:00
tremor021
f5292249c3 Update bitmagnet 2025-05-14 17:49:17 +02:00
tremor021
a28751f37a Update bitmagnet 2025-05-14 17:42:12 +02:00
tremor021
e384cdcb3c Update bitmagnet 2025-05-14 17:29:46 +02:00
Tobias
04a07db27c rever for homarr testing 2025-05-14 17:22:25 +02:00
Tobias
2655068e7e Update homarr.sh 2025-05-14 17:20:04 +02:00
tremor021
0e298adc05 Update bitmagnet 2025-05-14 17:06:41 +02:00
Michel Roegl-Brunner
7cd0eb9fca Librenms-install.sh 2025-05-14 16:25:18 +02:00
Michel Roegl-Brunner
a59f8bef8f Librenms-install.sh 2025-05-14 16:20:40 +02:00
Michel Roegl-Brunner
f9f50e945c Librenms-install.sh 2025-05-14 16:11:47 +02:00
app-header-generator[bot]
de814ffd50 Update CHANGELOG.md (#382)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-14 14:10:28 +00:00
tremor021
fcbc27ecd8 Add handling of TMDB API keys 2025-05-14 16:10:05 +02:00
Michel Roegl-Brunner
48d1e7ecf6 Librenms-install.sh 2025-05-14 16:09:45 +02:00
Michel Roegl-Brunner
d5388a85c3 Librenms-install.sh 2025-05-14 16:03:06 +02:00
tremor021
be8986d070 Add debian bitmagnet wip 2025-05-14 15:58:32 +02:00
Michel Roegl-Brunner
9584f5e0f8 Workflows 2025-05-14 15:51:50 +02:00
Michel Roegl-Brunner
25947ba60b Workflows 2025-05-14 15:51:45 +02:00
Michel Roegl-Brunner
f88097e9d7 workfloW2 2025-05-14 15:48:11 +02:00
Michel Roegl-Brunner
6b1165d7da Workflows 2025-05-14 15:39:10 +02:00
Michel Roegl-Brunner
a7408a994b Workflows 2025-05-14 15:37:44 +02:00
Michel Roegl-Brunner
8ec5dac90c Workflows 2025-05-14 15:35:14 +02:00
Michel Roegl-Brunner
f3ceea5c68 Workflows 2025-05-14 15:32:33 +02:00
Michel Roegl-Brunner
1d17fbb429 Workflows 2025-05-14 15:31:49 +02:00
Michel Roegl-Brunner
fc625d0d07 Workflows 2025-05-14 15:31:01 +02:00
Michel Roegl-Brunner
b9d6559d35 Workflows 2025-05-14 15:29:25 +02:00
Michel Roegl-Brunner
4774d76495 Workflows 2025-05-14 15:28:10 +02:00
Michel Roegl-Brunner
0a7bed66ea Workflows 2025-05-14 15:20:03 +02:00
tremor021
05e4ed3fc5 Update bitmagnet 2025-05-14 15:13:26 +02:00
tremor021
44b1bc01af Update bitmagnet 2025-05-14 15:13:26 +02:00
app-header-generator[bot]
c7f0208da8 Update versions.json (#379)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-14 14:39:11 +02:00
Michel Roegl-Brunner
656de28402 Add automerge to workflows 2025-05-14 14:38:16 +02:00
Michel Roegl-Brunner
50f52fe5c7 change sed in workflow 2025-05-14 14:35:37 +02:00
app-header-generator[bot]
4a56789328 Update CHANGELOG.md (#377)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-14 12:33:42 +00:00
CanbiZ
230e0100fe Merge pull request #376 from community-scripts/delete-files_319_asterisk
Delete Files for asterisk after Merge to Main
2025-05-14 14:33:19 +02:00
github-actions[bot]
82361db112 Deleted files for issue: asterisk 2025-05-14 12:29:03 +00:00
CanbiZ
adef06845d Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-14 14:25:05 +02:00
CanbiZ
10ff89a117 remove lsb_release and use distroname 2025-05-14 14:25:04 +02:00
app-header-generator[bot]
47b83d93cd Update CHANGELOG.md (#375)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-14 12:21:09 +00:00
CanbiZ
e12157c66d fix tools.func postgresql 2025-05-14 14:20:43 +02:00
CanbiZ
1aa20369e9 Update koel-install.sh 2025-05-14 13:58:19 +02:00
CanbiZ
3f20620006 Update tools.func 2025-05-14 13:57:35 +02:00
CanbiZ
1285c4b3bd Update koel-install.sh 2025-05-14 13:54:55 +02:00
CanbiZ
cddb483499 - 2025-05-14 13:54:14 +02:00
app-header-generator[bot]
f12dec0c75 Update CHANGELOG.md (#374)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-14 11:36:15 +00:00
app-header-generator[bot]
6161aed815 Update CHANGELOG.md (#373)
Co-authored-by: michel.roegl-brunner <michel.roegl-brunner@htl-braunau.at>
2025-05-14 11:35:56 +00:00
CanbiZ
5d5b18d11f Update koel-install.sh 2025-05-14 13:35:31 +02:00
CanbiZ
1746c163a5 --- 2025-05-14 13:27:51 +02:00
CanbiZ
67832266fc Update koel-install.sh 2025-05-14 13:21:50 +02:00
CanbiZ
dbb887e093 Update koel-install.sh 2025-05-14 13:14:22 +02:00
CanbiZ
7e31d6a799 Update koel-install.sh 2025-05-14 12:29:36 +02:00
CanbiZ
a13b714208 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-14 12:17:22 +02:00
CanbiZ
7cebd85b50 Update koel-install.sh 2025-05-14 12:17:21 +02:00
tremor021
3599c8bb8d Add rclone json 2025-05-14 12:11:33 +02:00
tremor021
b99494c659 Update rclone 2025-05-14 11:59:16 +02:00
tremor021
0f0664d2e3 Update rclone 2025-05-14 11:51:07 +02:00
CanbiZ
1b890c6c4a Update koel-install.sh 2025-05-14 11:49:48 +02:00
Michel Roegl-Brunner
9b6fc1d095 update asterisk 2025-05-14 11:41:11 +02:00
CanbiZ
5df685f67c Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-14 11:29:33 +02:00
CanbiZ
0c072d8e62 Update koel-install.sh 2025-05-14 11:29:31 +02:00
Michel Roegl-Brunner
5989417a8a Testing 2025-05-14 11:29:16 +02:00
Michel Roegl-Brunner
0785ff8720 Testing 2025-05-14 11:29:02 +02:00
Michel Roegl-Brunner
51008e23bd Testing 2025-05-14 11:28:43 +02:00
Michel Roegl-Brunner
5bf570055d testing 2025-05-14 11:27:36 +02:00
CanbiZ
bc2bfeec1c Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-14 11:10:51 +02:00
CanbiZ
080f42a429 Update koel-install.sh 2025-05-14 11:10:50 +02:00
Michel Roegl-Brunner
3f3d967a2c only show categorys wich have scripts in it 2025-05-14 11:10:22 +02:00
app-header-generator[bot]
ad0607361a Update CHANGELOG.md (#371)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-14 09:06:45 +00:00
app-header-generator[bot]
75a9afaf56 Update CHANGELOG.md (#370)
Co-authored-by: michel.roegl-brunner <michel.roegl-brunner@htl-braunau.at>
2025-05-14 09:06:25 +00:00
app-header-generator[bot]
43d33f4a69 Update CHANGELOG.md (#369)
Co-authored-by: michel.roegl-brunner <michel.roegl-brunner@htl-braunau.at>
2025-05-14 09:06:05 +00:00
app-header-generator[bot]
c54dbef059 Update CHANGELOG.md (#368)
Co-authored-by: michel.roegl-brunner <michel.roegl-brunner@htl-braunau.at>
2025-05-14 09:05:45 +00:00
CanbiZ
6ea741bc34 Update koel.sh 2025-05-14 11:05:21 +02:00
CanbiZ
cd197e48be Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-14 10:58:10 +02:00
CanbiZ
38d9e4caeb Update koel-install.sh 2025-05-14 10:58:08 +02:00
CanbiZ
6836e234a1 Merge pull request #367 from community-scripts/pr-update-app-files
[core] update .app files
2025-05-14 10:49:24 +02:00
GitHub Actions
032fa7533c Update .app files 2025-05-14 08:48:23 +00:00
CanbiZ
706ff5b006 Merge pull request #316 from ksad/backrest-script
New Script: Backrest
2025-05-14 10:48:02 +02:00
CanbiZ
abfa33f935 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-14 10:46:47 +02:00
CanbiZ
fbf474f996 Update odoo.sh 2025-05-14 10:46:45 +02:00
app-header-generator[bot]
30faf65098 Update CHANGELOG.md (#364)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-14 08:46:10 +00:00
Michel Roegl-Brunner
e82b7ba698 Update CHANGELOG.md (#365) 2025-05-14 10:44:17 +02:00
CanbiZ
a337fa15d7 Merge branch 'main' of https://github.com/community-scripts/ProxmoxVED 2025-05-14 10:43:32 +02:00
CanbiZ
2ac12c5d94 remove jsons 2025-05-14 10:43:25 +02:00
michel.roegl-brunner
606008cbe9 Update CHANGELOG.md (#1)
🛑 **New scripts must first be submitted to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) for testing.**
PRs for new scripts that skip this process will be closed.

---

## ✍️ Description
<!-- Briefly describe your changes. -->

## 🔗 Related PR / Issue

Link: #

##  Prerequisites  (**X** in brackets)

- [ ] **Self-review completed** – Code follows project standards.
- [ ] **Tested thoroughly** – Changes work as expected.
- [ ] **No breaking changes** – Existing functionality remains intact.
- [ ] **No security risks** – No hardcoded secrets, unnecessary privilege escalations, or permission issues.

---

## 🛠️ Type of Change (**X** in brackets)

- [ ] 🐞 **Bug fix** – Resolves an issue without breaking functionality.
- [ ]  **New feature** – Adds new, non-breaking functionality.
- [ ] 💥 **Breaking change** – Alters existing functionality in a way that may require updates.
- [ ] 🆕 **New script** – A fully functional and tested script or script set.
- [ ] 🌍 **Website update** – Changes to website-related JSON files or metadata.
- [ ] 🔧 **Refactoring / Code Cleanup** – Improves readability or maintainability without changing functionality.
- [ ] 📝 **Documentation update** – Changes to `README`, `AppName.md`, `CONTRIBUTING.md`, or other docs.

---

## 🔍 Code & Security Review  (**X** in brackets)

- [ ] **Follows `Code_Audit.md` & `CONTRIBUTING.md` guidelines**
- [ ] **Uses correct script structure (`AppName.sh`, `AppName-install.sh`, `AppName.json`)**
- [ ] **No hardcoded credentials**

## 📋 Additional Information (optional)
<!-- Add any extra context, screenshots, or references. -->

Reviewed-on: #1
2025-05-14 10:43:17 +02:00
Karim SAD
6ab9a16e95 Update install/backrest-install.sh 2025-05-13 09:43:12 -04:00
enirts31
80b76212d9 Update frontend/public/json/backrest.json
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:37:12 -04:00
enirts31
145d116ef8 Update frontend/public/json/backrest.json
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:36:19 -04:00
enirts31
a4c69b211c Update ct/backrest.sh
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:35:25 -04:00
enirts31
19b0c7d527 Update ct/backrest.sh
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:35:11 -04:00
enirts31
75812b4409 Update ct/backrest.sh
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:34:47 -04:00
enirts31
5fd366e9b1 Update ct/backrest.sh
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:34:22 -04:00
enirts31
c7c9daca80 Update ct/backrest.sh
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:33:59 -04:00
enirts31
60788fccbd Update install/backrest-install.sh
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:33:22 -04:00
enirts31
b541ecf318 Update ct/backrest.sh
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2025-05-13 09:27:07 -04:00
Karim SAD
30229fe06c New Script: Backrest 2025-05-12 20:11:43 -04: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
151 changed files with 5188 additions and 2777 deletions

View File

@@ -25,6 +25,13 @@ jobs:
app-id: ${{ vars.APP_ID }} app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }} private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Generate a token for PR approval and merge
id: generate-token-merge
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
# Step 1: Checkout repository # Step 1: Checkout repository
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2
@@ -91,14 +98,17 @@ jobs:
gh pr review $PR_NUMBER --approve gh pr review $PR_NUMBER --approve
fi fi
- name: Re-approve pull request after update - name: Approve pull request and merge
if: env.changed == 'true' if: env.changed == 'true'
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
run: | run: |
PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number') 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 '.[0].number')
if [ -n "$PR_NUMBER" ]; then if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve gh pr review "$PR_NUMBER" --approve
gh pr merge "$PR_NUMBER" --squash --admin
fi fi
# Step 8: Output success message when no changes # Step 8: Output success message when no changes

View File

@@ -80,7 +80,25 @@ jobs:
VAR+="${{ github.event.issue.html_url }}" VAR+="${{ github.event.issue.html_url }}"
echo "message=$VAR" >> $GITHUB_ENV echo "message=$VAR" >> $GITHUB_ENV
- name: Check if Discord thread exists
id: check_thread
run: |
ISSUE_TITLE="${{ github.event.issue.title }}"
THREAD_ID=$(curl -s -X GET "https://discord.com/api/v10/guilds/${{ secrets.DISCORD_GUILD_ID }}/threads/active" \
-H "Authorization: Bot ${{ secrets.DISCORD_BOT_TOKEN }}" \
-H "Content-Type: application/json" | \
jq -r --arg TITLE "$ISSUE_TITLE" --arg PARENT_ID "${{ secrets.DISCORD_CHANNEL_ID }}" \
'.threads[] | select(.parent_id == $PARENT_ID and .name == ("Wanted Tester for " + $TITLE)) | .id')
if [ -n "$THREAD_ID" ]; then
echo "thread_exists=true" >> "$GITHUB_OUTPUT"
else
echo "thread_exists=false" >> "$GITHUB_OUTPUT"
fi
- name: Create a forumpost in Discord - name: Create a forumpost in Discord
if: steps.check_thread.outputs.thread_exists != 'true'
id: post_to_discord id: post_to_discord
env: env:
DISCORD_CHANNEL_ID: ${{ secrets.DISCORD_CHANNEL_ID }} DISCORD_CHANNEL_ID: ${{ secrets.DISCORD_CHANNEL_ID }}
@@ -106,6 +124,7 @@ jobs:
fi fi
- name: Comment on Issue - name: Comment on Issue
if: steps.check_thread.outputs.thread_exists != 'true'
id: comment_on_issue id: comment_on_issue
env: env:
MESSAGE: ${{ env.message }} MESSAGE: ${{ env.message }}

View File

@@ -14,6 +14,13 @@ jobs:
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
- name: Generate a token for PR approval and merge
id: generate-token-merge
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
- name: Extract Issue Title (Lowercase & Underscores) - name: Extract Issue Title (Lowercase & Underscores)
id: extract_title id: extract_title
run: echo "TITLE=$(echo '${{ github.event.issue.title }}' | tr '[:upper:]' '[:lower:]' | sed 's/ /_/g')" >> $GITHUB_ENV run: echo "TITLE=$(echo '${{ github.event.issue.title }}' | tr '[:upper:]' '[:lower:]' | sed 's/ /_/g')" >> $GITHUB_ENV
@@ -52,7 +59,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | 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.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com" git config --global user.email "github-actions[bot]@users.noreply.github.com"
git checkout -b $branch git checkout -b $branch
@@ -65,13 +72,26 @@ jobs:
exit 0 exit 0
fi fi
git commit -m "Deleted files for issue: ${{ github.event.issue.title }}" 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 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}') pr_number=$(gh pr list | grep -m 1 $branch | awk '{print $1}')
#gh pr merge $pr_number --squash #gh pr merge $pr_number --squash
echo pr_number=$pr_number >> $GITHUB_ENV echo pr_number=$pr_number >> $GITHUB_ENV
- name: Approve pull request and merge
if: env.changed == 'true'
env:
GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
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')
if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve
gh pr merge $PR_NUMBER --squash --admin
fi
- name: Comment on Issue - name: Comment on Issue
uses: actions/github-script@v7 uses: actions/github-script@v7
with: with:

View File

@@ -29,6 +29,13 @@ jobs:
app-id: ${{ vars.APP_ID }} app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }} private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: Generate a token for PR approval and merge
id: generate-token-merge
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
- name: Crawl from newreleases.io - name: Crawl from newreleases.io
env: env:
token: ${{ secrets.NEWRELEASES_TOKEN }} token: ${{ secrets.NEWRELEASES_TOKEN }}
@@ -110,10 +117,12 @@ jobs:
- name: Approve pull request and merge - name: Approve pull request and merge
if: env.changed == 'true' if: env.changed == 'true'
env: env:
GH_TOKEN: ${{ secrets.PAT_MICHEL }} GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
run: | run: |
PR_NUMBER=$(gh pr list --head "update_versions" --json number --jq '.[].number') 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 '.[0].number')
if [ -n "$PR_NUMBER" ]; then if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve gh pr review "$PR_NUMBER" --approve
gh pr merge $PR_NUMBER --squash --delete-branch --admin gh pr merge "$PR_NUMBER" --squash --admin
fi fi

View File

@@ -133,10 +133,6 @@ jobs:
echo "install file already exists in ProxmoxVE" echo "install file already exists in ProxmoxVE"
exit 1 exit 1
fi fi
if [[ -f "frontend/public/json/${script_name}.json" ]]; then
echo "json file already exists in ProxmoxVE"
exit 1
fi
git checkout -b "$branch_name" git checkout -b "$branch_name"
@@ -157,10 +153,13 @@ jobs:
cp ../frontend/public/json/$json_file frontend/public/json/. || true cp ../frontend/public/json/$json_file frontend/public/json/. || true
fi fi
sed -i 's|source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)|source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)|' ct/$script_name.sh echo $script_name
sed -i 's|# License: MIT \| https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE|# License: MIT \| https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE|' ct/$script_name.sh sed -i "s|https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func|https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func|" ct/$script_name.sh
sed -i 's|# License: MIT \| https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE|# License: MIT \| https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE|' install/$script_name-install.sh sed -i "s|https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func|https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func|" ct/$script_name.sh
git add . sed -i "s|# License: MIT \| https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE|# License: MIT \| https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE|" ct/$script_name.sh
sed -i "s|# License: MIT \| https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE|# License: MIT \| https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE|" install/$script_name-install.sh
git add . > /dev/null 2>&1
if git diff --cached --exit-code; then if git diff --cached --exit-code; then
echo "No changes detected, skipping commit." echo "No changes detected, skipping commit."
exit 0 exit 0

View File

@@ -1,34 +1,50 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Base directory for headers # Function for generating Figlet headers
headers_dir="./ct/headers" generate_headers() {
local base_dir=$1
local target_subdir=$2
local search_pattern=$3
# Ensure the headers directory exists and clear it local headers_dir="${base_dir}/headers"
mkdir -p "$headers_dir" mkdir -p "$headers_dir"
rm -f "$headers_dir"/* rm -f "$headers_dir"/*
# Find all .sh files in ./ct directory, sorted alphabetically # Recursive or non-recursive search
find ./ct -type f -name "*.sh" | sort | while read -r script; do if [[ "$search_pattern" == "**" ]]; then
# Extract the APP name from the APP line shopt -s globstar nullglob
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null) file_list=("${base_dir}"/**/*.sh)
shopt -u globstar
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
else else
echo "No APP name found in $script, skipping." file_list=("${base_dir}"/*.sh)
fi 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

@@ -7,6 +7,76 @@
<h3 align="center">All notable changes to this project will be documented in this file.</h3> <h3 align="center">All notable changes to this project will be documented in this file.</h3>
## 2025-05-14
### 🆕 New Scripts
- odoo ([#4477](https://github.com/community-scripts/ProxmoxVE/pull/4477))
- alpine-transmission ([#4277](https://github.com/community-scripts/ProxmoxVE/pull/4277))
- alpine-tinyauth ([#4264](https://github.com/community-scripts/ProxmoxVE/pull/4264))
- alpine-rclone ([#4265](https://github.com/community-scripts/ProxmoxVE/pull/4265))
- streamlink-webui ([#4262](https://github.com/community-scripts/ProxmoxVE/pull/4262))
- Fumadocs ([#4263](https://github.com/community-scripts/ProxmoxVE/pull/4263))
- asterisk ([#4468](https://github.com/community-scripts/ProxmoxVE/pull/4468))
- gatus ([#4443](https://github.com/community-scripts/ProxmoxVE/pull/4443))
- alpine-gatus ([#4442](https://github.com/community-scripts/ProxmoxVE/pull/4442))
- Alpine-Traefik [@MickLesk](https://github.com/MickLesk) ([#4412](https://github.com/community-scripts/ProxmoxVE/pull/4412))
### 🚀 Updated Scripts
- fix: fetch_release_and_deploy function [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4478](https://github.com/community-scripts/ProxmoxVE/pull/4478))
- Website: re-add documenso & some little bugfixes [@MickLesk](https://github.com/MickLesk) ([#4456](https://github.com/community-scripts/ProxmoxVE/pull/4456))
- update some improvements from dev (tools.func) [@MickLesk](https://github.com/MickLesk) ([#4430](https://github.com/community-scripts/ProxmoxVE/pull/4430))
- Alpine: Use onliner for updates [@tremor021](https://github.com/tremor021) ([#4414](https://github.com/community-scripts/ProxmoxVE/pull/4414))
- #### 🐞 Bug Fixes
- Bugfix: Mikrotik & Pimox HAOS VM (NEXTID) [@MickLesk](https://github.com/MickLesk) ([#4313](https://github.com/community-scripts/ProxmoxVE/pull/4313))
- Bookstack: fix copy of themes/uploads/storage [@MickLesk](https://github.com/MickLesk) ([#4457](https://github.com/community-scripts/ProxmoxVE/pull/4457))
- homarr: fetch versions dynamically from source repo [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4409](https://github.com/community-scripts/ProxmoxVE/pull/4409))
- Authentik: change install to UV & increase resources to 10GB RAM [@MickLesk](https://github.com/MickLesk) ([#4364](https://github.com/community-scripts/ProxmoxVE/pull/4364))
- Jellyseerr: better handling of node and pnpm [@MickLesk](https://github.com/MickLesk) ([#4365](https://github.com/community-scripts/ProxmoxVE/pull/4365))
- Alpine-Rclone: Fix location of passwords file [@tremor021](https://github.com/tremor021) ([#4465](https://github.com/community-scripts/ProxmoxVE/pull/4465))
- Zammad: Enable ElasticSearch service [@tremor021](https://github.com/tremor021) ([#4391](https://github.com/community-scripts/ProxmoxVE/pull/4391))
- openhab: use zulu17-jdk [@moodyblue](https://github.com/moodyblue) ([#4438](https://github.com/community-scripts/ProxmoxVE/pull/4438))
- (fix) Documenso: fix build failures [@vhsdream](https://github.com/vhsdream) ([#4382](https://github.com/community-scripts/ProxmoxVE/pull/4382))
- #### ✨ New Features
- Feature: LXC-Delete (pve helper): add "all items" [@MickLesk](https://github.com/MickLesk) ([#4296](https://github.com/community-scripts/ProxmoxVE/pull/4296))
- Feature: get correct next VMID [@MickLesk](https://github.com/MickLesk) ([#4292](https://github.com/community-scripts/ProxmoxVE/pull/4292))
- HomeAssistant-Core: update script for 2025.5+ [@MickLesk](https://github.com/MickLesk) ([#4363](https://github.com/community-scripts/ProxmoxVE/pull/4363))
- Feature: autologin for Alpine [@MickLesk](https://github.com/MickLesk) ([#4344](https://github.com/community-scripts/ProxmoxVE/pull/4344))
- monitor-all: improvements - tag based filtering [@grizmin](https://github.com/grizmin) ([#4437](https://github.com/community-scripts/ProxmoxVE/pull/4437))
- Make apt-cacher-ng a client of its own server [@pgcudahy](https://github.com/pgcudahy) ([#4092](https://github.com/community-scripts/ProxmoxVE/pull/4092))
- #### 🔧 Refactor
- openhab. correct some typos [@moodyblue](https://github.com/moodyblue) ([#4448](https://github.com/community-scripts/ProxmoxVE/pull/4448))
### 🧰 Maintenance
- #### 💾 Core
- fix: improve bridge detection in all network interface configuration files [@filippolauria](https://github.com/filippolauria) ([#4413](https://github.com/community-scripts/ProxmoxVE/pull/4413))
- Config file Function in build.func [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4411](https://github.com/community-scripts/ProxmoxVE/pull/4411))
- fix: detect all bridge types, not just vmbr prefix [@filippolauria](https://github.com/filippolauria) ([#4351](https://github.com/community-scripts/ProxmoxVE/pull/4351))
- #### 📂 Github
- Add Github app for auto PR merge [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4461](https://github.com/community-scripts/ProxmoxVE/pull/4461))
### 🌐 Website
- FAQ: Explanation "updatable" [@tremor021](https://github.com/tremor021) ([#4300](https://github.com/community-scripts/ProxmoxVE/pull/4300))
- #### 📝 Script Information
- Jellyfin Media Server: Update configuration path [@tremor021](https://github.com/tremor021) ([#4434](https://github.com/community-scripts/ProxmoxVE/pull/4434))
- Pingvin Share: Added explanation on how to add/edit environment variables [@tremor021](https://github.com/tremor021) ([#4432](https://github.com/community-scripts/ProxmoxVE/pull/4432))
- pingvin.json: fix typo [@warmbo](https://github.com/warmbo) ([#4426](https://github.com/community-scripts/ProxmoxVE/pull/4426))
- Navidrome - Fix config path (use /etc/ instead of /var/lib) [@quake1508](https://github.com/quake1508) ([#4406](https://github.com/community-scripts/ProxmoxVE/pull/4406))
## 2025-03-24 ## 2025-03-24
### 🆕 New Scripts ### 🆕 New Scripts
@@ -15,8 +85,7 @@
- wazuh [@omiinaya](https://github.com/omiinaya) ([#3381](https://github.com/community-scripts/ProxmoxVE/pull/3381)) - wazuh [@omiinaya](https://github.com/omiinaya) ([#3381](https://github.com/community-scripts/ProxmoxVE/pull/3381))
- yt-dlp-webui [@CrazyWolf13](https://github.com/CrazyWolf13) ([#3364](https://github.com/community-scripts/ProxmoxVE/pull/3364)) - yt-dlp-webui [@CrazyWolf13](https://github.com/CrazyWolf13) ([#3364](https://github.com/community-scripts/ProxmoxVE/pull/3364))
- Extension/New Script: Redis Alpine Installation [@MickLesk](https://github.com/MickLesk) ([#3367](https://github.com/community-scripts/ProxmoxVE/pull/3367)) - Extension/New Script: Redis Alpine Installation [@MickLesk](https://github.com/MickLesk) ([#3367](https://github.com/community-scripts/ProxmoxVE/pull/3367))
- Fluid Calendar [@vhsdream](https://github.com/vhsdream) ([#2869](https://github.com/community-scripts/ProxmoxVE/pull/2869)) - Fluid Calendar [@vhsdream](https://github.com/vhsdream) ([#2869](ht
### 🚀 Updated Scripts ### 🚀 Updated Scripts
- License url VED to VE [@bvdberg01](https://github.com/bvdberg01) ([#3258](https://github.com/community-scripts/ProxmoxVE/pull/3258)) - License url VED to VE [@bvdberg01](https://github.com/bvdberg01) ([#3258](https://github.com/community-scripts/ProxmoxVE/pull/3258))
@@ -35,7 +104,7 @@
- GoMFT: Fix build dependencies [@tremor021](https://github.com/tremor021) ([#3313](https://github.com/community-scripts/ProxmoxVE/pull/3313)) - GoMFT: Fix build dependencies [@tremor021](https://github.com/tremor021) ([#3313](https://github.com/community-scripts/ProxmoxVE/pull/3313))
- GoMFT: Don't rely on binaries from github [@tremor021](https://github.com/tremor021) ([#3303](https://github.com/community-scripts/ProxmoxVE/pull/3303)) - GoMFT: Don't rely on binaries from github [@tremor021](https://github.com/tremor021) ([#3303](https://github.com/community-scripts/ProxmoxVE/pull/3303))
- Wikijs: Remove Dev Message & Performance-Boost [@bvdberg01](https://github.com/bvdberg01) ([#3232](https://github.com/community-scripts/ProxmoxVE/pull/3232)) - Wikijs: Remove Dev Message & Performance-Boost [@bvdberg01](https://github.com/bvdberg01) ([#3232](https://github.com/community-scripts/ProxmoxVE/pull/3232))
- Update omada download url [@bvdberg01](https://github.com/bvdberg01) ([#3245](https://github.com/community-scripts/ProxmoxVE/pull/3245)) - Update omada download url [@bvdberg01](https://github.com/bvdberg01) ([#3245](https://github.cooxVE/pull/3245))
- TriliumNotes: Fix release handling [@tremor021](https://github.com/tremor021) ([#3160](https://github.com/community-scripts/ProxmoxVE/pull/3160)) - TriliumNotes: Fix release handling [@tremor021](https://github.com/tremor021) ([#3160](https://github.com/community-scripts/ProxmoxVE/pull/3160))
- #### ✨ New Features - #### ✨ New Features

View File

@@ -1,88 +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
$STD go build
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

@@ -1,39 +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: michelroegl-brunner
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://asterisk.org/
APP="Asterisk"
var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
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 /var ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_info "No Update function provided for ${APP} LXC"
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${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 # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: # Source:
APP="BabyBuddy" APP="Baby Buddy"
var_tags="${var_tags:-baby}" var_tags="${var_tags:-baby}"
var_disk="${var_disk:-5}" var_disk="${var_disk:-5}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
@@ -20,19 +20,60 @@ color
catch_errors catch_errors
function update_script() { function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /opt/maxun ]]; then if [[ ! -d /opt/babybuddy ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi 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 RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
msg_info "Stopping Services" if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/babybuddy_version.txt)" ]]; then
systemctl stop APP setup_uv
msg_ok "Services Stopped"
fi 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 start
@@ -42,4 +83,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"

63
ct/backrest.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/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: ksad (enirys31)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://garethgeorge.github.io/backrest/
APP="Backrest"
var_tags="${var_tags:-backup}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
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
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/backrest ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/garethgeorge/backrest/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 backrest
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${RELEASE}"
cd /opt/backrest/bin
curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "backrest_Linux_x86_64.tar.gz"
tar -xzf backrest_Linux_x86_64.tar.gz
rm -rf backrest_Linux_x86_64.tar.gz
rm -f install.sh uninstall.sh
chmod +x backrest
echo "${RELEASE}" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP}"
systemctl start backrest
msg_ok "Started ${APP}"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${RELEASE}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9898${CL}"

View File

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

View File

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

66
ct/configarr.sh Normal file
View File

@@ -0,0 +1,66 @@
#!/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: finkerle
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/raydak-labs/configarr
APP="Configarr"
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/configarr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
if [[ "${RELEASE}" != "$(cat /opt/configarr_version.txt)" ]] || [[ ! -f /opt/configarr_version.txt ]]; then
msg_info "Stopping $APP"
systemctl stop configarr-task.timer
msg_ok "Stopped $APP"
msg_info "Updating $APP to v${RELEASE}"
mkdir -p /opt/backup/
mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
rm -rf /opt/configarr
fetch_and_deploy_gh_release "raydak-labs/configarr"
mv /opt/backup/* /opt/configarr/
cd /opt/configarr
$STD pnpm install
$STD pnpm run build
msg_ok "Updated $APP to v${RELEASE}"
msg_info "Starting $APP"
systemctl start configarr-task.timer
msg_ok "Started configarr"
rm -rf /opt/backup
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 (no web-ui):${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8989${CL}"

View File

@@ -126,19 +126,24 @@ if qm status "$CTID" &>/dev/null || pct status "$CTID" &>/dev/null; then
exit 206 exit 206
fi 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 # 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." msg_ok "Using ${BL}$TEMPLATE_STORAGE${CL} ${GN}for Template Storage."
# Get container 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." msg_ok "Using ${BL}$CONTAINER_STORAGE${CL} ${GN}for Container Storage."
# Update LXC template list # Update LXC template list
msg_info "Updating LXC Template List" $STD msg_info "Updating LXC Template List"
#check_network #check_network
pveam update >/dev/null pveam update >/dev/null
msg_ok "Updated LXC Template List" $STD msg_ok "Updated LXC Template List"
# Get LXC template string # Get LXC template string
TEMPLATE_SEARCH=${PCT_OSTYPE}-${PCT_OSVERSION:-} TEMPLATE_SEARCH=${PCT_OSTYPE}-${PCT_OSVERSION:-}
@@ -182,29 +187,54 @@ grep -q "root:100000:65536" /etc/subgid || echo "root:100000:65536" >>/etc/subgi
PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}}) PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs "$CONTAINER_STORAGE:${PCT_DISK_SIZE:-8}") [[ " ${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" msg_info "Creating LXC Container"
if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then 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 if [[ ! -s "$TEMPLATE_PATH" || "$(stat -c%s "$TEMPLATE_PATH")" -lt 1000000 ]]; then
msg_error "Template appears to be corrupted. Removing and re-downloading." 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" 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 else
msg_error "Container creation failed, but template is not corrupted." msg_error "Template is valid, but container creation still failed."
exit 209 exit 209
fi 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 fi
: "${UDHCPC_FIX:=}" : "${UDHCPC_FIX:=}"
if [ "$UDHCPC_FIX" == "yes" ]; then if [ "$UDHCPC_FIX" == "yes" ]; then

View File

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

View File

@@ -6,19 +6,15 @@ source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/
## App Default Values ## App Default Values
APP="Koel" APP="Koel"
var_tags="${var_tags:-music;player;homelab}" var_tags="${var_tags:-music}"
var_disk="${var_disk:-9}" var_disk="${var_disk:-9}"
var_cpu="${var_cpu:-3}" var_cpu="${var_cpu:-3}"
var_ram="${var_ram:-3072}" var_ram="${var_ram:-3072}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"
var_verbose="${var_verbose:-yes}" var_unprivileged="${var_unprivileged:-1}"
# App Output & Base Settings
header_info "$APP" header_info "$APP"
base_settings
# Core
variables variables
color color
catch_errors catch_errors

View File

@@ -6,10 +6,10 @@ source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/
# Source: https://www.freepbx.org/ # Source: https://www.freepbx.org/
APP="FreePBX" APP="FreePBX"
var_tags="" var_tags="pbx;voip;telephony"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-1024}" var_ram="${var_ram:-2048}"
var_disk="${var_disk:-20}" var_disk="${var_disk:-10}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
@@ -24,7 +24,6 @@ function update_script() {
check_container_storage check_container_storage
check_container_resources check_container_resources
# Check if installation is present | -f for file, -d for folder
if [[ ! -f /lib/systemd/system/freepbx.service ]]; then if [[ ! -f /lib/systemd/system/freepbx.service ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit

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}"

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

@@ -0,0 +1,75 @@
#!/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:-4096}"
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
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/homarr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
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)"
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
bun --version
apt install -y git
git clone https://github.com/arunavo4/gitea-mirror.git
cd /opt/gitea-mirror
bun install
bun run build
bun run manage-db init
install_node_and_modules
rm -rf /opt/homarr
fetch_and_deploy_gh_release "homarr-labs/homarr"
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}"

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 +0,0 @@
___ __ _ __
/ | _____/ /____ _____(_)____/ /__
/ /| | / ___/ __/ _ \/ ___/ / ___/ //_/
/ ___ |(__ ) /_/ __/ / / (__ ) ,<
/_/ |_/____/\__/\___/_/ /_/____/_/|_|

View File

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

View File

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

6
ct/headers/backrest Normal file
View File

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

View File

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

6
ct/headers/configarr Normal file
View File

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

View File

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

View File

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

View File

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

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

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

View File

@@ -1,6 +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 @@
__ ___
/ |/ /___ __ ____ ______
/ /|_/ / __ `/ |/_/ / / / __ \
/ / / / /_/ /> </ /_/ / / / /
/_/ /_/\__,_/_/|_|\__,_/_/ /_/

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 @@
____ __
/ __ \____ _____ ___ _____/ /__ __________ ____ ____ __ __
/ /_/ / __ `/ __ \/ _ \/ ___/ / _ \/ ___/ ___/_____/ __ \/ __ `/ |/_/
/ ____/ /_/ / /_/ / __/ / / / __(__ |__ )_____/ / / / /_/ /> <
/_/ \__,_/ .___/\___/_/ /_/\___/____/____/ /_/ /_/\__, /_/|_|
/_/ /____/

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 @@
____ __ __ _ __
/ __ \____ __ ______ ____/ /______ __/ /_ ___ ____ ___ ____ _(_) /
/ /_/ / __ \/ / / / __ \/ __ / ___/ / / / __ \/ _ \/ __ `__ \/ __ `/ / /
/ _, _/ /_/ / /_/ / / / / /_/ / /__/ /_/ / /_/ / __/ / / / / / /_/ / / /
/_/ |_|\____/\__,_/_/ /_/\__,_/\___/\__,_/_.___/\___/_/ /_/ /_/\__,_/_/_/

View File

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

View File

@@ -1,11 +1,11 @@
#!/usr/bin/env bash #!/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 # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz) | Co-Author: CrazyWolf13 # Author: tteck (tteckster) | Co-Author: MickLesk (Canbiz) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://homarr.dev/ # Source: https://homarr.dev/
APP="Homarr" APP="homarr"
var_tags="${var_tags:-arr;dashboard}" var_tags="${var_tags:-arr;dashboard}"
var_cpu="${var_cpu:-2}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-4096}" var_ram="${var_ram:-4096}"
@@ -124,7 +124,9 @@ EOF
fetch_and_deploy_gh_release "homarr-labs/homarr" fetch_and_deploy_gh_release "homarr-labs/homarr"
mv /opt/homarr-data-backup/.env /opt/homarr/.env mv /opt/homarr-data-backup/.env /opt/homarr/.env
cd /opt/homarr cd /opt/homarr
$STD pnpm install echo "test2"
export NODE_ENV=""
$STD pnpm install --recursive --frozen-lockfile --shamefully-hoist
$STD pnpm build $STD pnpm build
cp /opt/homarr/apps/nextjs/next.config.ts . cp /opt/homarr/apps/nextjs/next.config.ts .
cp /opt/homarr/apps/nextjs/package.json . cp /opt/homarr/apps/nextjs/package.json .

View File

@@ -46,13 +46,13 @@ function update_script() {
rm ~/Dockerfile rm ~/Dockerfile
fi fi
if [[ -f ~/.immich_library_revisions ]]; then if [[ -f ~/.immich_library_revisions ]]; then
curl -fsSLO https://raw.githubusercontent.com/immich-app/base-images/refs/heads/main/server/bin/build-lock.json libraries=("libjxl" "libheif" "libraw" "imagemagick" "libvips")
jq -cr '.sources[].revision' ./build-lock.json >~/.new_revisions readarray -d '' NEW_REVISIONS < <(for library in "${libraries[@]}"; do
readarray -t UPDATED_REVISIONS < <(comm -13 <(sort ~/.immich_library_revisions) <(sort ~/.new_revisions)) echo "$library: $(curl -fsSL https://raw.githubusercontent.com/immich-app/base-images/refs/heads/main/server/sources/"$library".json | jq -cr '.revision' -)"
if [[ "${#UPDATED_REVISIONS[@]}" -gt 0 ]]; then done)
readarray -t NAMES < <(for revision in "${UPDATED_REVISIONS[@]}"; do UPDATED_REVISIONS="$(comm -13 <(sort ~/.immich_library_revisions) <(echo -n "${NEW_REVISIONS[@]}" | sort))"
jq -cr --arg jq_revision "$revision" '.sources[] | select(.revision == $jq_revision).name' ./build-lock.json if [[ "$UPDATED_REVISIONS" ]]; then
done) readarray -t NAMES < <(echo "$UPDATED_REVISIONS" | awk -F ':' '{print $1}')
rm -rf "$SOURCE_DIR" rm -rf "$SOURCE_DIR"
mkdir -p "$SOURCE_DIR" mkdir -p "$SOURCE_DIR"
cd "$BASE_DIR" cd "$BASE_DIR"
@@ -64,13 +64,13 @@ function update_script() {
SOURCE=${SOURCE_DIR}/libjxl SOURCE=${SOURCE_DIR}/libjxl
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62" JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0" 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" $STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
cd "$SOURCE" cd "$SOURCE"
$STD git reset --hard "$LIBJXL_REVISION" $STD git reset --hard "$LIBJXL_REVISION"
$STD git submodule update --init --recursive --depth 1 --recommend-shallow $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/sources/libjxl-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-icc-warning.patch
mkdir build mkdir build
cd build cd build
$STD cmake \ $STD cmake \
@@ -102,7 +102,7 @@ function update_script() {
if [[ "$name" == "libheif" ]]; then if [[ "$name" == "libheif" ]]; then
msg_info "Recompiling libheif" msg_info "Recompiling libheif"
SOURCE=${SOURCE_DIR}/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" $STD git clone https://github.com/strukturag/libheif.git "$SOURCE"
cd "$SOURCE" cd "$SOURCE"
$STD git reset --hard "$LIBHEIF_REVISION" $STD git reset --hard "$LIBHEIF_REVISION"
@@ -128,7 +128,7 @@ function update_script() {
if [[ "$name" == "libraw" ]]; then if [[ "$name" == "libraw" ]]; then
msg_info "Recompiling libraw" msg_info "Recompiling libraw"
SOURCE=${SOURCE_DIR}/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" $STD git clone https://github.com/libraw/libraw.git "$SOURCE"
cd "$SOURCE" cd "$SOURCE"
$STD git reset --hard "$LIBRAW_REVISION" $STD git reset --hard "$LIBRAW_REVISION"
@@ -144,7 +144,7 @@ function update_script() {
if [[ "$name" == "imagemagick" ]]; then if [[ "$name" == "imagemagick" ]]; then
msg_info "Recompiling ImageMagick" msg_info "Recompiling ImageMagick"
SOURCE=$SOURCE_DIR/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" $STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
cd "$SOURCE" cd "$SOURCE"
$STD git reset --hard "$IMAGEMAGICK_REVISION" $STD git reset --hard "$IMAGEMAGICK_REVISION"
@@ -159,7 +159,7 @@ function update_script() {
if [[ "$name" == "libvips" ]]; then if [[ "$name" == "libvips" ]]; then
msg_info "Recompiling libvips" msg_info "Recompiling libvips"
SOURCE=$SOURCE_DIR/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" $STD git clone https://github.com/libvips/libvips.git "$SOURCE"
cd "$SOURCE" cd "$SOURCE"
$STD git reset --hard "$LIBVIPS_REVISION" $STD git reset --hard "$LIBVIPS_REVISION"
@@ -172,10 +172,9 @@ function update_script() {
msg_ok "Recompiled libvips" msg_ok "Recompiled libvips"
fi fi
done done
mv ~/.new_revisions ~/.immich_library_revisions echo -n "${NEW_REVISIONS[@]}" >~/.immich_library_revisions
msg_ok "Image-processing libraries compiled" msg_ok "Image-processing libraries compiled"
fi fi
rm ~/build-lock.json
fi 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) }') 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 if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
@@ -183,6 +182,18 @@ function update_script() {
systemctl stop immich-web systemctl stop immich-web
systemctl stop immich-ml systemctl stop immich-ml
msg_ok "Stopped ${APP}" msg_ok "Stopped ${APP}"
if [[ "$(cat /opt/${APP}_version.txt)" < "1.133.0" ]]; then
msg_info "Upgrading to the VectorChord PostgreSQL extension"
$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 -e "s/'vectors.so'/'vchord.so, vectors.so'/" \
-e "/^search_path/s/, vectors//" /etc/postgresql/16/main/postgresql.conf
systemctl restart postgresql.service
msg_ok "Upgrade in progress. When Immich restarts, watch the logs for 're-indexing' to complete"
fi
INSTALL_DIR="/opt/${APP}" INSTALL_DIR="/opt/${APP}"
UPLOAD_DIR="${INSTALL_DIR}/upload" UPLOAD_DIR="${INSTALL_DIR}/upload"
SRC_DIR="${INSTALL_DIR}/source" SRC_DIR="${INSTALL_DIR}/source"
@@ -213,7 +224,6 @@ function update_script() {
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,start*.sh} "$APP_DIR"/ 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 -a web/build "$APP_DIR"/www
cp LICENSE "$APP_DIR" cp LICENSE "$APP_DIR"
cp "$BASE_DIR"/server/bin/build-lock.json "$APP_DIR"
msg_ok "Updated ${APP} web and microservices" msg_ok "Updated ${APP} web and microservices"
cd "$SRC_DIR"/machine-learning cd "$SRC_DIR"/machine-learning
@@ -257,6 +267,8 @@ function update_script() {
$STD npm i -g @immich/cli $STD npm i -g @immich/cli
msg_ok "Updated Immich CLI" msg_ok "Updated Immich CLI"
sed -i "s|pgvecto.rs|vectorchord|" /opt/"${APP}"/.env
chown -R immich:immich "$INSTALL_DIR" chown -R immich:immich "$INSTALL_DIR"
echo "$RELEASE" >/opt/"${APP}"_version.txt echo "$RELEASE" >/opt/"${APP}"_version.txt
msg_ok "Updated ${APP} to v${RELEASE}" msg_ok "Updated ${APP} to v${RELEASE}"

View File

@@ -1,15 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func) source <(curl -s https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG # Copyright (c) 2021-2025 community-scripts ORG
# Author: MickLesk (CanbiZ) # Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://rclone.org/ # Source: https://github.com/jitsi/jitsi-meet
APP="Rclone" APP="Jitsi-Meet"
var_tags="${var_tags:-os}" var_tags="${var_tags:-os}"
var_cpu="${var_cpu:-1}" var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-512}" var_ram="${var_ram:-4096}"
var_disk="${var_disk:-2}" var_disk="${var_disk:-20}"
var_os="${var_os:-debian}" var_os="${var_os:-debian}"
var_version="${var_version:-12}" var_version="${var_version:-12}"
var_unprivileged="${var_unprivileged:-1}" var_unprivileged="${var_unprivileged:-1}"
@@ -23,14 +23,14 @@ function update_script() {
header_info header_info
check_container_storage check_container_storage
check_container_resources check_container_resources
if [[ ! -d /var ]]; then if [[ ! -f /lib/systemd/system/jitsi-videobridge2.service ]]; then
msg_error "No ${APP} Installation Found!" msg_error "No ${APP} Installation Found!"
exit exit
fi fi
msg_info "Updating $APP LXC" msg_info "Updating Jitsi-Meet LXC"
$STD apt-get update $STD apt-get update
$STD apt-get -y upgrade $STD apt-get upgrade -y
msg_ok "Updated $APP LXC" msg_ok "Updated Jitsi-Meet LXC"
exit exit
} }
@@ -40,3 +40,5 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${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 start
build_container build_container
description desiption
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"

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}"

View File

@@ -1,72 +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: MickLesk (CanbiZ)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/odoo/odoo
APP="Odoo"
# shellcheck disable=SC2034
var_tags="${var_tags:-erp}"
var_disk="${var_disk:-6}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
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 /etc/odoo/odoo.conf ]]; then
msg_error "No ${APP} Installation Found!"
exit 1
fi
RELEASE=$(curl -fsSL https://nightly.odoo.com/ | grep -oE 'href="[0-9]+\.[0-9]+/nightly"' | head -n1 | cut -d'"' -f2 | cut -d/ -f1)
LATEST_VERSION=$(curl -fsSL "https://nightly.odoo.com/${RELEASE}/nightly/deb/" |
grep -oP "odoo_${RELEASE}\.\d+_all\.deb" |
sed -E "s/odoo_(${RELEASE}\.[0-9]+)_all\.deb/\1/" |
sort -V |
tail -n1)
if [[ "${LATEST_VERSION}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
msg_info "Stopping ${APP} service"
systemctl stop odoo
msg_ok "Stopped ${APP}"
msg_info "Updating ${APP} to ${LATEST_VERSION}"
curl -fsSL https://nightly.odoo.com/${RELEASE}/nightly/deb/odoo_${RELEASE}.latest_all.deb -o /opt/odoo.deb
$STD apt install -y /opt/odoo.deb
echo "$RELEASE" >/opt/${APP}_version.txt
msg_ok "Updated ${APP} to ${RELEASE}"
msg_info "Starting ${APP} service"
systemctl start odoo
msg_ok "Started ${APP}"
msg_info "Cleaning Up"
rm -f /opt/odoo.deb
msg_ok "Cleaned"
msg_ok "Updated Successfully"
else
msg_ok "No update required. ${APP} is already at ${LATEST_VERSION}"
fi
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8069${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

@@ -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

@@ -1,36 +0,0 @@
{
"name": "Asterisk",
"slug": "asterisk",
"categories": [
0,
4
],
"date_created": "2025-05-13",
"type": "ct",
"updateable": false,
"privileged": false,
"interface_port": null,
"documentation": "https://docs.asterisk.org/",
"config_path": "/etc/asterisk",
"website": "https://asterisk.org/",
"logo": "https://docs.asterisk.org/favicon.ico",
"description": "Asterisk is an open-source framework for building communications applications, most commonly used as a phone system (PBX). Developed by Digium (now part of Sangoma), it turns a standard computer into a powerful telephony server.",
"install_methods": [
{
"type": "default",
"script": "ct/asterisk.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 4,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

View File

@@ -1,41 +0,0 @@
{
"name": "authentik",
"slug": "authentik",
"categories": [
6
],
"date_created": "2024-12-27",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 9000,
"documentation": "https://docs.goauthentik.io/docs/",
"website": "https://goauthentik.io/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/authentik.svg",
"config_path": "/etc/authentik/config.yml",
"description": "authentik is an IdP (Identity Provider) and SSO (single sign on) that is built with security at the forefront of every piece of code, every feature, with an emphasis on flexibility and versatility.",
"install_methods": [
{
"type": "default",
"script": "ct/authentik.sh",
"resources": {
"cpu": 6,
"ram": 8192,
"hdd": 12,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Authentik is very resource-heavy, it is recommended to use at least 8GB RAM anytime!",
"type": "warning"
}
]
}

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

@@ -0,0 +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://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,46 +0,0 @@
{
"name": "Bitmagnet",
"slug": "bitmagnet",
"categories": [
11
],
"date_created": "2025-05-13",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://bitmagnet.io/setup.html",
"website": "https://bitmagnet.io/",
"logo": "https://github.com/bitmagnet-io/bitmagnet/blob/main/webui/public/magnet.svg",
"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/alpine-bitmagnet.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 3,
"os": "alpine",
"version": "3.21"
}
},
{
"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": []
}

View File

@@ -12,7 +12,7 @@
"documentation": "https://github.com/favonia/cloudflare-ddns/blob/main/README.markdown", "documentation": "https://github.com/favonia/cloudflare-ddns/blob/main/README.markdown",
"config_path": "/etc/systemd/system/cloudflare-ddns.service", "config_path": "/etc/systemd/system/cloudflare-ddns.service",
"website": "https://github.com/favonia/cloudflare-ddns", "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", "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": [ "install_methods": [
{ {
@@ -41,4 +41,4 @@
"type": "info" "type": "info"
} }
] ]
} }

View File

@@ -0,0 +1,40 @@
{
"name": "Configarr",
"slug": "configarr",
"categories": [
14
],
"date_created": "2025-05-06",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8989,
"documentation": "https://configarr.raydak.de/docs/intro",
"config_path": "/opt/configarr/config.yml",
"website": "https://configarr.raydak.de/",
"logo": "https://github.com/raydak-labs/configarr/blob/main/docs/static/img/logo.webp",
"description": "Configarr is an open-source tool designed to simplify configuration and synchronization for Sonarr and Radarr (and other experimental). It integrates with TRaSH Guides to automate updates of custom formats, quality profiles, and other settings, while also supporting user-defined configurations.",
"install_methods": [
{
"type": "default",
"script": "ct/configarr.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "Debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "change secrets file /opt/configarr/secrets.yml",
"type": "info"
}
]
}

View File

@@ -19,9 +19,9 @@
"type": "default", "type": "default",
"script": "ct/freepbx.sh", "script": "ct/freepbx.sh",
"resources": { "resources": {
"cpu": 1, "cpu": 2,
"ram": 1024, "ram": 2048,
"hdd": 20, "hdd": 10,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
@@ -31,6 +31,11 @@
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": [
{
"text": "This script uses the official FreePBX install script. Check it here: https://github.com/FreePBX/sng_freepbx_debian_install",
"type": "info"
}
]
} }

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,46 +0,0 @@
{
"name": "Alpine-gatus",
"slug": "alpine-gatus",
"categories": [
9
],
"date_created": "2025-05-06",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8080,
"documentation": "https://gatus.io/docs",
"website": "https://gatus.io/",
"logo": "https://raw.githubusercontent.com/TwiN/gatus/refs/heads/master/web/static/img/logo.svg",
"config_path": "/opt/gatus/config/config.yaml",
"description": "Gatus is a developer-oriented health dashboard that gives you the ability to monitor your services using HTTP, ICMP, TCP, and even DNS queries as well as evaluate the result of said queries by using a list of conditions on values like the status code, the response time, the certificate expiration, the body and many others. The icing on top is that each of these health checks can be paired with alerting via Slack, Teams, PagerDuty, Discord, Twilio and many more.",
"install_methods": [
{
"type": "default",
"script": "ct/gatus.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 4,
"os": "debian",
"version": "12"
}
},
{
"type": "alpine",
"script": "ct/alpine-gatus.sh",
"resources": {
"cpu": 1,
"ram": 256,
"hdd": 3,
"os": "alpine",
"version": "3.21"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": []
}

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, "interface_port": 2283,
"documentation": "https://immich.app/docs/overview/introduction", "documentation": "https://immich.app/docs/overview/introduction",
"website": "https://immich.app", "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", "config_path": "/opt/immich/.env",
"description": "High performance self-hosted photo and video management solution.", "description": "High performance self-hosted photo and video management solution.",
"install_methods": [ "install_methods": [
@@ -38,4 +38,3 @@
} }
] ]
} }

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

@@ -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, "interface_port": 80,
"documentation": "https://docs.librenms.org/", "documentation": "https://docs.librenms.org/",
"website": "https://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", "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.", "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": [ "install_methods": [
@@ -33,4 +33,3 @@
}, },
"notes": [] "notes": []
} }

View File

@@ -1,35 +1,35 @@
{ {
"name": "Librespeed", "name": "Librespeed",
"slug": "librespeed", "slug": "librespeed",
"categories": [ "categories": [
4 4
], ],
"date_created": "2025-04-26", "date_created": "2025-04-26",
"type": "ct", "type": "ct",
"updateable": true, "updateable": true,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://github.com/librespeed/speedtest/blob/master/doc.md", "documentation": "https://github.com/librespeed/speedtest/blob/master/doc.md",
"config_path": "", "config_path": "",
"website": "https://librespeed.org", "website": "https://librespeed.org",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/librespeed.svg", "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.", "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": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/librespeed.sh", "script": "ct/librespeed.sh",
"resources": { "resources": {
"cpu": 1, "cpu": 1,
"ram": 512, "ram": 512,
"hdd": 4, "hdd": 4,
"os": "Debian", "os": "Debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": "root", "username": "root",
"password": null "password": null
}, },
"notes": [] "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", "name": "Manyfold",
"slug": "manyfold", "slug": "manyfold",
"categories": [ "categories": [
24 24
], ],
"date_created": "2025-03-18", "date_created": "2025-03-18",
"type": "ct", "type": "ct",
"updateable": false, "updateable": false,
"privileged": false, "privileged": false,
"interface_port": 80, "interface_port": 80,
"documentation": "https://manyfold.app/sysadmin/", "documentation": "https://manyfold.app/sysadmin/",
"website": "https://manyfold.app/", "website": "https://manyfold.app/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/webp/manyfold.webp", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/manyfold.webp",
"config_path": "", "config_path": "",
"description": "Manyfold is an open source, self-hosted web application for managing a collection of 3d models, particularly focused on 3d printing.", "description": "Manyfold is an open source, self-hosted web application for managing a collection of 3d models, particularly focused on 3d printing.",
"install_methods": [ "install_methods": [
{ {
"type": "default", "type": "default",
"script": "ct/manyfold.sh", "script": "ct/manyfold.sh",
"resources": { "resources": {
"cpu": 2, "cpu": 2,
"ram": 1024, "ram": 1024,
"hdd": 15, "hdd": 15,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }
} }
], ],
"default_credentials": { "default_credentials": {
"username": null, "username": null,
"password": null "password": null
}, },
"notes": [] "notes": []
} }

View File

@@ -1,40 +0,0 @@
{
"name": "Odoo",
"slug": "odoo",
"categories": [
25
],
"date_created": "2025-05-14",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8069,
"documentation": "https://www.odoo.com/en_EN/page/docs",
"website": "https://www.odoo.com/",
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/odoo.svg",
"config_path": "/etc/odoo/odoo.conf",
"description": "Odoo is a comprehensive open-source business platform made up of modular apps that cover key areas such as CRM, accounting, inventory, sales, project management, HR, helpdesk, and e-commerce. All modules are tightly integrated, allowing businesses to fully digitize and automate their workflows. Its modular design makes it suitable for both small companies and large enterprises, with flexibility to adapt to different industries. Odoo combines user-friendliness with powerful functionality, offering a unified solution for managing a wide range of business operations.",
"install_methods": [
{
"type": "default",
"script": "ct/odoo.sh",
"resources": {
"cpu": 2,
"ram": 2048,
"hdd": 6,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": "admin",
"password": "admin"
},
"notes": [
{
"text": "Database Credentials: `cat ~/odoo.creds`",
"type": "info"
}
]
}

View File

@@ -11,7 +11,7 @@
"interface_port": 80, "interface_port": 80,
"documentation": "https://github.com/agersant/polaris/blob/master/docs/SETUP.md", "documentation": "https://github.com/agersant/polaris/blob/master/docs/SETUP.md",
"website": "https://github.com/agersant/polaris", "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": "", "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.", "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": [ "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,53 +1,123 @@
[ [
{ {
"name": "theonedev/onedev", "name": "tobychui/zoraxy",
"version": "v11.9.6", "version": "v3.1.9",
"date": "2025-05-13T12:16:17Z" "date": "2025-03-01T02:24:33Z"
},
{
"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": "firefly-iii/firefly-iii",
"version": "v6.2.12",
"date": "2025-04-20T19:22:17Z"
},
{
"name": "cross-seed/cross-seed",
"version": "v6.12.4",
"date": "2025-05-11T11:41:32Z"
},
{
"name": "element-hq/synapse",
"version": "v1.129.0",
"date": "2025-05-06T12:28:54Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1893",
"date": "2025-05-13T05:57:50Z"
},
{
"name": "zitadel/zitadel",
"version": "v2.65.9",
"date": "2025-05-13T05:14:39Z"
}, },
{ {
"name": "ollama/ollama", "name": "ollama/ollama",
"version": "v0.6.9-rc0", "version": "v0.7.0",
"date": "2025-05-10T18:57:30Z" "date": "2025-05-14T23:42:30Z"
}, },
{ {
"name": "go-gitea/gitea", "name": "immich-app/immich",
"version": "v1.23.8", "version": "v1.133.0",
"date": "2025-05-12T22:40:50Z" "date": "2025-05-21T20:17:38Z"
},
{
"name": "apache/tika",
"version": "3.2.0-rc2",
"date": "2025-05-21T20:09:07Z"
},
{
"name": "0xERR0R/blocky",
"version": "v0.26.2",
"date": "2025-05-21T19:52: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": "zitadel/zitadel",
"version": "v3.1.0",
"date": "2025-05-21T12:40:54Z"
},
{
"name": "esphome/esphome",
"version": "2025.5.0",
"date": "2025-05-21T08:32:53Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w21-4.13.0",
"date": "2025-05-21T08:15:52Z"
},
{
"name": "syncthing/syncthing",
"version": "v1.29.6",
"date": "2025-05-06T07:57:02Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.1933",
"date": "2025-05-21T05:53:49Z"
},
{
"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", "name": "MediaBrowser/Emby.Releases",
@@ -56,8 +126,313 @@
}, },
{ {
"name": "keycloak/keycloak", "name": "keycloak/keycloak",
"version": "26.2.4", "version": "26.0.12",
"date": "2025-05-08T09:10:10Z" "date": "2025-05-15T14:06:52Z"
},
{
"name": "jenkinsci/jenkins",
"version": "jenkins-2.511",
"date": "2025-05-20T15:39:17Z"
},
{
"name": "element-hq/synapse",
"version": "v1.130.0",
"date": "2025-05-20T15:33:54Z"
},
{
"name": "documenso/documenso",
"version": "v1.11.1",
"date": "2025-05-20T12:37:46Z"
},
{
"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": "apache/cassandra",
"version": "cassandra-4.1.9",
"date": "2025-05-19T21:37:07Z"
},
{
"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": "firefly-iii/firefly-iii",
"version": "v6.2.12",
"date": "2025-04-20T19:22:17Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.91.3",
"date": "2025-05-08T12:25:10Z"
},
{
"name": "docker/compose",
"version": "v2.36.1",
"date": "2025-05-19T12:26:41Z"
},
{
"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": "rogerfar/rdt-client",
"version": "v2.0.112",
"date": "2025-05-18T17:44:52Z"
},
{
"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": "runtipi/runtipi",
"version": "nightly",
"date": "2025-05-18T13:00:01Z"
},
{
"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": "home-assistant/core",
"version": "2025.5.2",
"date": "2025-05-16T21:09:45Z"
},
{
"name": "homarr-labs/homarr",
"version": "v1.20.0",
"date": "2025-05-16T19:18:10Z"
},
{
"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": "morpheus65535/bazarr",
"version": "v1.5.2",
"date": "2025-05-11T16:40:55Z"
},
{
"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": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12: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": "pocketbase/pocketbase",
"version": "v0.28.1",
"date": "2025-05-13T18:45:47Z"
},
{
"name": "OctoPrint/OctoPrint",
"version": "1.11.1",
"date": "2025-05-13T13:32:07Z"
},
{
"name": "redis/redis",
"version": "8.0.1",
"date": "2025-05-13T13:31:53Z"
},
{
"name": "go-gitea/gitea",
"version": "v1.23.8",
"date": "2025-05-12T22:40:50Z"
}, },
{ {
"name": "leiweibau/Pi.Alert", "name": "leiweibau/Pi.Alert",
@@ -69,16 +444,6 @@
"version": "v2.1.0.118-2.1.0.118_canary_2025-05-12", "version": "v2.1.0.118-2.1.0.118_canary_2025-05-12",
"date": "2025-05-12T18:50:44Z" "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", "name": "neo4j/neo4j",
"version": "4.4.43", "version": "4.4.43",
@@ -89,41 +454,6 @@
"version": "v0.24.3", "version": "v0.24.3",
"date": "2025-05-12T15:23:21Z" "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": "nzbgetcom/nzbget",
"version": "v25.0",
"date": "2025-05-12T09:12:04Z"
},
{ {
"name": "dgtlmoon/changedetection.io", "name": "dgtlmoon/changedetection.io",
"version": "0.49.17", "version": "0.49.17",
@@ -139,16 +469,6 @@
"version": "v2.18.1", "version": "v2.18.1",
"date": "2025-05-12T07:16:12Z" "date": "2025-05-12T07:16:12Z"
}, },
{
"name": "esphome/esphome",
"version": "2025.4.2",
"date": "2025-05-11T22:18:43Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.2",
"date": "2025-05-11T16:40:55Z"
},
{ {
"name": "outline/outline", "name": "outline/outline",
"version": "v0.84.0", "version": "v0.84.0",
@@ -159,339 +479,9 @@
"version": "v3.5.3", "version": "v3.5.3",
"date": "2025-05-11T15:17:13Z" "date": "2025-05-11T15:17:13Z"
}, },
{
"name": "Prowlarr/Prowlarr",
"version": "v1.35.1.5034",
"date": "2025-04-30T11:02:36Z"
},
{ {
"name": "authelia/authelia", "name": "authelia/authelia",
"version": "v4.39.3", "version": "v4.39.3",
"date": "2025-05-11T11:12:15Z" "date": "2025-05-11T11:12:15Z"
},
{
"name": "Radarr/Radarr",
"version": "v5.22.4.9896",
"date": "2025-04-23T18:51:12Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.28.0",
"date": "2025-05-11T06:25:22Z"
},
{
"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": "Checkmk/checkmk",
"version": "v2.2.0p42-rc1",
"date": "2025-05-07T11:50:30Z"
},
{
"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": "redis/redis",
"version": "8.0.1-int",
"date": "2025-05-06T18:40:34Z"
},
{
"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": "jenkinsci/jenkins",
"version": "jenkins-2.509",
"date": "2025-05-06T15:37:10Z"
},
{
"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": "actualbudget/actual",
"version": "v25.5.0",
"date": "2025-05-03T19:03:17Z"
},
{
"name": "rogerfar/rdt-client",
"version": "v2.0.111",
"date": "2025-05-03T16:25:30Z"
},
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
},
{
"name": "kimai/kimai",
"version": "2.33.0",
"date": "2025-05-03T10:33:49Z"
},
{
"name": "documenso/documenso",
"version": "v1.10.3",
"date": "2025-05-02T23:23:25Z"
},
{
"name": "prometheus/prometheus",
"version": "v0.304.0-rc.0",
"date": "2025-05-02T17:29:18Z"
},
{
"name": "jhuckaby/Cronicle",
"version": "v0.9.80",
"date": "2025-05-02T16:48:15Z"
} }
] ]

View File

@@ -4,40 +4,42 @@ import type { Category, Script } from "@/lib/types";
import ScriptAccordion from "./ScriptAccordion"; import ScriptAccordion from "./ScriptAccordion";
const Sidebar = ({ const Sidebar = ({
items, items,
selectedScript, selectedScript,
setSelectedScript, setSelectedScript,
}: { }: {
items: Category[]; items: Category[];
selectedScript: string | null; selectedScript: string | null;
setSelectedScript: (script: string | null) => void; setSelectedScript: (script: string | null) => void;
}) => { }) => {
const uniqueScripts = items.reduce((acc, category) => { const filteredItems = items.filter(category => category.scripts && category.scripts.length > 0);
for (const script of category.scripts) {
if (!acc.some((s) => s.name === script.name)) {
acc.push(script);
}
}
return acc;
}, [] as Script[]);
return ( const uniqueScripts = filteredItems.reduce((acc, category) => {
<div className="flex min-w-72 flex-col sm:max-w-72"> for (const script of category.scripts) {
<div className="flex items-end justify-between pb-4"> if (!acc.some((s) => s.name === script.name)) {
<h1 className="text-xl font-bold">Categories</h1> acc.push(script);
<p className="text-xs italic text-muted-foreground"> }
{uniqueScripts.length} Total scripts }
</p> return acc;
</div> }, [] as Script[]);
<div className="rounded-lg">
<ScriptAccordion return (
items={items} <div className="flex min-w-72 flex-col sm:max-w-72">
selectedScript={selectedScript} <div className="flex items-end justify-between pb-4">
setSelectedScript={setSelectedScript} <h1 className="text-xl font-bold">Categories</h1>
/> <p className="text-xs italic text-muted-foreground">
</div> {uniqueScripts.length} Total scripts
</div> </p>
); </div>
<div className="rounded-lg">
<ScriptAccordion
items={filteredItems}
selectedScript={selectedScript}
setSelectedScript={setSelectedScript}
/>
</div>
</div>
);
}; };
export default Sidebar; export default Sidebar;

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 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
$STD go build
chmod +x bitmagnet
$STD su - postgres -c "psql -c 'CREATE DATABASE bitmagnet;'"
echo "${RELEASE}" >/opt/bitmagnet_version.txt
msg_ok "Installed bitmagnet v${RELEASE}"
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
}
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"

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