mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-03 18:02:50 +00:00
Compare commits
721 Commits
2025-07-28
...
2025-09-05
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbe71cbbb9 | ||
|
|
9b6a736c8c | ||
|
|
c395ccc270 | ||
|
|
3dd72e08e9 | ||
|
|
1d989bea73 | ||
|
|
f881b88344 | ||
|
|
06dbad83ef | ||
|
|
7ff966b042 | ||
|
|
62264f37a6 | ||
|
|
bf05dabc4c | ||
|
|
bc229d9738 | ||
|
|
969b08caa8 | ||
|
|
c1c43ed2cb | ||
|
|
e74767d1a4 | ||
|
|
e9e17f4f51 | ||
|
|
2c1b15a40e | ||
|
|
a4bfaf1646 | ||
|
|
6fa12cc814 | ||
|
|
d314168a37 | ||
|
|
d6ad11c5c2 | ||
|
|
534592b44a | ||
|
|
d9b6b58b36 | ||
|
|
298eb7e83d | ||
|
|
c2dd1e413f | ||
|
|
a4f1766408 | ||
|
|
a24169e9b8 | ||
|
|
45a2163e66 | ||
|
|
2fc3e62d60 | ||
|
|
210b846d61 | ||
|
|
b04cfb65f7 | ||
|
|
6a2fc4083b | ||
|
|
f7f53943c2 | ||
|
|
31f4d9b16c | ||
|
|
cd4cd5eec1 | ||
|
|
8a7eeee727 | ||
|
|
be5d65f421 | ||
|
|
591af3f109 | ||
|
|
a3e0df9de1 | ||
|
|
596699d07e | ||
|
|
b2275b44c2 | ||
|
|
737842fb1e | ||
|
|
646cb2bc30 | ||
|
|
4599bfe052 | ||
|
|
bb85b1d4ac | ||
|
|
57ae4a48a7 | ||
|
|
06e8460851 | ||
|
|
9713c95bf4 | ||
|
|
705748bba5 | ||
|
|
022f079821 | ||
|
|
80d75731a8 | ||
|
|
227721a72f | ||
|
|
5572a7a0ab | ||
|
|
6a69185a2d | ||
|
|
77441b6189 | ||
|
|
4aa337c2f2 | ||
|
|
4bd2f6866a | ||
|
|
377de80103 | ||
|
|
1c62d4614e | ||
|
|
a91f7410a4 | ||
|
|
528c0a8de5 | ||
|
|
988bd3ef19 | ||
|
|
99d9664ae4 | ||
|
|
09649eb5b1 | ||
|
|
5c49ba784a | ||
|
|
469f959911 | ||
|
|
7504c4b7e9 | ||
|
|
9a6047393d | ||
|
|
dec2ef817a | ||
|
|
54a9bc8841 | ||
|
|
8def7c0f0a | ||
|
|
13cbc2756b | ||
|
|
933928c4ee | ||
|
|
2beaab0d88 | ||
|
|
560ed60745 | ||
|
|
46febb33a9 | ||
|
|
ddd8e0ee68 | ||
|
|
be255263c6 | ||
|
|
c8d969d38a | ||
|
|
96511325ab | ||
|
|
bc545df207 | ||
|
|
36bf265fc6 | ||
|
|
892ad29c60 | ||
|
|
a5d02b5459 | ||
|
|
3ccf9924a1 | ||
|
|
953bbd7978 | ||
|
|
4228cb99db | ||
|
|
f7791fe2ff | ||
|
|
616c736428 | ||
|
|
ede5f35f39 | ||
|
|
b73bfdf7fd | ||
|
|
9305a4ca85 | ||
|
|
54b59e24ca | ||
|
|
d57c613535 | ||
|
|
f02525af8a | ||
|
|
f19659bea0 | ||
|
|
9cfb549dca | ||
|
|
ba09cbd9cc | ||
|
|
bc4d09b073 | ||
|
|
fb2d91abe7 | ||
|
|
5146385f4c | ||
|
|
346a8e140c | ||
|
|
42aa8f8868 | ||
|
|
459772162f | ||
|
|
1d65650d28 | ||
|
|
a2099bc195 | ||
|
|
896545ab1b | ||
|
|
522f427677 | ||
|
|
5d70455d93 | ||
|
|
01a91d8b4f | ||
|
|
f66a60ee47 | ||
|
|
b4e74b2a17 | ||
|
|
644e5900d9 | ||
|
|
3f3f536ebe | ||
|
|
baa39d05a5 | ||
|
|
a85bca7326 | ||
|
|
6defba8ab3 | ||
|
|
59f6329e85 | ||
|
|
856c724b5d | ||
|
|
67a20a9b4a | ||
|
|
27cd66f48a | ||
|
|
d25a12c87e | ||
|
|
e24315c50b | ||
|
|
753ed67b50 | ||
|
|
d6e498050f | ||
|
|
4a69a7b39f | ||
|
|
1dcde93b4a | ||
|
|
663c6570f4 | ||
|
|
6a17e25871 | ||
|
|
e609552cec | ||
|
|
bd4b781c9e | ||
|
|
7eb6715a1f | ||
|
|
aa0190978f | ||
|
|
e0f5e588e0 | ||
|
|
3949e2e049 | ||
|
|
ab4560b879 | ||
|
|
b8f854e7ad | ||
|
|
ea1c5b4561 | ||
|
|
957eea7a0f | ||
|
|
476fcedfe0 | ||
|
|
d590e91597 | ||
|
|
8c796a0870 | ||
|
|
b57efdb78a | ||
|
|
2cc3ce1ea1 | ||
|
|
468defcd97 | ||
|
|
78398309c0 | ||
|
|
08d1d7be62 | ||
|
|
05a4fcd471 | ||
|
|
36acf4aaae | ||
|
|
4182815b4c | ||
|
|
73a0910239 | ||
|
|
bd6626e919 | ||
|
|
3ad6cdf85a | ||
|
|
732bb75e9b | ||
|
|
d372b45a95 | ||
|
|
df564ace13 | ||
|
|
d2b28413eb | ||
|
|
b93a30ffb0 | ||
|
|
a4044b1cfd | ||
|
|
83eb2da451 | ||
|
|
9fda9f34c5 | ||
|
|
3715ea5946 | ||
|
|
de2d8d0e75 | ||
|
|
9f6abbe572 | ||
|
|
d90a071d88 | ||
|
|
69dd06b107 | ||
|
|
2be054a004 | ||
|
|
a2fcd3992e | ||
|
|
9a92df420e | ||
|
|
c6864c74bc | ||
|
|
941457b392 | ||
|
|
e84ea56a8f | ||
|
|
0d36d64454 | ||
|
|
74b2407c53 | ||
|
|
b97331282f | ||
|
|
fed5ebd9c8 | ||
|
|
be4a6f1a4f | ||
|
|
b383d43d9c | ||
|
|
54b676b529 | ||
|
|
d465ca87f2 | ||
|
|
e32c2b7dea | ||
|
|
444cbc2aa1 | ||
|
|
497622832e | ||
|
|
f36ac8831e | ||
|
|
66049f400c | ||
|
|
8daa235a88 | ||
|
|
072595c8fb | ||
|
|
85f8e5cd73 | ||
|
|
07fbcf57d4 | ||
|
|
f09c5db961 | ||
|
|
c1e93d7d79 | ||
|
|
292e48f4b4 | ||
|
|
1d8b8c87bd | ||
|
|
acfcf98273 | ||
|
|
5bb15dedae | ||
|
|
07394b9a7d | ||
|
|
1fce2de5c1 | ||
|
|
88579d4be3 | ||
|
|
e7ccf9a512 | ||
|
|
52a9ad733d | ||
|
|
23f65d0eb7 | ||
|
|
aece852e10 | ||
|
|
d7dea7cc5d | ||
|
|
5cd24b503c | ||
|
|
2e5db6a283 | ||
|
|
32f6a76426 | ||
|
|
5d526717ef | ||
|
|
287265d554 | ||
|
|
e72f248918 | ||
|
|
c207d65b1b | ||
|
|
fb1d5d5a33 | ||
|
|
ed5dfa6eef | ||
|
|
8314e59973 | ||
|
|
b73c50399d | ||
|
|
50feb0d846 | ||
|
|
4773649706 | ||
|
|
ebb5d8f2c4 | ||
|
|
0555dbd93c | ||
|
|
e63bc92368 | ||
|
|
a74b7c4763 | ||
|
|
73178f5ff4 | ||
|
|
0358111f5f | ||
|
|
7346e7b1ab | ||
|
|
4add8e8273 | ||
|
|
49f1f7b1e2 | ||
|
|
e5a6a5f1c0 | ||
|
|
19365b5083 | ||
|
|
12d3457002 | ||
|
|
18abecbf9b | ||
|
|
2ead98c480 | ||
|
|
265321b0c0 | ||
|
|
bae22ebf82 | ||
|
|
c80f136871 | ||
|
|
faf4fbd0fd | ||
|
|
41e8958ab9 | ||
|
|
cdc546f879 | ||
|
|
4ded6585a2 | ||
|
|
2892b85a6f | ||
|
|
e28ab86797 | ||
|
|
2c3193ebb3 | ||
|
|
96959ffdb0 | ||
|
|
13fbf25ecd | ||
|
|
21d2159f22 | ||
|
|
a42ceeac98 | ||
|
|
6e7ad44d36 | ||
|
|
9ea852ffad | ||
|
|
d4bd7a6fda | ||
|
|
316f4043d4 | ||
|
|
f799c90712 | ||
|
|
7de8934105 | ||
|
|
15dedc1e16 | ||
|
|
13f46d2c58 | ||
|
|
ff7e7a6e10 | ||
|
|
c49519a7de | ||
|
|
8ce4776a87 | ||
|
|
9cda1a8680 | ||
|
|
c9b5e27d74 | ||
|
|
70ec048aa9 | ||
|
|
89af0c466b | ||
|
|
93a1710e20 | ||
|
|
91a5c9c48f | ||
|
|
e85353856b | ||
|
|
bf99523a94 | ||
|
|
c1b3321801 | ||
|
|
beb9189c72 | ||
|
|
186c82d156 | ||
|
|
9d431458ca | ||
|
|
9c86eea347 | ||
|
|
e20af295f0 | ||
|
|
68832d71fa | ||
|
|
2e13483f19 | ||
|
|
c7643ae88c | ||
|
|
f16f7a130a | ||
|
|
94a8fe7132 | ||
|
|
059d297305 | ||
|
|
2bd2a763a1 | ||
|
|
452ba92a6f | ||
|
|
d27a875987 | ||
|
|
14418411f6 | ||
|
|
f13c8ff3ce | ||
|
|
28dc145811 | ||
|
|
170543bb66 | ||
|
|
c783024ef0 | ||
|
|
19403a627b | ||
|
|
cc08395a1d | ||
|
|
d5093a3d9d | ||
|
|
52c4f3e0c2 | ||
|
|
76a4ec9e06 | ||
|
|
bebf6f65aa | ||
|
|
34582c4dc4 | ||
|
|
4495878c4f | ||
|
|
3c33e8b826 | ||
|
|
be6cc7ddbb | ||
|
|
615049ce5c | ||
|
|
f9e5c46b21 | ||
|
|
913102d66f | ||
|
|
07628f3b76 | ||
|
|
291d364158 | ||
|
|
98c4a2ccae | ||
|
|
c60098d8eb | ||
|
|
7df1dbaf17 | ||
|
|
304c90a1af | ||
|
|
01fe1b1f62 | ||
|
|
fd85e71fcf | ||
|
|
66c03ce1b4 | ||
|
|
067f9eb209 | ||
|
|
cd3dbc864f | ||
|
|
f42f06343d | ||
|
|
e46648ecdc | ||
|
|
206751f517 | ||
|
|
6a06afcbb9 | ||
|
|
bd3e93215b | ||
|
|
94b9aa4025 | ||
|
|
36523dfd33 | ||
|
|
618fa65bc2 | ||
|
|
1dd417fdaa | ||
|
|
4480a70ceb | ||
|
|
5d423888d9 | ||
|
|
81876d6992 | ||
|
|
b777d74dce | ||
|
|
c904da6b94 | ||
|
|
4591b58e66 | ||
|
|
8f7cd0bff9 | ||
|
|
60318fd77b | ||
|
|
50c41cec72 | ||
|
|
ef2e9803d0 | ||
|
|
e428a05b45 | ||
|
|
37e5f7272e | ||
|
|
5560c4eb12 | ||
|
|
be6e2e3cb1 | ||
|
|
7086a15321 | ||
|
|
23f29b14fe | ||
|
|
9aafb65a98 | ||
|
|
296f4577d0 | ||
|
|
1ea1429874 | ||
|
|
3f70f92fbb | ||
|
|
23c6994835 | ||
|
|
70cd362d3e | ||
|
|
aed25098e5 | ||
|
|
a79392149e | ||
|
|
f32647a3d3 | ||
|
|
bb3c77f1b6 | ||
|
|
66a582dd09 | ||
|
|
06eb76c5d9 | ||
|
|
a37f921aff | ||
|
|
5c7e221efa | ||
|
|
7e00889967 | ||
|
|
f1d855e331 | ||
|
|
a33bbd603d | ||
|
|
472ad02d44 | ||
|
|
aed2fbc4b1 | ||
|
|
dabb49d7eb | ||
|
|
61b7b96780 | ||
|
|
a72885b4c1 | ||
|
|
58fe2df6b4 | ||
|
|
5c8bd4b124 | ||
|
|
b6d7ad7c38 | ||
|
|
dd4d518052 | ||
|
|
a99650f969 | ||
|
|
842d73de82 | ||
|
|
65f731d88b | ||
|
|
363685d3d3 | ||
|
|
ff77960aa6 | ||
|
|
8d4a81d28e | ||
|
|
faf10a9d5b | ||
|
|
1b931becaa | ||
|
|
905198116d | ||
|
|
8d65b4624f | ||
|
|
4e17190721 | ||
|
|
9337e2de3c | ||
|
|
c7a7ea763b | ||
|
|
ce71992dd6 | ||
|
|
f68b80fe4a | ||
|
|
79adb4ef9b | ||
|
|
8dda5ac31f | ||
|
|
7d901bc594 | ||
|
|
b6dce8cff1 | ||
|
|
1b43202a79 | ||
|
|
66687c0d21 | ||
|
|
39b9cfcffc | ||
|
|
24f4d2f488 | ||
|
|
ee74400626 | ||
|
|
032709e107 | ||
|
|
65d60fbf1e | ||
|
|
c7b80448dc | ||
|
|
d7a60f6027 | ||
|
|
241ae98c0b | ||
|
|
63f24a8e61 | ||
|
|
1cb87c4087 | ||
|
|
5c22f9775e | ||
|
|
a403da9f47 | ||
|
|
4ce7335482 | ||
|
|
bc52b1a7d7 | ||
|
|
1c5ff8b26a | ||
|
|
967b2a313f | ||
|
|
50410acf8d | ||
|
|
ab07afb7bd | ||
|
|
eee083c7e0 | ||
|
|
31ef36d744 | ||
|
|
13afa93ddf | ||
|
|
7c631eec00 | ||
|
|
82d1a872c7 | ||
|
|
0c23782485 | ||
|
|
ef7c774a24 | ||
|
|
c12ec76181 | ||
|
|
a805e40b04 | ||
|
|
727b713893 | ||
|
|
5cedb8469e | ||
|
|
c612a4daa8 | ||
|
|
87b7166924 | ||
|
|
9b9faf7a53 | ||
|
|
51a1d3c0ef | ||
|
|
8b1c2d6e68 | ||
|
|
21c2ef2915 | ||
|
|
6796e609d0 | ||
|
|
723ac08abb | ||
|
|
35c4c363a0 | ||
|
|
32f99aee54 | ||
|
|
1803ea0323 | ||
|
|
fcf14a93c2 | ||
|
|
549e1ee01e | ||
|
|
c4b7966303 | ||
|
|
2ed4d91f3c | ||
|
|
6a5685505a | ||
|
|
7cc1eaa259 | ||
|
|
0db53c98e0 | ||
|
|
0faf32c4d0 | ||
|
|
5c564b4bd1 | ||
|
|
5b81fc1aaa | ||
|
|
047c7fe53c | ||
|
|
c759269f0a | ||
|
|
7540314f53 | ||
|
|
8d73af0106 | ||
|
|
f1cdef1f9b | ||
|
|
79f3662636 | ||
|
|
c43e5318ae | ||
|
|
7e32903f10 | ||
|
|
ba5c318276 | ||
|
|
634fcb5abb | ||
|
|
5d29a4f11c | ||
|
|
cf62139e07 | ||
|
|
716f1f05ec | ||
|
|
47d773d088 | ||
|
|
f9eb0cfa40 | ||
|
|
2b164f8281 | ||
|
|
6937ca1c67 | ||
|
|
af6c1ae680 | ||
|
|
75335f3362 | ||
|
|
d0dfe1f3a6 | ||
|
|
0ebc6b94ab | ||
|
|
bf110c1814 | ||
|
|
0d7de4f292 | ||
|
|
f7ca7b28df | ||
|
|
27b79a23b6 | ||
|
|
49fbe38981 | ||
|
|
0cd7985f8a | ||
|
|
428fae66c3 | ||
|
|
18c57600c6 | ||
|
|
68d2d3c52c | ||
|
|
76f9232c3a | ||
|
|
4258d44a7d | ||
|
|
c60f04e229 | ||
|
|
6b93869e52 | ||
|
|
c3cfdc1efa | ||
|
|
33678fde1b | ||
|
|
3dfdfeb2fa | ||
|
|
305d3603ef | ||
|
|
00138323b9 | ||
|
|
1d50632019 | ||
|
|
8883ba6b60 | ||
|
|
7b06f611ad | ||
|
|
412919670c | ||
|
|
77ac07efd7 | ||
|
|
55def0d441 | ||
|
|
70a01abbd8 | ||
|
|
d5b0209453 | ||
|
|
755da8bdc3 | ||
|
|
9228cd06e3 | ||
|
|
49579e8558 | ||
|
|
030a977209 | ||
|
|
b8176dc7b3 | ||
|
|
cd0625cba6 | ||
|
|
73e131ecf8 | ||
|
|
a0d6082b95 | ||
|
|
70ccaf6835 | ||
|
|
05b58decc2 | ||
|
|
ff1b7cc81d | ||
|
|
a2bbc2174a | ||
|
|
a8a44a4d51 | ||
|
|
ed620e8258 | ||
|
|
1fc667088c | ||
|
|
d89055a5cd | ||
|
|
4ecd019e15 | ||
|
|
e3a31aa47e | ||
|
|
ed936528d2 | ||
|
|
6f24de7d63 | ||
|
|
54de40ed53 | ||
|
|
872cd289ff | ||
|
|
9c37ac385c | ||
|
|
575ad61c93 | ||
|
|
1773cc5507 | ||
|
|
11b19fdeab | ||
|
|
5e6081fbea | ||
|
|
e2a310dd3a | ||
|
|
d934d1b51b | ||
|
|
6e3c08142d | ||
|
|
a41497f90a | ||
|
|
c54025f8de | ||
|
|
a1eb53841d | ||
|
|
6c4c3ffa39 | ||
|
|
78f695f397 | ||
|
|
4b0d24ed2e | ||
|
|
705d66e7c6 | ||
|
|
c4703527dc | ||
|
|
9b607c60b4 | ||
|
|
4717852019 | ||
|
|
ab9c57ccf9 | ||
|
|
dce77d12c7 | ||
|
|
1f35b649cc | ||
|
|
5938a9aceb | ||
|
|
3b76211c12 | ||
|
|
7221a0759d | ||
|
|
a750932b3a | ||
|
|
a4de1efae8 | ||
|
|
f7570cb40c | ||
|
|
10471b88aa | ||
|
|
04a83cce10 | ||
|
|
f9e26f4f7c | ||
|
|
ed6baa1158 | ||
|
|
a7cc93af09 | ||
|
|
a494ed5872 | ||
|
|
ede517a560 | ||
|
|
bd41b236df | ||
|
|
229c7ce4b3 | ||
|
|
cc8381d7f7 | ||
|
|
dc5b9be9ae | ||
|
|
993aff59d7 | ||
|
|
f3844c664c | ||
|
|
47b3f71992 | ||
|
|
09c815e935 | ||
|
|
f59d4960f1 | ||
|
|
c53d1d004a | ||
|
|
bbdda06297 | ||
|
|
daab80aaf4 | ||
|
|
9250f9fae9 | ||
|
|
6fa371fffc | ||
|
|
e85263078e | ||
|
|
f9b0916885 | ||
|
|
964e29cd9e | ||
|
|
31932499a9 | ||
|
|
b155881de9 | ||
|
|
010435ecaf | ||
|
|
0863d080a4 | ||
|
|
99837db81a | ||
|
|
b4df862579 | ||
|
|
01c6eb3a67 | ||
|
|
5aabc88723 | ||
|
|
23340f5d24 | ||
|
|
77dcf87e6a | ||
|
|
d9cefc3777 | ||
|
|
7d6806e1fb | ||
|
|
86d438c3a1 | ||
|
|
fdc381e501 | ||
|
|
3b1b8a7da2 | ||
|
|
96f2c9c990 | ||
|
|
349827aa97 | ||
|
|
4dc458c605 | ||
|
|
b5b6048697 | ||
|
|
dc5fcb83e8 | ||
|
|
db86049a3e | ||
|
|
e6ceca0bc7 | ||
|
|
d24425efad | ||
|
|
3dda41df94 | ||
|
|
fc77ca85e4 | ||
|
|
db09b9cc36 | ||
|
|
9f933c1e56 | ||
|
|
efe45185fc | ||
|
|
0a56fee31e | ||
|
|
20048d442a | ||
|
|
b1be93155c | ||
|
|
1e2eb31560 | ||
|
|
ca701632e1 | ||
|
|
c3c5a7584b | ||
|
|
3cd1fc7bce | ||
|
|
1c7a39438c | ||
|
|
46728b01fe | ||
|
|
e0abf63778 | ||
|
|
4451f07990 | ||
|
|
6776912a42 | ||
|
|
b914fd95df | ||
|
|
f33afd9163 | ||
|
|
c811b51a0a | ||
|
|
ccbf86196b | ||
|
|
64366a0b34 | ||
|
|
183c459549 | ||
|
|
44e62f73d4 | ||
|
|
2f97e14f4d | ||
|
|
7cd5a8d771 | ||
|
|
9846bfd067 | ||
|
|
77c37a5552 | ||
|
|
8efcab38a4 | ||
|
|
201782552c | ||
|
|
7433f7df0c | ||
|
|
dde882f9e5 | ||
|
|
b8bdf56297 | ||
|
|
df504635a5 | ||
|
|
158bdfc88e | ||
|
|
4eaffda82d | ||
|
|
074bb615e7 | ||
|
|
7c0869e29b | ||
|
|
7862d23866 | ||
|
|
e1669c22de | ||
|
|
00a69678c0 | ||
|
|
1c2ccf81d2 | ||
|
|
88483b7dab | ||
|
|
7c41c51bfe | ||
|
|
ecf01637a5 | ||
|
|
3068ae1383 | ||
|
|
ca8cddb788 | ||
|
|
750397e1af | ||
|
|
30172379cd | ||
|
|
f07b273be3 | ||
|
|
e5c673df44 | ||
|
|
61fb45a0b8 | ||
|
|
084ceae9d9 | ||
|
|
054a963ca2 | ||
|
|
b366ffac34 | ||
|
|
29747ab8b8 | ||
|
|
12b904a014 | ||
|
|
fad4d2e0d7 | ||
|
|
899e576426 | ||
|
|
0f29e5672c | ||
|
|
3e1d43c29a | ||
|
|
ff695fa4ea | ||
|
|
93b80362f6 | ||
|
|
52e08e5474 | ||
|
|
b9408ef06f | ||
|
|
4652338536 | ||
|
|
3c7c540576 | ||
|
|
a0502e00db | ||
|
|
6f56655ad6 | ||
|
|
6de8d50969 | ||
|
|
da217bb3e0 | ||
|
|
f80c7008a8 | ||
|
|
afd577db9e | ||
|
|
47ab850e5b | ||
|
|
654bd1f0d5 | ||
|
|
b6bd8a6de4 | ||
|
|
ae7fe6e3e1 | ||
|
|
3bb787d746 | ||
|
|
82ff5f587e | ||
|
|
38cb85d9c4 | ||
|
|
296bcbf56f | ||
|
|
6f096b04fe | ||
|
|
3c889430ed | ||
|
|
bb664636f6 | ||
|
|
5acca4975c | ||
|
|
7f07395ab1 | ||
|
|
dcd979e00c | ||
|
|
e7c7b6384a | ||
|
|
492be65aec | ||
|
|
b5b59342bd | ||
|
|
30fed5b1bc | ||
|
|
dd30ad5fa3 | ||
|
|
5b67c8a426 | ||
|
|
709fb03305 | ||
|
|
c7a1334b29 | ||
|
|
9b2b794f9c | ||
|
|
9e9bff2315 | ||
|
|
dd2defebaf | ||
|
|
9d3250a82d | ||
|
|
d71c3efecd | ||
|
|
d366abe8e2 | ||
|
|
f76bb98d3d | ||
|
|
4bd360d31b | ||
|
|
27e095e1dd | ||
|
|
e98f6051e2 | ||
|
|
e4d0ac301d | ||
|
|
907be41752 | ||
|
|
af88ff3dd4 | ||
|
|
2c618f53ca | ||
|
|
16dbcac3a1 | ||
|
|
0ba9c9dff3 | ||
|
|
23573bfce9 | ||
|
|
9f1431b263 | ||
|
|
53beca39e8 | ||
|
|
2701308b45 | ||
|
|
f33c292c3e | ||
|
|
234b4e334e | ||
|
|
eada9f3ae8 | ||
|
|
fb8c44b753 | ||
|
|
4679d321a7 | ||
|
|
50345c631a | ||
|
|
2f61a2ffe2 | ||
|
|
e9240fb9b8 | ||
|
|
f77e7b626d | ||
|
|
f8b901ab0d | ||
|
|
25b811040c | ||
|
|
05d11bf66d | ||
|
|
c7aac080ac | ||
|
|
0ad0a665ed | ||
|
|
304f181bb2 | ||
|
|
ea50246c91 | ||
|
|
7aa1f18761 | ||
|
|
ab6f2dd24f | ||
|
|
815720b59e | ||
|
|
5597f7fc41 | ||
|
|
6450c3c6a4 | ||
|
|
70cb8198fd | ||
|
|
498723fd62 | ||
|
|
d4146e0d43 | ||
|
|
0ca0126420 | ||
|
|
5af772af2f | ||
|
|
241df52ae5 | ||
|
|
10db421c45 | ||
|
|
1f101c0bd3 | ||
|
|
202eb3fb2a | ||
|
|
e54ed7dc35 | ||
|
|
34da66600d | ||
|
|
5a889d8fc6 | ||
|
|
22e9c33a2a | ||
|
|
25a8df4902 |
8
.github/ISSUE_TEMPLATE/bug_report.yml
generated
vendored
8
.github/ISSUE_TEMPLATE/bug_report.yml
generated
vendored
@@ -67,6 +67,14 @@ body:
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: pve_version
|
||||
attributes:
|
||||
label: 📈 Which Proxmox version are you on?
|
||||
placeholder: "run pveversion in your PVE node console"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: issue_description
|
||||
attributes:
|
||||
|
||||
746
CHANGELOG.md
746
CHANGELOG.md
@@ -10,6 +10,752 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2025-09-06
|
||||
|
||||
## 2025-09-05
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Tududi: Pin version to 0.80 [@vhsdream](https://github.com/vhsdream) ([#7420](https://github.com/community-scripts/ProxmoxVE/pull/7420))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- AdventureLog: Update dependencies [@tremor021](https://github.com/tremor021) ([#7404](https://github.com/community-scripts/ProxmoxVE/pull/7404))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state [@BramSuurdje](https://github.com/BramSuurdje) ([#7405](https://github.com/community-scripts/ProxmoxVE/pull/7405))
|
||||
|
||||
## 2025-09-04
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix: Syntax error in Immich scripts [@henworth](https://github.com/henworth) ([#7398](https://github.com/community-scripts/ProxmoxVE/pull/7398))
|
||||
- Netdata: Fix pve_check for 8 [@MickLesk](https://github.com/MickLesk) ([#7392](https://github.com/community-scripts/ProxmoxVE/pull/7392))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Immich: pin compiled photo library revisions [@vhsdream](https://github.com/vhsdream) ([#7395](https://github.com/community-scripts/ProxmoxVE/pull/7395))
|
||||
|
||||
## 2025-09-03
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Element-Synapse: Increase HDD size [@tremor021](https://github.com/tremor021) ([#7384](https://github.com/community-scripts/ProxmoxVE/pull/7384))
|
||||
- Wizarr: fix uv lock issue; use correct output suppression [@vhsdream](https://github.com/vhsdream) ([#7378](https://github.com/community-scripts/ProxmoxVE/pull/7378))
|
||||
- Netbox: Fix missing directory [@tremor021](https://github.com/tremor021) ([#7374](https://github.com/community-scripts/ProxmoxVE/pull/7374))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Enhanced IP-Tag installation script with interactive configuration, improved VM IP detection, and better visual indicators [@DesertGamer](https://github.com/DesertGamer) ([#7366](https://github.com/community-scripts/ProxmoxVE/pull/7366))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Fix navigation [@BramSuurdje](https://github.com/BramSuurdje) ([#7376](https://github.com/community-scripts/ProxmoxVE/pull/7376))
|
||||
|
||||
## 2025-09-02
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Increase default disk size for Apt-Cacher-NG [@MickLesk](https://github.com/MickLesk) ([#7352](https://github.com/community-scripts/ProxmoxVE/pull/7352))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Snipe-IT: Fix Nginx configuration [@tremor021](https://github.com/tremor021) ([#7358](https://github.com/community-scripts/ProxmoxVE/pull/7358))
|
||||
- booklore: remove folder before update [@MickLesk](https://github.com/MickLesk) ([#7351](https://github.com/community-scripts/ProxmoxVE/pull/7351))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Immich: bump version to 1.140.1 [@vhsdream](https://github.com/vhsdream) ([#7349](https://github.com/community-scripts/ProxmoxVE/pull/7349))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- pbs: increase note on website for ipv6 [@MickLesk](https://github.com/MickLesk) ([#7339](https://github.com/community-scripts/ProxmoxVE/pull/7339))
|
||||
|
||||
## 2025-09-01
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Update configarr.sh to mv backep up .env correctly [@finkerle](https://github.com/finkerle) ([#7323](https://github.com/community-scripts/ProxmoxVE/pull/7323))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Refactor + Feature Bump: HomeAssistant OS [@MickLesk](https://github.com/MickLesk) ([#7336](https://github.com/community-scripts/ProxmoxVE/pull/7336))
|
||||
- UmbrelOS: Refactor / use q35 / better import [@MickLesk](https://github.com/MickLesk) ([#7329](https://github.com/community-scripts/ProxmoxVE/pull/7329))
|
||||
- Harmonize GH Release Check (excl. Pre-Releases & Migrate old "_version.txt" [@MickLesk](https://github.com/MickLesk) ([#7328](https://github.com/community-scripts/ProxmoxVE/pull/7328))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- Bump next from 15.2.4 to 15.5.2 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#7309](https://github.com/community-scripts/ProxmoxVE/pull/7309))
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- booklore: add note for start-up in frontend [@MickLesk](https://github.com/MickLesk) ([#7331](https://github.com/community-scripts/ProxmoxVE/pull/7331))
|
||||
|
||||
## 2025-08-31
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- n8n: Increase disk size [@tremor021](https://github.com/tremor021) ([#7320](https://github.com/community-scripts/ProxmoxVE/pull/7320))
|
||||
|
||||
## 2025-08-30
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Immich: bump version to 1.140.0 [@vhsdream](https://github.com/vhsdream) ([#7275](https://github.com/community-scripts/ProxmoxVE/pull/7275))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor gitea-mirror env-file [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7240](https://github.com/community-scripts/ProxmoxVE/pull/7240))
|
||||
|
||||
## 2025-08-29
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- fix version check for pocket-id migration [@MickLesk](https://github.com/MickLesk) ([#7298](https://github.com/community-scripts/ProxmoxVE/pull/7298))
|
||||
- fix: remove file creation at release fetching and version checking logic [@MickLesk](https://github.com/MickLesk) ([#7299](https://github.com/community-scripts/ProxmoxVE/pull/7299))
|
||||
- Zitadel: Fix initial setup [@tremor021](https://github.com/tremor021) ([#7284](https://github.com/community-scripts/ProxmoxVE/pull/7284))
|
||||
- post-pbs: increase enterprise recognition [@MickLesk](https://github.com/MickLesk) ([#7280](https://github.com/community-scripts/ProxmoxVE/pull/7280))
|
||||
- Fix typo where install mode was changed instead of pinned version [@Brandsma](https://github.com/Brandsma) ([#7277](https://github.com/community-scripts/ProxmoxVE/pull/7277))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- [core]: feature - check_for_gh_release - version pinning [@MickLesk](https://github.com/MickLesk) ([#7279](https://github.com/community-scripts/ProxmoxVE/pull/7279))
|
||||
- [feat]: migrate all update_scripts to new version helper (gh) [@MickLesk](https://github.com/MickLesk) ([#7262](https://github.com/community-scripts/ProxmoxVE/pull/7262))
|
||||
|
||||
## 2025-08-28
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- MediaManager ([#7238](https://github.com/community-scripts/ProxmoxVE/pull/7238))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- MMDL: add build-essential as dep [@vhsdream](https://github.com/vhsdream) ([#7266](https://github.com/community-scripts/ProxmoxVE/pull/7266))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- add support for multiple ip addresses in monitor-all.sh [@moshekv](https://github.com/moshekv) ([#7244](https://github.com/community-scripts/ProxmoxVE/pull/7244))
|
||||
- [core]: feature - check_for_gh_release as update-handler [@MickLesk](https://github.com/MickLesk) ([#7254](https://github.com/community-scripts/ProxmoxVE/pull/7254))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Flaresolverr: Pin to 3.3.25 (Python Issue) [@MickLesk](https://github.com/MickLesk) ([#7248](https://github.com/community-scripts/ProxmoxVE/pull/7248))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- Keycloak: Update website [@tremor021](https://github.com/tremor021) ([#7256](https://github.com/community-scripts/ProxmoxVE/pull/7256))
|
||||
|
||||
## 2025-08-27
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- searxng: improve installation [@MickLesk](https://github.com/MickLesk) ([#7233](https://github.com/community-scripts/ProxmoxVE/pull/7233))
|
||||
- Homebox: Fix Update Script [@MickLesk](https://github.com/MickLesk) ([#7232](https://github.com/community-scripts/ProxmoxVE/pull/7232))
|
||||
|
||||
## 2025-08-26
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- tracktor ([#7190](https://github.com/community-scripts/ProxmoxVE/pull/7190))
|
||||
- PBS: Upgrade Script for v4 [@MickLesk](https://github.com/MickLesk) ([#7214](https://github.com/community-scripts/ProxmoxVE/pull/7214))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Refactor: Post-PBS-Script [@MickLesk](https://github.com/MickLesk) ([#7213](https://github.com/community-scripts/ProxmoxVE/pull/7213))
|
||||
- Refactor: Post-PMG-Script [@MickLesk](https://github.com/MickLesk) ([#7212](https://github.com/community-scripts/ProxmoxVE/pull/7212))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- [website] Update documentation URLs [@tremor021](https://github.com/tremor021) ([#7201](https://github.com/community-scripts/ProxmoxVE/pull/7201))
|
||||
|
||||
## 2025-08-25
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Alpine-RustDesk Server [@tremor021](https://github.com/tremor021) ([#7191](https://github.com/community-scripts/ProxmoxVE/pull/7191))
|
||||
- Alpine-Redlib ([#7178](https://github.com/community-scripts/ProxmoxVE/pull/7178))
|
||||
- healthchecks ([#7177](https://github.com/community-scripts/ProxmoxVE/pull/7177))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- FileBrowser Quantum: safer update (tmp download + atomic replace + arch autodetect) [@CommanderPaladin](https://github.com/CommanderPaladin) ([#7174](https://github.com/community-scripts/ProxmoxVE/pull/7174))
|
||||
- Immich: bump to v1.139.4 [@vhsdream](https://github.com/vhsdream) ([#7138](https://github.com/community-scripts/ProxmoxVE/pull/7138))
|
||||
- Komodo: Fix compose.env path [@tremor021](https://github.com/tremor021) ([#7202](https://github.com/community-scripts/ProxmoxVE/pull/7202))
|
||||
- Komodo: Fix update procedure and missing env var [@tremor021](https://github.com/tremor021) ([#7198](https://github.com/community-scripts/ProxmoxVE/pull/7198))
|
||||
- SnipeIT: Update nginx config to v8.3 [@tremor021](https://github.com/tremor021) ([#7171](https://github.com/community-scripts/ProxmoxVE/pull/7171))
|
||||
- Lidarr: Fix RELEASE variable fetching [@tremor021](https://github.com/tremor021) ([#7162](https://github.com/community-scripts/ProxmoxVE/pull/7162))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Komodo: Generate admin users password [@tremor021](https://github.com/tremor021) ([#7193](https://github.com/community-scripts/ProxmoxVE/pull/7193))
|
||||
- [core]: uv uses now "update-shell" command [@MickLesk](https://github.com/MickLesk) ([#7172](https://github.com/community-scripts/ProxmoxVE/pull/7172))
|
||||
- [core]: tools.func - better verbose for postgresql [@MickLesk](https://github.com/MickLesk) ([#7173](https://github.com/community-scripts/ProxmoxVE/pull/7173))
|
||||
- n8n: Force update to NodeJS v22 [@tremor021](https://github.com/tremor021) ([#7176](https://github.com/community-scripts/ProxmoxVE/pull/7176))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- 2FAuth: Fix website and docs URLs [@tremor021](https://github.com/tremor021) ([#7199](https://github.com/community-scripts/ProxmoxVE/pull/7199))
|
||||
|
||||
## 2025-08-24
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Kasm: Fix install log parsing [@tremor021](https://github.com/tremor021) ([#7140](https://github.com/community-scripts/ProxmoxVE/pull/7140))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- BookLore: Fix Nginx config [@tremor021](https://github.com/tremor021) ([#7155](https://github.com/community-scripts/ProxmoxVE/pull/7155))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Syncthing: Switch to v2 stable repository [@tremor021](https://github.com/tremor021) ([#7150](https://github.com/community-scripts/ProxmoxVE/pull/7150))
|
||||
|
||||
## 2025-08-23
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- qBittorrent: Fix file names [@tremor021](https://github.com/tremor021) ([#7136](https://github.com/community-scripts/ProxmoxVE/pull/7136))
|
||||
- Tandoor: Fix env path [@tremor021](https://github.com/tremor021) ([#7130](https://github.com/community-scripts/ProxmoxVE/pull/7130))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Immich: v1.139.2 [@vhsdream](https://github.com/vhsdream) ([#7116](https://github.com/community-scripts/ProxmoxVE/pull/7116))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Pf2eTools [@tremor021](https://github.com/tremor021) ([#7096](https://github.com/community-scripts/ProxmoxVE/pull/7096))
|
||||
- Refactor: Prowlarr [@tremor021](https://github.com/tremor021) ([#7091](https://github.com/community-scripts/ProxmoxVE/pull/7091))
|
||||
- Refactor: Radarr [@tremor021](https://github.com/tremor021) ([#7088](https://github.com/community-scripts/ProxmoxVE/pull/7088))
|
||||
- Refactor: Snipe-IT [@tremor021](https://github.com/tremor021) ([#7081](https://github.com/community-scripts/ProxmoxVE/pull/7081))
|
||||
|
||||
## 2025-08-22
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Refactor: Prometheus [@tremor021](https://github.com/tremor021) ([#7093](https://github.com/community-scripts/ProxmoxVE/pull/7093))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- paperless: nltk fix [@MickLesk](https://github.com/MickLesk) ([#7098](https://github.com/community-scripts/ProxmoxVE/pull/7098))
|
||||
- Tududi Fix: use correct tag parsing for release during update check [@vhsdream](https://github.com/vhsdream) ([#7072](https://github.com/community-scripts/ProxmoxVE/pull/7072))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: phpIPAM [@tremor021](https://github.com/tremor021) ([#7095](https://github.com/community-scripts/ProxmoxVE/pull/7095))
|
||||
- Refactor: Prometheus Paperless NGX Exporter [@tremor021](https://github.com/tremor021) ([#7092](https://github.com/community-scripts/ProxmoxVE/pull/7092))
|
||||
- Refactor: PS5-MQTT [@tremor021](https://github.com/tremor021) ([#7090](https://github.com/community-scripts/ProxmoxVE/pull/7090))
|
||||
- Refactor: qBittorrent [@tremor021](https://github.com/tremor021) ([#7089](https://github.com/community-scripts/ProxmoxVE/pull/7089))
|
||||
- Refactor: RDTClient [@tremor021](https://github.com/tremor021) ([#7086](https://github.com/community-scripts/ProxmoxVE/pull/7086))
|
||||
- Refactor: Recyclarr [@tremor021](https://github.com/tremor021) ([#7085](https://github.com/community-scripts/ProxmoxVE/pull/7085))
|
||||
- Refactor: RevealJS [@tremor021](https://github.com/tremor021) ([#7084](https://github.com/community-scripts/ProxmoxVE/pull/7084))
|
||||
- Refactor: Rclone [@tremor021](https://github.com/tremor021) ([#7087](https://github.com/community-scripts/ProxmoxVE/pull/7087))
|
||||
- Refactor: Semaphore [@tremor021](https://github.com/tremor021) ([#7083](https://github.com/community-scripts/ProxmoxVE/pull/7083))
|
||||
- Refactor: Silverbullet [@tremor021](https://github.com/tremor021) ([#7082](https://github.com/community-scripts/ProxmoxVE/pull/7082))
|
||||
- Refactor: Plant-it [@tremor021](https://github.com/tremor021) ([#7094](https://github.com/community-scripts/ProxmoxVE/pull/7094))
|
||||
- Refactor: TasmoAdmin [@tremor021](https://github.com/tremor021) ([#7080](https://github.com/community-scripts/ProxmoxVE/pull/7080))
|
||||
|
||||
## 2025-08-21
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- LiteLLM ([#7052](https://github.com/community-scripts/ProxmoxVE/pull/7052))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- tianji: add uv deps [@MickLesk](https://github.com/MickLesk) ([#7066](https://github.com/community-scripts/ProxmoxVE/pull/7066))
|
||||
- Zitadel: installer for v4 [@MickLesk](https://github.com/MickLesk) ([#7058](https://github.com/community-scripts/ProxmoxVE/pull/7058))
|
||||
- Paperless-NGX: create direction for nltk [@MickLesk](https://github.com/MickLesk) ([#7064](https://github.com/community-scripts/ProxmoxVE/pull/7064))
|
||||
- Immich: hotfix - revert 7035 [@vhsdream](https://github.com/vhsdream) ([#7054](https://github.com/community-scripts/ProxmoxVE/pull/7054))
|
||||
- duplicati: fix release pattern [@MickLesk](https://github.com/MickLesk) ([#7049](https://github.com/community-scripts/ProxmoxVE/pull/7049))
|
||||
- technitiumdns: fix unbound variable [@MickLesk](https://github.com/MickLesk) ([#7047](https://github.com/community-scripts/ProxmoxVE/pull/7047))
|
||||
- [core]: improve binary globbing for gh releases [@MickLesk](https://github.com/MickLesk) ([#7044](https://github.com/community-scripts/ProxmoxVE/pull/7044))
|
||||
|
||||
## 2025-08-20
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Post-Install, change pve-test for trixie [@MickLesk](https://github.com/MickLesk) ([#7031](https://github.com/community-scripts/ProxmoxVE/pull/7031))
|
||||
- Immich: fix small issue with immich-admin "start" script [@vhsdream](https://github.com/vhsdream) ([#7035](https://github.com/community-scripts/ProxmoxVE/pull/7035))
|
||||
- WasteBin: Small fixes [@tremor021](https://github.com/tremor021) ([#7018](https://github.com/community-scripts/ProxmoxVE/pull/7018))
|
||||
- Komga: Fix update [@tremor021](https://github.com/tremor021) ([#7027](https://github.com/community-scripts/ProxmoxVE/pull/7027))
|
||||
- Barcode Buddy: Fix missing dependency [@tremor021](https://github.com/tremor021) ([#7020](https://github.com/community-scripts/ProxmoxVE/pull/7020))
|
||||
- PBS: ifupdown2 reload [@MickLesk](https://github.com/MickLesk) ([#7013](https://github.com/community-scripts/ProxmoxVE/pull/7013))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Feature: Netdata support PVE9 (Debian 13 Trixie) [@MickLesk](https://github.com/MickLesk) ([#7012](https://github.com/community-scripts/ProxmoxVE/pull/7012))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: RustDesk Server [@tremor021](https://github.com/tremor021) ([#7008](https://github.com/community-scripts/ProxmoxVE/pull/7008))
|
||||
- ghost: fix: verbose [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7023](https://github.com/community-scripts/ProxmoxVE/pull/7023))
|
||||
- Refactor: Paperless-ngx [@MickLesk](https://github.com/MickLesk) ([#6938](https://github.com/community-scripts/ProxmoxVE/pull/6938))
|
||||
|
||||
## 2025-08-19
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Debian 13 VM [@MickLesk](https://github.com/MickLesk) ([#6970](https://github.com/community-scripts/ProxmoxVE/pull/6970))
|
||||
- Swizzin ([#6962](https://github.com/community-scripts/ProxmoxVE/pull/6962))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- [core]: create_lxc - fix offline issue with alpine packages [@MickLesk](https://github.com/MickLesk) ([#6994](https://github.com/community-scripts/ProxmoxVE/pull/6994))
|
||||
- OpenObserve: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6961](https://github.com/community-scripts/ProxmoxVE/pull/6961))
|
||||
- Update hev-socks5-server-install.sh [@iAzamat2](https://github.com/iAzamat2) ([#6953](https://github.com/community-scripts/ProxmoxVE/pull/6953))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Refactor: Glances (+ Feature Bump) [@MickLesk](https://github.com/MickLesk) ([#6976](https://github.com/community-scripts/ProxmoxVE/pull/6976))
|
||||
- [core]: add new features to create_lxc [@MickLesk](https://github.com/MickLesk) ([#6979](https://github.com/community-scripts/ProxmoxVE/pull/6979))
|
||||
- [core]: extend setup_uv to work with alpine [@MickLesk](https://github.com/MickLesk) ([#6978](https://github.com/community-scripts/ProxmoxVE/pull/6978))
|
||||
- Immich: Bump version to 1.138.1 [@vhsdream](https://github.com/vhsdream) ([#6984](https://github.com/community-scripts/ProxmoxVE/pull/6984))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Tdarr [@MickLesk](https://github.com/MickLesk) ([#6969](https://github.com/community-scripts/ProxmoxVE/pull/6969))
|
||||
- Refactor: The Lounge [@tremor021](https://github.com/tremor021) ([#6958](https://github.com/community-scripts/ProxmoxVE/pull/6958))
|
||||
- Refactor: TeddyCloud [@tremor021](https://github.com/tremor021) ([#6963](https://github.com/community-scripts/ProxmoxVE/pull/6963))
|
||||
- Refactor: Technitium DNS [@tremor021](https://github.com/tremor021) ([#6968](https://github.com/community-scripts/ProxmoxVE/pull/6968))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- [web]: update logos from reactive-resume & slskd [@MickLesk](https://github.com/MickLesk) ([#6990](https://github.com/community-scripts/ProxmoxVE/pull/6990))
|
||||
|
||||
## 2025-08-18
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- CopyParty [@MickLesk](https://github.com/MickLesk) ([#6929](https://github.com/community-scripts/ProxmoxVE/pull/6929))
|
||||
- Twingate-Connector ([#6921](https://github.com/community-scripts/ProxmoxVE/pull/6921))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Keycloak: fix update function [@MickLesk](https://github.com/MickLesk) ([#6943](https://github.com/community-scripts/ProxmoxVE/pull/6943))
|
||||
- Immich: add message to indicate image-processing library update check [@vhsdream](https://github.com/vhsdream) ([#6935](https://github.com/community-scripts/ProxmoxVE/pull/6935))
|
||||
- fix(uptimekuma): unbound env variable [@vidonnus](https://github.com/vidonnus) ([#6922](https://github.com/community-scripts/ProxmoxVE/pull/6922))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Traefik [@tremor021](https://github.com/tremor021) ([#6940](https://github.com/community-scripts/ProxmoxVE/pull/6940))
|
||||
- Refactor: Traccar [@tremor021](https://github.com/tremor021) ([#6942](https://github.com/community-scripts/ProxmoxVE/pull/6942))
|
||||
- Refactor: Umami [@tremor021](https://github.com/tremor021) ([#6939](https://github.com/community-scripts/ProxmoxVE/pull/6939))
|
||||
- Refactor: GoMFT [@tremor021](https://github.com/tremor021) ([#6916](https://github.com/community-scripts/ProxmoxVE/pull/6916))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- OpenWRT: add info for VLAN-aware in frontend [@MickLesk](https://github.com/MickLesk) ([#6944](https://github.com/community-scripts/ProxmoxVE/pull/6944))
|
||||
|
||||
## 2025-08-17
|
||||
|
||||
## 2025-08-16
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Wireguard: Fix WGDashboard not updating [@tremor021](https://github.com/tremor021) ([#6898](https://github.com/community-scripts/ProxmoxVE/pull/6898))
|
||||
- Tandoor Images Fix [@WarLord185](https://github.com/WarLord185) ([#6892](https://github.com/community-scripts/ProxmoxVE/pull/6892))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Uptime Kuma [@tremor021](https://github.com/tremor021) ([#6902](https://github.com/community-scripts/ProxmoxVE/pull/6902))
|
||||
- Refactor: Wallos [@tremor021](https://github.com/tremor021) ([#6900](https://github.com/community-scripts/ProxmoxVE/pull/6900))
|
||||
|
||||
## 2025-08-15
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: pin Vectorchord release; adjust extension update commands [@vhsdream](https://github.com/vhsdream) ([#6878](https://github.com/community-scripts/ProxmoxVE/pull/6878))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Bump Immich to v1.138.0 [@vhsdream](https://github.com/vhsdream) ([#6813](https://github.com/community-scripts/ProxmoxVE/pull/6813))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Wavelog [@tremor021](https://github.com/tremor021) ([#6869](https://github.com/community-scripts/ProxmoxVE/pull/6869))
|
||||
- Refactor: WatchYourLAN [@tremor021](https://github.com/tremor021) ([#6871](https://github.com/community-scripts/ProxmoxVE/pull/6871))
|
||||
- Refactor: Watcharr [@tremor021](https://github.com/tremor021) ([#6872](https://github.com/community-scripts/ProxmoxVE/pull/6872))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- #### 📝 Script Information
|
||||
|
||||
- Add missing default user & pass for RabbitMQ [@hbenyoussef](https://github.com/hbenyoussef) ([#6883](https://github.com/community-scripts/ProxmoxVE/pull/6883))
|
||||
|
||||
## 2025-08-14
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Bugfix Searxng Redis replaced with Valkey in installscript [@elvito](https://github.com/elvito) ([#6831](https://github.com/community-scripts/ProxmoxVE/pull/6831))
|
||||
- Spoolman: Use environment variables to control host and port [@tremor021](https://github.com/tremor021) ([#6825](https://github.com/community-scripts/ProxmoxVE/pull/6825))
|
||||
- Pulse: v4.3.2+ [@vhsdream](https://github.com/vhsdream) ([#6859](https://github.com/community-scripts/ProxmoxVE/pull/6859))
|
||||
- rustdeskserver: fix API version file [@steadfasterX](https://github.com/steadfasterX) ([#6847](https://github.com/community-scripts/ProxmoxVE/pull/6847))
|
||||
- Immich: quickfix #6836 [@vhsdream](https://github.com/vhsdream) ([#6848](https://github.com/community-scripts/ProxmoxVE/pull/6848))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: WikiJS [@tremor021](https://github.com/tremor021) ([#6840](https://github.com/community-scripts/ProxmoxVE/pull/6840))
|
||||
- Refactor: Zoraxy [@tremor021](https://github.com/tremor021) ([#6823](https://github.com/community-scripts/ProxmoxVE/pull/6823))
|
||||
- Refactor: Zitadel [@tremor021](https://github.com/tremor021) ([#6826](https://github.com/community-scripts/ProxmoxVE/pull/6826))
|
||||
- Refactor: WordPress [@tremor021](https://github.com/tremor021) ([#6837](https://github.com/community-scripts/ProxmoxVE/pull/6837))
|
||||
- Refactor: WireGuard [@tremor021](https://github.com/tremor021) ([#6839](https://github.com/community-scripts/ProxmoxVE/pull/6839))
|
||||
- Refactor: yt-dlp-webui [@tremor021](https://github.com/tremor021) ([#6832](https://github.com/community-scripts/ProxmoxVE/pull/6832))
|
||||
- Refactor: Zipline [@tremor021](https://github.com/tremor021) ([#6829](https://github.com/community-scripts/ProxmoxVE/pull/6829))
|
||||
- Refactor: Zot-Registry [@tremor021](https://github.com/tremor021) ([#6822](https://github.com/community-scripts/ProxmoxVE/pull/6822))
|
||||
- Refactor: Zwave-JS-UI [@tremor021](https://github.com/tremor021) ([#6820](https://github.com/community-scripts/ProxmoxVE/pull/6820))
|
||||
|
||||
### 🧰 Maintenance
|
||||
|
||||
- #### 📂 Github
|
||||
|
||||
- ProxmoxVE svg logo [@LuisPalacios](https://github.com/LuisPalacios) ([#6846](https://github.com/community-scripts/ProxmoxVE/pull/6846))
|
||||
|
||||
## 2025-08-13
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- emby: fix update output [@MickLesk](https://github.com/MickLesk) ([#6791](https://github.com/community-scripts/ProxmoxVE/pull/6791))
|
||||
- archivebox: fix wrong formatted uv command [@MickLesk](https://github.com/MickLesk) ([#6794](https://github.com/community-scripts/ProxmoxVE/pull/6794))
|
||||
- Outline: Fixes for install and update procedures [@tremor021](https://github.com/tremor021) ([#6806](https://github.com/community-scripts/ProxmoxVE/pull/6806))
|
||||
- Palmr: fix release version parsing // increase RAM [@vhsdream](https://github.com/vhsdream) ([#6800](https://github.com/community-scripts/ProxmoxVE/pull/6800))
|
||||
- myspeed: fix update process if no data exist [@MickLesk](https://github.com/MickLesk) ([#6795](https://github.com/community-scripts/ProxmoxVE/pull/6795))
|
||||
- crafty-controller: fix update output [@MickLesk](https://github.com/MickLesk) ([#6793](https://github.com/community-scripts/ProxmoxVE/pull/6793))
|
||||
- GLPI: Fix timezone command [@tremor021](https://github.com/tremor021) ([#6783](https://github.com/community-scripts/ProxmoxVE/pull/6783))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Docker LXC: Add Portainer info [@tremor021](https://github.com/tremor021) ([#6803](https://github.com/community-scripts/ProxmoxVE/pull/6803))
|
||||
- AgentDVR: Added update function [@tremor021](https://github.com/tremor021) ([#6804](https://github.com/community-scripts/ProxmoxVE/pull/6804))
|
||||
|
||||
## 2025-08-12
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Pulse: binary path changed AGAIN; other fixes [@vhsdream](https://github.com/vhsdream) ([#6770](https://github.com/community-scripts/ProxmoxVE/pull/6770))
|
||||
- fix alpine syncthing config not being created [@GamerHun1238](https://github.com/GamerHun1238) ([#6773](https://github.com/community-scripts/ProxmoxVE/pull/6773))
|
||||
- change owner of hortusfox directory [@snow2k9](https://github.com/snow2k9) ([#6763](https://github.com/community-scripts/ProxmoxVE/pull/6763))
|
||||
|
||||
## 2025-08-11
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Reactive Resume: use new release parsing; other fixes [@vhsdream](https://github.com/vhsdream) ([#6744](https://github.com/community-scripts/ProxmoxVE/pull/6744))
|
||||
|
||||
## 2025-08-10
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Fix/thinpool detection as it allows to delete active thinpool with different name than "data" [@onethree7](https://github.com/onethree7) ([#6730](https://github.com/community-scripts/ProxmoxVE/pull/6730))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Pulse: fix binary path [@vhsdream](https://github.com/vhsdream) ([#6740](https://github.com/community-scripts/ProxmoxVE/pull/6740))
|
||||
- Karakeep: chromium fix [@vhsdream](https://github.com/vhsdream) ([#6729](https://github.com/community-scripts/ProxmoxVE/pull/6729))
|
||||
|
||||
## 2025-08-09
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Paperless-AI: increase HDD Space to 20G [@MickLesk](https://github.com/MickLesk) ([#6716](https://github.com/community-scripts/ProxmoxVE/pull/6716))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- vaultwarden: increase disk space [@CrazyWolf13](https://github.com/CrazyWolf13) ([#6712](https://github.com/community-scripts/ProxmoxVE/pull/6712))
|
||||
- Fix: Bazarr requirements.txt file not parse-able by UV [@Xerovoxx98](https://github.com/Xerovoxx98) ([#6701](https://github.com/community-scripts/ProxmoxVE/pull/6701))
|
||||
- Improve backup of adventurelog folder [@ThomasDetemmerman](https://github.com/ThomasDetemmerman) ([#6653](https://github.com/community-scripts/ProxmoxVE/pull/6653))
|
||||
- HomeBox: Fixes for update procedure [@tremor021](https://github.com/tremor021) ([#6702](https://github.com/community-scripts/ProxmoxVE/pull/6702))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Tianji [@MickLesk](https://github.com/MickLesk) ([#6662](https://github.com/community-scripts/ProxmoxVE/pull/6662))
|
||||
|
||||
## 2025-08-08
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Palmr ([#6642](https://github.com/community-scripts/ProxmoxVE/pull/6642))
|
||||
- HortusFox ([#6641](https://github.com/community-scripts/ProxmoxVE/pull/6641))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Unifi: Update libssl dependency [@tremor021](https://github.com/tremor021) ([#6680](https://github.com/community-scripts/ProxmoxVE/pull/6680))
|
||||
- HomeBox: Fix checking for existing install [@tremor021](https://github.com/tremor021) ([#6677](https://github.com/community-scripts/ProxmoxVE/pull/6677))
|
||||
- Immich: unpin libvips revision [@vhsdream](https://github.com/vhsdream) ([#6669](https://github.com/community-scripts/ProxmoxVE/pull/6669))
|
||||
- Meilisearch: fix wrong path switch [@MickLesk](https://github.com/MickLesk) ([#6668](https://github.com/community-scripts/ProxmoxVE/pull/6668))
|
||||
- MariaDB: fix "feedback" (statistical informations) whiptail [@MickLesk](https://github.com/MickLesk) ([#6657](https://github.com/community-scripts/ProxmoxVE/pull/6657))
|
||||
- Karakeep: workaround/fix for #6593 [@vhsdream](https://github.com/vhsdream) ([#6648](https://github.com/community-scripts/ProxmoxVE/pull/6648))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Feature: FSTrim (Filesystem Trim) - Log / LVM Check / ZFS [@MickLesk](https://github.com/MickLesk) ([#6660](https://github.com/community-scripts/ProxmoxVE/pull/6660))
|
||||
- IP Tag: Allow installation on PVE 9.x [@webhdx](https://github.com/webhdx) ([#6679](https://github.com/community-scripts/ProxmoxVE/pull/6679))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Alpine IT-Tools [@tremor021](https://github.com/tremor021) ([#6579](https://github.com/community-scripts/ProxmoxVE/pull/6579))
|
||||
- Refactor: ArchiveBox [@MickLesk](https://github.com/MickLesk) ([#6670](https://github.com/community-scripts/ProxmoxVE/pull/6670))
|
||||
- Refactor: Bazarr [@MickLesk](https://github.com/MickLesk) ([#6663](https://github.com/community-scripts/ProxmoxVE/pull/6663))
|
||||
- Refactor: Kometa [@MickLesk](https://github.com/MickLesk) ([#6673](https://github.com/community-scripts/ProxmoxVE/pull/6673))
|
||||
|
||||
## 2025-08-07
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Commafeed: Fix Backup Handling while Update [@MickLesk](https://github.com/MickLesk) ([#6629](https://github.com/community-scripts/ProxmoxVE/pull/6629))
|
||||
- VictoriaMetrics: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6632](https://github.com/community-scripts/ProxmoxVE/pull/6632))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Feature: Post-PVE-Script (PVE9 Support + some Features) [@MickLesk](https://github.com/MickLesk) ([#6626](https://github.com/community-scripts/ProxmoxVE/pull/6626))
|
||||
- Feature: Clean-LXC now supports Alpine based containers [@MickLesk](https://github.com/MickLesk) ([#6628](https://github.com/community-scripts/ProxmoxVE/pull/6628))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Tandoor v2 [@MickLesk](https://github.com/MickLesk) ([#6635](https://github.com/community-scripts/ProxmoxVE/pull/6635))
|
||||
- Refactor: Paymenter [@tremor021](https://github.com/tremor021) ([#6589](https://github.com/community-scripts/ProxmoxVE/pull/6589))
|
||||
|
||||
## 2025-08-06
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- [core] better y/N handling for ressource check [@MickLesk](https://github.com/MickLesk) ([#6608](https://github.com/community-scripts/ProxmoxVE/pull/6608))
|
||||
- fix: update Pulse scripts for v4 Go rewrite support [@rcourtman](https://github.com/rcourtman) ([#6574](https://github.com/community-scripts/ProxmoxVE/pull/6574))
|
||||
- OpenProject: Fix missing apt update [@tremor021](https://github.com/tremor021) ([#6598](https://github.com/community-scripts/ProxmoxVE/pull/6598))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- PVE9: Remove Beta Whiptail / add correct version check [@MickLesk](https://github.com/MickLesk) ([#6599](https://github.com/community-scripts/ProxmoxVE/pull/6599))
|
||||
|
||||
## 2025-08-05
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- NIC offloading: e1000 support [@rcastley](https://github.com/rcastley) ([#6575](https://github.com/community-scripts/ProxmoxVE/pull/6575))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Temporary Remove: SearXNG [@MickLesk](https://github.com/MickLesk) ([#6578](https://github.com/community-scripts/ProxmoxVE/pull/6578))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Prometheus Alertmanager [@tremor021](https://github.com/tremor021) ([#6577](https://github.com/community-scripts/ProxmoxVE/pull/6577))
|
||||
|
||||
## 2025-08-04
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Tududi ([#6534](https://github.com/community-scripts/ProxmoxVE/pull/6534))
|
||||
- ots ([#6532](https://github.com/community-scripts/ProxmoxVE/pull/6532))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- MySpeed: fix update and copy old tests back [@MickLesk](https://github.com/MickLesk) ([#6550](https://github.com/community-scripts/ProxmoxVE/pull/6550))
|
||||
- Composer: PATH Issues when updating [@MickLesk](https://github.com/MickLesk) ([#6543](https://github.com/community-scripts/ProxmoxVE/pull/6543))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Feat: enable tun for VPN services (wireguard) [@MickLesk](https://github.com/MickLesk) ([#6562](https://github.com/community-scripts/ProxmoxVE/pull/6562))
|
||||
- turnkey: add hostname & Fix TUN access [@masterofrpm](https://github.com/masterofrpm) ([#6512](https://github.com/community-scripts/ProxmoxVE/pull/6512))
|
||||
- Increase: Core Network check (pre-LXC Creation) [@MickLesk](https://github.com/MickLesk) ([#6546](https://github.com/community-scripts/ProxmoxVE/pull/6546))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: PrivateBin [@tremor021](https://github.com/tremor021) ([#6559](https://github.com/community-scripts/ProxmoxVE/pull/6559))
|
||||
- Refactor: PocketID [@tremor021](https://github.com/tremor021) ([#6556](https://github.com/community-scripts/ProxmoxVE/pull/6556))
|
||||
- Refactor: Pocketbase [@tremor021](https://github.com/tremor021) ([#6554](https://github.com/community-scripts/ProxmoxVE/pull/6554))
|
||||
- Refactor: NocoDB [@tremor021](https://github.com/tremor021) ([#6548](https://github.com/community-scripts/ProxmoxVE/pull/6548))
|
||||
- Refactor: PairDrop [@tremor021](https://github.com/tremor021) ([#6528](https://github.com/community-scripts/ProxmoxVE/pull/6528))
|
||||
|
||||
## 2025-08-03
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- docmost: remove build step due new version [@MickLesk](https://github.com/MickLesk) ([#6513](https://github.com/community-scripts/ProxmoxVE/pull/6513))
|
||||
- Fix: Komga uses .komga as storage / so it fails after install [@MickLesk](https://github.com/MickLesk) ([#6517](https://github.com/community-scripts/ProxmoxVE/pull/6517))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Remove: Ubuntu 24.10-VM [@MickLesk](https://github.com/MickLesk) ([#6515](https://github.com/community-scripts/ProxmoxVE/pull/6515))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: openHAB [@tremor021](https://github.com/tremor021) ([#6524](https://github.com/community-scripts/ProxmoxVE/pull/6524))
|
||||
- Refactor: OpenProject [@tremor021](https://github.com/tremor021) ([#6525](https://github.com/community-scripts/ProxmoxVE/pull/6525))
|
||||
|
||||
## 2025-08-02
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Alternative connectivity checks for LXC [@mariano-dagostino](https://github.com/mariano-dagostino) ([#6472](https://github.com/community-scripts/ProxmoxVE/pull/6472))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Immich: fix copy error during install [@vhsdream](https://github.com/vhsdream) ([#6497](https://github.com/community-scripts/ProxmoxVE/pull/6497))
|
||||
- MagicMirror: Fix install process [@tremor021](https://github.com/tremor021) ([#6492](https://github.com/community-scripts/ProxmoxVE/pull/6492))
|
||||
- chore: BookLore repo change [@vhsdream](https://github.com/vhsdream) ([#6493](https://github.com/community-scripts/ProxmoxVE/pull/6493))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- VictoriaMetrics: Make VictoriaLogs optional add-on [@tremor021](https://github.com/tremor021) ([#6489](https://github.com/community-scripts/ProxmoxVE/pull/6489))
|
||||
|
||||
## 2025-08-01
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Fumadocs: add git as dependency [@MickLesk](https://github.com/MickLesk) ([#6459](https://github.com/community-scripts/ProxmoxVE/pull/6459))
|
||||
- Immich: Fix immich-admin script; other fixes | pin to v.137.3 [@vhsdream](https://github.com/vhsdream) ([#6443](https://github.com/community-scripts/ProxmoxVE/pull/6443))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- Re-Add: Suwayomi-Server [@MickLesk](https://github.com/MickLesk) ([#6458](https://github.com/community-scripts/ProxmoxVE/pull/6458))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Update homepage.sh to use setup_nodejs [@burgerga](https://github.com/burgerga) ([#6462](https://github.com/community-scripts/ProxmoxVE/pull/6462))
|
||||
- Refactor: Owncast [@tremor021](https://github.com/tremor021) ([#6434](https://github.com/community-scripts/ProxmoxVE/pull/6434))
|
||||
- Refactor: MediaMTX [@tremor021](https://github.com/tremor021) ([#6406](https://github.com/community-scripts/ProxmoxVE/pull/6406))
|
||||
- Refactor: LubeLogger [@tremor021](https://github.com/tremor021) ([#6400](https://github.com/community-scripts/ProxmoxVE/pull/6400))
|
||||
- Refactor: MagicMirror [@tremor021](https://github.com/tremor021) ([#6402](https://github.com/community-scripts/ProxmoxVE/pull/6402))
|
||||
- Refactor: Manage My Damn Life [@tremor021](https://github.com/tremor021) ([#6403](https://github.com/community-scripts/ProxmoxVE/pull/6403))
|
||||
- Refactor: Meilisearch [@tremor021](https://github.com/tremor021) ([#6407](https://github.com/community-scripts/ProxmoxVE/pull/6407))
|
||||
- Refactor: NodeBB [@tremor021](https://github.com/tremor021) ([#6419](https://github.com/community-scripts/ProxmoxVE/pull/6419))
|
||||
- Refactor: oauth2-proxy [@tremor021](https://github.com/tremor021) ([#6421](https://github.com/community-scripts/ProxmoxVE/pull/6421))
|
||||
- Refactor: Outline [@tremor021](https://github.com/tremor021) ([#6424](https://github.com/community-scripts/ProxmoxVE/pull/6424))
|
||||
- Refactor: Overseerr [@tremor021](https://github.com/tremor021) ([#6425](https://github.com/community-scripts/ProxmoxVE/pull/6425))
|
||||
|
||||
## 2025-07-31
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- OpenObserve: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6409](https://github.com/community-scripts/ProxmoxVE/pull/6409))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Remove temp. Tandoor during Install & Update Issues [@MickLesk](https://github.com/MickLesk) ([#6438](https://github.com/community-scripts/ProxmoxVE/pull/6438))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: listmonk [@tremor021](https://github.com/tremor021) ([#6399](https://github.com/community-scripts/ProxmoxVE/pull/6399))
|
||||
- Refactor: Neo4j [@tremor021](https://github.com/tremor021) ([#6418](https://github.com/community-scripts/ProxmoxVE/pull/6418))
|
||||
- Refactor: Monica [@tremor021](https://github.com/tremor021) ([#6416](https://github.com/community-scripts/ProxmoxVE/pull/6416))
|
||||
- Refactor: Memos [@tremor021](https://github.com/tremor021) ([#6415](https://github.com/community-scripts/ProxmoxVE/pull/6415))
|
||||
- Refactor: Opengist [@tremor021](https://github.com/tremor021) ([#6423](https://github.com/community-scripts/ProxmoxVE/pull/6423))
|
||||
- Refactor: Ombi [@tremor021](https://github.com/tremor021) ([#6422](https://github.com/community-scripts/ProxmoxVE/pull/6422))
|
||||
- Refactor: MySpeed [@tremor021](https://github.com/tremor021) ([#6417](https://github.com/community-scripts/ProxmoxVE/pull/6417))
|
||||
|
||||
## 2025-07-30
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- Strip SD and NS prefixes before writing to config file [@mattv8](https://github.com/mattv8) ([#6356](https://github.com/community-scripts/ProxmoxVE/pull/6356))
|
||||
- [core] fix: expand $CACHER_IP in apt-proxy-detect.sh (revert quoted heredoc) [@MickLesk](https://github.com/MickLesk) ([#6385](https://github.com/community-scripts/ProxmoxVE/pull/6385))
|
||||
- PiAlert: bugfix dependencies [@leiweibau](https://github.com/leiweibau) ([#6396](https://github.com/community-scripts/ProxmoxVE/pull/6396))
|
||||
- Librespeed-Rust: Fix service name and RELEASE var fetching [@tremor021](https://github.com/tremor021) ([#6378](https://github.com/community-scripts/ProxmoxVE/pull/6378))
|
||||
- n8n: add build-essential as dependency [@MickLesk](https://github.com/MickLesk) ([#6392](https://github.com/community-scripts/ProxmoxVE/pull/6392))
|
||||
- Habitica: Fix trusted domains [@tremor021](https://github.com/tremor021) ([#6380](https://github.com/community-scripts/ProxmoxVE/pull/6380))
|
||||
- Mafl: Fix undeclared var [@tremor021](https://github.com/tremor021) ([#6371](https://github.com/community-scripts/ProxmoxVE/pull/6371))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Lidarr [@tremor021](https://github.com/tremor021) ([#6379](https://github.com/community-scripts/ProxmoxVE/pull/6379))
|
||||
- Refactor: Kubo [@tremor021](https://github.com/tremor021) ([#6376](https://github.com/community-scripts/ProxmoxVE/pull/6376))
|
||||
- Refactor: Komga [@tremor021](https://github.com/tremor021) ([#6374](https://github.com/community-scripts/ProxmoxVE/pull/6374))
|
||||
- Refactor: Koillection [@tremor021](https://github.com/tremor021) ([#6373](https://github.com/community-scripts/ProxmoxVE/pull/6373))
|
||||
- Refactor: Karakeep [@tremor021](https://github.com/tremor021) ([#6372](https://github.com/community-scripts/ProxmoxVE/pull/6372))
|
||||
|
||||
## 2025-07-29
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
- Jeedom ([#6336](https://github.com/community-scripts/ProxmoxVE/pull/6336))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- PiAlert: add new dependencies [@leiweibau](https://github.com/leiweibau) ([#6337](https://github.com/community-scripts/ProxmoxVE/pull/6337))
|
||||
- Element Synapse CT RAM increased from 1024 to 2048 [@tjcomserv](https://github.com/tjcomserv) ([#6330](https://github.com/community-scripts/ProxmoxVE/pull/6330))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: HomeBox [@tremor021](https://github.com/tremor021) ([#6338](https://github.com/community-scripts/ProxmoxVE/pull/6338))
|
||||
- Refactor: InspIRCd [@tremor021](https://github.com/tremor021) ([#6343](https://github.com/community-scripts/ProxmoxVE/pull/6343))
|
||||
- Refactor: Jackett [@tremor021](https://github.com/tremor021) ([#6344](https://github.com/community-scripts/ProxmoxVE/pull/6344))
|
||||
- Update keycloak script to support configuration of latest release (v26) [@remz1337](https://github.com/remz1337) ([#6322](https://github.com/community-scripts/ProxmoxVE/pull/6322))
|
||||
- Refactor: Photoprism [@MickLesk](https://github.com/MickLesk) ([#6335](https://github.com/community-scripts/ProxmoxVE/pull/6335))
|
||||
- Refactor: Autobrr [@tremor021](https://github.com/tremor021) ([#6302](https://github.com/community-scripts/ProxmoxVE/pull/6302))
|
||||
|
||||
## 2025-07-28
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
14
ct/2fauth.sh
14
ct/2fauth.sh
@@ -28,12 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if ! command -v jq &>/dev/null; then
|
||||
$STD apt-get install -y jq
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.2fauth 2>/dev/null)" ]] || [[ ! -f ~/.2fauth ]]; then
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
if check_for_gh_release "2fauth" "Bubka/2FAuth"; then
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
|
||||
@@ -64,18 +59,13 @@ function update_script() {
|
||||
$STD systemctl restart nginx
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf "v${RELEASE}.zip"
|
||||
if dpkg -l | grep -q 'php8.2'; then
|
||||
$STD apt-get remove --purge -y php8.2*
|
||||
fi
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
echo "${RELEASE}" >/opt/2fauth_version.txt
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,25 +27,24 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
|
||||
if ! command -v memcached >/dev/null 2>&1; then
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y memcached libmemcached-tools
|
||||
fi
|
||||
if check_for_gh_release "adventurelog" "seanmorley15/adventurelog"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop adventurelog-backend
|
||||
systemctl stop adventurelog-frontend
|
||||
msg_ok "Services Stopped"
|
||||
|
||||
msg_info "Backup Old Installation"
|
||||
mkdir -p /opt/adventurelog-backup
|
||||
cp /opt/adventurelog/backend/server/.env /opt/adventurelog-backup/backend/server/.env
|
||||
cp -r /opt/adventurelog/backend/server/media /opt/adventurelog-backup/backend/server/media
|
||||
cp /opt/adventurelog/frontend/.env /opt/adventurelog-backup/frontend/.env
|
||||
cp -r /opt/adventurelog /opt/adventurelog-backup
|
||||
msg_ok "Backup done"
|
||||
|
||||
fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
msg_info "Updating ${APP}"
|
||||
cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
|
||||
cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
|
||||
cd /opt/adventurelog/backend/server
|
||||
@@ -57,7 +56,7 @@ function update_script() {
|
||||
$STD .venv/bin/python -m pip install -r requirements.txt
|
||||
$STD .venv/bin/python -m manage collectstatic --noinput
|
||||
$STD .venv/bin/python -m manage migrate
|
||||
|
||||
|
||||
cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
|
||||
cd /opt/adventurelog/frontend
|
||||
$STD pnpm i
|
||||
@@ -73,10 +72,7 @@ function update_script() {
|
||||
msg_info "Cleaning Up"
|
||||
rm -rf /opt/adventurelog-backup
|
||||
msg_ok "Cleaned"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,7 +27,30 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
||||
|
||||
RELEASE=$(curl -fsSL "https://www.ispyconnect.com/api/Agent/DownloadLocation4?platform=Linux64&fromVersion=0" | grep -o 'https://.*\.zip')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.agentdvr 2>/dev/null)" ]] || [[ ! -f ~/.agentdvr ]]; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop AgentDVR
|
||||
msg_ok "Service stopped"
|
||||
|
||||
msg_info "Updating $APP"
|
||||
cd /opt/agentdvr/agent
|
||||
curl -fsSL "$RELEASE" -o $(basename "$RELEASE")
|
||||
$STD unzip -o Agent_Linux64*.zip
|
||||
chmod +x ./Agent
|
||||
echo $RELEASE > ~/.agentdvr
|
||||
rm -rf Agent_Linux64*.zip
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start AgentDVR
|
||||
msg_ok "Service started"
|
||||
|
||||
msg_ok "Updated $APP successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
@@ -27,16 +27,15 @@ function update_script() {
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/CorentinTh/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
||||
if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then
|
||||
DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip"
|
||||
msg_info "Updating ${APP} LXC"
|
||||
curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
|
||||
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
|
||||
mkdir -p /usr/share/nginx/html
|
||||
rm -rf /usr/share/nginx/html/*
|
||||
$STD unzip it-tools.zip -d /tmp/it-tools
|
||||
cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
|
||||
rm -rf /tmp/it-tools
|
||||
$STD unzip it-tools.zip -d /tmp
|
||||
cp -r /tmp/dist/* /usr/share/nginx/html
|
||||
rm -rf /tmp/dist
|
||||
rm -f it-tools.zip
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
|
||||
56
ct/alpine-redlib.sh
Normal file
56
ct/alpine-redlib.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: andrej-kocijan (Andrej Kocijan)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/redlib-org/redlib
|
||||
|
||||
APP="Alpine-Redlib"
|
||||
var_tags="${var_tags:-alpine;frontend}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-1}"
|
||||
var_os="${var_os:-alpine}"
|
||||
var_version="${var_version:-3.22}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/redlib ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating Alpine Packages"
|
||||
$STD apk -U upgrade
|
||||
msg_ok "Updated Alpine Packages"
|
||||
|
||||
msg_info "Stopping ${APP} Service"
|
||||
$STD rc-service redlib stop
|
||||
msg_ok "Stopped ${APP} Service"
|
||||
|
||||
fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz"
|
||||
|
||||
msg_info "Starting ${APP} Service"
|
||||
$STD rc-service redlib start
|
||||
msg_ok "Started ${APP} Service"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
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}:5252${CL}"
|
||||
74
ct/alpine-rustdeskserver.sh
Normal file
74
ct/alpine-rustdeskserver.sh
Normal file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/rustdesk/rustdesk-server
|
||||
|
||||
APP="Alpine-RustDeskServer"
|
||||
var_tags="${var_tags:-alpine;monitoring}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-3}"
|
||||
var_os="${var_os:-alpine}"
|
||||
var_version="${var_version:-3.22}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
if [[ ! -d /opt/rustdesk-server ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE=$(curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [ "${RELEASE}" != "$(cat ~/.rustdesk-server 2>/dev/null)" ] || [ ! -f ~/.rustdesk-server ]; then
|
||||
msg_info "Updating RustDesk Server to v${RELEASE}"
|
||||
$STD apk -U upgrade
|
||||
$STD service rustdesk-server-hbbs stop
|
||||
$STD service rustdesk-server-hbbr stop
|
||||
temp_file1=$(mktemp)
|
||||
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
|
||||
$STD unzip "$temp_file1"
|
||||
cp -r amd64/* /opt/rustdesk-server/
|
||||
echo "${RELEASE}" >~/.rustdesk-server
|
||||
$STD service rustdesk-server-hbbs start
|
||||
$STD service rustdesk-server-hbbr start
|
||||
rm -rf amd64
|
||||
rm -f $temp_file1
|
||||
msg_ok "Updated RustDesk Server successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
if [ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ] || [ ! -f ~/.rustdesk-api ]; then
|
||||
msg_info "Updating RustDesk API to v${APIRELEASE}"
|
||||
$STD service rustdesk-api stop
|
||||
temp_file2=$(mktemp)
|
||||
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-amd64.tar.gz" -o "$temp_file2"
|
||||
$STD tar zxvf "$temp_file2"
|
||||
cp -r release/* /opt/rustdesk-api
|
||||
echo "${APIRELEASE}" >~/.rustdesk-api
|
||||
$STD service rustdesk-api start
|
||||
rm -rf release
|
||||
rm -f $temp_file2
|
||||
msg_ok "Updated RustDesk API"
|
||||
else
|
||||
msg_ok "No update required. RustDesk API is already at v${APIRELEASE}"
|
||||
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}:21114${CL}"
|
||||
@@ -13,6 +13,7 @@ var_disk="${var_disk:-1}"
|
||||
var_os="${var_os:-alpine}"
|
||||
var_version="${var_version:-3.22}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
var_tun="${var_tun:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
|
||||
@@ -9,7 +9,7 @@ APP="Apt-Cacher-NG"
|
||||
var_tags="${var_tags:-caching}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-512}"
|
||||
var_disk="${var_disk:-2}"
|
||||
var_disk="${var_disk:-10}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
@@ -20,18 +20,18 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating $APP LXC"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
msg_ok "Updated $APP LXC"
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating $APP LXC"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
msg_ok "Updated $APP LXC"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
@@ -41,4 +41,4 @@ description
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html${CL}"
|
||||
|
||||
@@ -20,29 +20,38 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/archivebox ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop archivebox
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/archivebox/data
|
||||
pip install --upgrade --ignore-installed archivebox
|
||||
sudo -u archivebox archivebox init
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start archivebox
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/archivebox ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
|
||||
msg_info "Stopping ArchiveBox"
|
||||
systemctl stop archivebox
|
||||
msg_ok "Stopped ArchiveBox"
|
||||
|
||||
msg_info "Upgrading Playwright"
|
||||
$STD uv pip install playwright --system
|
||||
$STD playwright install-deps chromium
|
||||
msg_ok "Upgraded Playwright"
|
||||
|
||||
msg_info "Updating ArchiveBox"
|
||||
cd /opt/archivebox/data
|
||||
$STD uv pip install --system --upgrade --no-reinstall archivebox
|
||||
sudo -u archivebox archivebox init
|
||||
msg_ok "Updated ArchiveBox"
|
||||
|
||||
msg_info "Starting ArchiveBox"
|
||||
systemctl start archivebox
|
||||
msg_ok "Started ArchiveBox"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
@@ -52,4 +61,4 @@ description
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
|
||||
|
||||
10
ct/argus.sh
10
ct/argus.sh
@@ -27,9 +27,7 @@ function update_script() {
|
||||
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 [[ "${RELEASE}" != "$(cat ~/.Argus 2>/dev/null)" ]] || [[ ! -f ~/.Argus ]]; then
|
||||
if check_for_gh_release "argus" "release-argus/Argus"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop argus
|
||||
msg_ok "Service stopped"
|
||||
@@ -39,11 +37,9 @@ function update_script() {
|
||||
msg_info "Starting service"
|
||||
systemctl start argus
|
||||
msg_ok "Service started"
|
||||
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
else
|
||||
msg_ok "${APP} is already up to date (${RELEASE})"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
@@ -29,8 +29,8 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/authelia/authelia/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(/usr/bin/authelia -v | awk '{print substr($3, 2, length($2)) }')" ]]; then
|
||||
|
||||
if check_for_gh_release "authelia" "authelia/authelia"; then
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
|
||||
@@ -40,14 +40,10 @@ function update_script() {
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
@@ -20,29 +20,27 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /root/.config/autobrr/config.toml ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /root/.config/autobrr/config.toml ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "autobrr" "autobrr/autobrr"; then
|
||||
msg_info "Stopping ${APP} LXC"
|
||||
systemctl stop autobrr.service
|
||||
systemctl stop autobrr
|
||||
msg_ok "Stopped ${APP} LXC"
|
||||
|
||||
msg_info "Updating ${APP} LXC"
|
||||
rm -rf /usr/local/bin/*
|
||||
curl -fsSL "$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)")
|
||||
tar -C /usr/local/bin -xzf autobrr*.tar.gz
|
||||
rm -rf autobrr*.tar.gz
|
||||
msg_ok "Updated ${APP} LXC"
|
||||
fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
|
||||
|
||||
msg_info "Starting ${APP} LXC"
|
||||
systemctl start autobrr.service
|
||||
systemctl start autobrr
|
||||
msg_ok "Started ${APP} LXC"
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.babybuddy 2>/dev/null)" ]] || [[ ! -f ~/.babybuddy ]]; then
|
||||
if check_for_gh_release "babybuddy" "babybuddy/babybuddy"; then
|
||||
setup_uv
|
||||
|
||||
msg_info "Stopping Services"
|
||||
@@ -44,13 +43,13 @@ function update_script() {
|
||||
|
||||
fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/babybuddy
|
||||
mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
|
||||
source .venv/bin/activate
|
||||
$STD uv pip install -r requirements.txt
|
||||
$STD python manage.py migrate
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Fixing permissions"
|
||||
chown -R www-data:www-data /opt/data
|
||||
@@ -62,14 +61,10 @@ function update_script() {
|
||||
systemctl start uwsgi
|
||||
systemctl start nginx
|
||||
msg_ok "Services Started"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.baikal 2>/dev/null)" ]] || [[ ! -f ~/.baikal ]]; then
|
||||
if check_for_gh_release "baikal" "sabre-io/Baikal"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop apache2
|
||||
msg_ok "Stopped Service"
|
||||
@@ -58,8 +57,6 @@ function update_script() {
|
||||
rm -rf /opt/baikal-backup
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -29,11 +29,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE_MEILISEARCH=$(curl -fsSL https://api.github.com/repos/meilisearch/meilisearch/releases/latest | jq -r '.tag_name | sub("^v"; "")')
|
||||
RELEASE_BARASSISTANT=$(curl -fsSL https://api.github.com/repos/karlomikus/bar-assistant/releases/latest | jq -r '.tag_name | sub("^v"; "")')
|
||||
RELEASE_SALTRIM=$(curl -fsSL https://api.github.com/repos/karlomikus/vue-salt-rim/releases/latest | jq -r '.tag_name | sub("^v"; "")')
|
||||
|
||||
if [[ "${RELEASE_BARASSISTANT}" != "$(cat ~/.bar-assistant 2>/dev/null)" ]] || [[ ! -f ~/.bar-assistant ]]; then
|
||||
if check_for_gh_release "bar-assistant" "karlomikus/bar-assistant"; then
|
||||
msg_info "Stopping nginx"
|
||||
systemctl stop nginx
|
||||
msg_ok "Stopped nginx"
|
||||
@@ -45,7 +41,7 @@ function update_script() {
|
||||
fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
|
||||
setup_composer
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE_BARASSISTANT}"
|
||||
msg_info "Updating Bar-Assistant"
|
||||
cp -r /opt/bar-assistant-backup/.env /opt/bar-assistant/.env
|
||||
cp -r /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
|
||||
cd /opt/bar-assistant
|
||||
@@ -58,7 +54,7 @@ function update_script() {
|
||||
$STD php artisan route:cache
|
||||
$STD php artisan event:cache
|
||||
chown -R www-data:www-data /opt/bar-assistant
|
||||
msg_ok "Updated $APP to ${RELEASE_BARASSISTANT}"
|
||||
msg_ok "Updated Bar-Assistant"
|
||||
|
||||
msg_info "Starting nginx"
|
||||
systemctl start nginx
|
||||
@@ -67,11 +63,9 @@ function update_script() {
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opt/bar-assistant-backup
|
||||
msg_ok "Cleaned"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE_BARASSISTANT}"
|
||||
fi
|
||||
|
||||
if [[ "${RELEASE_SALTRIM}" != "$(cat ~/.vue-salt-rim 2>/dev/null)" ]] || [[ ! -f ~/.vue-salt-rim ]]; then
|
||||
if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
|
||||
msg_info "Backing up Vue Salt Rim"
|
||||
mv /opt/vue-salt-rim /opt/vue-salt-rim-backup
|
||||
msg_ok "Backed up Vue Salt Rim"
|
||||
@@ -82,12 +76,12 @@ function update_script() {
|
||||
|
||||
fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
|
||||
|
||||
msg_info "Updating Salt Rim to ${RELEASE_SALTRIM}"
|
||||
msg_info "Updating Vue Salt Rim"
|
||||
cp /opt/vue-salt-rim-backup/public/config.js /opt/vue-salt-rim/public/config.js
|
||||
cd /opt/vue-salt-rim
|
||||
$STD npm install
|
||||
$STD npm run build
|
||||
msg_ok "Updated $APP to ${RELEASE_SALTRIM}"
|
||||
msg_ok "Updated Vue Salt Rim"
|
||||
|
||||
msg_info "Starting nginx"
|
||||
systemctl start nginx
|
||||
@@ -96,12 +90,9 @@ function update_script() {
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opt/vue-salt-rim-backup
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated"
|
||||
else
|
||||
msg_ok "No update required. Salt Rim is already at ${RELEASE_SALTRIM}"
|
||||
fi
|
||||
|
||||
if [[ "${RELEASE_MEILISEARCH}" != "$(cat ~/.meilisearch 2>/dev/null)" ]] || [[ ! -f ~/.meilisearch ]]; then
|
||||
if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
|
||||
msg_info "Stopping Meilisearch"
|
||||
systemctl stop meilisearch
|
||||
msg_ok "Stopped Meilisearch"
|
||||
@@ -111,10 +102,7 @@ function update_script() {
|
||||
msg_info "Starting Meilisearch"
|
||||
systemctl start meilisearch
|
||||
msg_ok "Started Meilisearch"
|
||||
|
||||
msg_ok "Updated Meilisearch"
|
||||
else
|
||||
msg_ok "No update required. Meilisearch is already at ${RELEASE_MEILISEARCH}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,8 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/barcodebuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.barcodebuddy 2>/dev/null)" ]] || [[ ! -f ~/.barcodebuddy ]]; then
|
||||
|
||||
if check_for_gh_release "barcodebuddy" "Forceu/barcodebuddy"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop apache2
|
||||
systemctl stop barcodebuddy
|
||||
@@ -55,8 +55,6 @@ function update_script() {
|
||||
rm -r /opt/barcodebuddy-backup
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
33
ct/bazarr.sh
33
ct/bazarr.sh
@@ -20,20 +20,27 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var/lib/bazarr/ ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating $APP LXC"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
msg_ok "Updated $APP LXC"
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /var/lib/bazarr/ ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
}
|
||||
fi
|
||||
if check_for_gh_release "bazarr" "morpheus65535/bazarr"; then
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
|
||||
|
||||
msg_info "Setup Bazarr"
|
||||
mkdir -p /var/lib/bazarr/
|
||||
chmod 775 /opt/bazarr /var/lib/bazarr/
|
||||
sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
|
||||
$STD uv pip install -r /opt/bazarr/requirements.txt --system
|
||||
msg_ok "Setup Bazarr"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
start
|
||||
build_container
|
||||
description
|
||||
@@ -41,4 +48,4 @@ description
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"
|
||||
|
||||
@@ -27,8 +27,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.bitmagnet 2>/dev/null)" ]] || [[ ! -f ~/.bitmagnet ]]; then
|
||||
if check_for_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop bitmagnet-web
|
||||
msg_ok "Stopped Service"
|
||||
@@ -63,22 +62,19 @@ function update_script() {
|
||||
rm -rf /opt/bitmagnet
|
||||
fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/bitmagnet
|
||||
VREL=v$RELEASE
|
||||
VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
|
||||
chmod +x bitmagnet
|
||||
[ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
|
||||
[ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start bitmagnet-web
|
||||
msg_ok "Started Service"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
# 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/adityachandelgit/BookLore
|
||||
# Source: https://github.com/booklore-app/BookLore
|
||||
|
||||
APP="BookLore"
|
||||
var_tags="${var_tags:-books;library}"
|
||||
@@ -28,14 +28,16 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/adityachandelgit/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.booklore 2>/dev/null)" ]] || [[ ! -f ~/.booklore ]]; then
|
||||
if check_for_gh_release "booklore" "booklore-app/BookLore"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop booklore
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
fetch_and_deploy_gh_release "booklore" "adityachandelgit/BookLore"
|
||||
msg_info "backup old install"
|
||||
mv /opt/booklore /opt/booklore_bak
|
||||
msg_ok "backup done"
|
||||
|
||||
fetch_and_deploy_gh_release "booklore" "booklore-app/BookLore"
|
||||
|
||||
msg_info "Building Frontend"
|
||||
cd /opt/booklore/booklore-ui
|
||||
@@ -45,7 +47,7 @@ function update_script() {
|
||||
|
||||
msg_info "Building Backend"
|
||||
cd /opt/booklore/booklore-api
|
||||
APP_VERSION=$(curl -fsSL https://api.github.com/repos/adityachandelgit/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
|
||||
APP_VERSION=$(curl -fsSL https://api.github.com/repos/booklore-app/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
|
||||
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
|
||||
$STD ./gradlew clean build --no-daemon
|
||||
mkdir -p /opt/booklore/dist
|
||||
@@ -60,11 +62,9 @@ function update_script() {
|
||||
msg_info "Starting $APP"
|
||||
systemctl start booklore
|
||||
systemctl reload nginx
|
||||
rm -rf /opt/booklore_bak
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.bookstack 2>/dev/null)" ]] || [[ ! -f ~/.bookstack ]]; then
|
||||
if check_for_gh_release "bookstack" "BookStackApp/BookStack"; then
|
||||
msg_info "Stopping Apache2"
|
||||
systemctl stop apache2
|
||||
msg_ok "Services Stopped"
|
||||
@@ -58,7 +57,6 @@ function update_script() {
|
||||
chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
||||
chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
|
||||
chmod -R 640 /opt/bookstack/.env
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Configured BookStack"
|
||||
|
||||
msg_info "Starting Apache2"
|
||||
@@ -69,12 +67,9 @@ function update_script() {
|
||||
rm -rf /opt/bookstack-backup
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
@@ -28,9 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/jordan-dalby/ByteStash/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.bytestash 2>/dev/null)" ]] || [[ ! -f ~/.bytestash ]]; then
|
||||
|
||||
if check_for_gh_release "bytestash" "jordan-dalby/ByteStash"; then
|
||||
read -rp "${TAB3}Did you make a backup via application WebUI? (y/n): " backuped
|
||||
if [[ "$backuped" =~ ^[Yy]$ ]]; then
|
||||
msg_info "Stopping Services"
|
||||
@@ -57,10 +55,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
@@ -27,23 +27,21 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if check_for_gh_release "checkmk" "checkmk/checkmk"; then
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
$STD omd stop monitoring
|
||||
$STD omd cp monitoring monitoringbackup
|
||||
curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb" -o "/opt/checkmk.deb"
|
||||
curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb" -o "/opt/checkmk.deb"
|
||||
$STD apt-get install -y /opt/checkmk.deb
|
||||
$STD omd --force -V ${RELEASE}.cre update --conflict=install monitoring
|
||||
$STD omd start monitoring
|
||||
$STD omd -f rm monitoringbackup
|
||||
$STD omd cleanup
|
||||
rm -rf /opt/checkmk.deb
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||
msg_ok "Updated ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
@@ -20,32 +20,27 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Cleanuparr/Cleanuparr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.Cleanuparr 2>/dev/null)" ]] || [[ ! -f ~/.Cleanuparr ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop cleanuparr
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "$RELEASE" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start cleanuparr
|
||||
msg_ok "Started ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
}
|
||||
fi
|
||||
if check_for_gh_release "cleanuparr" "Cleanuparr/Cleanuparr"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop cleanuparr
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start cleanuparr
|
||||
msg_ok "Started ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
@@ -28,9 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/cloudreve/cloudreve/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.cloudreve 2>/dev/null)" ]] || [[ ! -f ~/.cloudreve ]]; then
|
||||
if check_for_gh_release "cloudreve" "cloudreve/cloudreve"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop cloudreve
|
||||
msg_ok "Stopped $APP"
|
||||
@@ -40,10 +38,7 @@ function update_script() {
|
||||
msg_info "Starting $APP"
|
||||
systemctl start cloudreve
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
if [[ "${RELEASE}" != "$(cat ~/.commafeed 2>/dev/null)" ]] || [[ ! -f ~/.commafeed ]]; then
|
||||
if check_for_gh_release "commafeed" "Athou/commafeed"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop commafeed
|
||||
msg_ok "Stopped ${APP}"
|
||||
@@ -40,23 +39,25 @@ function update_script() {
|
||||
$STD apt-get install -y rsync
|
||||
msg_ok "Installed Dependencies"
|
||||
fi
|
||||
|
||||
if [ -d /opt/commafeed/data ] && [ "$(ls -A /opt/commafeed/data)" ]; then
|
||||
msg_info "Backing up existing data"
|
||||
mv /opt/commafeed/data /opt/data.bak
|
||||
msg_ok "Backed up existing data"
|
||||
fi
|
||||
|
||||
fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
if [ -d /opt/commafeed/data.bak ] && [ "$(ls -A /opt/commafeed/data.bak)" ]; then
|
||||
mv /opt/commafeed/data.bak /opt/commafeed/data
|
||||
|
||||
if [ -d /opt/data.bak ] && [ "$(ls -A /opt/data.bak)" ]; then
|
||||
msg_info "Restoring data"
|
||||
mv /opt/data.bak /opt/commafeed/data
|
||||
msg_ok "Restored data"
|
||||
fi
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start commafeed
|
||||
msg_ok "Started ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,31 +27,28 @@ function update_script() {
|
||||
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 ~/.configarr 2>/dev/null || cat /opt/configarr_version.txt 2>/dev/null)" ]]; then
|
||||
if check_for_gh_release "configarr" "raydak-labs/configarr"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop configarr-task.timer
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
msg_info "Updating $APP"
|
||||
mkdir -p /opt/backup/
|
||||
mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
|
||||
rm -rf /opt/configarr
|
||||
fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr"
|
||||
mv /opt/backup/* /opt/configarr/
|
||||
mv /opt/backup/{config.yml,secrets.yml,.env} "/opt/configarr/"
|
||||
cd /opt/configarr
|
||||
$STD pnpm install
|
||||
$STD pnpm run build
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
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}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,8 +27,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/C4illin/ConvertX/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.convertx 2>/dev/null)" ]] || [[ ! -f ~/.convertx ]]; then
|
||||
if check_for_gh_release "ConvertX" "C4illin/ConvertX"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop convertx
|
||||
msg_ok "Stopped $APP"
|
||||
@@ -41,25 +40,21 @@ function update_script() {
|
||||
|
||||
fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
msg_info "Updating $APP"
|
||||
if [[ -d /opt/data ]]; then
|
||||
mv /opt/data /opt/convertx/data
|
||||
fi
|
||||
cd /opt/convertx
|
||||
$STD bun install
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start convertx
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
@@ -68,10 +68,10 @@ function update_script() {
|
||||
msg_ok "Started Crafty-Controller"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
else
|
||||
msg_ok "No update required. Crafty-Controller is already at v${RELEASE}."
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
@@ -33,52 +33,42 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
|
||||
if ! command -v npm >/dev/null 2>&1; then
|
||||
echo "Installing NPM..."
|
||||
$STD apt-get install -y npm
|
||||
echo "Installed NPM..."
|
||||
fi
|
||||
fi
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
$STD /opt/cronicle/bin/control.sh upgrade
|
||||
msg_ok "Updated ${APP}"
|
||||
exit
|
||||
fi
|
||||
if [ "$UPD" == "2" ]; then
|
||||
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
|
||||
if ! command -v npm >/dev/null 2>&1; then
|
||||
echo "Installing NPM..."
|
||||
$STD apt-get install -y npm
|
||||
echo "Installed NPM..."
|
||||
fi
|
||||
fi
|
||||
LATEST=$(curl -fsSL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
IP=$(hostname -I | awk '{print $1}')
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
git \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
gnupg2
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
|
||||
if check_for_gh_release "cronicle" "jhuckaby/Cronicle"; then
|
||||
IP=$(hostname -I | awk '{print $1}')
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y \
|
||||
git \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
gnupg2
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Configuring Cronicle Worker"
|
||||
cd /opt/cronicle
|
||||
$STD npm install
|
||||
$STD node bin/build.js dist
|
||||
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
|
||||
$STD /opt/cronicle/bin/control.sh start
|
||||
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
|
||||
chmod 775 /etc/init.d/cronicled
|
||||
$STD update-rc.d cronicled defaults
|
||||
msg_ok "Installed Cronicle Worker"
|
||||
|
||||
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
|
||||
exit
|
||||
NODE_VERSION="22" setup_nodejs
|
||||
fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
|
||||
|
||||
msg_info "Configuring Cronicle Worker"
|
||||
cd /opt/cronicle
|
||||
$STD npm install
|
||||
$STD node bin/build.js dist
|
||||
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
|
||||
$STD /opt/cronicle/bin/control.sh start
|
||||
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
|
||||
chmod 775 /etc/init.d/cronicled
|
||||
$STD update-rc.d cronicled defaults
|
||||
msg_ok "Installed Cronicle Worker"
|
||||
|
||||
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/cryptpad/cryptpad/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.cryptpad 2>/dev/null)" ]] || [[ ! -f ~/.cryptpad ]]; then
|
||||
if check_for_gh_release "cryptpad" "cryptpad/cryptpad"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop cryptpad
|
||||
msg_ok "Stopped $APP"
|
||||
@@ -40,12 +39,12 @@ function update_script() {
|
||||
|
||||
fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad"
|
||||
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
msg_info "Updating $APP"
|
||||
cd /opt/cryptpad
|
||||
$STD npm ci
|
||||
$STD npm run install:components
|
||||
$STD npm run build
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Restoring configuration"
|
||||
mv /opt/config.js /opt/cryptpad/config/
|
||||
@@ -54,10 +53,7 @@ function update_script() {
|
||||
msg_info "Starting $APP"
|
||||
systemctl start cryptpad
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
11
ct/dashy.sh
11
ct/dashy.sh
@@ -27,9 +27,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
if [[ "${RELEASE}" != "$(cat ~/.dashy 2>/dev/null)" ]] || [[ ! -f ~/.dashy ]]; then
|
||||
if check_for_gh_release "dashy" "Lissy93/dashy"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop dashy
|
||||
msg_ok "Stopped ${APP}"
|
||||
@@ -46,11 +44,11 @@ function update_script() {
|
||||
rm -rf /opt/dashy
|
||||
fetch_and_deploy_gh_release "dashy" "Lissy93/dashy"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/dashy
|
||||
npm install
|
||||
npm run build
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Restoring conf.yml"
|
||||
cd ~
|
||||
@@ -64,10 +62,7 @@ function update_script() {
|
||||
msg_info "Starting Dashy"
|
||||
systemctl start dashy
|
||||
msg_ok "Started Dashy"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -90,3 +90,5 @@ description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} If you installed Portainer, access it at the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:9443${CL}"
|
||||
|
||||
@@ -30,8 +30,8 @@ function update_script() {
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
||||
fi
|
||||
export NODE_OPTIONS="--max_old_space_size=4096"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.docmost 2>/dev/null)" ]] || [[ ! -f ~/.docmost ]]; then
|
||||
|
||||
if check_for_gh_release "docmost" "docmost/docmost"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop docmost
|
||||
msg_ok "${APP} Stopped"
|
||||
@@ -44,7 +44,7 @@ function update_script() {
|
||||
|
||||
fetch_and_deploy_gh_release "docmost" "docmost/docmost"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/docmost
|
||||
mv /opt/.env /opt/docmost/.env
|
||||
mv /opt/data /opt/docmost/data
|
||||
@@ -55,10 +55,7 @@ function update_script() {
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start docmost
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -20,31 +20,27 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /usr/bin/duplicati-server ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/duplicati/duplicati/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.duplicati)" ]] || [[ ! -f ~/.duplicati ]]; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop duplicati
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "linux-x64-gui.deb"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start duplicati
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /usr/bin/duplicati-server ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "duplicati" "duplicati/duplicati"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop duplicati
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-x64-gui.deb"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start duplicati
|
||||
msg_ok "Started $APP"
|
||||
msg_ok "Update Successful"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
@@ -8,8 +8,8 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
||||
APP="Element Synapse"
|
||||
var_tags="${var_tags:-server}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-4}"
|
||||
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}"
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||
if [[ "${RELEASE}" != "$(cat ~/.emby 2>/dev/null)" ]] || [[ ! -f ~/.emby ]]; then
|
||||
if check_for_gh_release "emby" "MediaBrowser/Emby.Releases"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop emby-server
|
||||
msg_ok "Stopped ${APP}"
|
||||
@@ -39,10 +38,9 @@ function update_script() {
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start emby-server
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
|
||||
@@ -26,10 +26,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\Kv\K[^"]+' | head -n1)
|
||||
RELEASE_FFMPEG=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV-ffmpeg/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
|
||||
|
||||
if [[ "${RELEASE}" != "$(cat ~/.ersatztv 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv ]]; then
|
||||
if check_for_gh_release "ersatztv" "ErsatzTV/ErsatzTV"; then
|
||||
msg_info "Stopping ErsatzTV"
|
||||
systemctl stop ersatzTV
|
||||
msg_ok "Stopped ErsatzTV"
|
||||
@@ -41,11 +38,9 @@ function update_script() {
|
||||
msg_ok "Started ErsatzTV"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
|
||||
if [[ "${RELEASE_FFMPEG}" != "$(cat ~/.ersatztv-ffmpeg 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv-ffmpeg ]]; then
|
||||
if check_for_gh_release "ersatztv-ffmpeg" "ErsatzTV/ErsatzTV-ffmpeg"; then
|
||||
msg_info "Stopping ErsatzTV"
|
||||
systemctl stop ersatzTV
|
||||
msg_ok "Stopped ErsatzTV"
|
||||
@@ -62,10 +57,7 @@ function update_script() {
|
||||
msg_info "Starting ErsatzTV"
|
||||
systemctl start ersatzTV
|
||||
msg_ok "Started ErsatzTV"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ErsatzTV-ffmpeg is already at ${RELEASE_FFMPEG}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.excalidraw 2>/dev/null)" ]] || [[ ! -f ~/.excalidraw ]]; then
|
||||
if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop excalidraw
|
||||
msg_ok "Stopped $APP"
|
||||
@@ -37,18 +36,15 @@ function update_script() {
|
||||
rm -rf /opt/excalidraw
|
||||
fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
msg_info "Updating $APP"
|
||||
cd /opt/excalidraw
|
||||
$STD yarn
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start excalidraw
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.firefly 2>/dev/null)" ]] || [[ ! -f ~/.firefly ]]; then
|
||||
if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
|
||||
msg_info "Stopping Apache2"
|
||||
systemctl stop apache2
|
||||
msg_ok "Stopped Apache2"
|
||||
@@ -42,11 +41,11 @@ function update_script() {
|
||||
fetch_and_deploy_gh_release "firefly" "firefly-iii/firefly-iii" "prebuild" "latest" "/opt/firefly" "FireflyIII-*.zip"
|
||||
setup_composer
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
msg_info "Updating ${APP}"
|
||||
rm -rf /opt/firefly/storage
|
||||
cp /opt/.env /opt/firefly/.env
|
||||
cp -r /opt/storage /opt/firefly/storage
|
||||
|
||||
|
||||
chown -R www-data:www-data /opt/firefly
|
||||
find /opt/firefly/storage -type d -exec chmod 775 {} \;
|
||||
find /opt/firefly/storage -type f -exec chmod 664 {} \;
|
||||
@@ -58,15 +57,12 @@ function update_script() {
|
||||
$STD php artisan view:clear
|
||||
$STD php artisan firefly-iii:upgrade-database
|
||||
$STD php artisan firefly-iii:laravel-passport-keys
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting Apache2"
|
||||
systemctl start apache2
|
||||
msg_ok "Started Apache2"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,20 +28,17 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/FlareSolverr/FlareSolverr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.flaresolverr 2>/dev/null)" ]] || [[ ! -f ~/.flaresolverr ]]; then
|
||||
if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.5"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop flaresolverr
|
||||
msg_ok "Stopped service"
|
||||
|
||||
rm -rf /opt/flaresolverr
|
||||
fetch_and_deploy_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "prebuild" "latest" "/opt/flaresolverr" "flaresolverr_linux_x64.tar.gz"
|
||||
fetch_and_deploy_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "prebuild" "v3.3.25" "/opt/flaresolverr" "flaresolverr_linux_x64.tar.gz"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start flaresolverr
|
||||
msg_ok "Started service"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/dotnetfactory/fluid-calendar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.fluid-calendar 2>/dev/null)" ]] || [[ ! -f ~/.fluid-calendar ]]; then
|
||||
if check_for_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop fluid-calendar
|
||||
msg_ok "Stopped $APP"
|
||||
@@ -38,7 +37,7 @@ function update_script() {
|
||||
rm -rf /opt/fluid-calendar
|
||||
fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
msg_info "Updating $APP"
|
||||
mv /opt/fluid.env /opt/fluid-calendar/.env
|
||||
cd /opt/fluid-calendar
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
@@ -46,15 +45,12 @@ function update_script() {
|
||||
$STD npm run prisma:generate
|
||||
$STD npx prisma migrate deploy
|
||||
$STD npm run build:os
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start fluid-calendar
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -43,6 +43,9 @@ function update_script() {
|
||||
msg_error "Project directory does not exist: $PROJECT_DIR"
|
||||
exit 1
|
||||
fi
|
||||
if ! command -v git &>/dev/null; then
|
||||
$STD apt-get install -y git
|
||||
fi
|
||||
|
||||
msg_info "Stopping service $SERVICE_NAME"
|
||||
systemctl stop "$SERVICE_NAME"
|
||||
|
||||
12
ct/gatus.sh
12
ct/gatus.sh
@@ -28,10 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.gatus 2>/dev/null)" ]] || [[ ! -f ~/.gatus ]]; then
|
||||
msg_info "Updating $APP"
|
||||
|
||||
if check_for_gh_release "gatus" "TwiN/gatus"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop gatus
|
||||
msg_ok "Stopped $APP"
|
||||
@@ -40,21 +37,18 @@ function update_script() {
|
||||
rm -rf /opt/gatus
|
||||
fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
msg_info "Updating $APP"
|
||||
cd /opt/gatus
|
||||
$STD go mod tidy
|
||||
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
|
||||
setcap CAP_NET_RAW+ep gatus
|
||||
mv /opt/config.yaml config
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start gatus
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -32,25 +32,54 @@ function update_script() {
|
||||
APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4)
|
||||
if [[ $APP_VERSION =~ ^2\. ]]; then
|
||||
if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ VERSION 2.x DETECTED" --yesno \
|
||||
"WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno
|
||||
then
|
||||
"WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️ FINAL CONFIRMATION" --yesno \
|
||||
"FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno
|
||||
then
|
||||
whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
|
||||
exit 0
|
||||
"FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno; then
|
||||
whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
|
||||
exit 0
|
||||
fi
|
||||
whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \
|
||||
"Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
|
||||
"Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
|
||||
rm -rf /opt/gitea-mirror
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/RayLabsHQ/gitea-mirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
|
||||
|
||||
if [[ ! -f /opt/gitea-mirror.env ]]; then
|
||||
msg_info "Detected old Enviroment, updating files"
|
||||
APP_SECRET=$(openssl rand -base64 32)
|
||||
HOST_IP=$(hostname -I | awk '{print $1}')
|
||||
cat <<EOF >/opt/gitea-mirror.env
|
||||
# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md
|
||||
NODE_ENV=production
|
||||
HOST=0.0.0.0
|
||||
PORT=4321
|
||||
DATABASE_URL=sqlite://data/gitea-mirror.db
|
||||
BETTER_AUTH_URL=http://${HOST_IP}:4321
|
||||
BETTER_AUTH_SECRET=${APP_SECRET}
|
||||
npm_package_version=${APP_VERSION}
|
||||
EOF
|
||||
rm /etc/systemd/system/gitea-mirror.service
|
||||
cat <<EOF >/etc/systemd/system/gitea-mirror.service
|
||||
[Unit]
|
||||
Description=Gitea Mirror
|
||||
After=network.target
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/opt/gitea-mirror
|
||||
ExecStart=/usr/local/bin/bun dist/server/entry.mjs
|
||||
Restart=on-failure
|
||||
RestartSec=10
|
||||
EnvironmentFile=/opt/gitea-mirror.env
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
msg_ok "Old Enviroment fixed"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop gitea-mirror
|
||||
msg_ok "Services Stopped"
|
||||
@@ -70,25 +99,23 @@ function update_script() {
|
||||
rm -rf /opt/gitea-mirror
|
||||
fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"
|
||||
|
||||
msg_info "Updating and rebuilding ${APP} to v${RELEASE}"
|
||||
msg_info "Updating and rebuilding ${APP}"
|
||||
cd /opt/gitea-mirror
|
||||
$STD bun run setup
|
||||
$STD bun run build
|
||||
APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
|
||||
sudo sed -i.bak "s|^Environment=npm_package_version=.*|Environment=npm_package_version=${APP_VERSION}|" /etc/systemd/system/gitea-mirror.service
|
||||
msg_ok "Updated and rebuilt ${APP} to v${RELEASE}"
|
||||
|
||||
sudo sed -i.bak "s|^npm_package_version=.*|npm_package_version=${APP_VERSION}|" /opt/gitea-mirror.env
|
||||
msg_ok "Updated and rebuilt ${APP}"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl daemon-reload
|
||||
systemctl start gitea-mirror
|
||||
msg_ok "Service Started"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
msg_ok "Update Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.gitea 2>/dev/null)" ]] || [[ ! -f ~/.gitea ]]; then
|
||||
if check_for_gh_release "gitea" "go-gitea/gitea"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop gitea
|
||||
msg_ok "Service stopped"
|
||||
@@ -41,10 +40,7 @@ function update_script() {
|
||||
msg_info "Starting service"
|
||||
systemctl start gitea
|
||||
msg_ok "Started service"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/glanceapp/glance/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.glance 2>/dev/null)" ]] || [[ ! -f ~/.glance ]]; then
|
||||
if check_for_gh_release "glance" "glanceapp/glance"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop glance
|
||||
msg_ok "Stopped Service"
|
||||
@@ -40,10 +39,7 @@ function update_script() {
|
||||
msg_info "Starting Service"
|
||||
systemctl start glance
|
||||
msg_ok "Started Service"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,8 +28,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/AlexxIT/go2rtc/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.go2rtc 2>/dev/null)" ]] || [[ ! -f ~/.go2rtc ]]; then
|
||||
if check_for_gh_release "go2rtc" "AlexxIT/go2rtc"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop go2rtc
|
||||
msg_ok "Stopped service"
|
||||
@@ -39,10 +38,7 @@ function update_script() {
|
||||
msg_info "Starting service"
|
||||
systemctl start go2rtc
|
||||
msg_ok "Started service"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
24
ct/gokapi.sh
24
ct/gokapi.sh
@@ -20,19 +20,14 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/gokapi ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if [[ -f /opt/${APP}_version.txt ]]; then
|
||||
mv /opt/${APP}_version ~/.gokapi
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/Gokapi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.gokapi 2>/dev/null)" ]] || [[ ! -f ~/.gokapi ]]; then
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/gokapi ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "gokapi" "Forceu/Gokapi"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop gokapi
|
||||
msg_ok "Stopped ${APP}"
|
||||
@@ -42,10 +37,7 @@ function update_script() {
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start gokapi
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
78
ct/gomft.sh
78
ct/gomft.sh
@@ -28,91 +28,17 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if ! dpkg -l | grep -q "^ii.*build-essential"; then
|
||||
$STD apt-get install -y build-essential
|
||||
fi
|
||||
if [[ ! -f "/usr/bin/node" ]]; then
|
||||
mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||
$STD apt-get update
|
||||
$STD apt-get install -y nodejs
|
||||
fi
|
||||
RELEASE=$(curl -fsSL "https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest" | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
if check_for_gh_release "gomft" "StarFleetCPTN/GoMFT"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop gomft
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
$STD apt-get install -y git
|
||||
fi
|
||||
rm -f /opt/gomft/gomft
|
||||
temp_file=$(mktemp)
|
||||
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
||||
tar -xzf "$temp_file"
|
||||
cp -rf "GoMFT-${RELEASE}"/* /opt/gomft/
|
||||
cd /opt/gomft
|
||||
$STD npm install
|
||||
$STD npm run build
|
||||
TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)"
|
||||
$STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION}
|
||||
# dirty hack to fix templ
|
||||
cat <<'EOF' >/opt/gomft/components/file_metadata/search/file_metadata_search_content.templ
|
||||
package search
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/starfleetcptn/gomft/components/file_metadata"
|
||||
"github.com/starfleetcptn/gomft/components/file_metadata/list"
|
||||
)
|
||||
|
||||
templ FileMetadataSearchContent(ctx context.Context, data file_metadata.FileMetadataSearchData) {
|
||||
<!-- Search Results -->
|
||||
<div id="search-results">
|
||||
if len(data.Files) > 0 {
|
||||
@list.FileMetadataListPartial(ctx, file_metadata.FileMetadataListData{
|
||||
Files: data.Files,
|
||||
Page: data.Page,
|
||||
Limit: data.Limit,
|
||||
TotalCount: data.TotalCount,
|
||||
TotalPages: data.TotalPages,
|
||||
Filter: data.Filter,
|
||||
SortBy: data.SortBy,
|
||||
SortDir: data.SortDir,
|
||||
}, "/files/search/partial", "#search-results-container")
|
||||
} else {
|
||||
<div class="p-6 text-center text-gray-500 dark:text-gray-400">
|
||||
<svg class="mx-auto mb-4 w-12 h-12 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
|
||||
</svg>
|
||||
<p>No files found matching your search criteria.</p>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
EOF
|
||||
$STD "$HOME"/go/bin/templ generate
|
||||
export CGO_ENABLED=1
|
||||
export GOOS=linux
|
||||
$STD go build -o gomft
|
||||
chmod +x /opt/gomft/gomft
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -f "$temp_file"
|
||||
rm -rf "$HOME/GoMFT-v.${RELEASE}/"
|
||||
msg_ok "Cleanup Complete"
|
||||
fetch_and_deploy_gh_release "gomft" "StarFleetCPTN/GoMFT" "singlefile" "latest" "/opt/gomft" "gomft*linux-amd64"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start gomft
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,9 +27,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.gotify 2>/dev/null)" ]] || [[ ! -f ~/.gotify ]]; then
|
||||
if check_for_gh_release "gotify" "gotify/server"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop gotify
|
||||
msg_ok "Stopped ${APP}"
|
||||
@@ -40,10 +38,7 @@ function update_script() {
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start gotify
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,19 +27,14 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
php_ver=$(php -v | head -n 1 | awk '{print $2}')
|
||||
if [[ ! $php_ver == "8.3"* ]]; then
|
||||
PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/grocy/grocy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.grocy 2>/dev/null)" ]] || [[ ! -f ~/.grocy ]]; then
|
||||
if check_for_gh_release "grocy" "grocy/grocy"; then
|
||||
msg_info "Updating ${APP}"
|
||||
bash /var/www/html/update.sh
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -29,9 +29,7 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha" setup_nodejs
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/HabitRPG/habitica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.habitica 2>/dev/null)" ]] || [[ ! -f ~/.habitica ]]; then
|
||||
|
||||
if check_for_gh_release "habitica" "HabitRPG/habitica"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop habitica-mongodb
|
||||
systemctl stop habitica
|
||||
@@ -48,13 +46,13 @@ function update_script() {
|
||||
|
||||
fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
|
||||
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
msg_info "Updating $APP"
|
||||
cd /opt/habitica
|
||||
$STD npm i
|
||||
$STD npm run postinstall
|
||||
$STD npm run client:build
|
||||
$STD gulp build:prod
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Restoring configuration"
|
||||
if [[ -f ~/config.json ]]; then
|
||||
@@ -69,10 +67,7 @@ function update_script() {
|
||||
systemctl start habitica
|
||||
systemctl start habitica-client
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
6
ct/headers/alpine-redlib
Normal file
6
ct/headers/alpine-redlib
Normal file
@@ -0,0 +1,6 @@
|
||||
___ __ _ ____ _____ __
|
||||
/ | / /___ (_)___ ___ / __ \___ ____/ / (_) /_
|
||||
/ /| | / / __ \/ / __ \/ _ \______/ /_/ / _ \/ __ / / / __ \
|
||||
/ ___ |/ / /_/ / / / / / __/_____/ _, _/ __/ /_/ / / / /_/ /
|
||||
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\___/\__,_/_/_/_.___/
|
||||
/_/
|
||||
6
ct/headers/alpine-rustdeskserver
Normal file
6
ct/headers/alpine-rustdeskserver
Normal file
@@ -0,0 +1,6 @@
|
||||
___ __ _ ____ __ ____ __ _____
|
||||
/ | / /___ (_)___ ___ / __ \__ _______/ /_/ __ \___ _____/ /__/ ___/___ ______ _____ _____
|
||||
/ /| | / / __ \/ / __ \/ _ \______/ /_/ / / / / ___/ __/ / / / _ \/ ___/ //_/\__ \/ _ \/ ___/ | / / _ \/ ___/
|
||||
/ ___ |/ / /_/ / / / / / __/_____/ _, _/ /_/ (__ ) /_/ /_/ / __(__ ) ,< ___/ / __/ / | |/ / __/ /
|
||||
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\__,_/____/\__/_____/\___/____/_/|_|/____/\___/_/ |___/\___/_/
|
||||
/_/
|
||||
6
ct/headers/healthchecks
Normal file
6
ct/headers/healthchecks
Normal file
@@ -0,0 +1,6 @@
|
||||
__ ____ __ __ __
|
||||
/ /_ ___ ____ _/ / /_/ /_ _____/ /_ ___ _____/ /_______
|
||||
/ __ \/ _ \/ __ `/ / __/ __ \/ ___/ __ \/ _ \/ ___/ //_/ ___/
|
||||
/ / / / __/ /_/ / / /_/ / / / /__/ / / / __/ /__/ ,< (__ )
|
||||
/_/ /_/\___/\__,_/_/\__/_/ /_/\___/_/ /_/\___/\___/_/|_/____/
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
__ __ __
|
||||
/ / / /___ ____ __________/ /__ _____
|
||||
/ /_/ / __ \/ __ `/ ___/ __ / _ \/ ___/
|
||||
/ __ / /_/ / /_/ / / / /_/ / __/ /
|
||||
/_/ /_/\____/\__,_/_/ \__,_/\___/_/
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
__ __ ___ _ __ __ ______
|
||||
/ / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_ / ____/___ ________
|
||||
/ /_/ / __ \/ __ `__ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/_____/ / / __ \/ ___/ _ \
|
||||
/ __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_/_____/ /___/ /_/ / / / __/
|
||||
/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ \____/\____/_/ \___/
|
||||
|
||||
6
ct/headers/hortusfox
Normal file
6
ct/headers/hortusfox
Normal file
@@ -0,0 +1,6 @@
|
||||
__ __ __ ______
|
||||
/ / / /___ _____/ /___ _______/ ____/___ _ __
|
||||
/ /_/ / __ \/ ___/ __/ / / / ___/ /_ / __ \| |/_/
|
||||
/ __ / /_/ / / / /_/ /_/ (__ ) __/ / /_/ /> <
|
||||
/_/ /_/\____/_/ \__/\__,_/____/_/ \____/_/|_|
|
||||
|
||||
6
ct/headers/jeedom
Normal file
6
ct/headers/jeedom
Normal file
@@ -0,0 +1,6 @@
|
||||
__ __
|
||||
/ /__ ___ ____/ /___ ____ ___
|
||||
__ / / _ \/ _ \/ __ / __ \/ __ `__ \
|
||||
/ /_/ / __/ __/ /_/ / /_/ / / / / / /
|
||||
\____/\___/\___/\__,_/\____/_/ /_/ /_/
|
||||
|
||||
6
ct/headers/litellm
Normal file
6
ct/headers/litellm
Normal file
@@ -0,0 +1,6 @@
|
||||
__ _ __ __ __ __ ___
|
||||
/ / (_) /____ / / / / / |/ /
|
||||
/ / / / __/ _ \/ / / / / /|_/ /
|
||||
/ /___/ / /_/ __/ /___/ /___/ / / /
|
||||
/_____/_/\__/\___/_____/_____/_/ /_/
|
||||
|
||||
6
ct/headers/mediamanager
Normal file
6
ct/headers/mediamanager
Normal file
@@ -0,0 +1,6 @@
|
||||
__ ___ ___ __ ___
|
||||
/ |/ /__ ____/ (_)___ _/ |/ /___ _____ ____ _____ ____ _____
|
||||
/ /|_/ / _ \/ __ / / __ `/ /|_/ / __ `/ __ \/ __ `/ __ `/ _ \/ ___/
|
||||
/ / / / __/ /_/ / / /_/ / / / / /_/ / / / / /_/ / /_/ / __/ /
|
||||
/_/ /_/\___/\__,_/_/\__,_/_/ /_/\__,_/_/ /_/\__,_/\__, /\___/_/
|
||||
/____/
|
||||
6
ct/headers/ots
Normal file
6
ct/headers/ots
Normal file
@@ -0,0 +1,6 @@
|
||||
____ ___________
|
||||
/ __ \/_ __/ ___/
|
||||
/ / / / / / \__ \
|
||||
/ /_/ / / / ___/ /
|
||||
\____/ /_/ /____/
|
||||
|
||||
6
ct/headers/palmr
Normal file
6
ct/headers/palmr
Normal file
@@ -0,0 +1,6 @@
|
||||
____ __
|
||||
/ __ \____ _/ /___ ___ _____
|
||||
/ /_/ / __ `/ / __ `__ \/ ___/
|
||||
/ ____/ /_/ / / / / / / / /
|
||||
/_/ \__,_/_/_/ /_/ /_/_/
|
||||
|
||||
6
ct/headers/swizzin
Normal file
6
ct/headers/swizzin
Normal file
@@ -0,0 +1,6 @@
|
||||
_____ _ _
|
||||
/ ___/ __(_)_______ (_)___
|
||||
\__ \ | /| / / /_ /_ / / / __ \
|
||||
___/ / |/ |/ / / / /_/ /_/ / / / /
|
||||
/____/|__/|__/_/ /___/___/_/_/ /_/
|
||||
|
||||
6
ct/headers/tracktor
Normal file
6
ct/headers/tracktor
Normal file
@@ -0,0 +1,6 @@
|
||||
__ __ __
|
||||
/ /__________ ______/ /__/ /_____ _____
|
||||
/ __/ ___/ __ `/ ___/ //_/ __/ __ \/ ___/
|
||||
/ /_/ / / /_/ / /__/ ,< / /_/ /_/ / /
|
||||
\__/_/ \__,_/\___/_/|_|\__/\____/_/
|
||||
|
||||
6
ct/headers/tududi
Normal file
6
ct/headers/tududi
Normal file
@@ -0,0 +1,6 @@
|
||||
______ __ ___
|
||||
/_ __/_ ______/ /_ ______/ (_)
|
||||
/ / / / / / __ / / / / __ / /
|
||||
/ / / /_/ / /_/ / /_/ / /_/ / /
|
||||
/_/ \__,_/\__,_/\__,_/\__,_/_/
|
||||
|
||||
6
ct/headers/twingate-connector
Normal file
6
ct/headers/twingate-connector
Normal file
@@ -0,0 +1,6 @@
|
||||
______ _ __ ______ __
|
||||
/_ __/ __(_)___ ____ _____ _/ /____ / ____/___ ____ ____ ___ _____/ /_____ _____
|
||||
/ / | | /| / / / __ \/ __ `/ __ `/ __/ _ \______/ / / __ \/ __ \/ __ \/ _ \/ ___/ __/ __ \/ ___/
|
||||
/ / | |/ |/ / / / / / /_/ / /_/ / /_/ __/_____/ /___/ /_/ / / / / / / / __/ /__/ /_/ /_/ / /
|
||||
/_/ |__/|__/_/_/ /_/\__, /\__,_/\__/\___/ \____/\____/_/ /_/_/ /_/\___/\___/\__/\____/_/
|
||||
/____/
|
||||
@@ -31,8 +31,7 @@ function update_script() {
|
||||
mv /opt/"${APP}_version.txt" ~/.headscale
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.headscale 2>/dev/null)" ]] || [[ ! -f ~/.headscale ]]; then
|
||||
if check_for_gh_release "headscale" "juanfont/headscale"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop headscale
|
||||
msg_ok "Stopped ${APP}"
|
||||
@@ -41,12 +40,9 @@ function update_script() {
|
||||
fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
# Temporary fix until headscale project resolves service getting disabled on updates.
|
||||
systemctl enable -q --now headscale
|
||||
msg_ok "Started ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
65
ct/healthchecks.sh
Normal file
65
ct/healthchecks.sh
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://healthchecks.io/
|
||||
|
||||
APP="healthchecks"
|
||||
var_tags="${var_tags:-monitoring}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-5}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -d /opt/healthchecks ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "healthchecks" "healthchecks/healthchecks"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop healthchecks
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
setup_uv
|
||||
fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
|
||||
|
||||
msg_info "Updating $APP"
|
||||
cd /opt/healthchecks
|
||||
mkdir -p /opt/healthchecks/static-collected/
|
||||
$STD uv pip install wheel gunicorn -r requirements.txt --system
|
||||
$STD uv run -- python manage.py makemigrations
|
||||
$STD uv run -- python manage.py migrate --noinput
|
||||
$STD uv run -- python manage.py collectstatic --noinput
|
||||
$STD uv run -- python manage.py compress
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start healthchecks
|
||||
systemctl restart caddy
|
||||
msg_ok "Started $APP"
|
||||
msg_ok "Update Successful"
|
||||
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}https://${IP}${CL}"
|
||||
@@ -1,85 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 tteck
|
||||
# Author: MickLesk (Canbiz) & vhsdream
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://hoarder.app/
|
||||
|
||||
APP="Hoarder"
|
||||
var_tags="${var_tags:-bookmark}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-4096}"
|
||||
var_disk="${var_disk:-10}"
|
||||
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/hoarder ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/hoarder-app/hoarder/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
PREV_RELEASE=$(cat /opt/${APP}_version.txt)
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "${PREV_RELEASE}" ]]; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop hoarder-web hoarder-workers hoarder-browser
|
||||
msg_ok "Stopped Services"
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
if [[ $(corepack -v) < "0.31.0" ]]; then
|
||||
$STD npm install -g corepack@0.31.0
|
||||
fi
|
||||
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
|
||||
$STD apt-get install -y graphicsmagick ghostscript
|
||||
fi
|
||||
cd /opt
|
||||
if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
|
||||
mkdir -p /etc/hoarder
|
||||
mv /opt/hoarder/.env /etc/hoarder/hoarder.env
|
||||
fi
|
||||
rm -rf /opt/hoarder
|
||||
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
||||
$STD unzip v"${RELEASE}".zip
|
||||
mv karakeep-"${RELEASE}" /opt/hoarder
|
||||
cd /opt/hoarder/apps/web
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm exec next build --experimental-build-mode compile
|
||||
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
|
||||
cd /opt/hoarder/apps/workers
|
||||
$STD pnpm install --frozen-lockfile
|
||||
export DATA_DIR=/opt/hoarder_data
|
||||
cd /opt/hoarder/packages/db
|
||||
$STD pnpm migrate
|
||||
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start hoarder-browser hoarder-workers hoarder-web
|
||||
msg_ok "Started Services"
|
||||
msg_info "Cleaning up"
|
||||
rm -R /opt/v"${RELEASE}".zip
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||
@@ -81,9 +81,8 @@ EOF
|
||||
msg_ok "Updated Services"
|
||||
systemctl daemon-reload
|
||||
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 [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
|
||||
|
||||
if check_for_gh_release "homarr" "homarr-labs/homarr"; then
|
||||
msg_info "Stopping Services (Patience)"
|
||||
systemctl stop homarr
|
||||
msg_ok "Services Stopped"
|
||||
@@ -98,7 +97,6 @@ EOF
|
||||
$STD apt upgrade nodejs -y
|
||||
msg_ok "Updated Nodejs"
|
||||
|
||||
$STD command -v jq || $STD apt-get update && $STD apt-get install -y jq
|
||||
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]')"
|
||||
setup_nodejs
|
||||
@@ -106,7 +104,7 @@ EOF
|
||||
rm -rf /opt/homarr
|
||||
fetch_and_deploy_gh_release "homarr" "homarr-labs/homarr"
|
||||
|
||||
msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
|
||||
msg_info "Updating and rebuilding ${APP} (Patience)"
|
||||
rm /opt/run_homarr.sh
|
||||
cat <<'EOF' >/opt/run_homarr.sh
|
||||
#!/bin/bash
|
||||
@@ -153,7 +151,6 @@ EOF
|
||||
|
||||
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"
|
||||
@@ -164,8 +161,6 @@ EOF
|
||||
if [[ "$choice" =~ ^[Yy]$ ]]; then
|
||||
reboot
|
||||
fi
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -1,165 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://www.home-assistant.io/
|
||||
|
||||
APP="Home Assistant-Core"
|
||||
var_tags="${var_tags:-automation;smarthome}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-10}"
|
||||
var_os="${var_os:-ubuntu}"
|
||||
var_version="${var_version:-24.10}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
if ! lsb_release -d | grep -q "Ubuntu 24.10"; then
|
||||
msg_error "Wrong OS detected. This script only supports Ubuntu 24.10."
|
||||
msg_error "Read Guide: https://github.com/community-scripts/ProxmoxVE/discussions/1549"
|
||||
exit 1
|
||||
fi
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /srv/homeassistant ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit 1
|
||||
fi
|
||||
setup_uv
|
||||
IP=$(hostname -I | awk '{print $1}')
|
||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
||||
"1" "Update Core" ON \
|
||||
"2" "Install HACS" OFF \
|
||||
"3" "Install FileBrowser" OFF \
|
||||
3>&1 1>&2 2>&3)
|
||||
|
||||
if [ "$UPD" == "1" ]; then
|
||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SELECT BRANCH" --yesno "Use Beta Branch?" 10 58); then
|
||||
clear
|
||||
header_info
|
||||
echo -e "${GN}Updating to Beta Version${CL}"
|
||||
BR="--pre"
|
||||
else
|
||||
clear
|
||||
header_info
|
||||
echo -e "${GN}Updating to Stable Version${CL}"
|
||||
BR=""
|
||||
fi
|
||||
|
||||
msg_info "Stopping Home Assistant"
|
||||
systemctl stop homeassistant
|
||||
msg_ok "Stopped Home Assistant"
|
||||
|
||||
if [[ -d /srv/homeassistant/bin ]]; then
|
||||
msg_info "Migrating to .venv-based structure"
|
||||
$STD source /srv/homeassistant/bin/activate
|
||||
PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
|
||||
$STD deactivate
|
||||
mv /srv/homeassistant "/srv/homeassistant_backup_$PY_VER"
|
||||
mkdir -p /srv/homeassistant
|
||||
cd /srv/homeassistant
|
||||
|
||||
$STD uv python install 3.13
|
||||
UV_PYTHON=$(uv python list | awk '/3\.13\.[0-9]+.*\/root\/.local/ {print $2; exit}')
|
||||
if [[ -z "$UV_PYTHON" ]]; then
|
||||
msg_error "No local Python 3.13 found via uv"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$STD uv venv .venv --python "$UV_PYTHON"
|
||||
$STD source .venv/bin/activate
|
||||
$STD uv pip install homeassistant mysqlclient psycopg2-binary isal webrtcvad wheel
|
||||
mkdir -p /root/.homeassistant
|
||||
msg_ok "Migration complete"
|
||||
else
|
||||
source /srv/homeassistant/.venv/bin/activate
|
||||
fi
|
||||
|
||||
msg_info "Updating Home Assistant"
|
||||
$STD uv pip install $BR --upgrade homeassistant
|
||||
msg_ok "Updated Home Assistant"
|
||||
|
||||
msg_info "Starting Home Assistant"
|
||||
if [[ -f /etc/systemd/system/homeassistant.service ]] && grep -q "/srv/homeassistant/bin/python3" /etc/systemd/system/homeassistant.service; then
|
||||
sed -i 's|ExecStart=/srv/homeassistant/bin/python3|ExecStart=/srv/homeassistant/.venv/bin/python3|' /etc/systemd/system/homeassistant.service
|
||||
sed -i 's|PATH=/srv/homeassistant/bin|PATH=/srv/homeassistant/.venv/bin|' /etc/systemd/system/homeassistant.service
|
||||
$STD systemctl daemon-reload
|
||||
fi
|
||||
|
||||
systemctl start homeassistant
|
||||
sleep 5
|
||||
msg_ok "Started Home Assistant"
|
||||
msg_ok "Update Successful"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$UPD" == "2" ]; then
|
||||
msg_info "Installing Home Assistant Community Store (HACS)"
|
||||
$STD apt update
|
||||
cd /root/.homeassistant
|
||||
$STD bash <(curl -fsSL https://get.hacs.xyz)
|
||||
msg_ok "Installed Home Assistant Community Store (HACS)"
|
||||
echo -e "\n Reboot Home Assistant and clear browser cache then Add HACS integration.\n"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$UPD" == "3" ]; then
|
||||
set +Eeuo pipefail
|
||||
read -r -p "${TAB3}Would you like to use No Authentication? <y/N> " prompt
|
||||
msg_info "Installing FileBrowser"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')
|
||||
$STD curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin
|
||||
|
||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
$STD filebrowser config init -a '0.0.0.0'
|
||||
$STD filebrowser config set -a '0.0.0.0'
|
||||
$STD filebrowser config set --auth.method=noauth
|
||||
$STD filebrowser users add ID 1 --perm.admin
|
||||
else
|
||||
$STD filebrowser config init -a '0.0.0.0'
|
||||
$STD filebrowser config set -a '0.0.0.0'
|
||||
$STD filebrowser users add admin helper-scripts.com --perm.admin
|
||||
fi
|
||||
msg_ok "Installed FileBrowser"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/filebrowser.service
|
||||
[Unit]
|
||||
Description=Filebrowser
|
||||
After=network-online.target
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
WorkingDirectory=/root/
|
||||
ExecStart=/usr/local/bin/filebrowser -r /root/.homeassistant
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
EOF
|
||||
|
||||
systemctl enable --now -q filebrowser.service
|
||||
msg_ok "Created Service"
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "FileBrowser should be reachable by going to the following URL.
|
||||
${BL}http://$IP:8080${CL} admin|helper-scripts.com\n"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
|
||||
@@ -22,34 +22,34 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /opt/homebox ]]; then
|
||||
if [[ ! -f /etc/systemd/system/homebox.service ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/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
|
||||
if [[ -x /opt/homebox ]]; then
|
||||
sed -i 's|WorkingDirectory=/opt$|WorkingDirectory=/opt/homebox|' /etc/systemd/system/homebox.service
|
||||
sed -i 's|ExecStart=/opt/homebox$|ExecStart=/opt/homebox/homebox|' /etc/systemd/system/homebox.service
|
||||
sed -i 's|EnvironmentFile=/opt/.env$|EnvironmentFile=/opt/homebox/.env|' /etc/systemd/system/homebox.service
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
|
||||
if check_for_gh_release "homebox" "sysadminsmedia/homebox"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop homebox
|
||||
msg_ok "${APP} Stopped"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
cd /opt
|
||||
rm -rf homebox_bak
|
||||
rm -rf /tmp/homebox.tar.gz
|
||||
mv homebox homebox_bak
|
||||
curl -fsSL "https://github.com/sysadminsmedia/homebox/releases/download/${RELEASE}/homebox_Linux_x86_64.tar.gz" -o "/tmp/homebox.tar.gz"
|
||||
tar -xzf /tmp/homebox.tar.gz -C /opt
|
||||
chmod +x /opt/homebox
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated Homebox"
|
||||
if [ -f /opt/homebox ] && [ -x /opt/homebox ]; then
|
||||
rm -f /opt/homebox
|
||||
fi
|
||||
fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_x86_64.tar.gz"
|
||||
chmod +x /opt/homebox/homebox
|
||||
[ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
|
||||
[ -d /opt/.data ] && mv /opt/.data /opt/homebox/.data
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start homebox
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
@@ -61,4 +61,4 @@ description
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7745${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7745${CL}"
|
||||
|
||||
@@ -27,14 +27,9 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
|
||||
if ! command -v npm >/dev/null 2>&1; then
|
||||
echo "Installing NPM..."
|
||||
$STD apt-get install -y npm
|
||||
$STD npm install -g pnpm
|
||||
echo "Installed NPM..."
|
||||
fi
|
||||
fi
|
||||
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
|
||||
|
||||
# ensure that jq is installed
|
||||
if ! command -v jq &>/dev/null; then
|
||||
$STD msg_info "Installing jq..."
|
||||
|
||||
71
ct/hortusfox.sh
Normal file
71
ct/hortusfox.sh
Normal file
@@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: MickLesk (CanbiZ)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/danielbrendel/hortusfox-web
|
||||
|
||||
APP="HortusFox"
|
||||
var_tags="${var_tags:-plants}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-5}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-12}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/hortusfox ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "danielbrendel" "hortusfox-web"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop apache2
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up current HortusFox installation"
|
||||
cd /opt
|
||||
mv /opt/hortusfox/ /opt/hortusfox-backup
|
||||
msg_ok "Backed up current HortusFox installation"
|
||||
|
||||
fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web"
|
||||
|
||||
msg_info "Updating HortusFox"
|
||||
cd /opt/hortusfox
|
||||
mv /opt/hortusfox-backup/.env /opt/hortusfox/.env
|
||||
$STD composer install --no-dev --optimize-autoloader
|
||||
$STD php asatru migrate --no-interaction
|
||||
$STD php asatru plants:attributes
|
||||
$STD php asatru calendar:classes
|
||||
chown -R www-data:www-data /opt/hortusfox
|
||||
msg_ok "Updated HortusFox"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start apache2
|
||||
msg_ok "Started Service"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -r /opt/hortusfox-backup
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||
@@ -30,26 +30,24 @@ function update_script() {
|
||||
fi
|
||||
|
||||
setup_uv
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
|
||||
if [[ -f ~/.huntarr && "${RELEASE}" == "$(cat ~/.huntarr)" ]]; then
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
exit
|
||||
|
||||
if check_for_gh_release "huntarr" "plexguide/Huntarr.io"; then
|
||||
msg_info "Stopping huntarr"
|
||||
systemctl stop huntarr
|
||||
msg_ok "Stopped huntarr"
|
||||
|
||||
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
|
||||
|
||||
msg_info "Configuring $APP"
|
||||
cd /opt/huntarr
|
||||
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
|
||||
msg_ok "Configured $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start huntarr
|
||||
msg_ok "Started $APP"
|
||||
msg_ok "Updated $APP"
|
||||
fi
|
||||
msg_info "Stopping huntarr service"
|
||||
systemctl stop huntarr
|
||||
msg_ok "Stopped huntarr service"
|
||||
|
||||
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
|
||||
msg_info "Configuring $APP"
|
||||
cd /opt/huntarr
|
||||
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
|
||||
msg_ok "Configured $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start huntarr
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
265
ct/immich.sh
265
ct/immich.sh
@@ -29,6 +29,8 @@ function update_script() {
|
||||
fi
|
||||
|
||||
setup_uv
|
||||
PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
|
||||
|
||||
STAGING_DIR=/opt/staging
|
||||
BASE_DIR=${STAGING_DIR}/base-images
|
||||
@@ -52,125 +54,151 @@ function update_script() {
|
||||
if [[ -f ~/.immich_library_revisions ]]; then
|
||||
libraries=("libjxl" "libheif" "libraw" "imagemagick" "libvips")
|
||||
cd "$BASE_DIR"
|
||||
msg_info "Checking for updates to custom image-processing libraries"
|
||||
$STD git pull
|
||||
for library in "${libraries[@]}"; do
|
||||
compile_"$library"
|
||||
done
|
||||
msg_ok "Image-processing libraries updated"
|
||||
msg_ok "Image-processing libraries up to date"
|
||||
fi
|
||||
RELEASE="1.136.0"
|
||||
#RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
exit
|
||||
fi
|
||||
msg_info "Stopping ${APP} services"
|
||||
systemctl stop immich-web
|
||||
systemctl stop immich-ml
|
||||
msg_ok "Stopped ${APP}"
|
||||
INSTALL_DIR="/opt/${APP}"
|
||||
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
|
||||
SRC_DIR="${INSTALL_DIR}/source"
|
||||
APP_DIR="${INSTALL_DIR}/app"
|
||||
ML_DIR="${APP_DIR}/machine-learning"
|
||||
GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
|
||||
RELEASE="1.140.1"
|
||||
if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop immich-web
|
||||
systemctl stop immich-ml
|
||||
msg_ok "Stopped ${APP}"
|
||||
INSTALL_DIR="/opt/${APP}"
|
||||
UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
|
||||
SRC_DIR="${INSTALL_DIR}/source"
|
||||
APP_DIR="${INSTALL_DIR}/app"
|
||||
ML_DIR="${APP_DIR}/machine-learning"
|
||||
GEO_DIR="${INSTALL_DIR}/geodata"
|
||||
VCHORD_RELEASE="0.4.3"
|
||||
# VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
|
||||
|
||||
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
|
||||
msg_info "Updating VectorChord"
|
||||
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
|
||||
$STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
|
||||
chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
|
||||
$STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
|
||||
sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
|
||||
-e "/vchordrq.prewarm_dim/d" |
|
||||
sudo -u postgres psql
|
||||
if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
|
||||
msg_info "Updating VectorChord"
|
||||
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
|
||||
$STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
|
||||
chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
|
||||
$STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
|
||||
sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
|
||||
-e "/vchordrq.prewarm_dim/d" |
|
||||
sudo -u postgres psql
|
||||
fi
|
||||
curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
|
||||
$STD apt install -y ./vchord.deb
|
||||
$STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
|
||||
systemctl restart postgresql
|
||||
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
|
||||
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX face_index;"
|
||||
$STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
|
||||
fi
|
||||
echo "$VCHORD_RELEASE" >~/.vchord_version
|
||||
rm ./vchord.deb
|
||||
msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
|
||||
fi
|
||||
curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
|
||||
$STD apt install -y ./vchord.deb
|
||||
$STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
|
||||
systemctl restart postgresql
|
||||
if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
|
||||
$STD sudo -u postgres psql -d immich -c "REINDEX DATABASE;"
|
||||
|
||||
cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
|
||||
if grep -qs "set -a" "$APP_DIR"/bin/start.sh; then
|
||||
cp "$APP_DIR"/bin/start.sh "$INSTALL_DIR"
|
||||
else
|
||||
cat <<EOF >"$INSTALL_DIR"/start.sh
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -a
|
||||
. ${INSTALL_DIR}/.env
|
||||
set +a
|
||||
|
||||
/usr/bin/node ${APP_DIR}/dist/main.js "\$@"
|
||||
EOF
|
||||
chmod +x "$INSTALL_DIR"/start.sh
|
||||
fi
|
||||
echo "$VCHORD_RELEASE" >~/.vchord_version
|
||||
rm ./vchord.deb
|
||||
msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
|
||||
|
||||
(
|
||||
shopt -s dotglob
|
||||
rm -rf "${APP_DIR:?}"/*
|
||||
)
|
||||
|
||||
rm -rf "$SRC_DIR"
|
||||
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
|
||||
|
||||
msg_info "Updating ${APP} web and microservices"
|
||||
cd "$SRC_DIR"/server
|
||||
if [[ "$RELEASE" == "1.135.1" ]]; then
|
||||
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
|
||||
fi
|
||||
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
export CI=1
|
||||
corepack enable
|
||||
|
||||
# server build
|
||||
export SHARP_IGNORE_GLOBAL_LIBVIPS=true
|
||||
$STD pnpm --filter immich --frozen-lockfile build
|
||||
unset SHARP_IGNORE_GLOBAL_LIBVIPS
|
||||
export SHARP_FORCE_GLOBAL_LIBVIPS=true
|
||||
$STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR"
|
||||
cp "$APP_DIR"/package.json "$APP_DIR"/bin
|
||||
sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
|
||||
|
||||
# openapi & web build
|
||||
cd "$SRC_DIR"
|
||||
$STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
|
||||
$STD pnpm --filter @immich/sdk --filter immich-web build
|
||||
cp -a web/build "$APP_DIR"/www
|
||||
cp LICENSE "$APP_DIR"
|
||||
|
||||
# cli build
|
||||
$STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install
|
||||
$STD pnpm --filter @immich/sdk --filter @immich/cli build
|
||||
$STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
|
||||
cd "$APP_DIR"
|
||||
mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
|
||||
msg_ok "Updated ${APP} web and microservices"
|
||||
|
||||
cd "$SRC_DIR"/machine-learning
|
||||
mkdir -p "$ML_DIR"
|
||||
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
||||
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
|
||||
if [[ -f ~/.openvino ]]; then
|
||||
msg_info "Updating HW-accelerated machine-learning"
|
||||
/usr/local/bin/uv -q sync --extra openvino --no-cache --active
|
||||
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
|
||||
msg_ok "Updated HW-accelerated machine-learning"
|
||||
else
|
||||
msg_info "Updating machine-learning"
|
||||
/usr/local/bin/uv -q sync --extra cpu --no-cache --active
|
||||
msg_ok "Updated machine-learning"
|
||||
fi
|
||||
cd "$SRC_DIR"
|
||||
cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
|
||||
mv "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
|
||||
if [[ -f ~/.openvino ]]; then
|
||||
sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
|
||||
fi
|
||||
ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
|
||||
cd "$APP_DIR"
|
||||
grep -rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
|
||||
grep -rlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
|
||||
sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
|
||||
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
|
||||
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
|
||||
ln -s "$GEO_DIR" "$APP_DIR"
|
||||
|
||||
chown -R immich:immich "$INSTALL_DIR"
|
||||
if [[ ! -f ~/.debian_version.bak ]]; then
|
||||
cp /etc/debian_version ~/.debian_version.bak
|
||||
sed -i 's/.*/13.0/' /etc/debian_version
|
||||
fi
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
systemctl restart immich-ml immich-web
|
||||
fi
|
||||
|
||||
cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
|
||||
rm -rf "${APP_DIR:?}"/*
|
||||
mkdir -p "$ML_DIR"
|
||||
rm -rf "$SRC_DIR"
|
||||
|
||||
fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v1.136.0" "$SRC_DIR"
|
||||
|
||||
msg_info "Updating ${APP} web and microservices"
|
||||
cd "$SRC_DIR"/server
|
||||
if [[ "$RELEASE" == "1.135.1" ]]; then
|
||||
rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
|
||||
fi
|
||||
$STD npm install -g node-gyp node-pre-gyp
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
$STD npm prune --omit=dev --omit=optional
|
||||
cd "$SRC_DIR"/open-api/typescript-sdk
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
cd "$SRC_DIR"/web
|
||||
$STD npm ci
|
||||
$STD npm run build
|
||||
cd "$SRC_DIR"
|
||||
cp -a server/{node_modules,dist,bin,resources,package.json,package-lock.json,bin/start.sh} "$APP_DIR"/
|
||||
cp -a web/build "$APP_DIR"/www
|
||||
cp LICENSE "$APP_DIR"
|
||||
cd "$APP_DIR"
|
||||
export SHARP_FORCE_GLOBAL_LIBVIPS=true
|
||||
$STD npm install sharp
|
||||
rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
|
||||
msg_ok "Updated ${APP} web and microservices"
|
||||
|
||||
cd "$SRC_DIR"/machine-learning
|
||||
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
|
||||
$STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
|
||||
if [[ -f ~/.openvino ]]; then
|
||||
msg_info "Updating HW-accelerated machine-learning"
|
||||
/usr/local/bin/uv -q sync --extra openvino --no-cache --active
|
||||
patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
|
||||
msg_ok "Updated HW-accelerated machine-learning"
|
||||
else
|
||||
msg_info "Updating machine-learning"
|
||||
/usr/local/bin/uv -q sync --extra cpu --no-cache --active
|
||||
msg_ok "Updated machine-learning"
|
||||
fi
|
||||
cd "$SRC_DIR"
|
||||
cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
|
||||
mv "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
|
||||
if [[ -f ~/.openvino ]]; then
|
||||
sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
|
||||
fi
|
||||
ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
|
||||
cd "$APP_DIR"
|
||||
grep -Rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
|
||||
grep -RlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
|
||||
sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
|
||||
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
|
||||
ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
|
||||
ln -s "$GEO_DIR" "$APP_DIR"
|
||||
|
||||
msg_info "Updating Immich CLI"
|
||||
$STD npm i -g @immich/cli
|
||||
msg_ok "Updated Immich CLI"
|
||||
|
||||
chown -R immich:immich "$INSTALL_DIR"
|
||||
echo "$RELEASE" >/opt/"${APP}"_version.txt
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
systemctl restart immich-ml immich-web
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -178,7 +206,8 @@ function compile_libjxl() {
|
||||
SOURCE=${SOURCE_DIR}/libjxl
|
||||
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
|
||||
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
|
||||
: "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
|
||||
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
|
||||
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
|
||||
if [[ "${update:-}" ]] || [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||
msg_info "Recompiling libjxl"
|
||||
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
||||
@@ -214,6 +243,7 @@ function compile_libjxl() {
|
||||
$STD make clean
|
||||
cd "$STAGING_DIR"
|
||||
rm -rf "$SOURCE"/{build,third_party}
|
||||
sed -i "s/libjxl: .*$/libjxl: $LIBJXL_REVISION/" ~/.immich_library_revisions
|
||||
msg_ok "Recompiled libjxl"
|
||||
fi
|
||||
}
|
||||
@@ -224,7 +254,8 @@ function compile_libheif() {
|
||||
$STD apt-get install -y libaom-dev
|
||||
local update="required"
|
||||
fi
|
||||
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
|
||||
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
|
||||
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
|
||||
if [[ "${update:-}" ]] || [[ "$LIBHEIF_REVISION" != "$(grep 'libheif' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||
msg_info "Recompiling libheif"
|
||||
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
||||
@@ -248,6 +279,7 @@ function compile_libheif() {
|
||||
$STD make clean
|
||||
cd "$STAGING_DIR"
|
||||
rm -rf "$SOURCE"/build
|
||||
sed -i "s/libheif: .*$/libheif: $LIBHEIF_REVISION/" ~/.immich_library_revisions
|
||||
msg_ok "Recompiled libheif"
|
||||
fi
|
||||
}
|
||||
@@ -255,7 +287,8 @@ function compile_libheif() {
|
||||
function compile_libraw() {
|
||||
SOURCE=${SOURCE_DIR}/libraw
|
||||
local update
|
||||
: "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
|
||||
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
|
||||
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
|
||||
if [[ "${update:-}" ]] || [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||
msg_info "Recompiling libraw"
|
||||
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
||||
@@ -269,13 +302,15 @@ function compile_libraw() {
|
||||
ldconfig /usr/local/lib
|
||||
$STD make clean
|
||||
cd "$STAGING_DIR"
|
||||
sed -i "s/libraw: .*$/libraw: $LIBRAW_REVISION/" ~/.immich_library_revisions
|
||||
msg_ok "Recompiled libraw"
|
||||
fi
|
||||
}
|
||||
|
||||
function compile_imagemagick() {
|
||||
SOURCE=$SOURCE_DIR/imagemagick
|
||||
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
|
||||
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
|
||||
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
|
||||
if [[ "${update:-}" ]] || [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
|
||||
msg_info "Recompiling ImageMagick"
|
||||
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
|
||||
@@ -288,6 +323,7 @@ function compile_imagemagick() {
|
||||
ldconfig /usr/local/lib
|
||||
$STD make clean
|
||||
cd "$STAGING_DIR"
|
||||
sed -i "s/imagemagick: .*$/imagemagick: $IMAGEMAGICK_REVISION/" ~/.immich_library_revisions
|
||||
msg_ok "Recompiled ImageMagick"
|
||||
fi
|
||||
}
|
||||
@@ -308,6 +344,7 @@ function compile_libvips() {
|
||||
ldconfig /usr/local/lib
|
||||
cd "$STAGING_DIR"
|
||||
rm -rf "$SOURCE"/build
|
||||
sed -i "s/libvips: .*$/libvips: $LIBVIPS_REVISION/" ~/.immich_library_revisions
|
||||
msg_ok "Recompiled libvips"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -27,29 +27,17 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if check_for_gh_release "inspircd" "inspircd/inspircd"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop inspircd
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb" -o $(basename "https://github.com/inspircd/inspircd/releases/download/v${RELEASE}/inspircd_${RELEASE}.deb12u2_amd64.deb")
|
||||
$STD apt-get install "./inspircd_${RELEASE}.deb12u2_amd64.deb" -y
|
||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
fetch_and_deploy_gh_release "inspircd" "inspircd/inspircd" "binary"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start inspircd
|
||||
msg_ok "Started Service"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opt/inspircd_${RELEASE}.deb12u2_amd64.deb
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,19 +27,25 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://github.com/Jackett/Jackett/releases/latest | grep "title>Release" | cut -d " " -f 4)
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
msg_info "Updating ${APP}"
|
||||
curl -fsSL "https://github.com/Jackett/Jackett/releases/download/$RELEASE/Jackett.Binaries.LinuxAMDx64.tar.gz" -o $(basename "https://github.com/Jackett/Jackett/releases/download/$RELEASE/Jackett.Binaries.LinuxAMDx64.tar.gz")
|
||||
|
||||
if [ ! -f /opt/.env ]; then
|
||||
sed -i 's|^Environment="DisableRootWarning=true"$|EnvironmentFile="/opt/.env"|' /etc/systemd/system/jackett.service
|
||||
cat <<EOF >/opt/.env
|
||||
DisableRootWarning=true
|
||||
EOF
|
||||
fi
|
||||
if check_for_gh_release "Jackett" "Jackett/Jackett"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop jackett
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
rm -rf /opt/Jackett
|
||||
tar -xzf Jackett.Binaries.LinuxAMDx64.tar.gz -C /opt
|
||||
rm -rf Jackett.Binaries.LinuxAMDx64.tar.gz
|
||||
fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start jackett
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
46
ct/jeedom.sh
Normal file
46
ct/jeedom.sh
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: Mips2648
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://jeedom.com/
|
||||
|
||||
APP="Jeedom"
|
||||
var_tags="${var_tags:-automation;smarthome}"
|
||||
var_cpu="${var_cpu:-2}"
|
||||
var_ram="${var_ram:-2048}"
|
||||
var_disk="${var_disk:-16}"
|
||||
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 /var/www/html/core/config/version ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating OS"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
msg_ok "OS updated, you can now update Jeedom from the Web UI."
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
build_container
|
||||
description
|
||||
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||
@@ -28,10 +28,10 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/Casvt/Kapowarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat $HOME/.kapowarr)" ]] || [[ ! -f $HOME/.kapowarr ]]; then
|
||||
setup_uv
|
||||
|
||||
|
||||
setup_uv
|
||||
|
||||
if check_for_gh_release "kapowarr" "Casvt/Kapowarr"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop kapowarr
|
||||
msg_ok "Stopped $APP"
|
||||
@@ -41,17 +41,15 @@ function update_script() {
|
||||
msg_ok "Backup Created"
|
||||
|
||||
fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
|
||||
msg_info "Updating $APP"
|
||||
mv /opt/db /opt/kapowarr
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start kapowarr
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
130
ct/karakeep.sh
130
ct/karakeep.sh
@@ -28,73 +28,71 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ -f ~/.karakeep && "$RELEASE" == "$(cat ~/.karakeep)" ]]; then
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
exit
|
||||
if check_for_gh_release "karakeep" "karakeep-app/karakeep"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop karakeep-web karakeep-workers karakeep-browser
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Updating yt-dlp"
|
||||
$STD yt-dlp --update-to nightly
|
||||
msg_ok "Updated yt-dlp"
|
||||
|
||||
msg_info "Prepare update"
|
||||
if [[ -f /opt/${APP}_version.txt && "$(cat /opt/${APP}_version.txt)" < "0.23.0" ]]; then
|
||||
$STD apt-get install -y graphicsmagick ghostscript
|
||||
fi
|
||||
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
|
||||
mkdir -p /etc/karakeep
|
||||
mv /opt/karakeep/.env /etc/karakeep/karakeep.env
|
||||
fi
|
||||
rm -rf /opt/karakeep
|
||||
msg_ok "Update prepared"
|
||||
|
||||
if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
|
||||
sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
|
||||
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
|
||||
if command -v corepack >/dev/null; then
|
||||
$STD corepack disable
|
||||
fi
|
||||
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
corepack enable
|
||||
export PUPPETEER_SKIP_DOWNLOAD="true"
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
export CI="true"
|
||||
cd /opt/karakeep/apps/web
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm build
|
||||
cd /opt/karakeep/apps/workers
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm build
|
||||
cd /opt/karakeep/apps/cli
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm build
|
||||
DATA_DIR="$(sed -n '/^DATA_DIR/p' /etc/karakeep/karakeep.env | awk -F= '{print $2}' | tr -d '="=')"
|
||||
export DATA_DIR="${DATA_DIR:-/opt/karakeep_data}"
|
||||
cd /opt/karakeep/packages/db
|
||||
$STD pnpm migrate
|
||||
$STD pnpm store prune
|
||||
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE}/" /etc/karakeep/karakeep.env
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start karakeep-browser karakeep-workers karakeep-web
|
||||
msg_ok "Started Services"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get autoremove -y
|
||||
$STD apt-get autoclean -y
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop karakeep-web karakeep-workers karakeep-browser
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
msg_info "Updating yt-dlp"
|
||||
$STD yt-dlp --update-to nightly
|
||||
msg_ok "Updated yt-dlp"
|
||||
|
||||
msg_info "Prepare update"
|
||||
if [[ -f /opt/${APP}_version.txt && "$(cat /opt/${APP}_version.txt)" < "0.23.0" ]]; then
|
||||
$STD apt-get install -y graphicsmagick ghostscript
|
||||
fi
|
||||
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
|
||||
mkdir -p /etc/karakeep
|
||||
mv /opt/karakeep/.env /etc/karakeep/karakeep.env
|
||||
fi
|
||||
rm -rf /opt/karakeep
|
||||
msg_ok "Update prepared"
|
||||
|
||||
if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
|
||||
sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
|
||||
if command -v corepack >/dev/null; then
|
||||
$STD corepack disable
|
||||
fi
|
||||
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
|
||||
NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
corepack enable
|
||||
export PUPPETEER_SKIP_DOWNLOAD="true"
|
||||
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
|
||||
export NEXT_TELEMETRY_DISABLED=1
|
||||
export CI="true"
|
||||
cd /opt/karakeep/apps/web
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm build
|
||||
cd /opt/karakeep/apps/workers
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm build
|
||||
cd /opt/karakeep/apps/cli
|
||||
$STD pnpm install --frozen-lockfile
|
||||
$STD pnpm build
|
||||
DATA_DIR="$(sed -n '/^DATA_DIR/p' /etc/karakeep/karakeep.env | awk -F= '{print $2}')"
|
||||
export DATA_DIR="${DATA_DIR:-/opt/karakeep_data}"
|
||||
cd /opt/karakeep/packages/db
|
||||
$STD pnpm migrate
|
||||
$STD pnpm store prune
|
||||
sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
|
||||
msg_info "Starting Services"
|
||||
systemctl start karakeep-browser karakeep-workers karakeep-web
|
||||
msg_ok "Started Services"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get autoremove -y
|
||||
$STD apt-get autoclean -y
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 tteck
|
||||
# Author: tteck (tteckster)
|
||||
# Author: tteck (tteckster) | Co-Author: remz1337
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://www.keycloak.org/
|
||||
|
||||
@@ -23,34 +23,43 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /etc/systemd/system/keycloak.service ]]; then
|
||||
if [[ ! -d /opt/keycloak ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating ${APP} LXC"
|
||||
if check_for_gh_release "keycloak" "keycloak/keycloak"; then
|
||||
msg_info "Stopping Keycloak"
|
||||
systemctl stop keycloak
|
||||
msg_ok "Stopped Keycloak"
|
||||
|
||||
msg_info "Updating packages"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
msg_info "Updating packages"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
msg_ok "Updated packages"
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/keycloak/keycloak/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
msg_info "Updating Keycloak to v$RELEASE"
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz" -o $(basename "https://github.com/keycloak/keycloak/releases/download/$RELEASE/keycloak-$RELEASE.tar.gz")
|
||||
mv keycloak keycloak.old
|
||||
tar -xzf keycloak-$RELEASE.tar.gz
|
||||
cp -r keycloak.old/conf keycloak-$RELEASE
|
||||
cp -r keycloak.old/providers keycloak-$RELEASE
|
||||
cp -r keycloak.old/themes keycloak-$RELEASE
|
||||
mv keycloak-$RELEASE keycloak
|
||||
msg_info "Backup old Keycloak"
|
||||
cd /opt
|
||||
mv keycloak keycloak.old
|
||||
msg_ok "Backup done"
|
||||
|
||||
msg_info "Delete temporary installation files"
|
||||
rm keycloak-$RELEASE.tar.gz
|
||||
rm -rf keycloak.old
|
||||
fetch_and_deploy_gh_release "keycloak_app" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
|
||||
|
||||
msg_info "Restating Keycloak"
|
||||
systemctl restart keycloak
|
||||
msg_ok "Updated Successfully"
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt
|
||||
cp -a keycloak.old/conf/. keycloak/conf/
|
||||
cp -a keycloak.old/providers/. keycloak/providers/ 2>/dev/null || true
|
||||
cp -a keycloak.old/themes/. keycloak/themes/ 2>/dev/null || true
|
||||
msg_ok "Updated ${APP} LXC"
|
||||
|
||||
msg_info "Restarting Keycloak"
|
||||
systemctl restart keycloak
|
||||
msg_ok "Restarted Keycloak"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf keycloak.old
|
||||
msg_ok "Cleanup complete"
|
||||
msg_ok "Update Successful"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
@@ -27,18 +27,18 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/benjaminjonard/koillection/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
|
||||
if check_for_gh_release "koillection" "benjaminjonard/koillection"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop apache2
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt
|
||||
msg_info "Creating a backup"
|
||||
mv /opt/koillection/ /opt/koillection-backup
|
||||
curl -fsSL "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip" -o $(basename "https://github.com/benjaminjonard/koillection/archive/refs/tags/${RELEASE}.zip")
|
||||
$STD unzip "${RELEASE}.zip"
|
||||
mv "/opt/koillection-${RELEASE}" /opt/koillection
|
||||
msg_ok "Backup created"
|
||||
|
||||
fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection"
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/koillection
|
||||
cp -r /opt/koillection-backup/.env.local /opt/koillection
|
||||
cp -r /opt/koillection-backup/public/uploads/. /opt/koillection/public/uploads/
|
||||
@@ -50,20 +50,16 @@ function update_script() {
|
||||
$STD yarn install
|
||||
$STD yarn build
|
||||
chown -R www-data:www-data /opt/koillection/public/uploads
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start apache2
|
||||
msg_ok "Started Service"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -r "/opt/${RELEASE}.zip"
|
||||
rm -r /opt/koillection-backup
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
75
ct/kometa.sh
75
ct/kometa.sh
@@ -20,51 +20,38 @@ color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -f "/opt/kometa/kometa.py" ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/kometa_version.txt)" ]] || [[ ! -f /opt/kometa_version.txt ]]; then
|
||||
msg_info "Updating $APP"
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop kometa
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
cd /tmp
|
||||
temp_file=$(mktemp)
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Kometa-Team/Kometa/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/Kometa-Team/Kometa/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
|
||||
tar -xzf "$temp_file"
|
||||
cp /opt/kometa/config/config.yml /opt
|
||||
rm -rf /opt/kometa
|
||||
mv Kometa-${RELEASE} /opt/kometa
|
||||
cd /opt/kometa
|
||||
rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
|
||||
$STD pip install -r requirements.txt --ignore-installed
|
||||
mkdir -p config/assets
|
||||
cp /opt/config.yml config/config.yml
|
||||
echo "${RELEASE}" >/opt/kometa_version.txt
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start kometa
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -f $temp_file
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
if [[ ! -d "/opt/kometa" ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
if check_for_gh_release "kometa" "Kometa-Team/Kometa"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop kometa
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up data"
|
||||
cp /opt/kometa/config/config.yml /opt
|
||||
msg_ok "Backup completed"
|
||||
|
||||
PYTHON_VERSION="3.12" setup_uv
|
||||
fetch_and_deploy_gh_release "kometa" "Kometa-Team/Kometa"
|
||||
|
||||
msg_info "Updating Kometa"
|
||||
$STD uv pip install -r requirements.txt --system
|
||||
mkdir -p config/assets
|
||||
cp /opt/config.yml config/config.yml
|
||||
msg_ok "Updated Kometa"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start kometa
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Update Successful"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
start
|
||||
@@ -74,4 +61,4 @@ description
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access the LXC at following IP address:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}${IP}${CL}"
|
||||
|
||||
15
ct/komga.sh
15
ct/komga.sh
@@ -27,26 +27,19 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Updating ${APP}"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/gotson/komga/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
|
||||
if check_for_gh_release "komga" "gotson/komga"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop komga
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
curl -fsSL "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar" -o $(basename "https://github.com/gotson/komga/releases/download/${RELEASE}/komga-${RELEASE}.jar")
|
||||
rm -rf /opt/komga/komga.jar
|
||||
mv -f komga-${RELEASE}.jar /opt/komga/komga.jar
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
rm -f /opt/komga/komga.jar
|
||||
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "komga-org" "gotson/komga" "singlefile" "latest" "/opt/komga" "komga*.jar"
|
||||
mv /opt/komga/komga-*.jar /opt/komga/komga.jar
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start komga
|
||||
msg_ok "Started ${APP}"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -56,6 +56,9 @@ function update_script() {
|
||||
mv "$BACKUP_FILE" "$COMPOSE_FILE"
|
||||
exit 1
|
||||
fi
|
||||
if ! grep -qxF 'COMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backups' /opt/komodo/compose.env; then
|
||||
sed -i '/^COMPOSE_KOMODO_IMAGE_TAG=latest$/a COMPOSE_KOMODO_BACKUPS_PATH=/etc/komodo/backups' /opt/komodo/compose.env
|
||||
fi
|
||||
$STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
|
||||
msg_ok "Updated ${APP}"
|
||||
exit
|
||||
|
||||
26
ct/kubo.sh
26
ct/kubo.sh
@@ -23,23 +23,21 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -f /usr/local/kubo ]]; then
|
||||
if [[ ! -f /usr/local/kubo/ipfs ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://github.com/ipfs/kubo/releases/latest | grep "title>Release" | cut -d " " -f 4)
|
||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||
msg_info "Updating $APP LXC"
|
||||
$STD apt-get update
|
||||
$STD apt-get -y upgrade
|
||||
curl -fsSL "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz" -o $(basename "https://github.com/ipfs/kubo/releases/download/${RELEASE}/kubo_${RELEASE}_linux-amd64.tar.gz")
|
||||
tar -xzf "kubo_${RELEASE}_linux-amd64.tar.gz" -C /usr/local
|
||||
systemctl restart ipfs.service
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
rm "kubo_${RELEASE}_linux-amd64.tar.gz"
|
||||
msg_ok "Updated $APP LXC"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
if check_for_gh_release "kubo" "ipfs/kubo"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop ipfs
|
||||
msg_ok "Stopped service"
|
||||
|
||||
fetch_and_deploy_gh_release "kubo" "ipfs/kubo" "prebuild" "latest" "/usr/local/kubo" "kubo*linux-amd64.tar.gz"
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start ipfs
|
||||
msg_ok "Service started"
|
||||
msg_ok "Updated successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,19 +27,18 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/librespeed/speedtest-rust/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "v([^"]+).*/\1/')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.librespeed 2>/dev/null)" ]] || [[ ! -f ~/.librespeed ]]; then
|
||||
|
||||
if check_for_gh_release "librespeed-rust" "librespeed/speedtest-rust"; then
|
||||
msg_info "Stopping Services"
|
||||
systemctl stop librespeed-rs
|
||||
systemctl stop librespeed_rs
|
||||
msg_ok "Services Stopped"
|
||||
|
||||
fetch_and_deploy_gh_release "librespeed-rust" "librespeed/speedtest-rust" "binary" "latest" "/opt/librespeed-rust" "librespeed-rs-x86_64-unknown-linux-gnu.deb"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start librespeed-rs
|
||||
systemctl start librespeed_rs
|
||||
msg_ok "Started Service"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
msg_ok "Updated Successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -28,25 +28,21 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -s https://api.github.com/repos/LibreTranslate/LibreTranslate/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat $HOME/.libretranslate)" ]] || [[ ! -f $HOME/.libretranslate ]]; then
|
||||
if check_for_gh_release "libretranslate" "LibreTranslate/LibreTranslate"; then
|
||||
msg_info "Stopping $APP"
|
||||
systemctl stop libretranslate
|
||||
msg_ok "Stopped $APP"
|
||||
|
||||
msg_info "Updating $APP to ${RELEASE}"
|
||||
msg_info "Updating $APP"
|
||||
cd /opt/libretranslate
|
||||
source .venv/bin/activate
|
||||
$STD pip install -U libretranslate
|
||||
msg_ok "Updated $APP to ${RELEASE}"
|
||||
msg_ok "Updated $APP"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
systemctl start libretranslate
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
24
ct/lidarr.sh
24
ct/lidarr.sh
@@ -29,19 +29,19 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Updating $APP LXC"
|
||||
temp_file="$(mktemp)"
|
||||
rm -rf /opt/Lidarr
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Lidarr/Lidarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
curl -fsSL "https://github.com/Lidarr/Lidarr/releases/download/v${RELEASE}/Lidarr.master.${RELEASE}.linux-core-x64.tar.gz" -o "$temp_file"
|
||||
$STD tar -xvzf "$temp_file"
|
||||
mv Lidarr /opt
|
||||
chmod 775 /opt/Lidarr
|
||||
msg_ok "Updated $APP LXC"
|
||||
if check_for_gh_release "lidarr" "Lidarr/Lidarr"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop lidarr
|
||||
msg_ok "Service stopped"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "$temp_file"
|
||||
msg_ok "Cleaned up"
|
||||
fetch_and_deploy_gh_release "lidarr" "Lidarr/Lidarr" "prebuild" "latest" "/opt/Lidarr" "Lidarr.master*linux-core-x64.tar.gz"
|
||||
chmod 775 /opt/Lidarr
|
||||
|
||||
msg_info "Starting service"
|
||||
systemctl start lidarr
|
||||
msg_ok "Service started"
|
||||
msg_ok "Updated successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,7 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/linkwarden/linkwarden/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/linkwarden_version.txt)" ]] || [[ ! -f /opt/linkwarden_version.txt ]]; then
|
||||
if check_for_gh_release "linkwarden" "linkwarden/linkwarden"; then
|
||||
NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop linkwarden
|
||||
@@ -35,11 +34,15 @@ function update_script() {
|
||||
|
||||
RUST_CRATES="monolith" setup_rust
|
||||
|
||||
msg_info "Updating ${APP} to ${RELEASE}"
|
||||
msg_info "Backing up data"
|
||||
mv /opt/linkwarden/.env /opt/.env
|
||||
[ -d /opt/linkwarden/data ] && mv /opt/linkwarden/data /opt/data.bak
|
||||
rm -rf /opt/linkwarden
|
||||
msg_ok "Backed up data"
|
||||
|
||||
fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden"
|
||||
|
||||
msg_info "Updating ${APP}"
|
||||
cd /opt/linkwarden
|
||||
$STD yarn
|
||||
$STD npx playwright install-deps
|
||||
@@ -49,7 +52,7 @@ function update_script() {
|
||||
$STD yarn web:build
|
||||
$STD yarn prisma:deploy
|
||||
[ -d /opt/data.bak ] && mv /opt/data.bak /opt/linkwarden/data
|
||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||
msg_ok "Updated ${APP}"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start linkwarden
|
||||
@@ -61,8 +64,6 @@ function update_script() {
|
||||
rm -rf /opt/linkwarden/.next/cache
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,37 +27,31 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/knadh/listmonk/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if check_for_gh_release "listmonk" "knadh/listmonk"; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop listmonk
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt
|
||||
msg_info "Backing up data"
|
||||
mv /opt/listmonk/ /opt/listmonk-backup
|
||||
mkdir /opt/listmonk/
|
||||
curl -fsSL "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz" -o $(basename "https://github.com/knadh/listmonk/releases/download/v${RELEASE}/listmonk_${RELEASE}_linux_amd64.tar.gz")
|
||||
tar -xzf "listmonk_${RELEASE}_linux_amd64.tar.gz" -C /opt/listmonk
|
||||
msg_ok "Backed up data"
|
||||
|
||||
fetch_and_deploy_gh_release "listmonk" "knadh/listmonk" "prebuild" "latest" "/opt/listmonk" "listmonk*linux_amd64.tar.gz"
|
||||
|
||||
msg_info "Configuring listmonk"
|
||||
mv /opt/listmonk-backup/config.toml /opt/listmonk/config.toml
|
||||
mv /opt/listmonk-backup/uploads /opt/listmonk/uploads
|
||||
$STD /opt/listmonk/listmonk --upgrade --yes --config /opt/listmonk/config.toml
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Configured listmonk"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start listmonk
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf "/opt/listmonk_${RELEASE}_linux_amd64.tar.gz"
|
||||
rm -rf /opt/listmonk-backup/
|
||||
msg_ok "Cleaned"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
60
ct/litellm.sh
Normal file
60
ct/litellm.sh
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: stout01
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://github.com/BerriAI/litellm
|
||||
|
||||
APP="LiteLLM"
|
||||
var_tags="${var_tags:-ai;interface}"
|
||||
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 [[ ! -f /etc/systemd/system/litellm.service ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop litellm
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
VENV_PATH="/opt/litellm/.venv"
|
||||
PYTHON_VERSION="3.13" setup_uv
|
||||
|
||||
msg_info "Updating $APP"
|
||||
$STD "$VENV_PATH/bin/python" -m pip install --upgrade litellm[proxy] prisma
|
||||
|
||||
msg_info "Updating DB Schema"
|
||||
$STD uv --directory=/opt/litellm run litellm --config /opt/litellm/litellm.yaml --use_prisma_db_push --skip_server_startup
|
||||
msg_ok "DB Schema Updated"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start litellm
|
||||
msg_ok "Started ${APP}"
|
||||
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}:4000${CL}"
|
||||
@@ -27,16 +27,12 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/hargata/lubelog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
RELEASE_TRIMMED=$(echo "${RELEASE}" | tr -d ".")
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if check_for_gh_release "lubelogger" "hargata/lubelog"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop lubelogger
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip" -o $(basename "https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip")
|
||||
msg_info "Backing up data"
|
||||
mkdir -p /tmp/lubeloggerData/data
|
||||
cp /opt/lubelogger/appsettings.json /tmp/lubeloggerData/appsettings.json
|
||||
cp -r /opt/lubelogger/data/ /tmp/lubeloggerData/
|
||||
@@ -50,23 +46,23 @@ function update_script() {
|
||||
[[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/data/
|
||||
[[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/
|
||||
rm -rf /opt/lubelogger
|
||||
$STD unzip LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
|
||||
msg_ok "Backed up data"
|
||||
|
||||
fetch_and_deploy_gh_release "lubelogger" "hargata/lubelog" "prebuild" "latest" "/opt/lubelogger" "LubeLogger*linux_x64.zip"
|
||||
|
||||
msg_info "Configuring LubeLogger"
|
||||
chmod 700 /opt/lubelogger/CarCareTracker
|
||||
cp -rf /tmp/lubeloggerData/* /opt/lubelogger/
|
||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
msg_ok "Configured LubeLogger"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start lubelogger
|
||||
msg_ok "Started Service"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opt/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip
|
||||
rm -rf /tmp/lubeloggerData
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
22
ct/mafl.sh
22
ct/mafl.sh
@@ -27,30 +27,30 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/hywax/mafl/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.mafl 2>/dev/null)" ]] || [[ ! -f ~/.mafl ]]; then
|
||||
if check_for_gh_release "mafl" "hywax/mafl"; then
|
||||
msg_info "Stopping Mafl service"
|
||||
systemctl stop mafl
|
||||
msg_ok "Service stopped"
|
||||
|
||||
msg_info "Performing backup"
|
||||
msg_info "Backing up data"
|
||||
mkdir -p /opt/mafl-backup/data
|
||||
mv /opt/mafl/data /opt/mafl-backup/data
|
||||
rm -rf /opt/mafl
|
||||
msg_ok "Backup complete"
|
||||
|
||||
|
||||
fetch_and_deploy_gh_release "mafl" "hywax/mafl"
|
||||
|
||||
msg_info "Updating Mafl to v${RELEASE}"
|
||||
msg_info "Updating Mafl"
|
||||
cd /opt/mafl
|
||||
yarn install
|
||||
yarn build
|
||||
$STD yarn install
|
||||
$STD yarn build
|
||||
mv /opt/mafl-backup/data /opt/mafl/data
|
||||
msg_ok "Mafl updated"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start mafl
|
||||
msg_ok "Updated Mafl to v${RELEASE}"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
msg_ok "Service started"
|
||||
msg_ok "Update successfully"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@@ -27,16 +27,12 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/MagicMirrorOrg/MagicMirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]]; then touch /opt/${APP}_version.txt; fi
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if check_for_gh_release "magicmirror" "MagicMirrorOrg/MagicMirror"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop magicmirror
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
$STD apt-get update
|
||||
$STD apt-get upgrade -y
|
||||
msg_info "Backing up data"
|
||||
rm -rf /opt/magicmirror-backup
|
||||
mkdir /opt/magicmirror-backup
|
||||
cp /opt/magicmirror/config/config.js /opt/magicmirror-backup
|
||||
@@ -44,30 +40,24 @@ function update_script() {
|
||||
cp /opt/magicmirror/css/custom.css /opt/magicmirror-backup
|
||||
fi
|
||||
cp -r /opt/magicmirror/modules /opt/magicmirror-backup
|
||||
temp_file=$(mktemp)
|
||||
curl -fsSL "https://github.com/MagicMirrorOrg/MagicMirror/archive/refs/tags/v${RELEASE}.tar.gz" -o ""$temp_file""
|
||||
tar -xzf "$temp_file"
|
||||
rm -rf /opt/magicmirror
|
||||
mv MagicMirror-${RELEASE} /opt/magicmirror
|
||||
msg_ok "Backed up data"
|
||||
|
||||
fetch_and_deploy_gh_release "magicmirror" "MagicMirrorOrg/MagicMirror" "tarball"
|
||||
|
||||
msg_info "Configuring MagicMirror"
|
||||
cd /opt/magicmirror
|
||||
sed -i -E 's/("postinstall": )".*"/\1""/; s/("prepare": )".*"/\1""/' package.json
|
||||
$STD npm run install-mm
|
||||
cp /opt/magicmirror-backup/config.js /opt/magicmirror/config/
|
||||
if [[ -f /opt/magicmirror-backup/custom.css ]]; then
|
||||
cp /opt/magicmirror-backup/custom.css /opt/magicmirror/css/
|
||||
fi
|
||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
msg_ok "Configured MagicMirror"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start magicmirror
|
||||
msg_ok "Started Service"
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f $temp_file
|
||||
msg_ok "Cleaned"
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||
fi
|
||||
exit
|
||||
}
|
||||
@@ -79,4 +69,4 @@ description
|
||||
msg_ok "Completed Successfully!\n"
|
||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
|
||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
|
||||
|
||||
@@ -28,42 +28,28 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/intri-in/manage-my-damn-life-nextjs/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ "${RELEASE}" != "$(cat /opt/mmdl_version.txt)" ]] || [[ ! -f /opt/mmdl_version.txt ]]; then
|
||||
msg_info "Stopping $APP"
|
||||
if check_for_gh_release "mmdl" "intri-in/manage-my-damn-life-nextjs"; then
|
||||
msg_info "Stopping service"
|
||||
systemctl stop mmdl
|
||||
msg_ok "Stopped $APP"
|
||||
msg_ok "Stopped service"
|
||||
|
||||
msg_info "Creating Backup"
|
||||
cp /opt/mmdl/.env /opt/mmdl.env
|
||||
msg_ok "Backup Created"
|
||||
|
||||
msg_info "Updating $APP to v${RELEASE}"
|
||||
curl -fsSLO "https://github.com/intri-in/manage-my-damn-life-nextjs/archive/refs/tags/v${RELEASE}.zip"
|
||||
rm -r /opt/mmdl
|
||||
unzip -q v"$RELEASE".zip
|
||||
mv manage-my-damn-life-nextjs-"$RELEASE"/ /opt/mmdl
|
||||
mv /opt/mmdl.env /opt/mmdl/.env
|
||||
fetch_and_deploy_gh_release "mmdl" "intri-in/manage-my-damn-life-nextjs" "tarball"
|
||||
|
||||
msg_info "Configuring ${APP}"
|
||||
cd /opt/mmdl
|
||||
$STD npm install
|
||||
$STD npm run migrate
|
||||
$STD npm run build
|
||||
msg_ok "Updated $APP to v${RELEASE}"
|
||||
msg_ok "Configured ${APP}"
|
||||
|
||||
msg_info "Starting $APP"
|
||||
msg_info "Starting service"
|
||||
systemctl start mmdl
|
||||
msg_ok "Started $APP"
|
||||
|
||||
msg_info "Cleaning Up"
|
||||
rm -f ~/v"$RELEASE".zip
|
||||
msg_ok "Cleanup Completed"
|
||||
|
||||
# Last Action
|
||||
echo "$RELEASE" >/opt/mmdl_version.txt
|
||||
msg_ok "Started service"
|
||||
msg_ok "Update Successful"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user