mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-07-02 03:57:37 +00:00
Compare commits
921 Commits
2024-12-04
...
2025-02-01
Author | SHA1 | Date | |
---|---|---|---|
f40e6e5453 | |||
8a07124457 | |||
41c32af0d6 | |||
3cb4196fee | |||
a33108cd4f | |||
a0d7c5db0e | |||
baef2a0cb9 | |||
f9b84bf5ee | |||
ccab9d1be5 | |||
58a2ece7b7 | |||
aa16f936c8 | |||
c8829beddd | |||
3adc22d837 | |||
71b1288220 | |||
3c58303a9f | |||
b8edf0dd68 | |||
2fa3116c9c | |||
d416ff9cfa | |||
2e2db6603e | |||
72335f2c4e | |||
a359ffc211 | |||
cd4bcefa58 | |||
a0eb173824 | |||
3d42ecb152 | |||
0642c7e2c8 | |||
af04e933e3 | |||
0dfc513a27 | |||
26433efcd8 | |||
343de50ef8 | |||
a38e9070ef | |||
e2b548a7c3 | |||
737b18dea5 | |||
6b777a03c0 | |||
d9b4778360 | |||
7299b77359 | |||
d3882b6818 | |||
2ef0cd0f89 | |||
f2eb24d527 | |||
f520607d85 | |||
1270d87bf8 | |||
7f2481ea12 | |||
05f114ed64 | |||
6924a6fea4 | |||
bb553ae48c | |||
cbb18668dd | |||
c7418171b4 | |||
ed2ead9ef2 | |||
e51c121af2 | |||
8c4e97d6cb | |||
1093fef23c | |||
6fa540f0da | |||
ca7fb9b929 | |||
139f84a934 | |||
8bc50f4d71 | |||
3fa4cf6e07 | |||
63e3619b68 | |||
054b569e33 | |||
cd740e52f4 | |||
37c7205978 | |||
eb9633215c | |||
85a6819760 | |||
20d6162ac1 | |||
0dff2b3363 | |||
c799e67ea5 | |||
645972077e | |||
24dfa9590e | |||
cecf179b34 | |||
1f39208c1c | |||
63061942b9 | |||
87a987ba35 | |||
0680fbfac7 | |||
41a836f990 | |||
ad14b1b1d6 | |||
94d60a79d6 | |||
f10e625e41 | |||
dae705056c | |||
b973ca9d8d | |||
1cf8f80c71 | |||
97002e7047 | |||
d366d24dea | |||
05e46a07cd | |||
af166e3346 | |||
8221614cab | |||
b70cd00764 | |||
31473b2170 | |||
690d6d42d4 | |||
3be6824844 | |||
f903cfd97a | |||
901db73d78 | |||
67b80306a1 | |||
7dc446c8ac | |||
9435b9d046 | |||
2b1b517f20 | |||
7c297d3dac | |||
dbb9b66355 | |||
ff06d417b5 | |||
84b982ffa8 | |||
53c7ab19f8 | |||
d13c1e5722 | |||
be92f947cd | |||
452012529c | |||
661654987d | |||
c3a21069d2 | |||
4de8c1c358 | |||
cd86921467 | |||
38a540b87a | |||
8cd3669edb | |||
adfbff63bc | |||
47bf8e6f86 | |||
43f05b3aba | |||
b17befec88 | |||
719da560d1 | |||
ac25b5a702 | |||
ce1a38eb50 | |||
030174f508 | |||
7e1fb858d7 | |||
5dc1a7d219 | |||
14247ac5a9 | |||
4911a7918a | |||
b06ad8bde8 | |||
8a6364902e | |||
dfd56aebf2 | |||
78e6e12c8a | |||
88c3f56157 | |||
92057c4ea7 | |||
0af7a5adbf | |||
ba6edcdcaf | |||
de80e95d69 | |||
796275d175 | |||
9ff56caafd | |||
d596f4a3e0 | |||
b9cdfc26d0 | |||
ae726129b1 | |||
bd3f823b86 | |||
eddacd786d | |||
c2e0a1a180 | |||
b01331480c | |||
198c5caeaa | |||
b4f2594cef | |||
2db7cb1fdb | |||
7ff44c562b | |||
7723269bbc | |||
7c3ad9cfcf | |||
dbb138317d | |||
75f90409eb | |||
17745c344b | |||
4e8317d30c | |||
0313de615a | |||
5415bfd21a | |||
3d99b49a99 | |||
d852e7b098 | |||
f23da27ba2 | |||
1c008a1742 | |||
3cea72cf51 | |||
1c90c131b7 | |||
8c6af4db1f | |||
f29cbe5b46 | |||
a7ee0705e2 | |||
bf618f04e4 | |||
8241fa1dd4 | |||
ab6244c1fe | |||
e6d032eac3 | |||
b402026b84 | |||
ebb7f73e8f | |||
39ff3486e9 | |||
f1109388f4 | |||
c4532f538b | |||
63061ea06f | |||
f78cb0319e | |||
607318b197 | |||
928eabc202 | |||
38b692aaa3 | |||
dc03df6f8a | |||
81be2a49c0 | |||
d4aedc6702 | |||
16be69e3a3 | |||
0e12ea3fd0 | |||
8f87ec37d2 | |||
90d769bbbb | |||
93289d6ff7 | |||
489a1fb560 | |||
3ee076e7ab | |||
51005a6b52 | |||
5e1ad69e08 | |||
1b5b3e11d0 | |||
45f9d7460c | |||
ac49e1eca2 | |||
37d16e43e7 | |||
818dbed71d | |||
8dc2e416a4 | |||
250e77cff7 | |||
69d9b4f439 | |||
08ab210f12 | |||
a3979001fe | |||
9f3a1c8531 | |||
a025fd948e | |||
86ac765d80 | |||
c54180e8fb | |||
6d88f1a796 | |||
9b9b02d9a7 | |||
078fc0e138 | |||
ef60152ae0 | |||
9d46bd8f78 | |||
3993f8d21f | |||
ad2ea710a4 | |||
7fb7ac3bfb | |||
ae791bcb16 | |||
891e97a93c | |||
4e6471e6a6 | |||
a59f1cce8f | |||
405b844c37 | |||
c7a0009d9a | |||
9f29a66bb7 | |||
70ef075ccd | |||
f1f1a7fa68 | |||
704f2f3d9b | |||
022288ef8e | |||
3c68db9b3a | |||
2ba35bbee5 | |||
3b14ea76ad | |||
74d745441c | |||
afc66ebac5 | |||
18baa31178 | |||
ede5efb91b | |||
6b17c1a4a1 | |||
87256a39ce | |||
4c9a4e28a7 | |||
9e9838867a | |||
41514c1eb8 | |||
c8fe3c363b | |||
81c5f51a96 | |||
c5df1bbcea | |||
8303f61647 | |||
eefbbdf4df | |||
77c15f5a24 | |||
e2c329b9c7 | |||
223eecdd8e | |||
cf2942da9a | |||
7a66f9b42f | |||
6ecef0ef94 | |||
0e19ad2859 | |||
b93d7bd632 | |||
4b292c3b2a | |||
4340ccc15d | |||
621416698a | |||
e6404a9a4e | |||
83aff658c5 | |||
db061db17e | |||
e051e414a8 | |||
0a7d541261 | |||
ed8edcbf2d | |||
c3acbf09ed | |||
9c415ca3f4 | |||
c1b3d14068 | |||
2f2d1eeec3 | |||
e76e5ec4a0 | |||
7df2297be0 | |||
35a66c5f1f | |||
e7af6f31ad | |||
8337ca06fa | |||
dd0cdf5d25 | |||
3b37f6a5b7 | |||
5a93af33ba | |||
d73f8f224a | |||
0e04db089e | |||
b1b3d5b80a | |||
3bbeaa8a9d | |||
c5ba9493f8 | |||
6e0527dc19 | |||
f1e6e0ae56 | |||
804ea32190 | |||
038947416d | |||
4cf043675e | |||
9fd9ab00ff | |||
50b5a7d1cf | |||
58ba921fec | |||
1c8a0a53d2 | |||
46c7c0e9ca | |||
33d6f8b860 | |||
64e14fe982 | |||
a8f8ca65a0 | |||
c6c026e221 | |||
4dcf0dc0b8 | |||
81c327c317 | |||
c9eb13a20c | |||
c42438be11 | |||
dfc006271c | |||
e64ecb9773 | |||
85109ecf11 | |||
fb67025f3b | |||
f545c8ae5b | |||
70d75bf53e | |||
783e9b160d | |||
bdb2816e87 | |||
d9a4586eec | |||
3904fb1981 | |||
b8ed5e3987 | |||
723b8e8e0b | |||
e0d0bcd409 | |||
69f19ca652 | |||
76742e7910 | |||
17d06a51ae | |||
e8cd6497ef | |||
08131f881c | |||
b789d982d9 | |||
41d45eb4ec | |||
665014379e | |||
5a2a5b3885 | |||
4c5df518c7 | |||
d89ad6d293 | |||
0a00eb74f2 | |||
5dcfdc9607 | |||
b409c3ac72 | |||
6031f99b58 | |||
2a74f53b14 | |||
f2935e9f60 | |||
fe5f88f140 | |||
5d32260568 | |||
81e17c2137 | |||
5db657a668 | |||
bc135d70ab | |||
2173728316 | |||
76362f4ede | |||
0daca3a6ee | |||
029b57ea9e | |||
a94e28c5df | |||
3078d1a11a | |||
b9187d771a | |||
1d26b208ff | |||
7df8273654 | |||
dc0b432b69 | |||
79dfb7c001 | |||
5d69a62b47 | |||
ed0b16bf17 | |||
9843b46a94 | |||
c4580100a8 | |||
f8f166e26f | |||
b97d40bf5a | |||
0e443536cc | |||
0b73d9f689 | |||
5c11b67507 | |||
2f20db8a42 | |||
b04dc0261b | |||
81b271a9ef | |||
75590a8ff8 | |||
d1f5556ce3 | |||
e683fd900f | |||
643e0f5ac8 | |||
bd301942c5 | |||
8cb63aa07c | |||
ce7bb6612d | |||
a6bd47e0c7 | |||
ed9c083dda | |||
63b5024bf2 | |||
1049558407 | |||
b93b1021a3 | |||
7bb0cc32d2 | |||
779721cea5 | |||
22b7155203 | |||
1bb911e531 | |||
023c3fc52d | |||
258b1bd9fd | |||
6d4eb9c3ee | |||
15faa76b69 | |||
393f6d74c9 | |||
f51762420a | |||
f8c10ca80b | |||
3fca76dbbc | |||
b57689ec50 | |||
1f8f593116 | |||
330315c615 | |||
504d47d246 | |||
ab206530e0 | |||
f5b78d5dcc | |||
3f9863ebf9 | |||
786e8963b9 | |||
6cc4244f70 | |||
f5a260a399 | |||
f1f8f78420 | |||
6c42b5c21a | |||
24d24421d1 | |||
9e4c627323 | |||
2551bf6f9f | |||
8533380813 | |||
f65abd9ac8 | |||
85387563f0 | |||
5977f8f936 | |||
a15a59e615 | |||
14dfaa9bde | |||
75778976d0 | |||
c45085a51d | |||
959a7b4b14 | |||
5da06e75e7 | |||
2aed45fa61 | |||
7614034784 | |||
0f06725fdc | |||
5c16955a8e | |||
2c8aab24d0 | |||
9cc07cc6e1 | |||
047667c428 | |||
147ba0e78d | |||
d3b0becfe6 | |||
d20d0428dc | |||
0368ce36d1 | |||
757b5bd267 | |||
4d0632fea0 | |||
69288b197f | |||
12a61a1d71 | |||
d186557488 | |||
db6390f791 | |||
41c4b11575 | |||
bf89a037bd | |||
e503ce3806 | |||
c934085b16 | |||
c57f0be737 | |||
e6530e14dd | |||
9174536e95 | |||
aa3a3997f0 | |||
37da2e5e1c | |||
18538897ba | |||
dbfb72807a | |||
e756c49e50 | |||
4ae131e102 | |||
f498f349f3 | |||
8e525611bd | |||
910f3bb6f4 | |||
c8319f044c | |||
ac61a925cc | |||
4ce474382a | |||
424dc26720 | |||
b9829165cf | |||
3b1c43381e | |||
cb496d74f4 | |||
33cd0cb2f1 | |||
325084f8ca | |||
349cfb28b5 | |||
2fff2079ef | |||
13a6e31a99 | |||
481138bff5 | |||
c032db98a3 | |||
434c938cde | |||
647fb1cb5e | |||
45916edef5 | |||
78ed820bb0 | |||
7ab5485fc3 | |||
910e767bb4 | |||
8c54d25bf5 | |||
3c2db95345 | |||
692f3caab6 | |||
3830527ef2 | |||
ed1a618f6d | |||
76fa4c68d1 | |||
53b96a98c0 | |||
0f1eea7f09 | |||
4c13164ad3 | |||
97ca738332 | |||
86706e6233 | |||
13671c613b | |||
364109877f | |||
64297e7191 | |||
e60dc6784d | |||
2f620240a8 | |||
07c9dc4d0a | |||
8caf5e59b3 | |||
f8ab39e4d6 | |||
e47d7c4452 | |||
ac64a9de31 | |||
737625024e | |||
6958021528 | |||
cc40b5957d | |||
92020fed07 | |||
1476d1b6c4 | |||
0d8dcd5643 | |||
2347a669f2 | |||
6decf14d2e | |||
26d73317e8 | |||
c772f83e14 | |||
3051720f58 | |||
1932f5ebcc | |||
ca391d7448 | |||
376fd6522a | |||
5855cff8e4 | |||
6981774662 | |||
4ead90ef0b | |||
5fc7885347 | |||
e3d0fb58c9 | |||
9b2180857d | |||
5d7e524578 | |||
ad3214acfb | |||
5090b62113 | |||
a0eb6b860c | |||
9a4d35b1f2 | |||
b7a8d3453a | |||
111436c0a0 | |||
0c0225a052 | |||
aacb6ca2c9 | |||
7218c3b90a | |||
32bc4a3ab5 | |||
51cbfbdc4f | |||
d227277311 | |||
0d2db00dc6 | |||
1a9320ced8 | |||
d8931fef4d | |||
70ab9ab09e | |||
02f480998e | |||
860c541606 | |||
31b253e99f | |||
8c6f0ac1de | |||
cfda535a58 | |||
5d6bba3db8 | |||
7a2f5f55e8 | |||
f275cdd62c | |||
cb60c7fed2 | |||
88336a2c3b | |||
34f375032a | |||
0c44d2d23c | |||
f7d9fe7c3a | |||
2dddbaebe4 | |||
7930764ece | |||
42375390d6 | |||
cb8372da3d | |||
2c4a61d828 | |||
14cbba17f3 | |||
2ba1bfa3f1 | |||
24722c7eb8 | |||
a1422379bd | |||
2e64b89a9b | |||
bcf981cb33 | |||
09f060eb69 | |||
7c08ec1fc6 | |||
6e56610e28 | |||
ece84cbe70 | |||
bd5cd844bf | |||
84042b7508 | |||
d411d965bd | |||
ef44c2d243 | |||
86b91f626c | |||
a65b9c7ba3 | |||
a46503209f | |||
a78633a0a4 | |||
5d0fa7aa16 | |||
4a3d4a055d | |||
10927e39ce | |||
6fc78dca57 | |||
7dc54da8a3 | |||
45f241df2e | |||
535a1b0250 | |||
4b6b560bbd | |||
aa3da01005 | |||
97fb7941f8 | |||
626aa2f79e | |||
775051b928 | |||
44994bb919 | |||
6f763a5059 | |||
160c546002 | |||
5e5a81d2ae | |||
b6402a0bd7 | |||
77bac7a919 | |||
749e487032 | |||
be1821b16f | |||
baa578c20a | |||
d8f433c94a | |||
3ad50eb427 | |||
2c24952cd2 | |||
9d2ba6739b | |||
3a9d55abf4 | |||
8a9e162e9b | |||
0b85f26a4e | |||
14e185af85 | |||
5170056078 | |||
9a7dcef25a | |||
045ba81533 | |||
4985fda206 | |||
d8ad4545ad | |||
179defdd88 | |||
da071d800b | |||
6653b92972 | |||
bfd6b58406 | |||
189dbf67b6 | |||
b2ba72a906 | |||
0ce45140c7 | |||
c6efe42eee | |||
5c1954c85d | |||
e592b80716 | |||
8dd43ddb81 | |||
eb8ebfe7e4 | |||
d56d8dd369 | |||
5af9dd9e45 | |||
ec1e5b3a4a | |||
37f4a841a6 | |||
02401aa35d | |||
2646ea6317 | |||
6b183c9e4e | |||
19e7751fb9 | |||
3bb26b7b41 | |||
2d3506c7d3 | |||
e70a3a4b4d | |||
f428146c47 | |||
0059adecf1 | |||
e1daaa6409 | |||
ff712bc36e | |||
9330e9a640 | |||
5fc783da67 | |||
670d64ec43 | |||
4da57bd76c | |||
29b98b450b | |||
c88d3a3883 | |||
f5a54bc3ad | |||
2078deca57 | |||
bc702e2a6d | |||
ab10013fbe | |||
9abd8bf9aa | |||
6a78564cc3 | |||
0ec532a4e7 | |||
d712be955c | |||
701f7e9cba | |||
5196539d1b | |||
774cdcaf8d | |||
784e109012 | |||
5184f47eb6 | |||
f7d37a8f3c | |||
4888c33e4b | |||
f98d81f5bf | |||
d7518d8644 | |||
599c462035 | |||
0909132d5c | |||
5123532729 | |||
d814907f99 | |||
32a99a44d4 | |||
e94280f1a1 | |||
b9ca4b7634 | |||
8431931cc4 | |||
8bf7f7a460 | |||
6adf8e38b0 | |||
817455360e | |||
84d36eba84 | |||
a0baf1cecc | |||
144182d22c | |||
81ffa34497 | |||
abfd5e086d | |||
0e84eba9d2 | |||
d827d42968 | |||
d3d6ec8b20 | |||
314f932764 | |||
e191b94151 | |||
9cc4bda762 | |||
32572c6072 | |||
a1fe451fe2 | |||
ba97af3b9f | |||
859f3dffc3 | |||
84b15641fb | |||
a99bdb9e97 | |||
6035469047 | |||
982a19cf28 | |||
e3299a67ec | |||
6f557aa394 | |||
38f4a98e4f | |||
5967a7f496 | |||
67cdc35d02 | |||
71c04d9e12 | |||
eee58b43db | |||
8a35df4f59 | |||
9fd4a13a8a | |||
9f2ae06726 | |||
a5adf44f39 | |||
536de5d083 | |||
dfa14693ee | |||
b03e223e91 | |||
036728df0d | |||
682087c6ec | |||
5338a6762a | |||
3a52f8dbfb | |||
8fd34ea277 | |||
593669b960 | |||
e165153dcb | |||
ff8b060cad | |||
6f51b0f5a2 | |||
487f36fec6 | |||
385b36d29e | |||
3b8ff01385 | |||
11de586c93 | |||
eacaca938d | |||
dc0cf2cb3b | |||
585f9a2404 | |||
c72eb13e74 | |||
e356259785 | |||
618445ec08 | |||
3e5274a951 | |||
2245479733 | |||
99e06341b3 | |||
ce27930f9d | |||
b8671b97af | |||
7c0f85d0b3 | |||
ff660eaabb | |||
15f04d525d | |||
ccdb7007e7 | |||
a119a27b4f | |||
ac37d90403 | |||
3c765790a3 | |||
2f05dcbf87 | |||
409af1b14a | |||
50f7ae1237 | |||
2af4978680 | |||
a9df33c7cf | |||
47377fdd26 | |||
bf53f57e10 | |||
70f2a50955 | |||
10634a77c7 | |||
0aeec14025 | |||
19c3b1dee0 | |||
af4b833aa4 | |||
72f844ddc6 | |||
68aad8e152 | |||
4f517de2d1 | |||
f2d11ea48c | |||
a77ce0bad0 | |||
2479ceeb99 | |||
dc314990f8 | |||
3543d10d35 | |||
c9f4391df0 | |||
69ae09346f | |||
13175efbd8 | |||
4a8239b2ce | |||
e319355859 | |||
21d857e7ad | |||
df3919b904 | |||
96f30bf51f | |||
2832a1e2c4 | |||
415f99e3eb | |||
aa7e8e0810 | |||
8717a0fcf1 | |||
30bc16072e | |||
464fa283ad | |||
024480d0a4 | |||
c754f4e243 | |||
152eb6b2bb | |||
3424e9a86e | |||
13a52878ab | |||
5f39bb66a5 | |||
773b2fcc79 | |||
938f0f76fa | |||
611a14b55f | |||
304db812a8 | |||
678206768c | |||
92d2e421ee | |||
fe3ff916b6 | |||
d4c95779bf | |||
8c0794c2bb | |||
cdb121a55f | |||
b22d66da1b | |||
87ff677ed7 | |||
d3eaf6eaf5 | |||
26e4017d76 | |||
406bb57d74 | |||
f97e932205 | |||
395d1086ea | |||
517b19a62b | |||
ab292927e6 | |||
6bae0d71ea | |||
1378e9a2e9 | |||
71d21f3bfe | |||
12f087932f | |||
8d96c5135d | |||
0c31f43789 | |||
943e6967f4 | |||
e253fe6cee | |||
4b0fff5a88 | |||
ff3d2026a5 | |||
1b57be94fd | |||
b1dc0bc20f | |||
8f243c74ff | |||
b30e8c534f | |||
9b07fe4178 | |||
be66aefd9a | |||
7aca36a3f0 | |||
cf8dd2bfac | |||
ee62a56cb9 | |||
b8885e8d6c | |||
55e02d8bdd | |||
72df7e432d | |||
0f2e49fbeb | |||
d71bf7bcdf | |||
4ed5bf0c12 | |||
6debf20d19 | |||
88120fcbcc | |||
b65d55282f | |||
ae67ee8768 | |||
9523491c0a | |||
b0a523aac3 | |||
67a0c06b80 | |||
1c4c3b71e3 | |||
e98d96a232 | |||
48e86b063b | |||
53fcbb46be | |||
5e22f990d2 | |||
d74ad31e72 | |||
8c989eee8e | |||
326f706672 | |||
e715adf3ba | |||
57b881db45 | |||
f40c606808 | |||
4c042c180f | |||
abb0e0f96d | |||
8e1644ab6e | |||
2892762a80 | |||
45c1a73eda | |||
6efc6504d4 | |||
af30823bef | |||
d283d0a1cb | |||
5214c3d531 | |||
7f86418cf5 | |||
949ec3d181 | |||
9379ac4032 | |||
2326e11699 | |||
94b51fefeb | |||
6487885f4b | |||
700902ba2e | |||
23d7587f04 | |||
4c04a33a29 | |||
9da79b9a97 | |||
785d745b22 | |||
a5d6023da8 | |||
773e3ba983 | |||
ba76b4fe37 | |||
08f6042f65 | |||
25049290b0 | |||
94d81fdf5c | |||
c0ac8a7fab | |||
bda30403da | |||
6f96aebc27 | |||
a9a640bb75 | |||
056d8902fb | |||
fe3faccc42 | |||
9236f97009 | |||
17eaedf335 | |||
d0f2c71038 | |||
22c0757b4d | |||
cd374c296f | |||
07508d10d0 | |||
29dcf19c04 | |||
3e60e43d05 | |||
f199366867 | |||
9efb421b5c | |||
d65d64e59e | |||
47307be181 | |||
a6f3771214 | |||
7261affcc2 | |||
c60b16229b | |||
b18b49ef6f | |||
870313cc58 | |||
e9c0ca8579 | |||
73d5794086 | |||
a46e66fd9a | |||
79d597297c | |||
f511d88502 | |||
fad540cf4c | |||
9256880c9f | |||
5b38448107 | |||
db1950a2bb | |||
f449ca707a | |||
e410bdbf5e | |||
7357c1c146 | |||
9fc81e49e4 | |||
826482897a | |||
6f2e0dfde9 | |||
49d8ed135c | |||
357f5bcdb6 | |||
a00f7af0d2 | |||
284238d109 | |||
b547530643 | |||
b78a919b41 | |||
353a5e7c99 | |||
afd57cafc6 | |||
71cc0a0fd4 | |||
f2a1cc7eef | |||
315949b446 | |||
bcc6342f83 | |||
ca902c50fb | |||
69fe688418 | |||
2d9fcbb635 | |||
0573adc83c | |||
c0cf76f0d5 | |||
77d2df5a0f | |||
82ba836743 | |||
8c1b48453c | |||
ae0684b696 | |||
aab63c8db2 | |||
e7ac005592 | |||
6fb6c58454 | |||
0d63e66379 | |||
cfb755a862 | |||
4a60a29f1d | |||
ec27945abd | |||
d6ead654ad | |||
4f66476de5 | |||
e4354c1d53 | |||
8a6ea7cbac | |||
96d691c862 | |||
82ee63a6db | |||
102669cd11 | |||
ae120c1e23 | |||
c056dd97ea | |||
5b2cbd3e99 | |||
cadae9796e | |||
9eb5cc022a | |||
52898b4edf | |||
e45aba86bd | |||
be4e6503d7 | |||
59deaa0a19 | |||
a4803d178d | |||
259203ee51 | |||
944328625a | |||
3d38ad0288 | |||
c46f15cdc1 | |||
e2aa5fe627 | |||
493c2c931c | |||
ce545bd499 | |||
0ba2ea9183 | |||
cff3fa8696 | |||
871fd6517d | |||
3a876c99ef |
16
.editorconfig
Normal file
16
.editorconfig
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
; editorconfig.org
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
continuation_indent_size = 2
|
||||||
|
end_of_line = lf
|
||||||
|
indent_size = 2
|
||||||
|
indent_style = space
|
||||||
|
insert_final_newline = true
|
||||||
|
max_line_length = 120
|
||||||
|
tab_width = 2
|
||||||
|
; trim_trailing_whitespace = true ; disabled until files are cleaned up
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
112
.github/CONTRIBUTING.md
vendored
112
.github/CONTRIBUTING.md
vendored
@ -1,14 +1,106 @@
|
|||||||
<div align="center">
|
|
||||||
<a href="#">
|
|
||||||
<img src="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/images/logo.png" height="100px" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<h2 align="center">Contributing to Proxmox VE Helper Scripts</h2>
|
|
||||||
|
|
||||||
Everybody is invited and welcome to contribute to Proxmox VE Helper Scripts.
|
# Community Scripts Contribution Guide
|
||||||
|
|
||||||
- Pull requests submitted against [**main**](https://github.com/community-scripts/ProxmoxVE/tree/main) are meticulously scrutinized, so please do not take it personally if the project maintainer rejects your request. By adhering to the established patterns and conventions throughout the codebase, you greatly increase the likelihood that your changes will get merged into [**main**](https://github.com/community-scripts/ProxmoxVE/tree/main).
|
## **Welcome to the communty-scripts Repository!**
|
||||||
|
|
||||||
|
📜 These documents outline the essential coding standards for all our scripts and JSON files. Adhering to these standards ensures that our codebase remains consistent, readable, and maintainable. By following these guidelines, we can improve collaboration, reduce errors, and enhance the overall quality of our project.
|
||||||
|
|
||||||
|
### Why Coding Standards Matter
|
||||||
|
|
||||||
|
Coding standards are crucial for several reasons:
|
||||||
|
|
||||||
|
1. **Consistency**: Consistent code is easier to read, understand, and maintain. It helps new team members quickly get up to speed and reduces the learning curve.
|
||||||
|
2. **Readability**: Clear and well-structured code is easier to debug and extend. It allows developers to quickly identify and fix issues.
|
||||||
|
3. **Maintainability**: Code that follows a standard structure is easier to refactor and update. It ensures that changes can be made with minimal risk of introducing new bugs.
|
||||||
|
4. **Collaboration**: When everyone follows the same standards, it becomes easier to collaborate on code. It reduces friction and misunderstandings during code reviews and merges.
|
||||||
|
|
||||||
|
### Scope of These Documents
|
||||||
|
|
||||||
|
These documents cover the coding standards for the following types of files in our project:
|
||||||
|
|
||||||
|
- **`install/$AppName-install.sh` Scripts**: These scripts are responsible for the installation of applications.
|
||||||
|
- **`ct/$AppName.sh` Scripts**: These scripts handle the creation and updating of containers.
|
||||||
|
- **`json/$AppName.json`**: These files store structured data and are used for the website.
|
||||||
|
|
||||||
|
Each section provides detailed guidelines on various aspects of coding, including shebang usage, comments, variable naming, function naming, indentation, error handling, command substitution, quoting, script structure, and logging. Additionally, examples are provided to illustrate the application of these standards.
|
||||||
|
|
||||||
|
By following the coding standards outlined in this document, we ensure that our scripts and JSON files are of high quality, making our project more robust and easier to manage. Please refer to this guide whenever you create or update scripts and JSON files to maintain a high standard of code quality across the project. 📚🔍
|
||||||
|
|
||||||
|
Let's work together to keep our codebase clean, efficient, and maintainable! 💪🚀
|
||||||
|
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
Before contributing, please ensure that you have the following setup:
|
||||||
|
|
||||||
|
1. **Visual Studio Code** (recommended for script development)
|
||||||
|
2. **Recommended VS Code Extensions:**
|
||||||
|
- [Shell Syntax](https://marketplace.visualstudio.com/items?itemName=bmalehorn.shell-syntax)
|
||||||
|
- [ShellCheck](https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck)
|
||||||
|
- [Shell Format](https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format)
|
||||||
|
|
||||||
|
### Important Notes
|
||||||
|
- Use [AppName.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/ct/AppName.sh) and [AppName-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh) as templates when creating new scripts.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🚀 The Application Script (ct/AppName.sh)
|
||||||
|
|
||||||
|
- You can find all coding standards, as well as the structure for this file [here](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/ct/AppName.md).
|
||||||
|
- These scripts are responsible for container creation, setting the necessary variables and handling the update of the application once installed.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🛠 The Installation Script (install/AppName-install.sh)
|
||||||
|
|
||||||
|
- You can find all coding standards, as well as the structure for this file [here](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/install/AppName-install.md).
|
||||||
|
- These scripts are responsible for the installation of the application.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Building Your Own Scripts
|
||||||
|
|
||||||
|
Start with the [template script](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤝 Contribution Process
|
||||||
|
|
||||||
|
### 1. Fork the repository
|
||||||
|
Fork to your GitHub account
|
||||||
|
|
||||||
|
### 2. Clone your fork on your local environment
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/yourUserName/ForkName
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Create a new branch
|
||||||
|
```bash
|
||||||
|
git switch -c your-feature-branch
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Change paths in build.func install.func and AppName.sh
|
||||||
|
To be able to develop from your own branch you need to change `https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main` to `https://raw.githubusercontent.com/[USER]/[REPOSITORY]/refs/head/[BRANCH]`. You need to make this change atleast in misc/build.func misc/install.func and in your ct/AppName.sh. This change is only for testing. Before opening a Pull Request you should change this line change all this back to point to `https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main`.
|
||||||
|
|
||||||
|
### 4. Commit changes (without build.func and install.func!)
|
||||||
|
```bash
|
||||||
|
git commit -m "Your commit message"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. Push to your fork
|
||||||
|
```bash
|
||||||
|
git push origin your-feature-branch
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Create a Pull Request
|
||||||
|
Open a Pull Request from your feature branch to the main repository branch. You must only include your **$AppName.sh**, **$AppName-install.sh** and **$AppName.json** files in the pull request.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📚 Pages
|
||||||
|
|
||||||
|
- [CT Template: AppName.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/ct/AppName.sh)
|
||||||
|
- [Install Template: AppName-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh)
|
||||||
|
- [JSON Template: AppName.json](https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_GUIDE/json/AppName.json)
|
||||||
|
|
||||||
- It is important to stress that complaining about a decision after it has been made is not productive behavior for the pull request submitter. It is crucial for all contributors to respect the decision-making process and collaborate effectively towards achieving the best possible outcome for the project.
|
|
||||||
|
|
||||||
- The repository will only accept Alpine applications that make use of the Alpine Package Keeper.
|
|
||||||
|
291
.github/CONTRIBUTOR_GUIDE/ct/AppName.md
vendored
Normal file
291
.github/CONTRIBUTOR_GUIDE/ct/AppName.md
vendored
Normal file
@ -0,0 +1,291 @@
|
|||||||
|
# **AppName<span></span>.sh Scripts**
|
||||||
|
|
||||||
|
`AppName.sh` scripts found in the `/ct` directory. These scripts are responsible for the installation of the desired application. For this guide we take `/ct/snipeit.sh` as example.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [**AppName.sh Scripts**](#appnamesh-scripts)
|
||||||
|
- [Table of Contents](#table-of-contents)
|
||||||
|
- [1. **File Header**](#1-file-header)
|
||||||
|
- [1.1 **Shebang**](#11-shebang)
|
||||||
|
- [1.2 **Import Functions**](#12-import-functions)
|
||||||
|
- [1.3 **Metadata**](#13-metadata)
|
||||||
|
- [2 **Variables and function import**](#2-variables-and-function-import)
|
||||||
|
- [2.1 **Default Values**](#21-default-values)
|
||||||
|
- [2.2 **📋 App output \& base settings**](#22--app-output--base-settings)
|
||||||
|
- [2.3 **🛠 Core functions**](#23--core-functions)
|
||||||
|
- [3 **Update function**](#3-update-function)
|
||||||
|
- [3.1 **Function Header**](#31-function-header)
|
||||||
|
- [3.2 **Check APP**](#32-check-app)
|
||||||
|
- [3.3 **Check version**](#33-check-version)
|
||||||
|
- [3.4 **Verbosity**](#34-verbosity)
|
||||||
|
- [3.5 **Backups**](#35-backups)
|
||||||
|
- [3.6 **Cleanup**](#36-cleanup)
|
||||||
|
- [3.7 **No update function**](#37-no-update-function)
|
||||||
|
- [4 **End of the script**](#4-end-of-the-script)
|
||||||
|
- [5. **Contribution checklist**](#5-contribution-checklist)
|
||||||
|
|
||||||
|
## 1. **File Header**
|
||||||
|
|
||||||
|
### 1.1 **Shebang**
|
||||||
|
|
||||||
|
- Use `#!/usr/bin/env bash` as the shebang.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.2 **Import Functions**
|
||||||
|
|
||||||
|
- Import the build.func file.
|
||||||
|
- When developing your own script, change the URL to your own repository.
|
||||||
|
|
||||||
|
> [!IMPORTANT]
|
||||||
|
> You also need to change all apperances of this URL in `misc/build.func` and `misc/install.func`
|
||||||
|
|
||||||
|
Example for development:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/[USER]/[REPO]/refs/heads/[BRANCH]/misc/build.func)
|
||||||
|
```
|
||||||
|
|
||||||
|
Final script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!CAUTION]
|
||||||
|
> Before opening a Pull Request, change the URLs to point to the community-scripts repo.
|
||||||
|
|
||||||
|
### 1.3 **Metadata**
|
||||||
|
|
||||||
|
- Add clear comments for script metadata, including author, copyright, and license information.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: [YourUserName]
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: [SOURCE_URL]
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]:
|
||||||
|
>
|
||||||
|
> - Add your username and source URL
|
||||||
|
> - For existing scripts, add "| Co-Author [YourUserName]" after the current author
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2 **Variables and function import**
|
||||||
|
>
|
||||||
|
> [!NOTE]
|
||||||
|
> You need to have all this set in your script, otherwise it will not work!
|
||||||
|
|
||||||
|
### 2.1 **Default Values**
|
||||||
|
|
||||||
|
- This section sets the default values for the container.
|
||||||
|
- `APP` needs to be set to the application name and must be equal to the filenames of your scripts.
|
||||||
|
- `var_tags`: You can set Tags for the CT wich show up in the Proxmox UI. Don´t overdo it!
|
||||||
|
|
||||||
|
>[!NOTE]
|
||||||
|
>Description for all Default Values
|
||||||
|
>
|
||||||
|
>| Variable | Description | Notes |
|
||||||
|
>|----------|-------------|-------|
|
||||||
|
>| `APP` | Application name | Must match ct\AppName.sh |
|
||||||
|
>| `TAGS` | Proxmox display tags without Spaces, only ; | Limit the number |
|
||||||
|
>| `var_cpu` | CPU cores | Number of cores |
|
||||||
|
>| `var_ram` | RAM | In MB |
|
||||||
|
>| `var_disk` | Disk capacity | In GB |
|
||||||
|
>| `var_os` | Operating system | alpine, debian, ubuntu |
|
||||||
|
>| `var_version` | OS version | e.g., 3.20, 11, 12, 20.04 |
|
||||||
|
>| `var_unprivileged` | Container type | 1 = Unprivileged, 0 = Privileged |
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
APP="SnipeIT"
|
||||||
|
var_tags="asset-management;foss"
|
||||||
|
var_cpu="2"
|
||||||
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2.2 **📋 App output & base settings**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
```
|
||||||
|
|
||||||
|
- `header_info`: Generates ASCII header for APP
|
||||||
|
- `base_settings`: Allows overwriting variable values
|
||||||
|
|
||||||
|
## 2.3 **🛠 Core functions**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
```
|
||||||
|
|
||||||
|
- `variables`: Processes input and prepares variables
|
||||||
|
- `color`: Sets icons, colors, and formatting
|
||||||
|
- `catch_errors`: Enables error handling
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3 **Update function**
|
||||||
|
|
||||||
|
### 3.1 **Function Header**
|
||||||
|
|
||||||
|
- If applicable write a function that updates the application and the OS in the container.
|
||||||
|
- Each update function starts with the same code:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.2 **Check APP**
|
||||||
|
|
||||||
|
- Before doing anything update-wise, check if the app is installed in the container.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
if [[ ! -d /opt/snipe-it ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.3 **Check version**
|
||||||
|
|
||||||
|
- Befoer updating, check if a new version exists.
|
||||||
|
- We use the `${APPLICATION}_version.txt` file created in `/opt` during the install to compare new versions against the currently installed version.
|
||||||
|
|
||||||
|
Example with a Github Release:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
|
#DO UPDATE
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.4 **Verbosity**
|
||||||
|
|
||||||
|
- Use the appropriate flag (**-q** in the examples) for a command to suppress its output.
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wget -q
|
||||||
|
unzip -q
|
||||||
|
```
|
||||||
|
|
||||||
|
- If a command does not come with this functionality use `&>/dev/null` to suppress it's output.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php artisan migrate --force &>/dev/null
|
||||||
|
php artisan config:clear &>/dev/null
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.5 **Backups**
|
||||||
|
|
||||||
|
- Backup user data if necessary.
|
||||||
|
- Move all user data back in the directory when the update is finished.
|
||||||
|
|
||||||
|
>[!NOTE]
|
||||||
|
>This is not meant to be a permanent backup
|
||||||
|
|
||||||
|
Example backup:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
mv /opt/snipe-it /opt/snipe-it-backup
|
||||||
|
```
|
||||||
|
|
||||||
|
Example config restore:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp /opt/snipe-it-backup/.env /opt/snipe-it/.env
|
||||||
|
cp -r /opt/snipe-it-backup/public/uploads/ /opt/snipe-it/public/uploads/
|
||||||
|
cp -r /opt/snipe-it-backup/storage/private_uploads /opt/snipe-it/storage/private_uploads
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.6 **Cleanup**
|
||||||
|
|
||||||
|
- Do not forget to remove any temporary files/folders such as zip-files or temporary backups.
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rm -rf /opt/v${RELEASE}.zip
|
||||||
|
rm -rf /opt/snipe-it-backup
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.7 **No update function**
|
||||||
|
|
||||||
|
- In case you can not provide a update function use the following code to provide user feedback.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/snipeit ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "Ther is currently no automatic update function for ${APP}."
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4 **End of the script**
|
||||||
|
|
||||||
|
- `start`: Launches Whiptail dialogue
|
||||||
|
- `build_container`: Collects and integrates user settings
|
||||||
|
- `description`: Sets LXC container description
|
||||||
|
- With `echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"` you can point the user to the IP:PORT/folder needed to access the app.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. **Contribution checklist**
|
||||||
|
|
||||||
|
- [ ] Shebang is correctly set (`#!/usr/bin/env bash`).
|
||||||
|
- [ ] Correct link to *build.func*
|
||||||
|
- [ ] Metadata (author, license) is included at the top.
|
||||||
|
- [ ] Variables follow naming conventions.
|
||||||
|
- [ ] Update function exists.
|
||||||
|
- [ ] Update functions checks if app is installed an for new version.
|
||||||
|
- [ ] Update function up temporary files.
|
||||||
|
- [ ] Script ends with a helpful message for the user to reach the application.
|
93
.github/CONTRIBUTOR_GUIDE/ct/AppName.sh
vendored
Normal file
93
.github/CONTRIBUTOR_GUIDE/ct/AppName.sh
vendored
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2024 community-scripts ORG
|
||||||
|
# Author: [YourUserName]
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: [SOURCE_URL]
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="[APP_NAME]"
|
||||||
|
# Name of the app (e.g. Google, Adventurelog, Apache-Guacamole"
|
||||||
|
TAGS="[TAGS]"
|
||||||
|
# Tags for Proxmox VE, maximum 2 pcs., no spaces allowed, separated by a semicolon ; (e.g. database | adblock;dhcp)
|
||||||
|
var_cpu="[CPU]"
|
||||||
|
# Number of cores (1-X) (e.g. 4) - default are 2
|
||||||
|
var_ram="[RAM]"
|
||||||
|
# Amount of used RAM in MB (e.g. 2048 or 4096)
|
||||||
|
var_disk="[DISK]"
|
||||||
|
# Amount of used disk space in GB (e.g. 4 or 10)
|
||||||
|
var_os="[OS]"
|
||||||
|
# Default OS (e.g. debian, ubuntu, alpine)
|
||||||
|
var_version="[VERSION]"
|
||||||
|
# Default OS version (e.g. 12 for debian, 24.04 for ubuntu, 3.20 for alpine)
|
||||||
|
var_unprivileged="[UNPRIVILEGED]"
|
||||||
|
# 1 = unprivileged container, 0 = privileged container
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
# Check if installation is present | -f for file, -d for folder
|
||||||
|
if [[ ! -f [INSTALLATION_CHECK_PATH] ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Crawling the new version and checking whether an update is required
|
||||||
|
RELEASE=$(curl -fsSL [RELEASE_URL] | [PARSE_RELEASE_COMMAND])
|
||||||
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
|
msg_info "Updating $APP"
|
||||||
|
|
||||||
|
# Stopping Services
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop [SERVICE_NAME]
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
# Creating Backup
|
||||||
|
msg_info "Creating Backup"
|
||||||
|
tar -czf "/opt/${APP}_backup_$(date +%F).tar.gz" [IMPORTANT_PATHS]
|
||||||
|
msg_ok "Backup Created"
|
||||||
|
|
||||||
|
# Execute Update
|
||||||
|
msg_info "Updating $APP to v${RELEASE}"
|
||||||
|
[UPDATE_COMMANDS]
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
|
# Starting Services
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start [SERVICE_NAME]
|
||||||
|
sleep 2
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
|
||||||
|
# Cleaning up
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf [TEMP_FILES]
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
|
|
||||||
|
# Last Action
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:[PORT]${CL}"
|
353
.github/CONTRIBUTOR_GUIDE/install/AppName-install.md
vendored
Normal file
353
.github/CONTRIBUTOR_GUIDE/install/AppName-install.md
vendored
Normal file
@ -0,0 +1,353 @@
|
|||||||
|
|
||||||
|
# **AppName<span></span>-install.sh Scripts**
|
||||||
|
|
||||||
|
`AppName-install.sh` scripts found in the `/install` directory. These scripts are responsible for the installation of the application. For this guide we take `/install/snipeit-install.sh` as example.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [**AppName-install.sh Scripts**](#appname-installsh-scripts)
|
||||||
|
- [Table of Contents](#table-of-contents)
|
||||||
|
- [1. **File header**](#1-file-header)
|
||||||
|
- [1.1 **Shebang**](#11-shebang)
|
||||||
|
- [1.2 **Comments**](#12-comments)
|
||||||
|
- [1.3 **Variables and function import**](#13-variables-and-function-import)
|
||||||
|
- [2. **Variable naming and management**](#2-variable-naming-and-management)
|
||||||
|
- [2.1 **Naming conventions**](#21-naming-conventions)
|
||||||
|
- [3. **Dependencies**](#3-dependencies)
|
||||||
|
- [3.1 **Install all at once**](#31-install-all-at-once)
|
||||||
|
- [3.2 **Collapse dependencies**](#32-collapse-dependencies)
|
||||||
|
- [4. **Paths to application files**](#4-paths-to-application-files)
|
||||||
|
- [5. **Version management**](#5-version-management)
|
||||||
|
- [5.1 **Install the latest release**](#51-install-the-latest-release)
|
||||||
|
- [5.2 **Save the version for update checks**](#52-save-the-version-for-update-checks)
|
||||||
|
- [6. **Input and output management**](#6-input-and-output-management)
|
||||||
|
- [6.1 **User feedback**](#61-user-feedback)
|
||||||
|
- [6.2 **Verbosity**](#62-verbosity)
|
||||||
|
- [7. **String/File Manipulation**](#7-stringfile-manipulation)
|
||||||
|
- [7.1 **File Manipulation**](#71-file-manipulation)
|
||||||
|
- [8. **Security practices**](#8-security-practices)
|
||||||
|
- [8.1 **Password generation**](#81-password-generation)
|
||||||
|
- [8.2 **File permissions**](#82-file-permissions)
|
||||||
|
- [9. **Service Configuration**](#9-service-configuration)
|
||||||
|
- [9.1 **Configuration files**](#91-configuration-files)
|
||||||
|
- [9.2 **Credential management**](#92-credential-management)
|
||||||
|
- [9.3 **Enviroment files**](#93-enviroment-files)
|
||||||
|
- [9.4 **Services**](#94-services)
|
||||||
|
- [10. **Cleanup**](#10-cleanup)
|
||||||
|
- [10.1 **Remove temporary files**](#101-remove-temporary-files)
|
||||||
|
- [10.2 **Autoremove and autoclean**](#102-autoremove-and-autoclean)
|
||||||
|
- [11. **Best Practices Checklist**](#11-best-practices-checklist)
|
||||||
|
- [Example: High-Level Script Flow](#example-high-level-script-flow)
|
||||||
|
|
||||||
|
## 1. **File header**
|
||||||
|
|
||||||
|
### 1.1 **Shebang**
|
||||||
|
|
||||||
|
- Use `#!/usr/bin/env bash` as the shebang.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.2 **Comments**
|
||||||
|
|
||||||
|
- Add clear comments for script metadata, including author, copyright, and license information.
|
||||||
|
- Use meaningful inline comments to explain complex commands or logic.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: [YourUserName]
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: [SOURCE_URL]
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!NOTE]:
|
||||||
|
>
|
||||||
|
> - Add your username
|
||||||
|
> - When updating/reworking scripts, add "| Co-Author [YourUserName]"
|
||||||
|
|
||||||
|
### 1.3 **Variables and function import**
|
||||||
|
|
||||||
|
- This sections adds the support for all needed functions and variables.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||||
|
color
|
||||||
|
verb_ip6
|
||||||
|
catch_errors
|
||||||
|
setting_up_container
|
||||||
|
network_check
|
||||||
|
update_os
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. **Variable naming and management**
|
||||||
|
|
||||||
|
### 2.1 **Naming conventions**
|
||||||
|
|
||||||
|
- Use uppercase names for constants and environment variables.
|
||||||
|
- Use lowercase names for local script variables.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
DB_NAME=snipeit_db # Environment-like variable (constant)
|
||||||
|
db_user="snipeit" # Local variable
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. **Dependencies**
|
||||||
|
|
||||||
|
### 3.1 **Install all at once**
|
||||||
|
|
||||||
|
- Install all dependencies with a single command if possible
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$STD apt-get install -y \
|
||||||
|
curl \
|
||||||
|
composer \
|
||||||
|
git \
|
||||||
|
sudo \
|
||||||
|
mc \
|
||||||
|
nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3.2 **Collapse dependencies**
|
||||||
|
|
||||||
|
Collapse dependencies to keep the code readable.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
Use
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php8.2-{bcmath,common,ctype}
|
||||||
|
```
|
||||||
|
|
||||||
|
instead of
|
||||||
|
|
||||||
|
```bash
|
||||||
|
php8.2-bcmath php8.2-common php8.2-ctype
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. **Paths to application files**
|
||||||
|
|
||||||
|
If possible install the app and all necessary files in `/opt/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5. **Version management**
|
||||||
|
|
||||||
|
### 5.1 **Install the latest release**
|
||||||
|
|
||||||
|
- Always try and install the latest release
|
||||||
|
- Do not hardcode any version if not absolutely necessary
|
||||||
|
|
||||||
|
Example for a git release:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/snipe/snipe-it/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5.2 **Save the version for update checks**
|
||||||
|
|
||||||
|
- Write the installed version into a file.
|
||||||
|
- This is used for the update function in **AppName.sh** to check for if a Update is needed.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo "${RELEASE}" >"/opt/AppName_version.txt"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6. **Input and output management**
|
||||||
|
|
||||||
|
### 6.1 **User feedback**
|
||||||
|
|
||||||
|
- Use standard functions like `msg_info`, `msg_ok` or `msg_error` to print status messages.
|
||||||
|
- Each `msg_info` must be followed with a `msg_ok` before any other output is made.
|
||||||
|
- Display meaningful progress messages at key stages.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt-get install -y ...
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6.2 **Verbosity**
|
||||||
|
|
||||||
|
- Use the appropiate flag (**-q** in the examples) for a command to suppres its output
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wget -q
|
||||||
|
unzip -q
|
||||||
|
```
|
||||||
|
|
||||||
|
- If a command dose not come with such a functionality use `$STD` (a custom standard redirection variable) for managing output verbosity.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$STD apt-get install -y nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7. **String/File Manipulation**
|
||||||
|
|
||||||
|
### 7.1 **File Manipulation**
|
||||||
|
|
||||||
|
- Use `sed` to replace placeholder values in configuration files.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sed -i -e "s|^DB_DATABASE=.*|DB_DATABASE=$DB_NAME|" \
|
||||||
|
-e "s|^DB_USERNAME=.*|DB_USERNAME=$DB_USER|" \
|
||||||
|
-e "s|^DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" .env
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8. **Security practices**
|
||||||
|
|
||||||
|
### 8.1 **Password generation**
|
||||||
|
|
||||||
|
- Use `openssl` to generate random passwords.
|
||||||
|
- Use only alphanumeric values to not introduce unknown behaviour.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8.2 **File permissions**
|
||||||
|
|
||||||
|
Explicitly set secure ownership and permissions for sensitive files.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chown -R www-data: /opt/snipe-it
|
||||||
|
chmod -R 755 /opt/snipe-it
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. **Service Configuration**
|
||||||
|
|
||||||
|
### 9.1 **Configuration files**
|
||||||
|
|
||||||
|
Use `cat <<EOF` to write configuration files in a clean and readable way.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat <<EOF >/etc/nginx/conf.d/snipeit.conf
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
root /opt/snipe-it/public;
|
||||||
|
index index.php;
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.2 **Credential management**
|
||||||
|
|
||||||
|
Store the generated credentials in a file.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
USERNAME=username
|
||||||
|
PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
|
{
|
||||||
|
echo "Application-Credentials"
|
||||||
|
echo "Username: $USERNAME"
|
||||||
|
echo "Password: $PASSWORD"
|
||||||
|
} >> ~/application.creds
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.3 **Enviroment files**
|
||||||
|
|
||||||
|
Use `cat <<EOF` to write enviromental files in a clean and readable way.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cat <<EOF >/path/to/.env
|
||||||
|
VARIABLE="value"
|
||||||
|
PORT=3000
|
||||||
|
DB_NAME="${DB_NAME}"
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
### 9.4 **Services**
|
||||||
|
|
||||||
|
Enable affected services after configuration changes and start them right away.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl enable -q --now nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10. **Cleanup**
|
||||||
|
|
||||||
|
### 10.1 **Remove temporary files**
|
||||||
|
|
||||||
|
Remove temporary files and downloads after use.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
rm -rf /opt/v${RELEASE}.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
### 10.2 **Autoremove and autoclean**
|
||||||
|
|
||||||
|
Remove unused dependencies to reduce disk space usage.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
apt-get -y autoremove
|
||||||
|
apt-get -y autoclean
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 11. **Best Practices Checklist**
|
||||||
|
|
||||||
|
- [ ] Shebang is correctly set (`#!/usr/bin/env bash`).
|
||||||
|
- [ ] Metadata (author, license) is included at the top.
|
||||||
|
- [ ] Variables follow naming conventions.
|
||||||
|
- [ ] Sensitive values are dynamically generated.
|
||||||
|
- [ ] Files and services have proper permissions.
|
||||||
|
- [ ] Script cleans up temporary files.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Example: High-Level Script Flow
|
||||||
|
|
||||||
|
1. Dependencies installation
|
||||||
|
2. Database setup
|
||||||
|
3. Download and configure application
|
||||||
|
4. Service configuration
|
||||||
|
5. Final cleanup
|
86
.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh
vendored
Normal file
86
.github/CONTRIBUTOR_GUIDE/install/AppName-install.sh
vendored
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2024 community-scripts ORG
|
||||||
|
# Author: [YourUserName]
|
||||||
|
# License: MIT
|
||||||
|
# Source: [SOURCE_URL]
|
||||||
|
|
||||||
|
# Import Functions und Setup
|
||||||
|
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||||
|
color
|
||||||
|
verb_ip6
|
||||||
|
catch_errors
|
||||||
|
setting_up_container
|
||||||
|
network_check
|
||||||
|
update_os
|
||||||
|
|
||||||
|
# Installing Dependencies with the 3 core dependencies (curl;sudo;mc)
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt-get install -y \
|
||||||
|
curl \
|
||||||
|
sudo \
|
||||||
|
mc \
|
||||||
|
[PACKAGE_1] \
|
||||||
|
[PACKAGE_2] \
|
||||||
|
[PACKAGE_3]
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
# Template: MySQL Database
|
||||||
|
msg_info "Setting up Database"
|
||||||
|
DB_NAME=[DB_NAME]
|
||||||
|
DB_USER=[DB_USER]
|
||||||
|
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
|
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
||||||
|
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$DB_PASS');"
|
||||||
|
$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||||
|
{
|
||||||
|
echo "${APPLICATION} Credentials"
|
||||||
|
echo "Database User: $DB_USER"
|
||||||
|
echo "Database Password: $DB_PASS"
|
||||||
|
echo "Database Name: $DB_NAME"
|
||||||
|
} >> ~/$APP_NAME.creds
|
||||||
|
msg_ok "Set up Database"
|
||||||
|
|
||||||
|
# Temp
|
||||||
|
|
||||||
|
# Setup App
|
||||||
|
msg_info "Setup ${APPLICATION}"
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/[REPO]/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
wget -q "https://github.com/[REPO]/archive/refs/tags/${RELEASE}.zip"
|
||||||
|
unzip -q ${RELEASE}.zip
|
||||||
|
mv ${APPLICATION}-${RELEASE}/ /opt/${APPLICATION}
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||||
|
msg_ok "Setup ${APPLICATION}"
|
||||||
|
|
||||||
|
# Creating Service (if needed)
|
||||||
|
msg_info "Creating Service"
|
||||||
|
cat <<EOF >/etc/systemd/system/${APPLICATION}.service
|
||||||
|
[Unit]
|
||||||
|
Description=${APPLICATION} Service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=[START_COMMAND]
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now ${APPLICATION}.service
|
||||||
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -f ${RELEASE}.zip
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
34
.github/CONTRIBUTOR_GUIDE/json/AppName.json
vendored
Normal file
34
.github/CONTRIBUTOR_GUIDE/json/AppName.json
vendored
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "AppName",
|
||||||
|
"slug": "appname",
|
||||||
|
"categories": [
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"date_created": "DATE CREATED",
|
||||||
|
"type": "ct",
|
||||||
|
"updateable": true,
|
||||||
|
"privileged": false,
|
||||||
|
"interface_port": DEFAULT-PORT,
|
||||||
|
"documentation": null,
|
||||||
|
"website": "LINK TO WEBSITE",
|
||||||
|
"logo": "LINK TO LOGO",
|
||||||
|
"description": "Deescription of the app",
|
||||||
|
"install_methods": [
|
||||||
|
{
|
||||||
|
"type": "default",
|
||||||
|
"script": "ct/AppName.sh",
|
||||||
|
"resources": {
|
||||||
|
"cpu": 2,
|
||||||
|
"ram": 2048,
|
||||||
|
"hdd": 4,
|
||||||
|
"os": "debian",
|
||||||
|
"version": "12"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials": {
|
||||||
|
"username": null,
|
||||||
|
"password": null
|
||||||
|
},
|
||||||
|
"notes": []
|
||||||
|
}
|
13
.github/CONTRIBUTOR_GUIDE/json/AppName.md
vendored
Normal file
13
.github/CONTRIBUTOR_GUIDE/json/AppName.md
vendored
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# **AppName<span></span>.json Files**
|
||||||
|
|
||||||
|
`AppName.json` files found in the `/json` directory. These files are used to provide informations for the website. For this guide we take `/json/snipeit.json` as example.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
- [**AppName.json Files**](#appnamejson-files)
|
||||||
|
- [Table of Contents](#table-of-contents)
|
||||||
|
- [1. JSON Generator](#1-json-generator)
|
||||||
|
|
||||||
|
## 1. JSON Generator
|
||||||
|
|
||||||
|
Use the [JSON Generator](https://community-scripts.github.io/ProxmoxVE/json-editor) to create this file for your application.
|
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@ -1 +1,2 @@
|
|||||||
ko_fi: community_scripts
|
ko_fi: community_scripts
|
||||||
|
github: community_scripts
|
||||||
|
71
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
71
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -5,44 +5,64 @@ body:
|
|||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
**IMPORTANT:** Failure to comply with the following guidelines may result in immediate closure.
|
# 🐞 **Script Issue Report**
|
||||||
- Prior to submitting, kindly search the closed issues to check if the problem you are reporting has already been addressed and resolved. If you come across a closed issue that pertains to your problem, please leave a comment on that issue instead of creating a new one.
|
Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently.
|
||||||
- If the default Linux distribution is not adhered to, script support will be discontinued.
|
|
||||||
- When encountering the error message `[ERROR] in line 23: exit code *: while executing command "$@" > /dev/null 2>&1`, make sure to run the script in verbose mode to accurately determine the underlying issue.
|
|
||||||
- For suggestions, questions, or feature/script requests, please use the [Discussions section.](https://github.com/community-scripts/ProxmoxVE/discussions)
|
|
||||||
|
|
||||||
|
## ⚠️ **IMPORTANT - READ FIRST**
|
||||||
|
- 🔍 **Search first:** Before submitting, check if the issue has already been reported or resolved in [closed issues](https://github.com/community-scripts/ProxmoxVE/issues?q=is%3Aissue+is%3Aclosed). If found, comment on that issue instead of creating a new one.
|
||||||
|
Alternatively, check the **[Discussions](https://github.com/community-scripts/ProxmoxVE/discussions)** under the *"Announcement"* or *"Guide"* categories for relevant information.
|
||||||
|
- 🛠️ **Supported environments only:** Ensure you are using a default Linux distribution. Custom setups may not be supported.
|
||||||
|
- 🔎 If you encounter `[ERROR] in line 23: exit code *: while executing command "$@" > /dev/null 2>&1`, rerun the script with verbose mode before submitting the issue.
|
||||||
|
- 💡 For general questions, feature requests, or suggestions, use the [Discussions section](https://github.com/community-scripts/ProxmoxVE/discussions).
|
||||||
|
|
||||||
- type: input
|
- type: input
|
||||||
id: guidelines
|
id: guidelines
|
||||||
attributes:
|
attributes:
|
||||||
label: Please verify that you have read and understood the guidelines.
|
label: ✅ Have you read and understood the above guidelines?
|
||||||
placeholder: "yes"
|
placeholder: "yes"
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: input
|
||||||
id: bug
|
id: script_name
|
||||||
attributes:
|
attributes:
|
||||||
label: A clear and concise description of the issue.
|
label: 📜 What is the name of the script you are using?
|
||||||
|
placeholder: "e.g., NextcloudPi, Zigbee2MQTT"
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
- type: input
|
||||||
|
id: script_command
|
||||||
|
attributes:
|
||||||
|
label: 📂 What was the exact command used to execute the script?
|
||||||
|
placeholder: "e.g., bash -c \"$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/zigbee2mqtt.sh)\" or \"update\""
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: issue_description
|
||||||
|
attributes:
|
||||||
|
label: 📝 Provide a clear and concise description of the issue.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
attributes:
|
attributes:
|
||||||
label: What settings are you currently utilizing?
|
label: ⚙️ What settings are you using?
|
||||||
options:
|
options:
|
||||||
- label: Default Settings
|
- label: Default Settings
|
||||||
- label: Advanced Settings
|
- label: Advanced Settings
|
||||||
|
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: "If using Advanced Settings, please try Default Settings before creating an issue."
|
value: "💡 **Tip:** If you are using Advanced Settings, please test with Default Settings before submitting an issue."
|
||||||
|
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: distribution
|
id: linux_distribution
|
||||||
attributes:
|
attributes:
|
||||||
label: Which Linux distribution are you employing?
|
label: 🖥️ Which Linux distribution are you using?
|
||||||
options:
|
options:
|
||||||
-
|
-
|
||||||
- Alpine
|
- Alpine
|
||||||
@ -51,21 +71,30 @@ body:
|
|||||||
- Ubuntu 20.04
|
- Ubuntu 20.04
|
||||||
- Ubuntu 22.04
|
- Ubuntu 22.04
|
||||||
- Ubuntu 24.04
|
- Ubuntu 24.04
|
||||||
|
- Ubuntu 24.10
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: screenshot
|
id: steps_to_reproduce
|
||||||
attributes:
|
attributes:
|
||||||
label: If relevant, including screenshots or a code block can be helpful in clarifying the issue.
|
label: 🔄 Steps to reproduce the issue.
|
||||||
placeholder: "Code blocks begin and conclude by enclosing the code with three backticks (```) above and below it."
|
placeholder: "e.g., Step 1: ..., Step 2: ..."
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: reproduce
|
id: error_output
|
||||||
attributes:
|
attributes:
|
||||||
label: Please provide detailed steps to reproduce the issue.
|
label: ❌ Paste the full error output (if available).
|
||||||
placeholder: "First do this, then this ..."
|
placeholder: "Include any relevant logs or error messages."
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: textarea
|
||||||
|
id: additional_context
|
||||||
|
attributes:
|
||||||
|
label: 🖼️ Additional context (optional).
|
||||||
|
placeholder: "Include screenshots, code blocks (use triple backticks ```), or any other relevant information."
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
4
.github/autolabeler-config.json
vendored
4
.github/autolabeler-config.json
vendored
@ -50,7 +50,7 @@
|
|||||||
"maintenance": [
|
"maintenance": [
|
||||||
{
|
{
|
||||||
"fileStatus": null,
|
"fileStatus": null,
|
||||||
"includeGlobs": ["*.md", ".github/**"],
|
"includeGlobs": ["*.md", ".github/**", "misc/*.func", "ct/create_lxc.sh"],
|
||||||
"excludeGlobs": []
|
"excludeGlobs": []
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -61,4 +61,4 @@
|
|||||||
"excludeGlobs": []
|
"excludeGlobs": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
54
.github/check-script.yml
vendored
54
.github/check-script.yml
vendored
@ -1,54 +0,0 @@
|
|||||||
name: Check Shell Scripts
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- '**/*.sh' # Führt den Check nur für Shell-Skripte aus
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check-scripts:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout Code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Check `source` Line in Scripts
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
set -e
|
|
||||||
ERROR_COUNT=0
|
|
||||||
FILES=$(find . -name "*.sh")
|
|
||||||
|
|
||||||
for FILE in $FILES; do
|
|
||||||
# Check for exact match of the source line in line 2
|
|
||||||
if [[ $(sed -n '2p' "$FILE") =~ ^source[[:space:]]+<(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) ]]; then
|
|
||||||
echo "Check passed for: $FILE"
|
|
||||||
else
|
|
||||||
echo "Error in $FILE: Line 2 must be exactly 'source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)' if a source line is used."
|
|
||||||
ERROR_COUNT=$((ERROR_COUNT + 1))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for shebang line at the top
|
|
||||||
if [[ $(head -n 1 "$FILE") != "#!/usr/bin/env bash" ]]; then
|
|
||||||
echo "Error in $FILE: The first line must be '#!/usr/bin/env bash'."
|
|
||||||
ERROR_COUNT=$((ERROR_COUNT + 1))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for executable permissions
|
|
||||||
if [[ ! -x "$FILE" ]]; then
|
|
||||||
echo "Warning in $FILE: This script is not executable. Consider running 'chmod +x $FILE'."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for empty lines at the beginning of the script
|
|
||||||
if [[ $(head -n 10 "$FILE" | grep -c '^$') -gt 0 ]]; then
|
|
||||||
echo "Warning in $FILE: There are empty lines at the beginning of the script. Consider removing them."
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [[ "$ERROR_COUNT" -gt 0 ]]; then
|
|
||||||
echo "$ERROR_COUNT script(s) failed validation."
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
echo "All scripts passed."
|
|
||||||
fi
|
|
53
.github/pull_request_template.md
vendored
53
.github/pull_request_template.md
vendored
@ -1,31 +1,28 @@
|
|||||||
> [!NOTE]
|
## ✍️ Description
|
||||||
> We are meticulous when it comes to merging code into the main branch, so please understand that we may reject pull requests that do not meet the project's standards. It's never personal. Also, game-related scripts have a lower chance of being merged.
|
|
||||||
|
|
||||||
## Description
|
|
||||||
|
|
||||||
Provide a summary of the changes made and/or reference the issue being addressed.
|
|
||||||
|
|
||||||
Fixes # (issue)
|
|
||||||
|
|
||||||
## Type of change
|
|
||||||
Please check the relevant option(s):
|
|
||||||
|
|
||||||
- [ ] Bug fix (non-breaking change that resolves an issue)
|
|
||||||
- [ ] New feature (non-breaking change that adds functionality)
|
|
||||||
- [ ] Breaking change (a fix or feature that would cause existing functionality to change unexpectedly)
|
|
||||||
- [ ] New script (a fully functional and thoroughly tested script or set of scripts.)
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
The following efforts must be made for the PR to be considered. Please check when completed:
|
|
||||||
- [ ] Self-review performed (I have reviewed my code, ensuring it follows established patterns and conventions)
|
|
||||||
- [ ] Testing performed (I have tested my changes, ensuring everything works as expected)
|
|
||||||
- [ ] Documentation updated (I have updated any relevant documentation)
|
|
||||||
|
|
||||||
## Additional Information (optional)
|
|
||||||
Provide any additional context or screenshots about the feature or fix here.
|
|
||||||
|
|
||||||
|
|
||||||
## Related Pull Requests / Discussions
|
|
||||||
|
|
||||||
|
- - -
|
||||||
|
- Related Issue: #
|
||||||
|
- Related PR: #
|
||||||
|
- Related Discussion: #
|
||||||
|
- - -
|
||||||
|
|
||||||
|
|
||||||
|
## ✅ Prerequisites
|
||||||
|
The following steps must be completed for the pull request to be considered:
|
||||||
|
- [] Self-review performed (I have reviewed my code to ensure it follows established patterns and conventions.)
|
||||||
|
- [] Testing performed (I have thoroughly tested my changes and verified expected functionality.)
|
||||||
|
|
||||||
|
## 🛠️ Type of Change
|
||||||
|
Please check the relevant options:
|
||||||
|
- [] Bug fix (non-breaking change that resolves an issue)
|
||||||
|
- [] New feature (non-breaking change that adds functionality)
|
||||||
|
- [] Breaking change (fix or feature that would cause existing functionality to change unexpectedly)
|
||||||
|
- [] New script (a fully functional and thoroughly tested script or set of scripts)
|
||||||
|
|
||||||
|
---
|
||||||
|
## 📋 Additional Information (optional)
|
||||||
|
Provide any extra context or screenshots about the feature or fix here.
|
||||||
|
|
||||||
If there are other pull requests or discussions related to this change, please link them here:
|
|
||||||
- Related PR #
|
|
||||||
|
79
.github/workflows/auto-update-app-headers.yml
vendored
Normal file
79
.github/workflows/auto-update-app-headers.yml
vendored
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
name: Auto Update .app-files
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'ct/**.sh'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-app-files:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# Step 1: Checkout repository
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Step 2: Disable file mode changes detection
|
||||||
|
- name: Disable file mode changes
|
||||||
|
run: git config core.fileMode false
|
||||||
|
|
||||||
|
# Step 3: Set up Git user for committing changes
|
||||||
|
- name: Set up Git
|
||||||
|
run: |
|
||||||
|
git config --global user.name "GitHub Actions"
|
||||||
|
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
|
||||||
|
# Step 4: Install figlet
|
||||||
|
- name: Install figlet
|
||||||
|
run: sudo apt-get install -y figlet
|
||||||
|
|
||||||
|
# Step 5: Run the updated generate-app-files.sh script
|
||||||
|
- name: Run generate-app-files.sh
|
||||||
|
run: |
|
||||||
|
chmod +x .github/workflows/scripts/generate-app-headers.sh
|
||||||
|
.github/workflows/scripts/generate-app-headers.sh
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
# Step 6: Check if there are any changes
|
||||||
|
- name: Check if there are any changes
|
||||||
|
run: |
|
||||||
|
echo "Checking for changes..."
|
||||||
|
git add -A # Untracked Dateien aufnehmen
|
||||||
|
git status
|
||||||
|
if git diff --cached --quiet; then
|
||||||
|
echo "No changes detected."
|
||||||
|
echo "changed=false" >> "$GITHUB_ENV"
|
||||||
|
else
|
||||||
|
echo "Changes detected:"
|
||||||
|
git diff --stat --cached
|
||||||
|
echo "changed=true" >> "$GITHUB_ENV"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Step 7: Commit and create PR if changes exist
|
||||||
|
- name: Commit and create PR if changes exist
|
||||||
|
if: env.changed == 'true'
|
||||||
|
run: |
|
||||||
|
git commit -m "Update .app files"
|
||||||
|
git checkout -b pr-update-app-files
|
||||||
|
git push origin pr-update-app-files --force
|
||||||
|
gh pr create --title "[core] update .app files" \
|
||||||
|
--body "This PR is auto-generated by a GitHub Action to update the .app files." \
|
||||||
|
--head pr-update-app-files \
|
||||||
|
--base main \
|
||||||
|
--label "automated pr"
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
# Step 8: Output success message when no changes
|
||||||
|
- name: No changes detected
|
||||||
|
if: env.changed == 'false'
|
||||||
|
run: echo "No changes to commit. Workflow completed successfully."
|
60
.github/workflows/backup/check_and_update_json_date.yml
vendored
Normal file
60
.github/workflows/backup/check_and_update_json_date.yml
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
name: Update date_created in JSON files
|
||||||
|
|
||||||
|
on:
|
||||||
|
# Dieser Trigger wird für das Öffnen von PRs sowie für das Aktualisieren von offenen PRs verwendet
|
||||||
|
pull_request:
|
||||||
|
types: [opened, synchronize]
|
||||||
|
schedule:
|
||||||
|
# Dieser Trigger wird 4x am Tag ausgelöst, um sicherzustellen, dass das Datum aktualisiert wird
|
||||||
|
- cron: "0 0,6,12,18 * * *" # Führt alle 6 Stunden aus
|
||||||
|
workflow_dispatch: # Manuelle Ausführung des Workflows möglich
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-date:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install yq
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y yq
|
||||||
|
|
||||||
|
- name: Set the current date
|
||||||
|
id: set_date
|
||||||
|
run: echo "TODAY=$(date -u +%Y-%m-%d)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Check for changes in PR
|
||||||
|
run: |
|
||||||
|
# Hole den PR-Branch
|
||||||
|
PR_BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
|
||||||
|
git fetch origin $PR_BRANCH
|
||||||
|
|
||||||
|
# Liste alle JSON-Dateien im PR auf, die geändert wurden
|
||||||
|
CHANGED_JSON_FILES=$(git diff --name-only origin/main...$PR_BRANCH | grep '.json')
|
||||||
|
|
||||||
|
if [ -z "$CHANGED_JSON_FILES" ]; then
|
||||||
|
echo "No JSON files changed in this PR."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Gehe alle geänderten JSON-Dateien durch und aktualisiere das Datum
|
||||||
|
for file in $CHANGED_JSON_FILES; do
|
||||||
|
echo "Updating date_created in $file"
|
||||||
|
# Setze das aktuelle Datum
|
||||||
|
yq eval ".date_created = \"${{ env.TODAY }}\"" -i "$file"
|
||||||
|
git add "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Commit and push changes
|
||||||
|
run: |
|
||||||
|
# Prüfe, ob es Änderungen gibt und committe sie
|
||||||
|
git config user.name "json-updater-bot"
|
||||||
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
|
||||||
|
git commit -m "Update date_created to ${{ env.TODAY }}" || echo "No changes to commit"
|
||||||
|
|
||||||
|
# Push zurück in den PR-Branch
|
||||||
|
git push origin $PR_BRANCH
|
60
.github/workflows/backup/shellcheck.yml
vendored
Normal file
60
.github/workflows/backup/shellcheck.yml
vendored
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
name: Shellcheck
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
- cron: "5 1 * * *"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
shellcheck:
|
||||||
|
name: Shellcheck
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Get changed files
|
||||||
|
id: changed-files
|
||||||
|
uses: tj-actions/changed-files@v45
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
**.sh
|
||||||
|
|
||||||
|
- name: Download ShellCheck
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
INPUT_VERSION: "v0.10.0"
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
if [[ "${{ runner.os }}" == "macOS" ]]; then
|
||||||
|
osvariant="darwin"
|
||||||
|
else
|
||||||
|
osvariant="linux"
|
||||||
|
fi
|
||||||
|
|
||||||
|
baseurl="https://github.com/koalaman/shellcheck/releases/download"
|
||||||
|
curl -Lso "${{ github.workspace }}/sc.tar.xz" \
|
||||||
|
"${baseurl}/${INPUT_VERSION}/shellcheck-${INPUT_VERSION}.${osvariant}.x86_64.tar.xz"
|
||||||
|
|
||||||
|
tar -xf "${{ github.workspace }}/sc.tar.xz" -C "${{ github.workspace }}"
|
||||||
|
mv "${{ github.workspace }}/shellcheck-${INPUT_VERSION}/shellcheck" \
|
||||||
|
"${{ github.workspace }}/shellcheck"
|
||||||
|
|
||||||
|
- name: Verify ShellCheck binary
|
||||||
|
run: |
|
||||||
|
ls -l "${{ github.workspace }}/shellcheck"
|
||||||
|
|
||||||
|
- name: Display ShellCheck version
|
||||||
|
run: |
|
||||||
|
"${{ github.workspace }}/shellcheck" --version
|
||||||
|
|
||||||
|
- name: Run ShellCheck
|
||||||
|
if: steps.changed-files.outputs.any_changed == 'true'
|
||||||
|
env:
|
||||||
|
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||||
|
run: |
|
||||||
|
echo "${ALL_CHANGED_FILES}" | xargs "${{ github.workspace }}/shellcheck"
|
133
.github/workflows/backup/validate-formatting.yaml.bak
vendored
Normal file
133
.github/workflows/backup/validate-formatting.yaml.bak
vendored
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
name: Validate script formatting
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request_target:
|
||||||
|
paths:
|
||||||
|
- "**/*.sh"
|
||||||
|
- "**/*.func"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
shfmt:
|
||||||
|
name: Check changed files
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Get pull request information
|
||||||
|
if: github.event_name == 'pull_request_target'
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
id: pr
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const { data: pullRequest } = await github.rest.pulls.get({
|
||||||
|
...context.repo,
|
||||||
|
pull_number: context.payload.pull_request.number,
|
||||||
|
});
|
||||||
|
return pullRequest;
|
||||||
|
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
|
||||||
|
ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
|
||||||
|
|
||||||
|
- name: Get changed files
|
||||||
|
id: changed-files
|
||||||
|
run: |
|
||||||
|
if ${{ github.event_name == 'pull_request_target' }}; then
|
||||||
|
echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Set up Go
|
||||||
|
if: steps.changed-files.outputs.files != ''
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
|
||||||
|
- name: Install shfmt
|
||||||
|
if: steps.changed-files.outputs.files != ''
|
||||||
|
run: |
|
||||||
|
go install mvdan.cc/sh/v3/cmd/shfmt@latest
|
||||||
|
echo "$GOPATH/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
|
- name: Run shfmt
|
||||||
|
if: steps.changed-files.outputs.files != ''
|
||||||
|
id: shfmt
|
||||||
|
run: |
|
||||||
|
set +e
|
||||||
|
|
||||||
|
|
||||||
|
shfmt_output=$(shfmt -d ${{ steps.changed-files.outputs.files }})
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "diff=\"$(echo -n "$shfmt_output" | base64 -w 0)\"" >> $GITHUB_OUTPUT
|
||||||
|
printf "%s" "$shfmt_output"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Post comment with results
|
||||||
|
if: always() && steps.changed-files.outputs.files != '' && github.event_name == 'pull_request_target'
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const result = "${{ job.status }}" === "success" ? "success" : "failure";
|
||||||
|
const diff = Buffer.from(
|
||||||
|
${{ steps.shfmt.outputs.diff }},
|
||||||
|
"base64",
|
||||||
|
).toString();
|
||||||
|
const issueNumber = context.payload.pull_request
|
||||||
|
? context.payload.pull_request.number
|
||||||
|
: null;
|
||||||
|
const commentIdentifier = "validate-formatting";
|
||||||
|
let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Script formatting\n\n`;
|
||||||
|
|
||||||
|
if (result === "failure") {
|
||||||
|
newCommentBody +=
|
||||||
|
`:x: We found issues in the formatting of the following changed files:\n\n\`\`\`diff\n${diff}\n\`\`\`\n`;
|
||||||
|
} else {
|
||||||
|
newCommentBody += `:rocket: All changed shell scripts are formatted correctly!\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
|
||||||
|
|
||||||
|
if (issueNumber) {
|
||||||
|
const { data: comments } = await github.rest.issues.listComments({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber,
|
||||||
|
});
|
||||||
|
|
||||||
|
const existingComment = comments.find(
|
||||||
|
(comment) => comment.user.login === "github-actions[bot]",
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
if (existingComment) {
|
||||||
|
if (existingComment.body.includes(commentIdentifier)) {
|
||||||
|
const re = new RegExp(
|
||||||
|
String.raw`<!-- ${commentIdentifier}-start -->[\s\S]*?<!-- ${commentIdentifier}-end -->`,
|
||||||
|
"",
|
||||||
|
);
|
||||||
|
newCommentBody = existingComment.body.replace(re, newCommentBody);
|
||||||
|
} else {
|
||||||
|
newCommentBody = existingComment.body + "\n\n---\n\n" + newCommentBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
await github.rest.issues.updateComment({
|
||||||
|
...context.repo,
|
||||||
|
comment_id: existingComment.id,
|
||||||
|
body: newCommentBody,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber,
|
||||||
|
body: newCommentBody,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
234
.github/workflows/backup/validate-scripts.yml.bak
vendored
Normal file
234
.github/workflows/backup/validate-scripts.yml.bak
vendored
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
name: Validate scripts
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request_target:
|
||||||
|
paths:
|
||||||
|
- "ct/*.sh"
|
||||||
|
- "install/*.sh"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-scripts:
|
||||||
|
name: Check changed files
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Debug event payload
|
||||||
|
run: |
|
||||||
|
echo "Event name: ${{ github.event_name }}"
|
||||||
|
echo "Payload: $(cat $GITHUB_EVENT_PATH)"
|
||||||
|
|
||||||
|
- name: Get pull request information
|
||||||
|
if: github.event_name == 'pull_request_target'
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
id: pr
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const { data: pullRequest } = await github.rest.pulls.get({
|
||||||
|
...context.repo,
|
||||||
|
pull_number: context.payload.pull_request.number,
|
||||||
|
});
|
||||||
|
return pullRequest;
|
||||||
|
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
|
||||||
|
|
||||||
|
- name: Get changed files
|
||||||
|
id: changed-files
|
||||||
|
run: |
|
||||||
|
if [ "${{ github.event_name }}" == "pull_request_target" ]; then
|
||||||
|
echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | grep -E '\.(sh|func)$' | xargs)" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check build.func line
|
||||||
|
if: always() && steps.changed-files.outputs.files != ''
|
||||||
|
id: build-func
|
||||||
|
run: |
|
||||||
|
NON_COMPLIANT_FILES=""
|
||||||
|
for FILE in ${{ steps.changed-files.outputs.files }}; do
|
||||||
|
if [[ "$FILE" == ct/* ]] && [[ $(sed -n '2p' "$FILE") != "source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)" ]]; then
|
||||||
|
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NON_COMPLIANT_FILES" ]; then
|
||||||
|
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
|
||||||
|
echo "Build.func line missing or incorrect in files:"
|
||||||
|
for FILE in $NON_COMPLIANT_FILES; do
|
||||||
|
echo "$FILE"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check executable permissions
|
||||||
|
if: always() && steps.changed-files.outputs.files != ''
|
||||||
|
id: check-executable
|
||||||
|
run: |
|
||||||
|
NON_COMPLIANT_FILES=""
|
||||||
|
for FILE in ${{ steps.changed-files.outputs.files }}; do
|
||||||
|
if [[ ! -x "$FILE" ]]; then
|
||||||
|
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NON_COMPLIANT_FILES" ]; then
|
||||||
|
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
|
||||||
|
echo "Files not executable:"
|
||||||
|
for FILE in $NON_COMPLIANT_FILES; do
|
||||||
|
echo "$FILE"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check copyright
|
||||||
|
if: always() && steps.changed-files.outputs.files != ''
|
||||||
|
id: check-copyright
|
||||||
|
run: |
|
||||||
|
NON_COMPLIANT_FILES=""
|
||||||
|
for FILE in ${{ steps.changed-files.outputs.files }}; do
|
||||||
|
if ! sed -n '3p' "$FILE" | grep -qE "^# Copyright \(c\) [0-9]{4}(-[0-9]{4})? (tteck \| community-scripts ORG|community-scripts ORG|tteck)$"; then
|
||||||
|
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NON_COMPLIANT_FILES" ]; then
|
||||||
|
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
|
||||||
|
echo "Copyright header missing or not on line 3 in files:"
|
||||||
|
for FILE in $NON_COMPLIANT_FILES; do
|
||||||
|
echo "$FILE"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check author
|
||||||
|
if: always() && steps.changed-files.outputs.files != ''
|
||||||
|
id: check-author
|
||||||
|
run: |
|
||||||
|
NON_COMPLIANT_FILES=""
|
||||||
|
for FILE in ${{ steps.changed-files.outputs.files }}; do
|
||||||
|
if ! sed -n '4p' "$FILE" | grep -qE "^# Author: .+"; then
|
||||||
|
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NON_COMPLIANT_FILES" ]; then
|
||||||
|
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
|
||||||
|
echo "Author header missing or invalid on line 4 in files:"
|
||||||
|
for FILE in $NON_COMPLIANT_FILES; do
|
||||||
|
echo "$FILE"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check license
|
||||||
|
if: always() && steps.changed-files.outputs.files != ''
|
||||||
|
id: check-license
|
||||||
|
run: |
|
||||||
|
NON_COMPLIANT_FILES=""
|
||||||
|
for FILE in ${{ steps.changed-files.outputs.files }}; do
|
||||||
|
if [[ "$(sed -n '5p' "$FILE")" != "# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE" ]]; then
|
||||||
|
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NON_COMPLIANT_FILES" ]; then
|
||||||
|
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
|
||||||
|
echo "License header missing or not on line 5 in files:"
|
||||||
|
for FILE in $NON_COMPLIANT_FILES; do
|
||||||
|
echo "$FILE"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check source
|
||||||
|
if: always() && steps.changed-files.outputs.files != ''
|
||||||
|
id: check-source
|
||||||
|
run: |
|
||||||
|
NON_COMPLIANT_FILES=""
|
||||||
|
for FILE in ${{ steps.changed-files.outputs.files }}; do
|
||||||
|
if ! sed -n '6p' "$FILE" | grep -qE "^# Source: .+"; then
|
||||||
|
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NON_COMPLIANT_FILES" ]; then
|
||||||
|
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
|
||||||
|
echo "Source header missing or not on line 6 in files:"
|
||||||
|
for FILE in $NON_COMPLIANT_FILES; do
|
||||||
|
echo "$FILE"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Post results and comment
|
||||||
|
if: always() && steps.changed-files.outputs.files != '' && github.event_name == 'pull_request_target'
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const result = '${{ job.status }}' === 'success' ? 'success' : 'failure';
|
||||||
|
const nonCompliantFiles = {
|
||||||
|
'Invalid build.func source': "${{ steps.build-func.outputs.files || '' }}",
|
||||||
|
'Not executable': "${{ steps.check-executable.outputs.files || '' }}",
|
||||||
|
'Copyright header line missing or invalid': "${{ steps.check-copyright.outputs.files || '' }}",
|
||||||
|
'Author header line missing or invalid': "${{ steps.check-author.outputs.files || '' }}",
|
||||||
|
'License header line missing or invalid': "${{ steps.check-license.outputs.files || '' }}",
|
||||||
|
'Source header line missing or invalid': "${{ steps.check-source.outputs.files || '' }}"
|
||||||
|
};
|
||||||
|
|
||||||
|
const issueNumber = context.payload.pull_request ? context.payload.pull_request.number : null;
|
||||||
|
const commentIdentifier = 'validate-scripts';
|
||||||
|
let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Script validation\n\n`;
|
||||||
|
|
||||||
|
if (result === 'failure') {
|
||||||
|
newCommentBody += ':x: We found issues in the following changed files:\n\n';
|
||||||
|
for (const [check, files] of Object.entries(nonCompliantFiles)) {
|
||||||
|
if (files) {
|
||||||
|
newCommentBody += `**${check}:**\n`;
|
||||||
|
files.trim().split(' ').forEach(file => {
|
||||||
|
newCommentBody += `- ${file}: ${check}\n`;
|
||||||
|
});
|
||||||
|
newCommentBody += `\n`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
newCommentBody += `:rocket: All changed shell scripts passed validation!\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
|
||||||
|
|
||||||
|
if (issueNumber) {
|
||||||
|
const { data: comments } = await github.rest.issues.listComments({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber
|
||||||
|
});
|
||||||
|
|
||||||
|
const existingComment = comments.find(comment =>
|
||||||
|
comment.body.includes(`<!-- ${commentIdentifier}-start -->`) &&
|
||||||
|
comment.user.login === 'github-actions[bot]'
|
||||||
|
);
|
||||||
|
|
||||||
|
if (existingComment) {
|
||||||
|
const re = new RegExp(String.raw`<!-- ${commentIdentifier}-start -->[\\s\\S]*?<!-- ${commentIdentifier}-end -->`, "m");
|
||||||
|
newCommentBody = existingComment.body.replace(re, newCommentBody);
|
||||||
|
|
||||||
|
await github.rest.issues.updateComment({
|
||||||
|
...context.repo,
|
||||||
|
comment_id: existingComment.id,
|
||||||
|
body: newCommentBody
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber,
|
||||||
|
body: newCommentBody
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
20
.github/workflows/changelog-pr.yml
vendored
20
.github/workflows/changelog-pr.yml
vendored
@ -63,6 +63,7 @@ jobs:
|
|||||||
const { data: pulls } = await github.rest.pulls.list({
|
const { data: pulls } = await github.rest.pulls.list({
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
|
base: "main",
|
||||||
state: "closed",
|
state: "closed",
|
||||||
sort: "updated",
|
sort: "updated",
|
||||||
direction: "desc",
|
direction: "desc",
|
||||||
@ -70,7 +71,9 @@ jobs:
|
|||||||
});
|
});
|
||||||
|
|
||||||
pulls.filter((pr) =>
|
pulls.filter((pr) =>
|
||||||
pr.merged_at && new Date(pr.merged_at) > latestDateInChangelog
|
pr.merged_at &&
|
||||||
|
new Date(pr.merged_at) > latestDateInChangelog &&
|
||||||
|
!pr.labels.some((label) => ["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase()))
|
||||||
).forEach((pr) => {
|
).forEach((pr) => {
|
||||||
const prLabels = pr.labels.map((label) => label.name.toLowerCase());
|
const prLabels = pr.labels.map((label) => label.name.toLowerCase());
|
||||||
const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
|
const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
|
||||||
@ -78,12 +81,11 @@ jobs:
|
|||||||
for (const { labels, notes } of categorizedPRs) {
|
for (const { labels, notes } of categorizedPRs) {
|
||||||
const prHasCategoryLabel = labels.some((label) => prLabels.includes(label));
|
const prHasCategoryLabel = labels.some((label) => prLabels.includes(label));
|
||||||
const isUnlabelledCategory = labels.length === 0;
|
const isUnlabelledCategory = labels.length === 0;
|
||||||
const prShouldBeExcluded = prLabels.includes(process.env.AUTOMATED_PR_LABEL);
|
if (prHasCategoryLabel || isUnlabelledCategory) {
|
||||||
if ((prHasCategoryLabel || isUnlabelledCategory) && !prShouldBeExcluded) {
|
|
||||||
notes.push(prNote);
|
notes.push(prNote);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return categorizedPRs;
|
return categorizedPRs;
|
||||||
@ -156,3 +158,13 @@ jobs:
|
|||||||
if [ -n "$PR_NUMBER" ]; then
|
if [ -n "$PR_NUMBER" ]; then
|
||||||
gh pr review $PR_NUMBER --approve
|
gh pr review $PR_NUMBER --approve
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Re-approve pull request after update
|
||||||
|
if: steps.verify-diff.outputs.changed == 'true'
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
|
||||||
|
if [ -n "$PR_NUMBER" ]; then
|
||||||
|
gh pr review $PR_NUMBER --approve
|
||||||
|
fi
|
||||||
|
79
.github/workflows/deploy-pages.yml
vendored
79
.github/workflows/deploy-pages.yml
vendored
@ -1,79 +0,0 @@
|
|||||||
# Sample workflow for building and deploying a Next.js site to GitHub Pages
|
|
||||||
#
|
|
||||||
# To get started with Next.js see: https://nextjs.org/docs/getting-started
|
|
||||||
#
|
|
||||||
name: Deploy Next.js site to Pages
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: ["main"]
|
|
||||||
paths:
|
|
||||||
- frontend/**
|
|
||||||
- json/**
|
|
||||||
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
pages: write
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
concurrency:
|
|
||||||
group: "pages"
|
|
||||||
cancel-in-progress: false
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: frontend # Set default working directory for all run steps
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Detect package manager
|
|
||||||
id: detect-package-manager
|
|
||||||
run: |
|
|
||||||
if [ -f "${{ github.workspace }}/frontend/yarn.lock" ]; then
|
|
||||||
echo "manager=yarn" >> $GITHUB_OUTPUT
|
|
||||||
echo "command=install" >> $GITHUB_OUTPUT
|
|
||||||
echo "runner=yarn" >> $GITHUB_OUTPUT
|
|
||||||
exit 0
|
|
||||||
elif [ -f "${{ github.workspace }}/frontend/package.json" ]; then
|
|
||||||
echo "manager=npm" >> $GITHUB_OUTPUT
|
|
||||||
echo "command=ci" >> $GITHUB_OUTPUT
|
|
||||||
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo "Unable to determine package manager"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "20"
|
|
||||||
cache: ${{ steps.detect-package-manager.outputs.manager }}
|
|
||||||
cache-dependency-path: frontend/package-lock.json # Specify the path to package-lock.json
|
|
||||||
- name: Setup Pages
|
|
||||||
uses: actions/configure-pages@v5
|
|
||||||
with:
|
|
||||||
static_site_generator: next
|
|
||||||
- name: Install dependencies
|
|
||||||
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }} --legacy-peer-deps
|
|
||||||
- name: Build with Next.js
|
|
||||||
run: ${{ steps.detect-package-manager.outputs.runner }} next build
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-pages-artifact@v3
|
|
||||||
with:
|
|
||||||
path: frontend/out
|
|
||||||
|
|
||||||
deploy:
|
|
||||||
environment:
|
|
||||||
name: github-pages
|
|
||||||
url: ${{ steps.deployment.outputs.page_url }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: build
|
|
||||||
steps:
|
|
||||||
- name: Deploy to GitHub Pages
|
|
||||||
id: deployment
|
|
||||||
uses: actions/deploy-pages@v4
|
|
78
.github/workflows/frontend-cicd.yml
vendored
Normal file
78
.github/workflows/frontend-cicd.yml
vendored
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
# Based on https://github.com/actions/starter-workflows/blob/main/pages/nextjs.yml
|
||||||
|
|
||||||
|
name: Frontend CI/CD
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["main"]
|
||||||
|
paths:
|
||||||
|
- frontend/**
|
||||||
|
- json/**
|
||||||
|
|
||||||
|
pull_request:
|
||||||
|
branches: ["main"]
|
||||||
|
types: [opened, synchronize, reopened, edited]
|
||||||
|
paths:
|
||||||
|
- frontend/**
|
||||||
|
- json/**
|
||||||
|
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: pages-${{ github.ref }}
|
||||||
|
cancel-in-progress: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
working-directory: frontend # Set default working directory for all run steps
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: "20"
|
||||||
|
cache: npm
|
||||||
|
cache-dependency-path: frontend/package-lock.json
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci --prefer-offline --legacy-peer-deps
|
||||||
|
|
||||||
|
- name: Run tests
|
||||||
|
run: npm run test
|
||||||
|
|
||||||
|
- name: Configure Next.js for pages
|
||||||
|
uses: actions/configure-pages@v5
|
||||||
|
with:
|
||||||
|
static_site_generator: next
|
||||||
|
|
||||||
|
- name: Build with Next.js
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
uses: actions/upload-pages-artifact@v3
|
||||||
|
with:
|
||||||
|
path: frontend/out
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
if: github.ref == 'refs/heads/main'
|
||||||
|
permissions:
|
||||||
|
pages: write
|
||||||
|
id-token: write
|
||||||
|
environment:
|
||||||
|
name: github-pages
|
||||||
|
url: ${{ steps.deployment.outputs.page_url }}
|
||||||
|
steps:
|
||||||
|
- name: Deploy to GitHub Pages
|
||||||
|
id: deployment
|
||||||
|
uses: actions/deploy-pages@v4
|
34
.github/workflows/scripts/generate-app-headers.sh
vendored
Executable file
34
.github/workflows/scripts/generate-app-headers.sh
vendored
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Base directory for headers
|
||||||
|
headers_dir="./ct/headers"
|
||||||
|
|
||||||
|
# Ensure the headers directory exists and clear it
|
||||||
|
mkdir -p "$headers_dir"
|
||||||
|
rm -f "$headers_dir"/*
|
||||||
|
|
||||||
|
# Find all .sh files in ./ct directory, sorted alphabetically
|
||||||
|
find ./ct -type f -name "*.sh" | sort | while read -r script; do
|
||||||
|
# Extract the APP name from the APP line
|
||||||
|
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ -n "$app_name" ]]; then
|
||||||
|
# Define the output file name in the headers directory
|
||||||
|
output_file="${headers_dir}/$(basename "${script%.*}")"
|
||||||
|
|
||||||
|
# Generate figlet output
|
||||||
|
figlet_output=$(figlet -f slant "$app_name")
|
||||||
|
|
||||||
|
# Check if figlet output is not empty
|
||||||
|
if [[ -n "$figlet_output" ]]; then
|
||||||
|
echo "$figlet_output" > "$output_file"
|
||||||
|
echo "Generated: $output_file"
|
||||||
|
else
|
||||||
|
echo "Figlet failed for $app_name in $script"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "No APP name found in $script, skipping."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Completed processing .sh files."
|
23
.github/workflows/scripts/update_json_date.sh
vendored
Normal file
23
.github/workflows/scripts/update_json_date.sh
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Verzeichnis, das die JSON-Dateien enthält
|
||||||
|
json_dir="./json/*.json"
|
||||||
|
|
||||||
|
current_date=$(date +"%Y-%m-%d")
|
||||||
|
|
||||||
|
for json_file in $json_dir; do
|
||||||
|
if [[ -f "$json_file" ]]; then
|
||||||
|
current_json_date=$(jq -r '.date_created' "$json_file")
|
||||||
|
|
||||||
|
if [[ "$current_json_date" != "$current_date" ]]; then
|
||||||
|
echo "Updating $json_file with date $current_date"
|
||||||
|
jq --arg date "$current_date" '.date_created = $date' "$json_file" > temp.json && mv temp.json "$json_file"
|
||||||
|
|
||||||
|
git add "$json_file"
|
||||||
|
git commit -m "Update date_created to $current_date in $json_file"
|
||||||
|
else
|
||||||
|
echo "Date in $json_file is already up to date."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
git push origin HEAD
|
48
.github/workflows/update_json_date.yml.bak
vendored
Normal file
48
.github/workflows/update_json_date.yml.bak
vendored
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
name: Update JSON Date
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types: [opened, synchronize, reopened]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
list-files:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout PR Branch
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event.pull_request.head.ref }}
|
||||||
|
|
||||||
|
- name: Fetch PR changes
|
||||||
|
run: |
|
||||||
|
git remote add fork https://github.com/${{ github.event.pull_request.head.repo.full_name }}.git
|
||||||
|
git fetch fork ${{ github.event.pull_request.head.ref }}:pullreq
|
||||||
|
git checkout pullreq
|
||||||
|
|
||||||
|
- name: Update JSON
|
||||||
|
id: changed-files
|
||||||
|
run: |
|
||||||
|
FILES=$(gh api repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files --jq '.[].filename' | tr '\n' ' ')
|
||||||
|
echo "changed_files=${FILES}"
|
||||||
|
for FILE in $FILES; do
|
||||||
|
if [[ "$FILE" =~ /(.*)\.json ]]; then
|
||||||
|
NAME="${BASH_REMATCH[1]}"
|
||||||
|
else
|
||||||
|
echo "no new JSON in ${FILES}"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
JSON_FILE="json/${NAME}.json"
|
||||||
|
if [[ -f "$JSON_FILE" ]]; then
|
||||||
|
echo "Updating date_created in $JSON_FILE"
|
||||||
|
jq --arg date "$(date +%Y-%m-%d)" '.date_created = $date' "$JSON_FILE" > tmp.json && mv tmp.json "$JSON_FILE"
|
||||||
|
else
|
||||||
|
echo "JSON file $FILES not found"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
git config --global user.name "github-actions[bot]"
|
||||||
|
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||||
|
git diff --exit-code || git commit -am "Updating Dates in affected JSON files."
|
||||||
|
git push
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
157
.github/workflows/validate-filenames.yml
vendored
Normal file
157
.github/workflows/validate-filenames.yml
vendored
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
name: Validate filenames
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
paths:
|
||||||
|
- "ct/*.sh"
|
||||||
|
- "install/*.sh"
|
||||||
|
- "json/*.json"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-files:
|
||||||
|
name: Check changed files
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Get pull request information
|
||||||
|
if: github.event_name == 'pull_request_target'
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
id: pr
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const { data: pullRequest } = await github.rest.pulls.get({
|
||||||
|
...context.repo,
|
||||||
|
pull_number: context.payload.pull_request.number,
|
||||||
|
});
|
||||||
|
return pullRequest;
|
||||||
|
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Ensure the full history is fetched for accurate diffing
|
||||||
|
ref: ${{ github.event_name == 'pull_request_target' && fromJSON(steps.pr.outputs.result).merge_commit_sha || '' }}
|
||||||
|
|
||||||
|
- name: Get changed files
|
||||||
|
id: changed-files
|
||||||
|
run: |
|
||||||
|
if ${{ github.event_name == 'pull_request_target' }}; then
|
||||||
|
echo "files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ steps.pr.outputs.result && fromJSON(steps.pr.outputs.result).merge_commit_sha }} | xargs)" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "files=$(git diff --name-only ${{ github.event.before }} ${{ github.event.after }} | xargs)" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: "Validate filenames in ct and install directory"
|
||||||
|
if: always() && steps.changed-files.outputs.files != ''
|
||||||
|
id: check-scripts
|
||||||
|
run: |
|
||||||
|
CHANGED_FILES=$(printf "%s\n" ${{ steps.changed-files.outputs.files }} | { grep -E '^(ct|install)/.*\.sh$' || true; })
|
||||||
|
|
||||||
|
NON_COMPLIANT_FILES=""
|
||||||
|
for FILE in $CHANGED_FILES; do
|
||||||
|
BASENAME=$(echo "$(basename "${FILE%.*}")")
|
||||||
|
if [[ ! "$BASENAME" =~ ^[a-z0-9-]+$ ]]; then
|
||||||
|
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NON_COMPLIANT_FILES" ]; then
|
||||||
|
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
|
||||||
|
echo "Non-compliant filenames found, change to lowercase:"
|
||||||
|
for FILE in $NON_COMPLIANT_FILES; do
|
||||||
|
echo "$FILE"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: "Validate filenames in json directory."
|
||||||
|
if: always() && steps.changed-files.outputs.files != ''
|
||||||
|
id: check-json
|
||||||
|
run: |
|
||||||
|
CHANGED_FILES=$(printf "%s\n" ${{ steps.changed-files.outputs.files }} | { grep -E '^json/.*\.json$' || true; })
|
||||||
|
|
||||||
|
NON_COMPLIANT_FILES=""
|
||||||
|
for FILE in $CHANGED_FILES; do
|
||||||
|
BASENAME=$(echo "$(basename "${FILE%.*}")")
|
||||||
|
if [[ ! "$BASENAME" =~ ^[a-z0-9-]+$ ]]; then
|
||||||
|
NON_COMPLIANT_FILES="$NON_COMPLIANT_FILES $FILE"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "$NON_COMPLIANT_FILES" ]; then
|
||||||
|
echo "files=$NON_COMPLIANT_FILES" >> $GITHUB_OUTPUT
|
||||||
|
echo "Non-compliant filenames found, change to lowercase:"
|
||||||
|
for FILE in $NON_COMPLIANT_FILES; do
|
||||||
|
echo "$FILE"
|
||||||
|
done
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Post results and comment
|
||||||
|
if: always() && steps.check-scripts.outputs.files != '' && steps.check-json.outputs.files != '' && github.event_name == 'pull_request_target'
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const result = "${{ job.status }}" === "success" ? "success" : "failure";
|
||||||
|
const nonCompliantFiles = {
|
||||||
|
script: "${{ steps.check-scripts.outputs.files }}",
|
||||||
|
JSON: "${{ steps.check-json.outputs.files }}",
|
||||||
|
};
|
||||||
|
|
||||||
|
const issueNumber = context.payload.pull_request
|
||||||
|
? context.payload.pull_request.number
|
||||||
|
: null;
|
||||||
|
const commentIdentifier = "validate-filenames";
|
||||||
|
let newCommentBody = `<!-- ${commentIdentifier}-start -->\n### Filename validation\n\n`;
|
||||||
|
|
||||||
|
if (result === "failure") {
|
||||||
|
newCommentBody += ":x: We found issues in the following changed files:\n\n";
|
||||||
|
for (const [check, files] of Object.entries(nonCompliantFiles)) {
|
||||||
|
if (files) {
|
||||||
|
newCommentBody += `**${check.charAt(0).toUpperCase() + check.slice(1)} filename invalid:**\n${files
|
||||||
|
.trim()
|
||||||
|
.split(" ")
|
||||||
|
.map((file) => `- ${file}`)
|
||||||
|
.join("\n")}\n\n`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
newCommentBody +=
|
||||||
|
"Please change the filenames to lowercase and use only alphanumeric characters and dashes.\n";
|
||||||
|
} else {
|
||||||
|
newCommentBody += `:rocket: All files passed filename validation!\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
newCommentBody += `\n\n<!-- ${commentIdentifier}-end -->`;
|
||||||
|
|
||||||
|
if (issueNumber) {
|
||||||
|
const { data: comments } = await github.rest.issues.listComments({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber,
|
||||||
|
});
|
||||||
|
|
||||||
|
const existingComment = comments.find(
|
||||||
|
(comment) => comment.user.login === "github-actions[bot]",
|
||||||
|
);
|
||||||
|
|
||||||
|
if (existingComment) {
|
||||||
|
if (existingComment.body.includes(commentIdentifier)) {
|
||||||
|
const re = new RegExp(String.raw`<!-- ${commentIdentifier}-start -->[\s\S]*?<!-- ${commentIdentifier}-end -->`, "");
|
||||||
|
newCommentBody = existingComment.body.replace(re, newCommentBody);
|
||||||
|
} else {
|
||||||
|
newCommentBody = existingComment.body + '\n\n---\n\n' + newCommentBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
await github.rest.issues.updateComment({
|
||||||
|
...context.repo,
|
||||||
|
comment_id: existingComment.id,
|
||||||
|
body: newCommentBody,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
...context.repo,
|
||||||
|
issue_number: issueNumber,
|
||||||
|
body: newCommentBody,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
8
.vscode/extensions.json
vendored
Normal file
8
.vscode/extensions.json
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"bmalehorn.shell-syntax",
|
||||||
|
"timonwong.shellcheck",
|
||||||
|
"foxundermoon.shell-format"
|
||||||
|
],
|
||||||
|
"unwantedRecommendations": []
|
||||||
|
}
|
919
CHANGELOG.md
919
CHANGELOG.md
@ -16,6 +16,919 @@ All LXC instances created using this repository come pre-installed with Midnight
|
|||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
||||||
|
|
||||||
|
|
||||||
|
## 2025-02-01
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- [DCMA] Delete scripts 5etools and pf2etools - Copyright abuse [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1922](https://github.com/community-scripts/ProxmoxVE/pull/1922))
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New script: Baïkal [@bvdberg01](https://github.com/bvdberg01) ([#1913](https://github.com/community-scripts/ProxmoxVE/pull/1913))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Bug fix: Paymenter [@opastorello](https://github.com/opastorello) ([#1917](https://github.com/community-scripts/ProxmoxVE/pull/1917))
|
||||||
|
|
||||||
|
## 2025-01-31
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Paymenter [@opastorello](https://github.com/opastorello) ([#1827](https://github.com/community-scripts/ProxmoxVE/pull/1827))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- [Fix] Alpine-IT-Tools, add missing ssh package for root ssh access [@CrazyWolf13](https://github.com/CrazyWolf13) ([#1891](https://github.com/community-scripts/ProxmoxVE/pull/1891))
|
||||||
|
- [Fix] Change Download of Trilium after there change the tag/release logic [@MickLesk](https://github.com/MickLesk) ([#1892](https://github.com/community-scripts/ProxmoxVE/pull/1892))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- [Website] Enhance DataFetcher with better UI components and add reactive data fetching intervals [@BramSuurdje](https://github.com/BramSuurdje) ([#1902](https://github.com/community-scripts/ProxmoxVE/pull/1902))
|
||||||
|
- [Website] Update /data/page.tsx [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1900](https://github.com/community-scripts/ProxmoxVE/pull/1900))
|
||||||
|
|
||||||
|
## 2025-01-30
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: IT-Tools [@nicedevil007](https://github.com/nicedevil007) ([#1862](https://github.com/community-scripts/ProxmoxVE/pull/1862))
|
||||||
|
- New Script: Mattermost [@Dracentis](https://github.com/Dracentis) ([#1856](https://github.com/community-scripts/ProxmoxVE/pull/1856))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Optimize PVE Manager Version-Check [@MickLesk](https://github.com/MickLesk) ([#1866](https://github.com/community-scripts/ProxmoxVE/pull/1866))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- [API] Update build.func to set the status message correct [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1878](https://github.com/community-scripts/ProxmoxVE/pull/1878))
|
||||||
|
- [Website] Update /data/page.tsx [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1876](https://github.com/community-scripts/ProxmoxVE/pull/1876))
|
||||||
|
- Fix IT-Tools Website Entry (Default | Alpine) [@MickLesk](https://github.com/MickLesk) ([#1869](https://github.com/community-scripts/ProxmoxVE/pull/1869))
|
||||||
|
- fix: remove rounded styles from command primitive [@steveiliop56](https://github.com/steveiliop56) ([#1840](https://github.com/community-scripts/ProxmoxVE/pull/1840))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [API] Update build.func: add function to see if a script failed or not [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1874](https://github.com/community-scripts/ProxmoxVE/pull/1874))
|
||||||
|
|
||||||
|
## 2025-01-29
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Prometheus Proxmox VE Exporter [@andygrunwald](https://github.com/andygrunwald) ([#1805](https://github.com/community-scripts/ProxmoxVE/pull/1805))
|
||||||
|
- New Script: Clean Orphaned LVM [@MickLesk](https://github.com/MickLesk) ([#1838](https://github.com/community-scripts/ProxmoxVE/pull/1838))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Patch http Url to https in build.func and /data/page.tsx [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1849](https://github.com/community-scripts/ProxmoxVE/pull/1849))
|
||||||
|
- [Frontend] Add /data to show API results [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1841](https://github.com/community-scripts/ProxmoxVE/pull/1841))
|
||||||
|
- Update clean-orphaned-lvm.json [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1843](https://github.com/community-scripts/ProxmoxVE/pull/1843))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Update build.func [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1851](https://github.com/community-scripts/ProxmoxVE/pull/1851))
|
||||||
|
- [Diagnostic] Introduced optional lxc install diagnostics via API call [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1801](https://github.com/community-scripts/ProxmoxVE/pull/1801))
|
||||||
|
|
||||||
|
## 2025-01-28
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Breaking Change: Homarr v1 (Read Guide) [@MickLesk](https://github.com/MickLesk) ([#1825](https://github.com/community-scripts/ProxmoxVE/pull/1825))
|
||||||
|
- Update PingVin: Fix problem with update und switch to new method of getting files. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1819](https://github.com/community-scripts/ProxmoxVE/pull/1819))
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New script: Monica LXC [@bvdberg01](https://github.com/bvdberg01) ([#1813](https://github.com/community-scripts/ProxmoxVE/pull/1813))
|
||||||
|
- New Script: NodeBB [@MickLesk](https://github.com/MickLesk) ([#1811](https://github.com/community-scripts/ProxmoxVE/pull/1811))
|
||||||
|
- New Script: Pocket ID [@Snarkenfaugister](https://github.com/Snarkenfaugister) ([#1779](https://github.com/community-scripts/ProxmoxVE/pull/1779))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update all Alpine LXC's to 3.21 (Docker, Grafana, Nextcloud, Vaultwarden, Zigbee2Mqtt, Alpine) [@MickLesk](https://github.com/MickLesk) ([#1803](https://github.com/community-scripts/ProxmoxVE/pull/1803))
|
||||||
|
- [Standardization] Fix Spelling for "Setup Python3" [@MickLesk](https://github.com/MickLesk) ([#1810](https://github.com/community-scripts/ProxmoxVE/pull/1810))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Filter out duplicate scripts in LatestScripts component and sort by creation date [@BramSuurdje](https://github.com/BramSuurdje) ([#1828](https://github.com/community-scripts/ProxmoxVE/pull/1828))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [core]: Remove Figlet | Get Headers by Repo & Store Local [@MickLesk](https://github.com/MickLesk) ([#1802](https://github.com/community-scripts/ProxmoxVE/pull/1802))
|
||||||
|
- [docs] Update AppName.md: Make it clear where to change the URLs [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1809](https://github.com/community-scripts/ProxmoxVE/pull/1809))
|
||||||
|
|
||||||
|
## 2025-01-27
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Arch Linux VM [@MickLesk](https://github.com/MickLesk) ([#1780](https://github.com/community-scripts/ProxmoxVE/pull/1780))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Increase alpine-vaultwarden default var_disk size [@nayzm](https://github.com/nayzm) ([#1788](https://github.com/community-scripts/ProxmoxVE/pull/1788))
|
||||||
|
- Added change of the mobile GUI to disable nag request [@GarryG](https://github.com/GarryG) ([#1785](https://github.com/community-scripts/ProxmoxVE/pull/1785))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Update frontend alpine-vaultwarden hdd size and OS version [@nayzm](https://github.com/nayzm) ([#1789](https://github.com/community-scripts/ProxmoxVE/pull/1789))
|
||||||
|
- Website: Add Description for Metadata Categories [@MickLesk](https://github.com/MickLesk) ([#1783](https://github.com/community-scripts/ProxmoxVE/pull/1783))
|
||||||
|
- [Fix] Double "VM" on website (Arch Linux) [@lasharor](https://github.com/lasharor) ([#1782](https://github.com/community-scripts/ProxmoxVE/pull/1782))
|
||||||
|
|
||||||
|
## 2025-01-26
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix jellyfin update command [@jcisio](https://github.com/jcisio) ([#1771](https://github.com/community-scripts/ProxmoxVE/pull/1771))
|
||||||
|
- openHAB - Use https and include doc url [@moodyblue](https://github.com/moodyblue) ([#1766](https://github.com/community-scripts/ProxmoxVE/pull/1766))
|
||||||
|
- Jellyfin: Fix default logging level [@tremor021](https://github.com/tremor021) ([#1768](https://github.com/community-scripts/ProxmoxVE/pull/1768))
|
||||||
|
- Calibre-Web: added installation of calibre binaries [@tremor021](https://github.com/tremor021) ([#1763](https://github.com/community-scripts/ProxmoxVE/pull/1763))
|
||||||
|
- Added environment variable to accept EULA for SQLServer2022 [@tremor021](https://github.com/tremor021) ([#1755](https://github.com/community-scripts/ProxmoxVE/pull/1755))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- The Lounge: Fix the command to create new users [@tremor021](https://github.com/tremor021) ([#1762](https://github.com/community-scripts/ProxmoxVE/pull/1762))
|
||||||
|
|
||||||
|
## 2025-01-24
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Ubuntu 24.10 VM [@MickLesk](https://github.com/MickLesk) ([#1711](https://github.com/community-scripts/ProxmoxVE/pull/1711))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- openHAB - Update to Zulu21 [@moodyblue](https://github.com/moodyblue) ([#1734](https://github.com/community-scripts/ProxmoxVE/pull/1734))
|
||||||
|
- Feature: Filebrowser Script > Redesign | Update Logic | Remove Logic [@MickLesk](https://github.com/MickLesk) ([#1716](https://github.com/community-scripts/ProxmoxVE/pull/1716))
|
||||||
|
- Feature: Ubuntu 22.04 VM > Redesign | Optional HDD-Size Prompt [@MickLesk](https://github.com/MickLesk) ([#1712](https://github.com/community-scripts/ProxmoxVE/pull/1712))
|
||||||
|
- Feature: Ubuntu 24.04 VM > Redesign | Optional HDD-Size Prompt | cifs support [@MickLesk](https://github.com/MickLesk) ([#1714](https://github.com/community-scripts/ProxmoxVE/pull/1714))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [Core] Better Creation of App Headers for next feature [@MickLesk](https://github.com/MickLesk) ([#1719](https://github.com/community-scripts/ProxmoxVE/pull/1719))
|
||||||
|
|
||||||
|
## 2025-01-23
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Feature: Add Debian Disk Size / Redesign / Increase Disk [@MickLesk](https://github.com/MickLesk) ([#1695](https://github.com/community-scripts/ProxmoxVE/pull/1695))
|
||||||
|
- Fix: Paperless Service Timings & Optimization: Ghostscript Installation [@MickLesk](https://github.com/MickLesk) ([#1688](https://github.com/community-scripts/ProxmoxVE/pull/1688))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Refactor ScriptInfoBlocks and siteConfig to properly show the most populair scripts [@BramSuurdje](https://github.com/BramSuurdje) ([#1697](https://github.com/community-scripts/ProxmoxVE/pull/1697))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Update build.func: Ubuntu advanced settings version [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1701](https://github.com/community-scripts/ProxmoxVE/pull/1701))
|
||||||
|
|
||||||
|
## 2025-01-22
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Tweak: LubeLogger Script Upcoming Changes 1.4.3 [@JcMinarro](https://github.com/JcMinarro) ([#1656](https://github.com/community-scripts/ProxmoxVE/pull/1656))
|
||||||
|
- Fix: SQL Server 2022 Install [@MickLesk](https://github.com/MickLesk) ([#1669](https://github.com/community-scripts/ProxmoxVE/pull/1669))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Refactor Sidebar component to display unique scripts count [@BramSuurdje](https://github.com/BramSuurdje) ([#1681](https://github.com/community-scripts/ProxmoxVE/pull/1681))
|
||||||
|
- Refactor various components and configuration for mobile responsiveness. [@BramSuurdje](https://github.com/BramSuurdje) ([#1679](https://github.com/community-scripts/ProxmoxVE/pull/1679))
|
||||||
|
- Add Docker-VM to Containers & Docker Category [@thost96](https://github.com/thost96) ([#1667](https://github.com/community-scripts/ProxmoxVE/pull/1667))
|
||||||
|
- Moving SQL Server 2022 to database category [@CamronBorealis](https://github.com/CamronBorealis) ([#1659](https://github.com/community-scripts/ProxmoxVE/pull/1659))
|
||||||
|
|
||||||
|
## 2025-01-21
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- Add new Script: LXC Delete (Proxmox) [@MickLesk](https://github.com/MickLesk) ([#1636](https://github.com/community-scripts/ProxmoxVE/pull/1636))
|
||||||
|
- New script: ProjectSend [@bvdberg01](https://github.com/bvdberg01) ([#1616](https://github.com/community-scripts/ProxmoxVE/pull/1616))
|
||||||
|
- New Script: Beszel [@Sinofage](https://github.com/Sinofage) ([#1619](https://github.com/community-scripts/ProxmoxVE/pull/1619))
|
||||||
|
- New Script: Docker VM [@thost96](https://github.com/thost96) ([#1608](https://github.com/community-scripts/ProxmoxVE/pull/1608))
|
||||||
|
- New script: SQL Server 2022 [@kris701](https://github.com/kris701) ([#1482](https://github.com/community-scripts/ProxmoxVE/pull/1482))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: Teddycloud Script (install, clean up & update) [@MickLesk](https://github.com/MickLesk) ([#1652](https://github.com/community-scripts/ProxmoxVE/pull/1652))
|
||||||
|
- Fix: Docker VM deprecated gpg [@MickLesk](https://github.com/MickLesk) ([#1649](https://github.com/community-scripts/ProxmoxVE/pull/1649))
|
||||||
|
- ActualBudget: Fix Update-Function, Fix Wget Crawling, Add Versionscheck [@MickLesk](https://github.com/MickLesk) ([#1643](https://github.com/community-scripts/ProxmoxVE/pull/1643))
|
||||||
|
- Fix Photoprism missing folder & environments [@MickLesk](https://github.com/MickLesk) ([#1639](https://github.com/community-scripts/ProxmoxVE/pull/1639))
|
||||||
|
- Update MOTD: Add Dynamic IP with profile.d by @JcMinarro [@MickLesk](https://github.com/MickLesk) ([#1633](https://github.com/community-scripts/ProxmoxVE/pull/1633))
|
||||||
|
- PBS.sh: Fix wrong URL after Setup [@thost96](https://github.com/thost96) ([#1629](https://github.com/community-scripts/ProxmoxVE/pull/1629))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Bump vite from 6.0.1 to 6.0.11 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#1653](https://github.com/community-scripts/ProxmoxVE/pull/1653))
|
||||||
|
- Update glpi.json [@opastorello](https://github.com/opastorello) ([#1641](https://github.com/community-scripts/ProxmoxVE/pull/1641))
|
||||||
|
- Fix Docker-VM name on website [@Sinofage](https://github.com/Sinofage) ([#1630](https://github.com/community-scripts/ProxmoxVE/pull/1630))
|
||||||
|
|
||||||
|
## 2025-01-20
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: UrBackup Server [@kris701](https://github.com/kris701) ([#1569](https://github.com/community-scripts/ProxmoxVE/pull/1569))
|
||||||
|
- New Script: Proxmox Mail Gateway Post Installer [@thost96](https://github.com/thost96) ([#1559](https://github.com/community-scripts/ProxmoxVE/pull/1559))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update Kimai Dependency: Use PHP 8.3 [@MickLesk](https://github.com/MickLesk) ([#1609](https://github.com/community-scripts/ProxmoxVE/pull/1609))
|
||||||
|
- Feature: Add xCaddy for external Modules on Caddy-LXC [@MickLesk](https://github.com/MickLesk) ([#1613](https://github.com/community-scripts/ProxmoxVE/pull/1613))
|
||||||
|
- Fix Pocketbase URL after install [@MickLesk](https://github.com/MickLesk) ([#1597](https://github.com/community-scripts/ProxmoxVE/pull/1597))
|
||||||
|
- Unifi.sh fix wrong URL after Install [@thost96](https://github.com/thost96) ([#1601](https://github.com/community-scripts/ProxmoxVE/pull/1601))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Update Website | Add new Categories [@MickLesk](https://github.com/MickLesk) ([#1606](https://github.com/community-scripts/ProxmoxVE/pull/1606))
|
||||||
|
- Grafana: Mark container as updateable [@andygrunwald](https://github.com/andygrunwald) ([#1603](https://github.com/community-scripts/ProxmoxVE/pull/1603))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [core] Update build.func: Add defaults to Advanced mode [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1548](https://github.com/community-scripts/ProxmoxVE/pull/1548))
|
||||||
|
- Update build.func: Fix Advanced Tags (Remove all if empty / overwrite if default cleared) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1612](https://github.com/community-scripts/ProxmoxVE/pull/1612))
|
||||||
|
- Add new Check for LXC MaxKeys by @cricalix [@MickLesk](https://github.com/MickLesk) ([#1602](https://github.com/community-scripts/ProxmoxVE/pull/1602))
|
||||||
|
|
||||||
|
## 2025-01-19
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update Opengist.sh: Fix broken backup function [@bvdberg01](https://github.com/bvdberg01) ([#1572](https://github.com/community-scripts/ProxmoxVE/pull/1572))
|
||||||
|
|
||||||
|
## 2025-01-18
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- **READ GUIDE FIRST** breaking change: Homeassistant-Core upgrade os and python3 [@MickLesk](https://github.com/MickLesk) ([#1550](https://github.com/community-scripts/ProxmoxVE/pull/1550))
|
||||||
|
- Update Openwrt: Delete lines that do WAN input and forward accept [@chackl1990](https://github.com/chackl1990) ([#1540](https://github.com/community-scripts/ProxmoxVE/pull/1540))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- added cifs support in ubuntu2404-vm.sh [@plonxyz](https://github.com/plonxyz) ([#1461](https://github.com/community-scripts/ProxmoxVE/pull/1461))
|
||||||
|
- Fix linkwarden update [@burgerga](https://github.com/burgerga) ([#1565](https://github.com/community-scripts/ProxmoxVE/pull/1565))
|
||||||
|
- [jellyseerr] Update nodejs if not up-to-date [@makstech](https://github.com/makstech) ([#1563](https://github.com/community-scripts/ProxmoxVE/pull/1563))
|
||||||
|
- Update VM Tags [@oOStroudyOo](https://github.com/oOStroudyOo) ([#1562](https://github.com/community-scripts/ProxmoxVE/pull/1562))
|
||||||
|
- Update apt-cacher-ng.sh: Typo/Missing $ [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1545](https://github.com/community-scripts/ProxmoxVE/pull/1545))
|
||||||
|
|
||||||
|
## 2025-01-16
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Update jellyseerr-install.sh to use Node 22 as required by latest Jellyseerr version [@pedrovieira](https://github.com/pedrovieira) ([#1535](https://github.com/community-scripts/ProxmoxVE/pull/1535))
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New script: Dotnet ASP.NET Web Server [@kris701](https://github.com/kris701) ([#1501](https://github.com/community-scripts/ProxmoxVE/pull/1501))
|
||||||
|
- New script: phpIPAM [@bvdberg01](https://github.com/bvdberg01) ([#1503](https://github.com/community-scripts/ProxmoxVE/pull/1503))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Add Mobile check for empty icon-url on website [@MickLesk](https://github.com/MickLesk) ([#1532](https://github.com/community-scripts/ProxmoxVE/pull/1532))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [Workflow]Update autolabeler-config.json [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1525](https://github.com/community-scripts/ProxmoxVE/pull/1525))
|
||||||
|
- [core]Update update_json_date.yml [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1526](https://github.com/community-scripts/ProxmoxVE/pull/1526))
|
||||||
|
- [core] Recreate Update JSON Workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1523](https://github.com/community-scripts/ProxmoxVE/pull/1523))
|
||||||
|
|
||||||
|
## 2025-01-15
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: Add FFMPEG for OpenWebUI [@MickLesk](https://github.com/MickLesk) ([#1497](https://github.com/community-scripts/ProxmoxVE/pull/1497))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [core] build.func&install.func: Fix ssh keynot added error [@dsiebel](https://github.com/dsiebel) ([#1502](https://github.com/community-scripts/ProxmoxVE/pull/1502))
|
||||||
|
|
||||||
|
## 2025-01-14
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Update tianji-install.sh: Add OPENAI_API_KEY to .env [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1480](https://github.com/community-scripts/ProxmoxVE/pull/1480))
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Wordpress [@MickLesk](https://github.com/MickLesk) ([#1485](https://github.com/community-scripts/ProxmoxVE/pull/1485))
|
||||||
|
- New Script: Opengist [@jd-apprentice](https://github.com/jd-apprentice) ([#1429](https://github.com/community-scripts/ProxmoxVE/pull/1429))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update lazylibrarian-install.sh: Add pypdf libary [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1467](https://github.com/community-scripts/ProxmoxVE/pull/1467))
|
||||||
|
- Update opengist-install.sh: Add git as dependencie [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1471](https://github.com/community-scripts/ProxmoxVE/pull/1471))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- [website] Update footer text [@rajatdiptabiswas](https://github.com/rajatdiptabiswas) ([#1466](https://github.com/community-scripts/ProxmoxVE/pull/1466))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Hotfix build.func: Error when tags are empty [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1492](https://github.com/community-scripts/ProxmoxVE/pull/1492))
|
||||||
|
- [core] Update build.func: Fix bug with advanced tags [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1473](https://github.com/community-scripts/ProxmoxVE/pull/1473))
|
||||||
|
|
||||||
|
## 2025-01-13
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Update Hoarder: Improvement .env location (see PR comment for little migration) [@MahrWe](https://github.com/MahrWe) ([#1325](https://github.com/community-scripts/ProxmoxVE/pull/1325))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: tandoor.sh: Call version.py to write current version [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1454](https://github.com/community-scripts/ProxmoxVE/pull/1454))
|
||||||
|
- Fix inexistent folder on actualbudget update script [@dosten](https://github.com/dosten) ([#1444](https://github.com/community-scripts/ProxmoxVE/pull/1444))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Update kavita.json: Add info on how to enable folder adding. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1447](https://github.com/community-scripts/ProxmoxVE/pull/1447))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- GitHub Actions: Fix Shellsheck workflow to only run on changes `*.sh` files [@andygrunwald](https://github.com/andygrunwald) ([#1423](https://github.com/community-scripts/ProxmoxVE/pull/1423))
|
||||||
|
|
||||||
|
### ❔ Unlabelled
|
||||||
|
|
||||||
|
- feat: allow adding SSH authorized key for root (advanced settings) by @dsiebel [@MickLesk](https://github.com/MickLesk) ([#1456](https://github.com/community-scripts/ProxmoxVE/pull/1456))
|
||||||
|
|
||||||
|
## 2025-01-11
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Prometheus: Fix installation via creating the service file [@andygrunwald](https://github.com/andygrunwald) ([#1416](https://github.com/community-scripts/ProxmoxVE/pull/1416))
|
||||||
|
- Update prometheus-install.sh: Service creation fix [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1417](https://github.com/community-scripts/ProxmoxVE/pull/1417))
|
||||||
|
- Update prometheus-alertmanager-install.sh: Service Creation Fix [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1418](https://github.com/community-scripts/ProxmoxVE/pull/1418))
|
||||||
|
- Fix: LubeLogger CT vehicle tag typo [@kkroboth](https://github.com/kkroboth) ([#1413](https://github.com/community-scripts/ProxmoxVE/pull/1413))
|
||||||
|
|
||||||
|
## 2025-01-10
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New script : Ghost [@fabrice1236](https://github.com/fabrice1236) ([#1361](https://github.com/community-scripts/ProxmoxVE/pull/1361))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix user in ghost-cli install command [@fabrice1236](https://github.com/fabrice1236) ([#1408](https://github.com/community-scripts/ProxmoxVE/pull/1408))
|
||||||
|
- Update Prometheus + Alertmanager: Unify scripts for easier maintenance [@andygrunwald](https://github.com/andygrunwald) ([#1402](https://github.com/community-scripts/ProxmoxVE/pull/1402))
|
||||||
|
- Update komodo.sh: Fix broken paths in update_script(). [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1403](https://github.com/community-scripts/ProxmoxVE/pull/1403))
|
||||||
|
- Fix: ActualBudget Update-Function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1376](https://github.com/community-scripts/ProxmoxVE/pull/1376))
|
||||||
|
- Fix: bookstack.sh - Ignore empty folder [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1388](https://github.com/community-scripts/ProxmoxVE/pull/1388))
|
||||||
|
- Fix: checkmk-install.sh: Version crawling. [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1385](https://github.com/community-scripts/ProxmoxVE/pull/1385))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Change Website-Category of nzbget [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1379](https://github.com/community-scripts/ProxmoxVE/pull/1379))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Update check_and_update_json_date.yml: Change path to /json [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1399](https://github.com/community-scripts/ProxmoxVE/pull/1399))
|
||||||
|
- Visual Studio Code: Set Workspace recommended extensions [@andygrunwald](https://github.com/andygrunwald) ([#1398](https://github.com/community-scripts/ProxmoxVE/pull/1398))
|
||||||
|
- [core]: add support for custom tags [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1384](https://github.com/community-scripts/ProxmoxVE/pull/1384))
|
||||||
|
- [core]: check json date of new prs & update it [@MickLesk](https://github.com/MickLesk) ([#1395](https://github.com/community-scripts/ProxmoxVE/pull/1395))
|
||||||
|
- Add initial PR for Contributing & Coding Standard [@MickLesk](https://github.com/MickLesk) ([#920](https://github.com/community-scripts/ProxmoxVE/pull/920))
|
||||||
|
- [Core] add Github Action for Generate AppHeaders (figlet remove part 1) [@MickLesk](https://github.com/MickLesk) ([#1382](https://github.com/community-scripts/ProxmoxVE/pull/1382))
|
||||||
|
|
||||||
|
## 2025-01-09
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Removal calibre-server (no Headless Support) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1362](https://github.com/community-scripts/ProxmoxVE/pull/1362))
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Prometheus Alertmanager [@andygrunwald](https://github.com/andygrunwald) ([#1272](https://github.com/community-scripts/ProxmoxVE/pull/1272))
|
||||||
|
- New script: ps5-mqtt [@liecno](https://github.com/liecno) ([#1198](https://github.com/community-scripts/ProxmoxVE/pull/1198))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: AdventureLog: unzip to /opt/ [@JesperDramsch](https://github.com/JesperDramsch) ([#1370](https://github.com/community-scripts/ProxmoxVE/pull/1370))
|
||||||
|
- Fix: Stirling-PDF > LibreOffice/unoconv Integration Issues [@m6urns](https://github.com/m6urns) ([#1322](https://github.com/community-scripts/ProxmoxVE/pull/1322))
|
||||||
|
- Fix: AdventureLog - update script bug [@JesperDramsch](https://github.com/JesperDramsch) ([#1334](https://github.com/community-scripts/ProxmoxVE/pull/1334))
|
||||||
|
- Install/update ActualBudget based on releases, not latest master [@SpyrosRoum](https://github.com/SpyrosRoum) ([#1254](https://github.com/community-scripts/ProxmoxVE/pull/1254))
|
||||||
|
- Fix Checkmk: Version grep broken [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1341](https://github.com/community-scripts/ProxmoxVE/pull/1341))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- fix: only validate scripts in validate-scripts workflow [@se-bastiaan](https://github.com/se-bastiaan) ([#1344](https://github.com/community-scripts/ProxmoxVE/pull/1344))
|
||||||
|
|
||||||
|
## 2025-01-08
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- update postgresql json to add post install password setup [@rdiazlugo](https://github.com/rdiazlugo) ([#1318](https://github.com/community-scripts/ProxmoxVE/pull/1318))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- fix(ci): formatting event & chmod +x [@se-bastiaan](https://github.com/se-bastiaan) ([#1335](https://github.com/community-scripts/ProxmoxVE/pull/1335))
|
||||||
|
- fix: correctly handle pull_request_target event [@se-bastiaan](https://github.com/se-bastiaan) ([#1327](https://github.com/community-scripts/ProxmoxVE/pull/1327))
|
||||||
|
|
||||||
|
## 2025-01-07
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: Folder-Check for Updatescript Zammad [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1309](https://github.com/community-scripts/ProxmoxVE/pull/1309))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- fix: permissions of validate pipelines [@se-bastiaan](https://github.com/se-bastiaan) ([#1316](https://github.com/community-scripts/ProxmoxVE/pull/1316))
|
||||||
|
- Set Execution Rights for GH-Action: Validate Scripts [@MickLesk](https://github.com/MickLesk) ([#1312](https://github.com/community-scripts/ProxmoxVE/pull/1312))
|
||||||
|
|
||||||
|
## 2025-01-06
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Typesense [@tlissak](https://github.com/tlissak) ([#1291](https://github.com/community-scripts/ProxmoxVE/pull/1291))
|
||||||
|
- New script: GLPI [@opastorello](https://github.com/opastorello) ([#1201](https://github.com/community-scripts/ProxmoxVE/pull/1201))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix Tag in HyperHDR Script [@MickLesk](https://github.com/MickLesk) ([#1299](https://github.com/community-scripts/ProxmoxVE/pull/1299))
|
||||||
|
- [Fix]: Fixed rm Bug in pf2etools [@MickLesk](https://github.com/MickLesk) ([#1292](https://github.com/community-scripts/ProxmoxVE/pull/1292))
|
||||||
|
- Fix: Homebox Update Script [@MickLesk](https://github.com/MickLesk) ([#1284](https://github.com/community-scripts/ProxmoxVE/pull/1284))
|
||||||
|
- Add ca-certificates for Install (Frigate) [@MickLesk](https://github.com/MickLesk) ([#1282](https://github.com/community-scripts/ProxmoxVE/pull/1282))
|
||||||
|
- fix: buffer from base64 in formatting pipeline [@se-bastiaan](https://github.com/se-bastiaan) ([#1285](https://github.com/community-scripts/ProxmoxVE/pull/1285))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Add reapproval of Changelog-PR [@MickLesk](https://github.com/MickLesk) ([#1279](https://github.com/community-scripts/ProxmoxVE/pull/1279))
|
||||||
|
- ci: combine header checks into workflow with PR comment [@se-bastiaan](https://github.com/se-bastiaan) ([#1257](https://github.com/community-scripts/ProxmoxVE/pull/1257))
|
||||||
|
- ci: change filename checks into steps with PR comment [@se-bastiaan](https://github.com/se-bastiaan) ([#1255](https://github.com/community-scripts/ProxmoxVE/pull/1255))
|
||||||
|
- ci: add pipeline for code formatting checks [@se-bastiaan](https://github.com/se-bastiaan) ([#1239](https://github.com/community-scripts/ProxmoxVE/pull/1239))
|
||||||
|
|
||||||
|
## 2025-01-05
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- [Breaking] Update Zigbee2mqtt to v.2.0.0 (Read PR Description) [@MickLesk](https://github.com/MickLesk) ([#1221](https://github.com/community-scripts/ProxmoxVE/pull/1221))
|
||||||
|
|
||||||
|
### ❔ Unlabelled
|
||||||
|
|
||||||
|
- Add RAM and Disk units [@oOStroudyOo](https://github.com/oOStroudyOo) ([#1261](https://github.com/community-scripts/ProxmoxVE/pull/1261))
|
||||||
|
|
||||||
|
## 2025-01-04
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix gpg key pf2tools & 5etools [@MickLesk](https://github.com/MickLesk) ([#1242](https://github.com/community-scripts/ProxmoxVE/pull/1242))
|
||||||
|
- Homarr: Fix missing curl dependency [@MickLesk](https://github.com/MickLesk) ([#1238](https://github.com/community-scripts/ProxmoxVE/pull/1238))
|
||||||
|
- Homeassistan Core: Fix Python3 and add missing dependencies [@MickLesk](https://github.com/MickLesk) ([#1236](https://github.com/community-scripts/ProxmoxVE/pull/1236))
|
||||||
|
- Fix: Update Python for HomeAssistant [@MickLesk](https://github.com/MickLesk) ([#1227](https://github.com/community-scripts/ProxmoxVE/pull/1227))
|
||||||
|
- OneDev: Add git-lfs [@MickLesk](https://github.com/MickLesk) ([#1225](https://github.com/community-scripts/ProxmoxVE/pull/1225))
|
||||||
|
- Pf2eTools & 5eTools: Fixing npm build [@TheRealVira](https://github.com/TheRealVira) ([#1213](https://github.com/community-scripts/ProxmoxVE/pull/1213))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Bump next from 15.0.2 to 15.1.3 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#1212](https://github.com/community-scripts/ProxmoxVE/pull/1212))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [GitHub Action] Add filename case check [@quantumryuu](https://github.com/quantumryuu) ([#1228](https://github.com/community-scripts/ProxmoxVE/pull/1228))
|
||||||
|
|
||||||
|
## 2025-01-03
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Improve Homarr Installation [@MickLesk](https://github.com/MickLesk) ([#1208](https://github.com/community-scripts/ProxmoxVE/pull/1208))
|
||||||
|
- Fix: Zabbix-Update Script [@MickLesk](https://github.com/MickLesk) ([#1205](https://github.com/community-scripts/ProxmoxVE/pull/1205))
|
||||||
|
- Update Script: Lazylibrarian [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1190](https://github.com/community-scripts/ProxmoxVE/pull/1190))
|
||||||
|
- Fix: Memos update function [@MickLesk](https://github.com/MickLesk) ([#1207](https://github.com/community-scripts/ProxmoxVE/pull/1207))
|
||||||
|
- Keep Lubelogger data after update to a new version [@JcMinarro](https://github.com/JcMinarro) ([#1200](https://github.com/community-scripts/ProxmoxVE/pull/1200))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Update Nextcloud-LXC JSON [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1191](https://github.com/community-scripts/ProxmoxVE/pull/1191))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Github action to check metadata lines in scripts. [@quantumryuu](https://github.com/quantumryuu) ([#1110](https://github.com/community-scripts/ProxmoxVE/pull/1110))
|
||||||
|
|
||||||
|
## 2025-01-02
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Pf2eTools [@TheRealVira](https://github.com/TheRealVira) ([#1162](https://github.com/community-scripts/ProxmoxVE/pull/1162))
|
||||||
|
- New Script: 5etools [@TheRealVira](https://github.com/TheRealVira) ([#1157](https://github.com/community-scripts/ProxmoxVE/pull/1157))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update config template in blocky-install.sh [@xFichtl1](https://github.com/xFichtl1) ([#1059](https://github.com/community-scripts/ProxmoxVE/pull/1059))
|
||||||
|
|
||||||
|
## 2025-01-01
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Komodo [@MickLesk](https://github.com/MickLesk) ([#1167](https://github.com/community-scripts/ProxmoxVE/pull/1167))
|
||||||
|
- New Script: Firefly [@quantumryuu](https://github.com/quantumryuu) ([#616](https://github.com/community-scripts/ProxmoxVE/pull/616))
|
||||||
|
- New Script: Semaphore [@quantumryuu](https://github.com/quantumryuu) ([#596](https://github.com/community-scripts/ProxmoxVE/pull/596))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix Script Homepage: add version during build step [@se-bastiaan](https://github.com/se-bastiaan) ([#1155](https://github.com/community-scripts/ProxmoxVE/pull/1155))
|
||||||
|
- Happy new Year! Update Copyright to 2025 [@MickLesk](https://github.com/MickLesk) ([#1150](https://github.com/community-scripts/ProxmoxVE/pull/1150))
|
||||||
|
- Update Kernel-Clean to new Version & Bugfixing [@MickLesk](https://github.com/MickLesk) ([#1147](https://github.com/community-scripts/ProxmoxVE/pull/1147))
|
||||||
|
- Fix chromium installation for ArchiveBox [@tkunzfeld](https://github.com/tkunzfeld) ([#1140](https://github.com/community-scripts/ProxmoxVE/pull/1140))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Fix Category of Semaphore [@MickLesk](https://github.com/MickLesk) ([#1148](https://github.com/community-scripts/ProxmoxVE/pull/1148))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Correctly check for changed files in Shellcheck workflow [@se-bastiaan](https://github.com/se-bastiaan) ([#1156](https://github.com/community-scripts/ProxmoxVE/pull/1156))
|
||||||
|
|
||||||
|
## 2024-12-31 - Happy new Year! 🎉✨
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Add ExecReload to prometheus.service [@BasixKOR](https://github.com/BasixKOR) ([#1131](https://github.com/community-scripts/ProxmoxVE/pull/1131))
|
||||||
|
- Fix: Figlet Version & Font Check [@MickLesk](https://github.com/MickLesk) ([#1133](https://github.com/community-scripts/ProxmoxVE/pull/1133))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: Copy issue after update in Bookstack LXC [@MickLesk](https://github.com/MickLesk) ([#1137](https://github.com/community-scripts/ProxmoxVE/pull/1137))
|
||||||
|
- Omada: Switch Base-URL to prevent issues [@MickLesk](https://github.com/MickLesk) ([#1135](https://github.com/community-scripts/ProxmoxVE/pull/1135))
|
||||||
|
- fix: guacd service not start during Apache-Guacamole script installation process [@PhoenixEmik](https://github.com/PhoenixEmik) ([#1122](https://github.com/community-scripts/ProxmoxVE/pull/1122))
|
||||||
|
- Fix Homepage-Script: Installation/Update [@MickLesk](https://github.com/MickLesk) ([#1129](https://github.com/community-scripts/ProxmoxVE/pull/1129))
|
||||||
|
- Netbox: Updating URL to https [@surajsbmn](https://github.com/surajsbmn) ([#1124](https://github.com/community-scripts/ProxmoxVE/pull/1124))
|
||||||
|
|
||||||
|
## 2024-12-30
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- [Archivebox] Fix wrong port being printed post install. [@Strana-Mechty](https://github.com/Strana-Mechty) ([#1105](https://github.com/community-scripts/ProxmoxVE/pull/1105))
|
||||||
|
- fix: add homepage version during build step [@se-bastiaan](https://github.com/se-bastiaan) ([#1107](https://github.com/community-scripts/ProxmoxVE/pull/1107))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Fix Trilium Website to TriliumNext [@tmkis2](https://github.com/tmkis2) ([#1103](https://github.com/community-scripts/ProxmoxVE/pull/1103))
|
||||||
|
|
||||||
|
## 2024-12-29
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Grist [@cfurrow](https://github.com/cfurrow) ([#1076](https://github.com/community-scripts/ProxmoxVE/pull/1076))
|
||||||
|
- New Script: TeddyCloud Server [@dsiebel](https://github.com/dsiebel) ([#1064](https://github.com/community-scripts/ProxmoxVE/pull/1064))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix Install / Update on Grist Script [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1091](https://github.com/community-scripts/ProxmoxVE/pull/1091))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- fix: Update add-lxc-iptag.json warn to warning [@BramSuurdje](https://github.com/BramSuurdje) ([#1094](https://github.com/community-scripts/ProxmoxVE/pull/1094))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Introduce editorconfig for more consistent formatting [@dsiebel](https://github.com/dsiebel) ([#1073](https://github.com/community-scripts/ProxmoxVE/pull/1073))
|
||||||
|
|
||||||
|
## 2024-12-28
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Add Figlet into Repo | Creation of local ASCII Header [@MickLesk](https://github.com/MickLesk) ([#1072](https://github.com/community-scripts/ProxmoxVE/pull/1072))
|
||||||
|
- Add an IP-Update for MOTD if IP Changed [@MickLesk](https://github.com/MickLesk) ([#1067](https://github.com/community-scripts/ProxmoxVE/pull/1067))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Zabbix: Fix SQL Path for 7.2 [@MickLesk](https://github.com/MickLesk) ([#1069](https://github.com/community-scripts/ProxmoxVE/pull/1069))
|
||||||
|
- Authentik: added missing port to access url [@TheRealVira](https://github.com/TheRealVira) ([#1065](https://github.com/community-scripts/ProxmoxVE/pull/1065))
|
||||||
|
|
||||||
|
## 2024-12-27
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- new scripts for Authentik [@remz1337](https://github.com/remz1337) ([#291](https://github.com/community-scripts/ProxmoxVE/pull/291))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Add 8.0 for MongoDB Installation [@MickLesk](https://github.com/MickLesk) ([#1046](https://github.com/community-scripts/ProxmoxVE/pull/1046))
|
||||||
|
- Update Zabbix to 7.2. Release [@MickLesk](https://github.com/MickLesk) ([#1048](https://github.com/community-scripts/ProxmoxVE/pull/1048))
|
||||||
|
- Apache-Guacamole script bug fix [@sannier3](https://github.com/sannier3) ([#1039](https://github.com/community-scripts/ProxmoxVE/pull/1039))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Updated SAB documentation based on RAM increase [@TheRealVira](https://github.com/TheRealVira) ([#1035](https://github.com/community-scripts/ProxmoxVE/pull/1035))
|
||||||
|
|
||||||
|
### ❔ Unlabelled
|
||||||
|
|
||||||
|
- Patch Figlet Repo if missing [@MickLesk](https://github.com/MickLesk) ([#1044](https://github.com/community-scripts/ProxmoxVE/pull/1044))
|
||||||
|
- fix Tags for Advanced Settings [@MickLesk](https://github.com/MickLesk) ([#1042](https://github.com/community-scripts/ProxmoxVE/pull/1042))
|
||||||
|
|
||||||
|
## 2024-12-26
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Jenkins [@quantumryuu](https://github.com/quantumryuu) ([#1019](https://github.com/community-scripts/ProxmoxVE/pull/1019))
|
||||||
|
- New Script: 2FAuth [@jkrgr0](https://github.com/jkrgr0) ([#943](https://github.com/community-scripts/ProxmoxVE/pull/943))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- ChangeDetection Update: Update also Browsers [@Niklas04](https://github.com/Niklas04) ([#1027](https://github.com/community-scripts/ProxmoxVE/pull/1027))
|
||||||
|
- ensure all RFC1918 local Ipv4 addresses are in iptag script [@AskAlice](https://github.com/AskAlice) ([#992](https://github.com/community-scripts/ProxmoxVE/pull/992))
|
||||||
|
- Fix Proxmox DataCenter: incorrect build.func url [@rbradley0](https://github.com/rbradley0) ([#1013](https://github.com/community-scripts/ProxmoxVE/pull/1013))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [GitHub Actions] Introduce Shellcheck to check bash code [@andygrunwald](https://github.com/andygrunwald) ([#1018](https://github.com/community-scripts/ProxmoxVE/pull/1018))
|
||||||
|
|
||||||
|
## 2024-12-25
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- add: pve-datacenter-manager [@CrazyWolf13](https://github.com/CrazyWolf13) ([#947](https://github.com/community-scripts/ProxmoxVE/pull/947))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix Script: Alpine Nextcloud Upload File Size Limit [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#933](https://github.com/community-scripts/ProxmoxVE/pull/933))
|
||||||
|
- Doubled RAM for SAB [@TheRealVira](https://github.com/TheRealVira) ([#1007](https://github.com/community-scripts/ProxmoxVE/pull/1007))
|
||||||
|
|
||||||
|
## 2024-12-23
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix Navidrome Update & Install [@MickLesk](https://github.com/MickLesk) ([#991](https://github.com/community-scripts/ProxmoxVE/pull/991))
|
||||||
|
- Update emby.sh to correct port [@Rageplant](https://github.com/Rageplant) ([#989](https://github.com/community-scripts/ProxmoxVE/pull/989))
|
||||||
|
|
||||||
|
## 2024-12-21
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- update Port in homeassistant-core CT [@fraefel](https://github.com/fraefel) ([#961](https://github.com/community-scripts/ProxmoxVE/pull/961))
|
||||||
|
|
||||||
|
## 2024-12-20
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: Apache Guacamole [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#657](https://github.com/community-scripts/ProxmoxVE/pull/657))
|
||||||
|
- New Script: silverbullet [@dsiebel](https://github.com/dsiebel) ([#659](https://github.com/community-scripts/ProxmoxVE/pull/659))
|
||||||
|
- New Script: Zammad [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#640](https://github.com/community-scripts/ProxmoxVE/pull/640))
|
||||||
|
- New Script: CheckMk [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#926](https://github.com/community-scripts/ProxmoxVE/pull/926))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: Remove PHP Key generation in Bookstack Update [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#948](https://github.com/community-scripts/ProxmoxVE/pull/948))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Update checkmk description [@BramSuurdje](https://github.com/BramSuurdje) ([#954](https://github.com/community-scripts/ProxmoxVE/pull/954))
|
||||||
|
- Add Login Note for Checkmk [@MickLesk](https://github.com/MickLesk) ([#940](https://github.com/community-scripts/ProxmoxVE/pull/940))
|
||||||
|
|
||||||
|
### ❔ Unlabelled
|
||||||
|
|
||||||
|
- Update build.func to display the Proxmox Hostname [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#894](https://github.com/community-scripts/ProxmoxVE/pull/894))
|
||||||
|
|
||||||
|
## 2024-12-19
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix: Bookstack Update Function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#844](https://github.com/community-scripts/ProxmoxVE/pull/844))
|
||||||
|
- mysql not showing ip after install [@snow2k9](https://github.com/snow2k9) ([#924](https://github.com/community-scripts/ProxmoxVE/pull/924))
|
||||||
|
- Fix Omada - Crawling latest version [@MickLesk](https://github.com/MickLesk) ([#918](https://github.com/community-scripts/ProxmoxVE/pull/918))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Fix script path formatting in InstallMethod component [@BramSuurdje](https://github.com/BramSuurdje) ([#909](https://github.com/community-scripts/ProxmoxVE/pull/909))
|
||||||
|
- Fix Part-DB Docu (cred command) [@EvilBlood](https://github.com/EvilBlood) ([#898](https://github.com/community-scripts/ProxmoxVE/pull/898))
|
||||||
|
- Enhance Tooltip component by adding CircleHelp icon and fix instructions in script component [@BramSuurdje](https://github.com/BramSuurdje) ([#910](https://github.com/community-scripts/ProxmoxVE/pull/910))
|
||||||
|
|
||||||
|
## 2024-12-18
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New script: Part-DB LXC [@bvdberg01](https://github.com/bvdberg01) ([#591](https://github.com/community-scripts/ProxmoxVE/pull/591))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix Kernel-Clean for Proxmox 8.x [@MickLesk](https://github.com/MickLesk) ([#904](https://github.com/community-scripts/ProxmoxVE/pull/904))
|
||||||
|
- [Frigate] Remove SSE 4.2 from instruction set supporting OpenVino [@remz1337](https://github.com/remz1337) ([#902](https://github.com/community-scripts/ProxmoxVE/pull/902))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- New Metadata Category: "Coding & AI" [@newzealandpaul](https://github.com/newzealandpaul) ([#890](https://github.com/community-scripts/ProxmoxVE/pull/890))
|
||||||
|
- Moved Webmin to "Server & Networking" [@newzealandpaul](https://github.com/newzealandpaul) ([#891](https://github.com/community-scripts/ProxmoxVE/pull/891))
|
||||||
|
|
||||||
|
## 2024-12-17
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix Alpine-Nextcloud: Bump PHP Version to 8.3 [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#865](https://github.com/community-scripts/ProxmoxVE/pull/865))
|
||||||
|
- Correction of Jellyfin CT Port [@mneten](https://github.com/mneten) ([#884](https://github.com/community-scripts/ProxmoxVE/pull/884))
|
||||||
|
- fix spinner on lxc-ip-tag [@MickLesk](https://github.com/MickLesk) ([#876](https://github.com/community-scripts/ProxmoxVE/pull/876))
|
||||||
|
- Fix Keycloak Installation [@MickLesk](https://github.com/MickLesk) ([#874](https://github.com/community-scripts/ProxmoxVE/pull/874))
|
||||||
|
- Fix ports ressources [@MickLesk](https://github.com/MickLesk) ([#867](https://github.com/community-scripts/ProxmoxVE/pull/867))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Small Changes to the PR Template [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#862](https://github.com/community-scripts/ProxmoxVE/pull/862))
|
||||||
|
|
||||||
|
### ❔ Unlabelled
|
||||||
|
|
||||||
|
- calculate terminal size for header_info [@MickLesk](https://github.com/MickLesk) ([#879](https://github.com/community-scripts/ProxmoxVE/pull/879))
|
||||||
|
- Fix header creation with figlet for alpine [@MickLesk](https://github.com/MickLesk) ([#869](https://github.com/community-scripts/ProxmoxVE/pull/869))
|
||||||
|
|
||||||
|
## 2024-12-16
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Massive Update: build.func | install.func | create_lxc.sh (Part 1) [@MickLesk](https://github.com/MickLesk) ([#643](https://github.com/community-scripts/ProxmoxVE/pull/643))
|
||||||
|
- Update ALL CT's to new default (Part 2) [@MickLesk](https://github.com/MickLesk) ([#710](https://github.com/community-scripts/ProxmoxVE/pull/710))
|
||||||
|
|
||||||
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New Script: LXC IP-Tag [@MickLesk](https://github.com/MickLesk) ([#536](https://github.com/community-scripts/ProxmoxVE/pull/536))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Increase Size | Description & Download-URL of Debian VM [@MickLesk](https://github.com/MickLesk) ([#837](https://github.com/community-scripts/ProxmoxVE/pull/837))
|
||||||
|
- Update Script: Remove Docker Compose Question [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#847](https://github.com/community-scripts/ProxmoxVE/pull/847))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Bump nanoid from 3.3.7 to 3.3.8 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#845](https://github.com/community-scripts/ProxmoxVE/pull/845))
|
||||||
|
|
||||||
|
### ❔ Unlabelled
|
||||||
|
|
||||||
|
- Fix SSH root access in install.func [@havardthom](https://github.com/havardthom) ([#858](https://github.com/community-scripts/ProxmoxVE/pull/858))
|
||||||
|
- Fix variable name for CT_TYPE override [@remz1337](https://github.com/remz1337) ([#855](https://github.com/community-scripts/ProxmoxVE/pull/855))
|
||||||
|
- Keeps the same style after writing the SEARCH icon [@remz1337](https://github.com/remz1337) ([#851](https://github.com/community-scripts/ProxmoxVE/pull/851))
|
||||||
|
|
||||||
|
## 2024-12-13
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix Keycloak Update Function [@MickLesk](https://github.com/MickLesk) ([#762](https://github.com/community-scripts/ProxmoxVE/pull/762))
|
||||||
|
- Fix config bug in Alpine Vaultwarden [@havardthom](https://github.com/havardthom) ([#775](https://github.com/community-scripts/ProxmoxVE/pull/775))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Change MISC from red to green [@MickLesk](https://github.com/MickLesk) ([#815](https://github.com/community-scripts/ProxmoxVE/pull/815))
|
||||||
|
- Update some JSON Files for Website [@MickLesk](https://github.com/MickLesk) ([#812](https://github.com/community-scripts/ProxmoxVE/pull/812))
|
||||||
|
- Update Notes & Documentation for Proxmox Backup Server [@MickLesk](https://github.com/MickLesk) ([#804](https://github.com/community-scripts/ProxmoxVE/pull/804))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Github: Optimize Issue Template & PR Template [@MickLesk](https://github.com/MickLesk) ([#802](https://github.com/community-scripts/ProxmoxVE/pull/802))
|
||||||
|
|
||||||
|
## 2024-12-12
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Update jellyfin.sh / Fix infinite loop [@gerpo](https://github.com/gerpo) ([#792](https://github.com/community-scripts/ProxmoxVE/pull/792))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Fix port and website in nextcloudpi.json [@PhoenixEmik](https://github.com/PhoenixEmik) ([#790](https://github.com/community-scripts/ProxmoxVE/pull/790))
|
||||||
|
- Add post-install note to mqtt.json [@havardthom](https://github.com/havardthom) ([#783](https://github.com/community-scripts/ProxmoxVE/pull/783))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Filter pull requests on main branch in changelog-pr.yml [@havardthom](https://github.com/havardthom) ([#793](https://github.com/community-scripts/ProxmoxVE/pull/793))
|
||||||
|
- Fix Z-Wave JS UI Breaking Change in CHANGELOG.md [@havardthom](https://github.com/havardthom) ([#781](https://github.com/community-scripts/ProxmoxVE/pull/781))
|
||||||
|
|
||||||
|
## 2024-12-09
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix PostgreSQL password bug in Umami install [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#750](https://github.com/community-scripts/ProxmoxVE/pull/750))
|
||||||
|
|
||||||
|
## 2024-12-08
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Use MongoDB 4.4 in Unifi for non-AVX users [@havardthom](https://github.com/havardthom) ([#691](https://github.com/community-scripts/ProxmoxVE/pull/691))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Move homarr to Dashboards section [@CrazyWolf13](https://github.com/CrazyWolf13) ([#740](https://github.com/community-scripts/ProxmoxVE/pull/740))
|
||||||
|
|
||||||
|
## 2024-12-07
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Zigbee2MQTT: Remove dev branch choice until v2.0.0 release [@havardthom](https://github.com/havardthom) ([#702](https://github.com/community-scripts/ProxmoxVE/pull/702))
|
||||||
|
- Fix Hoarder build failure by installing Chromium stable [@vhsdream](https://github.com/vhsdream) ([#723](https://github.com/community-scripts/ProxmoxVE/pull/723))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Bugfix: Include script name in website search [@havardthom](https://github.com/havardthom) ([#731](https://github.com/community-scripts/ProxmoxVE/pull/731))
|
||||||
|
|
||||||
|
### ❔ Unlabelled
|
||||||
|
|
||||||
|
- Fix broken build.func [@havardthom](https://github.com/havardthom) ([#736](https://github.com/community-scripts/ProxmoxVE/pull/736))
|
||||||
|
|
||||||
|
## 2024-12-06
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix bugs in Komga update [@DysfunctionalProgramming](https://github.com/DysfunctionalProgramming) ([#717](https://github.com/community-scripts/ProxmoxVE/pull/717))
|
||||||
|
- Bookstack: Fix Update function composer [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#700](https://github.com/community-scripts/ProxmoxVE/pull/700))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- fix: note component in json-editor getting out of focus when typing and revert theme switch animation [@BramSuurdje](https://github.com/BramSuurdje) ([#706](https://github.com/community-scripts/ProxmoxVE/pull/706))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- Update frontend CI/CD workflow [@havardthom](https://github.com/havardthom) ([#703](https://github.com/community-scripts/ProxmoxVE/pull/703))
|
||||||
|
|
||||||
|
## 2024-12-05
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- PostgreSQL: Change authentication method from peer to md5 for UNIX sockets [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#650](https://github.com/community-scripts/ProxmoxVE/pull/650))
|
||||||
|
- Fix stdout in unifi.sh [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#688](https://github.com/community-scripts/ProxmoxVE/pull/688))
|
||||||
|
- Fix `rm` bug in Vikunja update [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#692](https://github.com/community-scripts/ProxmoxVE/pull/692))
|
||||||
|
|
||||||
## 2024-12-04
|
## 2024-12-04
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
@ -94,13 +1007,17 @@ Do not break established syntax in this file, as it is automatically updated by
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Fix Z-Wave JS UI script [@MickLesk](https://github.com/MickLesk) ([#546](https://github.com/community-scripts/ProxmoxVE/pull/546))
|
||||||
|
- [Migration guide](https://github.com/community-scripts/ProxmoxVE/discussions/635)
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
- Add vitest, add json validation tests, fix broken json files [@havardthom](https://github.com/havardthom) ([#566](https://github.com/community-scripts/ProxmoxVE/pull/566))
|
- Add vitest, add json validation tests, fix broken json files [@havardthom](https://github.com/havardthom) ([#566](https://github.com/community-scripts/ProxmoxVE/pull/566))
|
||||||
- Add update script to Pocketbase [@dsiebel](https://github.com/dsiebel) ([#535](https://github.com/community-scripts/ProxmoxVE/pull/535))
|
- Add update script to Pocketbase [@dsiebel](https://github.com/dsiebel) ([#535](https://github.com/community-scripts/ProxmoxVE/pull/535))
|
||||||
- Fix MongoDB install in Unifi script [@havardthom](https://github.com/havardthom) ([#564](https://github.com/community-scripts/ProxmoxVE/pull/564))
|
- Fix MongoDB install in Unifi script [@havardthom](https://github.com/havardthom) ([#564](https://github.com/community-scripts/ProxmoxVE/pull/564))
|
||||||
- Remove changing DISK_REF for zfspool mikrotik-routeros.sh [@tjcomserv](https://github.com/tjcomserv) ([#529](https://github.com/community-scripts/ProxmoxVE/pull/529))
|
- Remove changing DISK_REF for zfspool mikrotik-routeros.sh [@tjcomserv](https://github.com/tjcomserv) ([#529](https://github.com/community-scripts/ProxmoxVE/pull/529))
|
||||||
- Fix Z-Wave JS UI script [@MickLesk](https://github.com/MickLesk) ([#546](https://github.com/community-scripts/ProxmoxVE/pull/546))
|
|
||||||
|
|
||||||
### 🌐 Website
|
### 🌐 Website
|
||||||
|
|
||||||
|
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2021-2024 tteck | community-scripts ORG
|
Copyright (c) 2021-2025 tteck | community-scripts ORG
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
162
README.md
162
README.md
@ -7,106 +7,98 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="border: 2px solid #d1d5db; padding: 20px; border-radius: 8px; background-color: #f9fafb;">
|
<div style="border: 2px solid #d1d5db; padding: 20px; border-radius: 8px; background-color: #f9fafb;">
|
||||||
<h2 align="center">Proxmox VE Helper-Scripts: A Community Legacy</h2>
|
<h2 align="center">Proxmox VE Helper-Scripts</h2>
|
||||||
<p>Dear Community,</p>
|
<p align="center">A Community Legacy in Memory of @tteck</p>
|
||||||
<p>In agreement with <a href="https://github.com/tteck">tteck</a> and <a href="https://github.com/community-scripts">Community-Scripts</a>, this project has now transitioned into a community-driven effort. We aim to continue his work, building on the foundation he laid to support Proxmox users worldwide. Tteck sadly <a href="https://github.com/community-scripts/ProxmoxVE/discussions/237">passed away in early November 2024</a>. This project will be a memorial for his incredible contribution to the community.</p>
|
<p align="center">
|
||||||
|
<a href="https://helper-scripts.com">
|
||||||
<p align="center">
|
<img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" />
|
||||||
<a href="https://helper-scripts.com">
|
</a>
|
||||||
<img src="https://img.shields.io/badge/Website-4c9b3f?style=for-the-badge&logo=github&logoColor=white" alt="Website" />
|
<a href="https://discord.gg/UHrpNWGwkH">
|
||||||
</a>
|
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
|
||||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTING.md">
|
</a>
|
||||||
<img src="https://img.shields.io/badge/Contribute-ff4785?style=for-the-badge&logo=git&logoColor=white" alt="Contribute" />
|
<a href="https://ko-fi.com/community_scripts">
|
||||||
</a>
|
<img src="https://img.shields.io/badge/Support-FF5F5F?style=for-the-badge&logo=ko-fi&logoColor=white" alt="Donate" />
|
||||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/USER_SUBMITTED_GUIDES.md">
|
</a>
|
||||||
<img src="https://img.shields.io/badge/Guides-0077b5?style=for-the-badge&logo=read-the-docs&logoColor=white" alt="Guides" />
|
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTING.md">
|
||||||
</a>
|
<img src="https://img.shields.io/badge/Contribute-ff4785?style=for-the-badge&logo=git&logoColor=white" alt="Contribute" />
|
||||||
<a href="https://discord.gg/UHrpNWGwkH">
|
</a>
|
||||||
<img src="https://img.shields.io/badge/Discord-7289da?style=for-the-badge&logo=discord&logoColor=white" alt="Discord" />
|
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/USER_SUBMITTED_GUIDES.md">
|
||||||
</a>
|
<img src="https://img.shields.io/badge/Guides-0077b5?style=for-the-badge&logo=read-the-docs&logoColor=white" alt="Guides" />
|
||||||
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md">
|
</a>
|
||||||
<img src="https://img.shields.io/badge/Changelog-6c5ce7?style=for-the-badge&logo=git&logoColor=white" alt="Changelog" />
|
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md">
|
||||||
</a>
|
<img src="https://img.shields.io/badge/Changelog-6c5ce7?style=for-the-badge&logo=git&logoColor=white" alt="Changelog" />
|
||||||
</p>
|
</a>
|
||||||
|
</p>
|
||||||
<hr>
|
</div>
|
||||||
|
|
||||||
## 🚀 Introduction
|
|
||||||
|
|
||||||
**Proxmox VE Helper-Scripts** is a community-driven initiative that simplifies the setup of Proxmox Virtual Environment (VE). Originally created by [tteck](https://github.com/tteck), these scripts automate and streamline the process of creating and configuring Linux containers (LXC) and virtual machines (VMs) on Proxmox VE.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📦 Features
|
## 🚀 Project Overview
|
||||||
|
|
||||||
- **Interactive Setup**: Select simple or advanced options for your VM or LXC container configurations.
|
**Proxmox VE Helper-Scripts** is a collection of tools to simplify the setup and management of Proxmox Virtual Environment (VE). Originally created by [tteck](https://github.com/tteck), these scripts are now continued by the community. Our goal is to preserve and expand upon tteck's work, providing an ongoing resource for Proxmox users worldwide.
|
||||||
- **Customizable Configuration**: Advanced setup allows you to fine-tune your environment.
|
|
||||||
- **Ease of Use**: Scripts automatically validate inputs to generate the final configuration.
|
|
||||||
- **Proxmox Integration**: Seamlessly integrates with Proxmox VE to provide a user-friendly experience.
|
|
||||||
- **Community-Driven**: This project is actively maintained and improved by the community.
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
## 🚀 Installation
|
|
||||||
|
|
||||||
To install the Proxmox Helper Scripts, simply follow these steps:
|
|
||||||
|
|
||||||
1. Open the [Website](https://helper-scripts.com/)
|
|
||||||
2. Search for the desired script, e.g. **"Home Assistant OS VM"**.
|
|
||||||
3. In the **"How To Install"** section, copy the provided **Bash command**.
|
|
||||||
4. Open the Proxmox shell on your **main node**.
|
|
||||||
5. Paste the command into the console, hit enter, and you are away! 🚀
|
|
||||||
|
|
||||||
For detailed instructions, check out our [official guides](https://github.com/community-scripts/ProxmoxVE/blob/main/USER_SUBMITTED_GUIDES.md).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## ❤️ Community and Contributions
|
## 📦 Features
|
||||||
|
|
||||||
The Proxmox Helper Scripts project is community-driven, and we highly appreciate any contributions — whether it's through reporting bugs, suggesting features, improving documentation, or spreading the word. We are committed to maintaining transparency and sustainability in this open-source effort.
|
- **Interactive Setup**: Choose between simple and advanced options for configuring VMs and LXC containers.
|
||||||
|
- **Customizable Configurations**: Advanced setup for fine-tuning your environment.
|
||||||
|
- **Seamless Integration**: Works seamlessly with Proxmox VE for a smooth experience.
|
||||||
|
- **Community-driven**: Actively maintained and improved by the Proxmox community.
|
||||||
|
|
||||||
### 💖 Donate to Support the Project
|
---
|
||||||
|
## ✅ Requirements
|
||||||
|
|
||||||
We offer two donation options to help maintain and grow this project:
|
Ensure your system meets the following prerequisites:
|
||||||
|
|
||||||
- **Ko-Fi for tteck**: [Donate to tteck's wife](https://ko-fi.com/proxmoxhelperscripts) - All donations will go directly to Angie, wife of the founder of this project [who passed away in early November 2024](https://github.com/community-scripts/ProxmoxVE/discussions/237).
|
|
||||||
- **Ko-Fi for Community Edition**: [Donate to this project](https://ko-fi.com/community_scripts) - All funds will go towards script maintenance infrastructure and server costs. **Our most immediate need is funding testing infrastructure**. Your contributions help keep the project running. To honor tteck's legacy this project will also raise money for charity (cancer research, hospice care). Of the money donated to this project, 30% will be donated to charity. Income, expenditure and charitable donations will be disclosed annually in a transparent manner.
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
## 💬 Get Help
|
|
||||||
|
|
||||||
Have a question or ran into an issue? Join the conversation and get help from fellow community members:
|
|
||||||
|
|
||||||
- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/UHrpNWGwkH) to chat with other users and get support.
|
|
||||||
- **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions).
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
## 🤝 Found a bug or missing feature?
|
|
||||||
|
|
||||||
If you’ve encountered an issue or identified an area for improvement, please file a new issue on our [GitHub issues page](https://github.com/community-scripts/ProxmoxVE/issues). If you’ve already found a solution or improvement, feel free to submit a pull request! We’d love to review and merge your contributions.
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
## ✅ Requirements
|
|
||||||
|
|
||||||
To use the Proxmox VE Helper-Scripts, your system should meet the following requirements:
|
|
||||||
|
|
||||||
- **Proxmox VE version**: 8.x or higher
|
- **Proxmox VE version**: 8.x or higher
|
||||||
- **Linux**: Compatible with most distributions
|
- **Linux**: Compatible with most distributions
|
||||||
- **Dependencies**: Ensure that your system has bash and curl installed.
|
- **Dependencies**: bash and curl should be installed.
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
## 📜 License
|
|
||||||
|
|
||||||
This project is licensed under the terms of the [MIT License](LICENSE).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📢 Acknowledgments
|
## 🚀 Installation
|
||||||
|
|
||||||
|
To install the Proxmox Helper Scripts, follow these steps:
|
||||||
|
|
||||||
|
1. Visit the [Website](https://helper-scripts.com/).
|
||||||
|
2. Search for the desired script, e.g., **"Home Assistant OS VM"**.
|
||||||
|
3. Copy the provided **Bash command** from the **"How To Install"** section.
|
||||||
|
4. Open the Proxmox shell on your **main node** and paste the command.
|
||||||
|
5. Press enter to start the installation! 🚀
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ❤️ Community and Contributions
|
||||||
|
|
||||||
|
We appreciate any contributions to the project—whether it's bug reports, feature requests, documentation improvements, or spreading the word. Your involvement helps keep the project alive and sustainable.
|
||||||
|
|
||||||
|
## 💖 Donate to Support the Project
|
||||||
|
- **Ko-Fi for Community Edition**: [Donate to support this project](https://ko-fi.com/community_scripts) – Donations go towards maintaining the project, testing infrastructure, and charity (cancer research, hospice care). 30% of the funds will be donated to charity.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💬 Get Help
|
||||||
|
|
||||||
|
Join our community for support:
|
||||||
|
|
||||||
|
- **Discord**: Join our [Proxmox Helper Scripts Discord server](https://discord.gg/UHrpNWGwkH) for real-time support.
|
||||||
|
- **GitHub Discussions**: [Ask questions or report issues](https://github.com/community-scripts/ProxmoxVE/discussions).
|
||||||
|
|
||||||
|
## 🤝 Report a Bug or Feature Request
|
||||||
|
|
||||||
|
If you encounter any issues or have suggestions for improvement, file a new issue on our [GitHub issues page](https://github.com/community-scripts/ProxmoxVE/issues). You can also submit pull requests with solutions or enhancements!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📜 License
|
||||||
|
|
||||||
|
This project is licensed under the [MIT License](LICENSE).
|
||||||
|
|
||||||
|
</br>
|
||||||
|
</br>
|
||||||
|
<p align="center">
|
||||||
|
<i style="font-size: smaller;"><b>Proxmox</b>® is a registered trademark of <a href="https://www.proxmox.com/en/about/company">Proxmox Server Solutions GmbH</a>.</i>
|
||||||
|
</p>
|
||||||
|
|
||||||
This community project is a memorial to the memory of [tteck](https://github.com/tteck). His foundational work created a thriving Proxmox community. Tteck worked on this project right until the end, even while in hospice. We are dedicated to keeping his vision alive and expanding upon it with the continued support of this vibrant community.
|
|
||||||
|
|
||||||
Proxmox® is a registered trademark of [Proxmox Server Solutions GmbH](https://www.proxmox.com/en/about/company).
|
|
90
ct/2fauth.sh
Normal file
90
ct/2fauth.sh
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: jkrgr0
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://docs.2fauth.app/
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="2FAuth"
|
||||||
|
TAGS="2fa;authenticator"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
# Check if installation is present | -f for file, -d for folder
|
||||||
|
if [[ ! -d "/opt/2fauth" ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Crawling the new version and checking whether an update is required
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/Bubka/2FAuth/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
if [[ "${RELEASE}" != "$(cat /opt/2fauth_version.txt)" ]] || [[ ! -f /opt/2fauth_version.txt ]]; then
|
||||||
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
|
|
||||||
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
|
||||||
|
# Creating Backup
|
||||||
|
msg_info "Creating Backup"
|
||||||
|
mv "/opt/2fauth" "/opt/2fauth-backup"
|
||||||
|
msg_ok "Backup Created"
|
||||||
|
|
||||||
|
# Execute Update
|
||||||
|
wget -q "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
|
||||||
|
unzip -q "${RELEASE}.zip"
|
||||||
|
mv "2FAuth-${RELEASE//v}/" "/opt/2fauth"
|
||||||
|
mv "/opt/2fauth-backup/.env" "/opt/2fauth/.env"
|
||||||
|
mv "/opt/2fauth-backup/storage" "/opt/2fauth/storage"
|
||||||
|
cd "/opt/2fauth" || return
|
||||||
|
|
||||||
|
chown -R www-data: "/opt/2fauth"
|
||||||
|
chmod -R 755 "/opt/2fauth"
|
||||||
|
|
||||||
|
export COMPOSER_ALLOW_SUPERUSER=1
|
||||||
|
composer install --no-dev --prefer-source &>/dev/null
|
||||||
|
|
||||||
|
php artisan 2fauth:install
|
||||||
|
|
||||||
|
# Cleaning up
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf "v${RELEASE}.zip"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleanup Completed"
|
||||||
|
|
||||||
|
# Last Action
|
||||||
|
echo "${RELEASE}" >/opt/2fauth_version.txt
|
||||||
|
msg_ok "Updated $APP to ${RELEASE}"
|
||||||
|
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}:80${CL}"
|
@ -1,70 +1,73 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://actualbudget.org/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ __ ____ __ __
|
|
||||||
/ | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_
|
|
||||||
/ /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/
|
|
||||||
/ ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_
|
|
||||||
/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Actual Budget"
|
APP="Actual Budget"
|
||||||
var_disk="4"
|
var_tags="finance"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/actualbudget ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
|
||||||
msg_info "Updating ${APP}"
|
if [[ ! -d /opt/actualbudget ]]; then
|
||||||
systemctl stop actualbudget.service
|
msg_error "No ${APP} Installation Found!"
|
||||||
cd /opt/actualbudget
|
exit
|
||||||
git pull &>/dev/null
|
fi
|
||||||
yarn install &>/dev/null
|
|
||||||
systemctl start actualbudget.service
|
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
msg_ok "Successfully Updated ${APP}"
|
if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
|
||||||
exit
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop actualbudget
|
||||||
|
msg_ok "${APP} Stopped"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
|
cd /tmp
|
||||||
|
wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz
|
||||||
|
mv /opt/actualbudget /opt/actualbudget_bak
|
||||||
|
mkdir -p /opt/actualbudget/
|
||||||
|
tar -xzf v${RELEASE}.tar.gz >/dev/null 2>&1
|
||||||
|
mv *ctual-server-*/* /opt/actualbudget
|
||||||
|
rm -rf /opt/actualbudget/.env
|
||||||
|
mv /opt/actualbudget_bak/.env /opt/actualbudget
|
||||||
|
mv /opt/actualbudget_bak/server-files /opt/actualbudget/server-files
|
||||||
|
cd /opt/actualbudget
|
||||||
|
yarn install &>/dev/null
|
||||||
|
echo "${RELEASE}" >/opt/actualbudget_version.txt
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP}"
|
||||||
|
systemctl start actualbudget
|
||||||
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/actualbudget_bak
|
||||||
|
rm -rf /tmp/actual-server.tar.gz
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -72,5 +75,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:5006${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5006${CL}"
|
||||||
|
@ -1,64 +1,39 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://adguard.com/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ __
|
|
||||||
/ | ____/ /___ ___ ______ __________/ /
|
|
||||||
/ /| |/ __ / __ / / / / __ / ___/ __ /
|
|
||||||
/ ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ /
|
|
||||||
/_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/
|
|
||||||
/____/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Adguard"
|
APP="Adguard"
|
||||||
var_disk="2"
|
var_tags="adblock"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/AdGuardHome ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/AdGuardHome ]]; then
|
||||||
msg_error "Adguard Home should be updated via the user interface."
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "Adguard Home should be updated via the user interface."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -66,5 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:3000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
|
@ -1,102 +1,79 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck
|
# Author: MickLesk (Canbiz)
|
||||||
# Co-Author: MickLesk (Canbiz)
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# License: MIT
|
# Source: https://adventurelog.app/
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ __ __
|
|
||||||
/ | ____/ / _____ ____ / /___ __________ / / ____ ____ _
|
|
||||||
/ /| |/ __ / | / / _ \/ __ \/ __/ / / / ___/ _ \/ / / __ \/ __ `/
|
|
||||||
/ ___ / /_/ /| |/ / __/ / / / /_/ /_/ / / / __/ /___/ /_/ / /_/ /
|
|
||||||
/_/ |_\__,_/ |___/\___/_/ /_/\__/\__,_/_/ \___/_____/\____/\__, /
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="AdventureLog"
|
APP="AdventureLog"
|
||||||
|
var_tags="traveling"
|
||||||
var_disk="7"
|
var_disk="7"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/adventurelog ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/adventurelog ]]; then
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
msg_error "No ${APP} Installation Found!"
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
exit
|
||||||
msg_info "Stopping Services"
|
fi
|
||||||
systemctl stop adventurelog-backend
|
RELEASE=$(curl -s https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
systemctl stop adventurelog-frontend
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_ok "Services Stopped"
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop adventurelog-backend
|
||||||
|
systemctl stop adventurelog-frontend
|
||||||
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
cp /opt/adventurelog/backend/server/.env /opt/server.env
|
mv /opt/adventurelog/ /opt/adventurelog-backup/
|
||||||
cp /opt/adventurelog/frontend/.env /opt/frontend.env
|
wget -qO /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
|
||||||
wget -q "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
|
unzip -q /opt/v${RELEASE}.zip -d /opt/
|
||||||
unzip -q v${RELEASE}.zip
|
mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
|
||||||
mv AdventureLog-${RELEASE} /opt/adventurelog
|
|
||||||
mv /opt/server.env /opt/adventurelog/backend/server/.env
|
|
||||||
cd /opt/adventurelog/backend/server
|
|
||||||
pip install --upgrade pip &>/dev/null
|
|
||||||
pip install -r requirements.txt &>/dev/null
|
|
||||||
python3 manage.py collectstatic --noinput &>/dev/null
|
|
||||||
python3 manage.py migrate &>/dev/null
|
|
||||||
|
|
||||||
mv /opt/frontend.env /opt/adventurelog/frontend/.env
|
|
||||||
cd /opt/adventurelog/frontend
|
|
||||||
pnpm install &>/dev/null
|
|
||||||
pnpm run build &>/dev/null
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
|
||||||
systemctl start adventurelog-backend
|
mv /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
|
||||||
systemctl start adventurelog-frontend
|
cd /opt/adventurelog/backend/server
|
||||||
msg_ok "Started Services"
|
pip install --upgrade pip &>/dev/null
|
||||||
|
pip install -r requirements.txt &>/dev/null
|
||||||
|
python3 manage.py collectstatic --noinput &>/dev/null
|
||||||
|
python3 manage.py migrate &>/dev/null
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
mv /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
|
||||||
rm -rf v${RELEASE}.zip
|
cd /opt/adventurelog/frontend
|
||||||
msg_ok "Cleaned"
|
pnpm install &>/dev/null
|
||||||
msg_ok "Updated Successfully"
|
pnpm run build &>/dev/null
|
||||||
else
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "Updated ${APP}"
|
||||||
fi
|
|
||||||
exit
|
msg_info "Starting Services"
|
||||||
|
systemctl start adventurelog-backend
|
||||||
|
systemctl start adventurelog-frontend
|
||||||
|
msg_ok "Started Services"
|
||||||
|
|
||||||
|
msg_info "Cleaning Up"
|
||||||
|
rm -rf /opt/v${RELEASE}.zip
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -104,5 +81,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:3000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
|
@ -1,64 +1,39 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.ispyconnect.com/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ ____ _ ______
|
|
||||||
/ | ____ ____ ____ / /_/ __ \ | / / __ \
|
|
||||||
/ /| |/ __ `/ _ \/ __ \/ __/ / / / | / / /_/ /
|
|
||||||
/ ___ / /_/ / __/ / / / /_/ /_/ /| |/ / _, _/
|
|
||||||
/_/ |_\__, /\___/_/ /_/\__/_____/ |___/_/ |_|
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="AgentDVR"
|
APP="AgentDVR"
|
||||||
var_disk="8"
|
var_tags="dvr"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="8"
|
||||||
var_os="ubuntu"
|
var_os="ubuntu"
|
||||||
var_version="22.04"
|
var_version="22.04"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="0"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/agentdvr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/agentdvr ]]; then
|
||||||
msg_error "There is currently no update path available."
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "There is currently no update path available."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -66,5 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP}${CL} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8090${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
|
@ -1,58 +1,28 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __
|
|
||||||
/ __ \____ _____/ /_ __ _____
|
|
||||||
/ / / / __ \/ ___/ //_/ _ \/ ___/
|
|
||||||
/ /_/ / /_/ / /__/ ,< / __/ /
|
|
||||||
/_____/\____/\___/_/|_|\___/_/
|
|
||||||
Alpine
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Alpine-Docker"
|
APP="Alpine-Docker"
|
||||||
var_disk="2"
|
var_tags="docker;alpine"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="2"
|
||||||
var_os="alpine"
|
var_os="alpine"
|
||||||
var_version="3.19"
|
var_version="3.21"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
if ! apk -e info newt >/dev/null 2>&1; then
|
if ! apk -e info newt >/dev/null 2>&1; then
|
||||||
apk add -q newt
|
apk add -q newt
|
||||||
|
@ -1,58 +1,28 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ ____
|
|
||||||
/ ____/________ _/ __/___ _____ ____ _
|
|
||||||
/ / __/ ___/ __ / /_/ __ / __ \/ __ /
|
|
||||||
/ /_/ / / / /_/ / __/ /_/ / / / / /_/ /
|
|
||||||
\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/
|
|
||||||
Alpine
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Alpine-Grafana"
|
APP="Alpine-Grafana"
|
||||||
var_disk="1"
|
var_tags="alpine;monitoring"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="256"
|
var_ram="256"
|
||||||
|
var_disk="1"
|
||||||
var_os="alpine"
|
var_os="alpine"
|
||||||
var_version="3.19"
|
var_version="3.21"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
if ! apk -e info newt >/dev/null 2>&1; then
|
if ! apk -e info newt >/dev/null 2>&1; then
|
||||||
apk add -q newt
|
apk add -q newt
|
||||||
|
62
ct/alpine-it-tools.sh
Normal file
62
ct/alpine-it-tools.sh
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: nicedevil007 (NiceDevil)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Alpine-IT-Tools"
|
||||||
|
var_tags="alpine;development"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="256"
|
||||||
|
var_disk="0.2"
|
||||||
|
var_os="alpine"
|
||||||
|
var_version="3.21"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /usr/share/nginx/html ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/CorentinTh/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"
|
||||||
|
mkdir -p /usr/share/nginx/html
|
||||||
|
rm -rf /usr/share/nginx/html/*
|
||||||
|
unzip -q it-tools.zip -d /tmp/it-tools
|
||||||
|
cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
|
||||||
|
rm -rf /tmp/it-tools
|
||||||
|
rm -f it-tools.zip
|
||||||
|
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 IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
@ -1,57 +1,28 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
_ __ __ __ __ __ __ __
|
|
||||||
/ | / /__ _ __/ /______/ /___ __ ______/ / / / / /_ __/ /_
|
|
||||||
/ |/ / _ \| |/_/ __/ ___/ / __ \/ / / / __ / / /_/ / / / / __ \
|
|
||||||
/ /| / __/> </ /_/ /__/ / /_/ / /_/ / /_/ / / __ / /_/ / /_/ /
|
|
||||||
/_/ |_/\___/_/|_|\__/\___/_/\____/\__,_/\__,_/ /_/ /_/\__,_/_.___/
|
|
||||||
Alpine
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Alpine-Nextcloud"
|
APP="Alpine-Nextcloud"
|
||||||
var_disk="2"
|
var_tags="alpine;cloud"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="2"
|
||||||
var_os="alpine"
|
var_os="alpine"
|
||||||
var_version="3.19"
|
var_version="3.21"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
if [[ ! -d /usr/share/webapps/nextcloud ]]; then
|
if [[ ! -d /usr/share/webapps/nextcloud ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
@ -1,58 +1,28 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
_ __ ____ __
|
|
||||||
| | / /___ ___ __/ / /__ ______ __________/ /__ ____
|
|
||||||
| | / / __ `/ / / / / __/ | /| / / __ `/ ___/ __ / _ \/ __ \
|
|
||||||
| |/ / /_/ / /_/ / / /_ | |/ |/ / /_/ / / / /_/ / __/ / / /
|
|
||||||
|___/\__,_/\__,_/_/\__/ |__/|__/\__,_/_/ \__,_/\___/_/ /_/
|
|
||||||
Alpine
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Alpine-Vaultwarden"
|
APP="Alpine-Vaultwarden"
|
||||||
var_disk="0.3"
|
var_tags="alpine;vault"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="256"
|
var_ram="256"
|
||||||
|
var_disk="0.5"
|
||||||
var_os="alpine"
|
var_os="alpine"
|
||||||
var_version="3.19"
|
var_version="3.21"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
if ! apk -e info newt >/dev/null 2>&1; then
|
if ! apk -e info newt >/dev/null 2>&1; then
|
||||||
apk add -q newt
|
apk add -q newt
|
||||||
@ -85,7 +55,7 @@ function update_script() {
|
|||||||
sed -i "s|\"admin_token\": .*|\"admin_token\": \"${TOKEN}\",|" /var/lib/vaultwarden/config.json
|
sed -i "s|\"admin_token\": .*|\"admin_token\": \"${TOKEN}\",|" /var/lib/vaultwarden/config.json
|
||||||
fi
|
fi
|
||||||
rc-service vaultwarden restart -q
|
rc-service vaultwarden restart -q
|
||||||
fi
|
fi
|
||||||
clear
|
clear
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
|
@ -1,58 +1,28 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
_____ _ __ ___ __ _______ ____________
|
|
||||||
/__ / (_)___ _/ /_ ___ ___ |__ \ / |/ / __ \/_ __/_ __/
|
|
||||||
/ / / / __ / __ \/ _ \/ _ \__/ // /|_/ / / / / / / / /
|
|
||||||
/ /__/ / /_/ / /_/ / __/ __/ __// / / / /_/ / / / / /
|
|
||||||
/____/_/\__, /_.___/\___/\___/____/_/ /_/\___\_\/_/ /_/
|
|
||||||
/____/ Alpine
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Alpine-Zigbee2MQTT"
|
APP="Alpine-Zigbee2MQTT"
|
||||||
|
var_tags="alpine;zigbee;mqtt;smarthome"
|
||||||
var_disk="0.3"
|
var_disk="0.3"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="256"
|
var_ram="256"
|
||||||
var_os="alpine"
|
var_os="alpine"
|
||||||
var_version="3.19"
|
var_version="3.21"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="0"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
if ! apk -e info newt >/dev/null 2>&1; then
|
if ! apk -e info newt >/dev/null 2>&1; then
|
||||||
apk add -q newt
|
apk add -q newt
|
||||||
|
72
ct/alpine.sh
72
ct/alpine.sh
@ -1,68 +1,38 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ _
|
|
||||||
/ | / /___ (_)___ ___
|
|
||||||
/ /| | / / __ \/ / __ \/ _ \
|
|
||||||
/ ___ |/ / /_/ / / / / / __/
|
|
||||||
/_/ |_/_/ .___/_/_/ /_/\___/
|
|
||||||
/_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Alpine"
|
APP="Alpine"
|
||||||
var_disk="0.1"
|
var_tags="os;alpine"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="0.1"
|
||||||
var_os="alpine"
|
var_os="alpine"
|
||||||
var_version="3.19"
|
var_version="3.21"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW="-password alpine"
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \
|
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \
|
||||||
"1" "Check for Alpine Updates" ON \
|
"1" "Check for Alpine Updates" ON \
|
||||||
3>&1 1>&2 2>&3)
|
3>&1 1>&2 2>&3)
|
||||||
|
|
||||||
header_info
|
header_info
|
||||||
if [ "$UPD" == "1" ]; then
|
if [ "$UPD" == "1" ]; then
|
||||||
apk update && apk upgrade
|
apk update && apk upgrade
|
||||||
exit;
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
@ -1,66 +1,40 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://cassandra.apache.org/_/index.html
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ ______ __
|
|
||||||
/ | ____ ____ ______/ /_ ___ / ____/___ _______________ _____ ____/ /________ _
|
|
||||||
/ /| | / __ \/ __ `/ ___/ __ \/ _ \ / / / __ `/ ___/ ___/ __ `/ __ \/ __ / ___/ __ `/
|
|
||||||
/ ___ |/ /_/ / /_/ / /__/ / / / __/ / /___/ /_/ (__ |__ ) /_/ / / / / /_/ / / / /_/ /
|
|
||||||
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\__,_/____/____/\__,_/_/ /_/\__,_/_/ \__,_/
|
|
||||||
/_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Apache-Cassandra"
|
APP="Apache-Cassandra"
|
||||||
var_disk="4"
|
var_tags="database;NoSQL"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
VERBOSE="yes"
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/cassandra.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/systemd/system/cassandra.service ]]; then
|
||||||
msg_error "There is currently no update path available."
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "There is currently no update path available."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -68,3 +42,4 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
@ -1,66 +1,39 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://couchdb.apache.org/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ ______ __ ____ ____
|
|
||||||
/ | ____ ____ ______/ /_ ___ / ____/___ __ _______/ /_ / __ \/ __ )
|
|
||||||
/ /| | / __ \/ __ `/ ___/ __ \/ _ \ / / / __ \/ / / / ___/ __ \/ / / / __ |
|
|
||||||
/ ___ |/ /_/ / /_/ / /__/ / / / __/ / /___/ /_/ / /_/ / /__/ / / / /_/ / /_/ /
|
|
||||||
/_/ |_/ .___/\__,_/\___/_/ /_/\___/ \____/\____/\__,_/\___/_/ /_/_____/_____/
|
|
||||||
/_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Apache-CouchDB"
|
APP="Apache-CouchDB"
|
||||||
var_disk="10"
|
var_tags="database"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="4096"
|
var_ram="4096"
|
||||||
|
var_disk="10"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
VERBOSE="yes"
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/couchdb.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/systemd/system/couchdb.service ]]; then
|
||||||
msg_error "There is currently no update path available."
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "There is currently no update path available."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -68,5 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:5984/_utils/${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5984/_utils/${CL}"
|
||||||
|
47
ct/apache-guacamole.sh
Normal file
47
ct/apache-guacamole.sh
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Michel Roegl-Brunner (michelroegl-brunner)
|
||||||
|
# License: | MIT https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://guacamole.apache.org/
|
||||||
|
|
||||||
|
#App Default Values
|
||||||
|
APP="Apache-Guacamole"
|
||||||
|
TAGS="webserver;remote"
|
||||||
|
var_disk="4"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="2048"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/apache-guacamole ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "Ther is currently no automatic update function for ${APP}."
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/guacamole${CL}"
|
||||||
|
|
@ -1,68 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://wiki.debian.org/AptCacherNg
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ ______ __ _ ________
|
|
||||||
/ | ____ / /_ / ____/___ ______/ /_ ___ _____ / | / / ____/
|
|
||||||
/ /| | / __ \/ __/__/ / / __ `/ ___/ __ \/ _ \/ ___/__/ |/ / / __
|
|
||||||
/ ___ |/ /_/ / /_/__/ /___/ /_/ / /__/ / / / __/ / /__/ /| / /_/ /
|
|
||||||
/_/ |_/ .___/\__/ \____/\__,_/\___/_/ /_/\___/_/ /_/ |_/\____/
|
|
||||||
/_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Apt-Cacher-NG"
|
APP="Apt-Cacher-NG"
|
||||||
var_disk="2"
|
var_tags="caching"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -70,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} maintenance page should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:3142/acng-report.html${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html${CL}"
|
||||||
|
@ -1,78 +1,53 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck
|
# Author: tteck
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://archivebox.io/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ _ ____
|
|
||||||
/ | __________/ /_ (_) _____ / __ )____ _ __
|
|
||||||
/ /| | / ___/ ___/ __ \/ / | / / _ \/ __ / __ \| |/_/
|
|
||||||
/ ___ |/ / / /__/ / / / /| |/ / __/ /_/ / /_/ /> <
|
|
||||||
/_/ |_/_/ \___/_/ /_/_/ |___/\___/_____/\____/_/|_|
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="ArchiveBox"
|
APP="ArchiveBox"
|
||||||
var_disk="8"
|
var_tags="archive;bookmark"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/archivebox ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/archivebox ]]; then
|
||||||
msg_info "Stopping ${APP}"
|
msg_error "No ${APP} Installation Found!"
|
||||||
systemctl stop archivebox
|
exit
|
||||||
msg_ok "Stopped ${APP}"
|
fi
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop archivebox
|
||||||
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
cd /opt/archivebox/data
|
cd /opt/archivebox/data
|
||||||
pip install --upgrade --ignore-installed archivebox
|
pip install --upgrade --ignore-installed archivebox
|
||||||
sudo -u archivebox archivebox init
|
sudo -u archivebox archivebox init
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start archivebox
|
systemctl start archivebox
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -80,5 +55,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8000/admin/login${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
|
||||||
|
79
ct/aria2.sh
79
ct/aria2.sh
@ -1,66 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://aria2.github.io/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ _ ___
|
|
||||||
/ | _____(_)___ |__ \
|
|
||||||
/ /| | / ___/ / __ `/_/ /
|
|
||||||
/ ___ |/ / / / /_/ / __/
|
|
||||||
/_/ |_/_/ /_/\__,_/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Aria2"
|
APP="Aria2"
|
||||||
var_disk="8"
|
var_tags="download-utility"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -68,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:6880${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6880${CL}"
|
||||||
|
@ -1,64 +1,39 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.audiobookshelf.org/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ __ __ ______
|
|
||||||
____ ___ ______/ (_)___ / /_ ____ ____ / /_______/ /_ ___ / / __/
|
|
||||||
/ __ `/ / / / __ / / __ \/ __ \/ __ \/ __ \/ //_/ ___/ __ \/ _ \/ / /_
|
|
||||||
/ /_/ / /_/ / /_/ / / /_/ / /_/ / /_/ / /_/ / ,< (__ ) / / / __/ / __/
|
|
||||||
\__,_/\__,_/\__,_/_/\____/_.___/\____/\____/_/|_/____/_/ /_/\___/_/_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="audiobookshelf"
|
APP="audiobookshelf"
|
||||||
var_disk="4"
|
var_tags="podcast;audiobook"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then
|
||||||
echo "This application receives updates through the APT package manager."
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
echo "This application receives updates through the APT package manager."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -66,5 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:13378${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"
|
||||||
|
85
ct/authentik.sh
Normal file
85
ct/authentik.sh
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: remz1337
|
||||||
|
# License: MIT
|
||||||
|
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Authentik"
|
||||||
|
var_tags="identity-provider"
|
||||||
|
var_disk="15"
|
||||||
|
var_cpu="6"
|
||||||
|
var_ram="8192"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -f /etc/systemd/system/authentik-server.service ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/goauthentik/authentik/releases/latest | grep "tarball_url" | awk '{print substr($2, 2, length($2)-3)}')
|
||||||
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop authentik-server
|
||||||
|
systemctl stop authentik-worker
|
||||||
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
|
msg_info "Building ${APP} website"
|
||||||
|
mkdir -p /opt/authentik
|
||||||
|
wget -qO authentik.tar.gz "${RELEASE}"
|
||||||
|
tar -xzf authentik.tar.gz -C /opt/authentik --strip-components 1 --overwrite
|
||||||
|
rm -rf authentik.tar.gz
|
||||||
|
cd /opt/authentik/website
|
||||||
|
npm install &>/dev/null
|
||||||
|
npm run build-bundled &>/dev/null
|
||||||
|
cd /opt/authentik/web
|
||||||
|
npm install &>/dev/null
|
||||||
|
npm run build &>/dev/null
|
||||||
|
msg_ok "Built ${APP} website"
|
||||||
|
|
||||||
|
msg_info "Installing Python Dependencies"
|
||||||
|
cd /opt/authentik
|
||||||
|
poetry install --only=main --no-ansi --no-interaction --no-root &>/dev/null
|
||||||
|
poetry export --without-hashes --without-urls -f requirements.txt --output requirements.txt &>/dev/null
|
||||||
|
pip install --no-cache-dir -r requirements.txt &>/dev/null
|
||||||
|
pip install . &>/dev/null
|
||||||
|
msg_ok "Installed Python Dependencies"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE} (Patience)"
|
||||||
|
cp -r /opt/authentik/authentik/blueprints /opt/authentik/blueprints
|
||||||
|
bash /opt/authentik/lifecycle/ak migrate &>/dev/null
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP}"
|
||||||
|
systemctl start authentik-server
|
||||||
|
systemctl start authentik-worker
|
||||||
|
msg_ok "Started ${APP}"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
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}:9000/if/flow/initial-setup/${CL}"
|
@ -1,78 +1,53 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://autobrr.com/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __ __
|
|
||||||
/ | __ __/ /_____ / /_ __________
|
|
||||||
/ /| |/ / / / __/ __ \/ __ \/ ___/ ___/
|
|
||||||
/ ___ / /_/ / /_/ /_/ / /_/ / / / /
|
|
||||||
/_/ |_\__,_/\__/\____/_.___/_/ /_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Autobrr"
|
APP="Autobrr"
|
||||||
var_disk="8"
|
var_tags="arr;"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /root/.config/autobrr/config.toml ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /root/.config/autobrr/config.toml ]]; then
|
||||||
msg_info "Stopping ${APP} LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
systemctl stop autobrr.service
|
exit
|
||||||
msg_ok "Stopped ${APP} LXC"
|
fi
|
||||||
|
msg_info "Stopping ${APP} LXC"
|
||||||
|
systemctl stop autobrr.service
|
||||||
|
msg_ok "Stopped ${APP} LXC"
|
||||||
|
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
rm -rf /usr/local/bin/*
|
rm -rf /usr/local/bin/*
|
||||||
wget -q $(curl -s https://api.github.com/repos/autobrr/autobrr/releases/latest | grep download | grep linux_x86_64 | cut -d\" -f4)
|
wget -q $(curl -s 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
|
tar -C /usr/local/bin -xzf autobrr*.tar.gz
|
||||||
rm -rf autobrr*.tar.gz
|
rm -rf autobrr*.tar.gz
|
||||||
msg_ok "Updated ${APP} LXC"
|
msg_ok "Updated ${APP} LXC"
|
||||||
|
|
||||||
msg_info "Starting ${APP} LXC"
|
msg_info "Starting ${APP} LXC"
|
||||||
systemctl start autobrr.service
|
systemctl start autobrr.service
|
||||||
msg_ok "Started ${APP} LXC"
|
msg_ok "Started ${APP} LXC"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -80,5 +55,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:7474${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7474${CL}"
|
75
ct/baikal.sh
Normal file
75
ct/baikal.sh
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: bvdberg01
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://sabre.io/baikal/
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Baikal"
|
||||||
|
var_tags="Dav"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="512"
|
||||||
|
var_disk="4"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/baikal ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop apache2
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
|
cd /opt
|
||||||
|
wget -q "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip"
|
||||||
|
mv /opt/baikal /opt/baikal-backup
|
||||||
|
unzip -o -q "baikal-${RELEASE}.zip"
|
||||||
|
cp -r /opt/baikal-backup/config/baikal.yaml /opt/baikal/config/
|
||||||
|
cp -r /opt/baikal-backup/Specific/ /opt/baikal/
|
||||||
|
chown -R www-data:www-data /opt/baikal/
|
||||||
|
chmod -R 755 /opt/baikal/
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated $APP to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start apache2
|
||||||
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf "/opt/baikal-${RELEASE}.zip"
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
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}"
|
75
ct/bazarr.sh
75
ct/bazarr.sh
@ -1,66 +1,38 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.bazarr.media/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____
|
|
||||||
/ __ )____ _____ ____ ___________
|
|
||||||
/ __ / __ `/_ / / __ `/ ___/ ___/
|
|
||||||
/ /_/ / /_/ / / /_/ /_/ / / / /
|
|
||||||
/_____/\__,_/ /___/\__,_/_/ /_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Bazarr"
|
APP="Bazarr"
|
||||||
var_disk="4"
|
var_tags="arr"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var/lib/bazarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var/lib/bazarr/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||||
msg_info "Updating $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
apt-get update &>/dev/null
|
apt-get update &>/dev/null
|
||||||
apt-get -y upgrade &>/dev/null
|
apt-get -y upgrade &>/dev/null
|
||||||
msg_ok "Updated $APP LXC"
|
msg_ok "Updated $APP LXC"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,5 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:6767${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"
|
47
ct/beszel.sh
Normal file
47
ct/beszel.sh
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) community-scripts ORG
|
||||||
|
# Author: Michelle Zitzerman (Sinofage)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://beszel.dev/
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Beszel"
|
||||||
|
var_tags="monitoring"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="512"
|
||||||
|
var_disk="5"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/beszel ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
/opt/beszel/beszel update
|
||||||
|
msg_error "Ther is currently no automatic update function for ${APP}."
|
||||||
|
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 IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
|
75
ct/blocky.sh
75
ct/blocky.sh
@ -1,67 +1,39 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://0xerr0r.github.io/blocky/latest/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __ __
|
|
||||||
/ __ )/ /___ _____/ /____ __
|
|
||||||
/ __ / / __ \/ ___/ //_/ / / /
|
|
||||||
/ /_/ / / /_/ / /__/ ,< / /_/ /
|
|
||||||
/_____/_/\____/\___/_/|_|\__, /
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Blocky"
|
APP="Blocky"
|
||||||
var_disk="2"
|
var_tags="adblock"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||||
msg_info "Updating $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
apt-get update &>/dev/null
|
apt-get update &>/dev/null
|
||||||
apt-get -y upgrade &>/dev/null
|
apt-get -y upgrade &>/dev/null
|
||||||
msg_ok "Updated $APP LXC"
|
msg_ok "Updated $APP LXC"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,3 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
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}"
|
132
ct/bookstack.sh
132
ct/bookstack.sh
@ -1,98 +1,82 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 community-scripts ORG
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
# Author: MickLesk (Canbiz)
|
# Author: MickLesk (Canbiz)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/BookStackApp/BookStack
|
# Source: https://github.com/BookStackApp/BookStack
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __ __ __
|
|
||||||
/ __ )____ ____ / /_______/ /_____ ______/ /__
|
|
||||||
/ __ / __ \/ __ \/ //_/ ___/ __/ __ `/ ___/ //_/
|
|
||||||
/ /_/ / /_/ / /_/ / ,< (__ ) /_/ /_/ / /__/ ,<
|
|
||||||
/_____/\____/\____/_/|_/____/\__/\__,_/\___/_/|_|
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Bookstack"
|
APP="Bookstack"
|
||||||
var_disk="4"
|
var_tags="organizer"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/bookstack ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/bookstack ]]; then
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
msg_error "No ${APP} Installation Found!"
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
exit
|
||||||
msg_info "Stopping Apache2"
|
fi
|
||||||
systemctl stop apache2
|
RELEASE=$(curl -s https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
msg_ok "Services Stopped"
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping Apache2"
|
||||||
|
systemctl stop apache2
|
||||||
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
cp /opt/bookstack/.env /opt/.env
|
mv /opt/bookstack /opt/bookstack-backup
|
||||||
wget -q "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip"
|
wget -q --directory-prefix=/opt "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip"
|
||||||
unzip -q v${RELEASE}.zip
|
unzip -q /opt/v${RELEASE}.zip -d /opt
|
||||||
mv BookStack-${RELEASE} /opt/bookstack
|
mv /opt/BookStack-${RELEASE} /opt/bookstack
|
||||||
mv /opt/.env /opt/bookstack/.env
|
cp /opt/bookstack-backup/.env /opt/bookstack/.env
|
||||||
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null
|
cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/ 2>/dev/null || true
|
||||||
php artisan key:generate &>/dev/null
|
cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/ 2>/dev/null || true
|
||||||
php artisan migrate &>/dev/null
|
cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ 2>/dev/null || true
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
cd /opt/bookstack
|
||||||
msg_ok "Updated ${APP}"
|
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev &>/dev/null
|
||||||
|
php artisan migrate --force &>/dev/null
|
||||||
|
chown www-data:www-data -R /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
|
||||||
|
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 "Updated ${APP} to v${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Apache2"
|
msg_info "Starting Apache2"
|
||||||
systemctl start apache2
|
systemctl start apache2
|
||||||
msg_ok "Started Apache2"
|
msg_ok "Started Apache2"
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
msg_info "Cleaning Up"
|
||||||
rm -rf v${RELEASE}.zip
|
rm -rf /opt/bookstack-backup
|
||||||
msg_ok "Cleaned"
|
rm -rf /opt/v${RELEASE}.zip
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Cleaned"
|
||||||
else
|
msg_ok "Updated Successfully"
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
else
|
||||||
fi
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
exit
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
build_container
|
build_container
|
||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||||
|
@ -1,65 +1,36 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.bunkerweb.io/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __ _ __ __
|
|
||||||
/ __ )__ ______ / /_____ ____| | / /__ / /_
|
|
||||||
/ __ / / / / __ \/ //_/ _ \/ ___/ | /| / / _ \/ __ \
|
|
||||||
/ /_/ / /_/ / / / / ,< / __/ / | |/ |/ / __/ /_/ /
|
|
||||||
/_____/\__,_/_/ /_/_/|_|\___/_/ |__/|__/\___/_.___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="BunkerWeb"
|
APP="BunkerWeb"
|
||||||
var_disk="4"
|
var_tags="webserver"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /etc/bunkerweb ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /etc/bunkerweb ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
cat <<EOF >/etc/apt/preferences.d/bunkerweb
|
cat <<EOF >/etc/apt/preferences.d/bunkerweb
|
||||||
@ -84,5 +55,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}/setup${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/setup${CL}"
|
78
ct/caddy.sh
78
ct/caddy.sh
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://caddyserver.com/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ __ __
|
|
||||||
/ ____/___ _____/ /___/ /_ __
|
|
||||||
/ / / __ `/ __ / __ / / / /
|
|
||||||
/ /___/ /_/ / /_/ / /_/ / /_/ /
|
|
||||||
\____/\__,_/\__,_/\__,_/\__, /
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Caddy"
|
APP="Caddy"
|
||||||
var_disk="2"
|
var_tags="webserver"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /etc/caddy ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /etc/caddy ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,3 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
|
||||||
|
@ -1,58 +1,29 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | Co-Author: remz1337
|
||||||
# Co-Author: remz1337
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# License: MIT
|
# Source: https://github.com/janeczku/calibre-web
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ ___ __ _ __ __
|
|
||||||
/ ____/___ _/ (_) /_ ________ | | / /__ / /_
|
|
||||||
/ / / __ `/ / / __ \/ ___/ _ \___| | /| / / _ \/ __ \
|
|
||||||
/ /___/ /_/ / / / /_/ / / / __/___/ |/ |/ / __/ /_/ /
|
|
||||||
\____/\__,_/_/_/_.___/_/ \___/ |__/|__/\___/_.___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Calibre-Web"
|
APP="Calibre-Web"
|
||||||
var_disk="4"
|
var_tags="eBook"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
@ -77,33 +48,33 @@ function update_script() {
|
|||||||
"5" "Enables login via google or github oauth" OFF \
|
"5" "Enables login via google or github oauth" OFF \
|
||||||
"6" "Enables extracting of metadata from epub, fb2, pdf files, and also extraction of covers from cbr, cbz, cbt files" OFF \
|
"6" "Enables extracting of metadata from epub, fb2, pdf files, and also extraction of covers from cbr, cbz, cbt files" OFF \
|
||||||
"7" "Enables extracting of metadata from cbr, cbz, cbt files" OFF \
|
"7" "Enables extracting of metadata from cbr, cbz, cbt files" OFF \
|
||||||
"8" "Enables syncing with your kobo reader" OFF )
|
"8" "Enables syncing with your kobo reader" OFF)
|
||||||
if [ -f "/opt/calibre-web/options.txt" ]; then
|
if [ -f "/opt/calibre-web/options.txt" ]; then
|
||||||
cps_options="$(cat /opt/calibre-web/options.txt)"
|
cps_options="$(cat /opt/calibre-web/options.txt)"
|
||||||
IFS=',' read -ra ADDR <<< "$cps_options"
|
IFS=',' read -ra ADDR <<<"$cps_options"
|
||||||
for i in "${ADDR[@]}"; do
|
for i in "${ADDR[@]}"; do
|
||||||
if [ $i == "gdrive" ]; then
|
if [ $i == "gdrive" ]; then
|
||||||
line=0
|
line=0
|
||||||
elif [ $i == "gmail" ]; then
|
elif [ $i == "gmail" ]; then
|
||||||
line=1
|
line=1
|
||||||
elif [ $i == "goodreads" ]; then
|
elif [ $i == "goodreads" ]; then
|
||||||
line=2
|
line=2
|
||||||
elif [ $i == "ldap" ]; then
|
elif [ $i == "ldap" ]; then
|
||||||
line=3
|
line=3
|
||||||
elif [ $i == "oauth" ]; then
|
elif [ $i == "oauth" ]; then
|
||||||
line=4
|
line=4
|
||||||
elif [ $i == "metadata" ]; then
|
elif [ $i == "metadata" ]; then
|
||||||
line=5
|
line=5
|
||||||
elif [ $i == "comics" ]; then
|
elif [ $i == "comics" ]; then
|
||||||
line=6
|
line=6
|
||||||
elif [ $i == "kobo" ]; then
|
elif [ $i == "kobo" ]; then
|
||||||
line=7
|
line=7
|
||||||
fi
|
fi
|
||||||
array_index=$(( 3*line + 2 ))
|
array_index=$((3 * line + 2))
|
||||||
menu_array[$array_index]=ON
|
menu_array[$array_index]=ON
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
|
||||||
CHOICES=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CALIBRE-WEB OPTIONS" --separate-output --checklist "Choose Additional Options" 15 125 8 "${menu_array[@]}" 3>&1 1>&2 2>&3)
|
CHOICES=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "CALIBRE-WEB OPTIONS" --separate-output --checklist "Choose Additional Options" 15 125 8 "${menu_array[@]}" 3>&1 1>&2 2>&3)
|
||||||
spinner &
|
spinner &
|
||||||
SPINNER_PID=$!
|
SPINNER_PID=$!
|
||||||
@ -112,29 +83,29 @@ function update_script() {
|
|||||||
for CHOICE in $CHOICES; do
|
for CHOICE in $CHOICES; do
|
||||||
case "$CHOICE" in
|
case "$CHOICE" in
|
||||||
"1")
|
"1")
|
||||||
options+=( gdrive )
|
options+=(gdrive)
|
||||||
;;
|
;;
|
||||||
"2")
|
"2")
|
||||||
options+=( gmail )
|
options+=(gmail)
|
||||||
;;
|
;;
|
||||||
"3")
|
"3")
|
||||||
options+=( goodreads )
|
options+=(goodreads)
|
||||||
;;
|
;;
|
||||||
"4")
|
"4")
|
||||||
options+=( ldap )
|
options+=(ldap)
|
||||||
apt-get install -qqy libldap2-dev libsasl2-dev
|
apt-get install -qqy libldap2-dev libsasl2-dev
|
||||||
;;
|
;;
|
||||||
"5")
|
"5")
|
||||||
options+=( oauth )
|
options+=(oauth)
|
||||||
;;
|
;;
|
||||||
"6")
|
"6")
|
||||||
options+=( metadata )
|
options+=(metadata)
|
||||||
;;
|
;;
|
||||||
"7")
|
"7")
|
||||||
options+=( comics )
|
options+=(comics)
|
||||||
;;
|
;;
|
||||||
"8")
|
"8")
|
||||||
options+=( kobo )
|
options+=(kobo)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unsupported item $CHOICE!" >&2
|
echo "Unsupported item $CHOICE!" >&2
|
||||||
@ -144,14 +115,17 @@ function update_script() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if [ ${#options[@]} -gt 0 ]; then
|
if [ ${#options[@]} -gt 0 ]; then
|
||||||
cps_options=$(IFS=, ; echo "${options[*]}")
|
cps_options=$(
|
||||||
echo $cps_options > /opt/calibre-web/options.txt
|
IFS=,
|
||||||
|
echo "${options[*]}"
|
||||||
|
)
|
||||||
|
echo $cps_options >/opt/calibre-web/options.txt
|
||||||
pip install --upgrade calibreweb[$cps_options] &>/dev/null
|
pip install --upgrade calibreweb[$cps_options] &>/dev/null
|
||||||
else
|
else
|
||||||
rm -rf /opt/calibre-web/options.txt
|
rm -rf /opt/calibre-web/options.txt
|
||||||
pip install --upgrade calibreweb &>/dev/null
|
pip install --upgrade calibreweb &>/dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start cps
|
systemctl start cps
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
@ -164,5 +138,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8083${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"
|
||||||
|
80
ct/casaos.sh
80
ct/casaos.sh
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://casaos.io/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ ____ _____
|
|
||||||
/ ____/___ __________ _/ __ \/ ___/
|
|
||||||
/ / / __ `/ ___/ __ `/ / / /\__ \
|
|
||||||
/ /___/ /_/ (__ ) /_/ / /_/ /___/ /
|
|
||||||
\____/\__,_/____/\__,_/\____//____/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="CasaOS"
|
APP="CasaOS"
|
||||||
var_disk="8"
|
var_tags="cloud"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated ${APP} LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP} ${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
@ -1,83 +1,75 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://changedetection.io/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
________ ____ __ __ _
|
|
||||||
/ ____/ /_ ____ _____ ____ ____ / __ \___ / /____ _____/ /_(_)___ ____
|
|
||||||
/ / / __ \/ __ `/ __ \/ __ `/ _ \ / / / / _ \/ __/ _ \/ ___/ __/ / __ \/ __ \
|
|
||||||
/ /___/ / / / /_/ / / / / /_/ / __/ / /_/ / __/ /_/ __/ /__/ /_/ / /_/ / / / /
|
|
||||||
\____/_/ /_/\__,_/_/ /_/\__, /\___/ /_____/\___/\__/\___/\___/\__/_/\____/_/ /_/
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Change Detection"
|
APP="Change Detection"
|
||||||
var_disk="8"
|
var_tags="monitoring;crawler"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/changedetection.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
|
||||||
msg_info "Updating ${APP} LXC"
|
if [[ ! -f /etc/systemd/system/changedetection.service ]]; then
|
||||||
if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update
|
exit
|
||||||
apt-get install -y libjpeg-dev
|
fi
|
||||||
fi
|
|
||||||
pip3 install changedetection.io --upgrade &>/dev/null
|
if ! dpkg -s libjpeg-dev >/dev/null 2>&1; then
|
||||||
pip3 install playwright --upgrade &>/dev/null
|
msg_info "Installing Dependencies"
|
||||||
if [[ -f /etc/systemd/system/browserless.service ]]; then
|
apt-get update
|
||||||
git -C /opt/browserless/ fetch --all &>/dev/null
|
apt-get install -y libjpeg-dev
|
||||||
git -C /opt/browserless/ reset --hard origin/main &>/dev/null
|
msg_ok "Updated Dependencies"
|
||||||
npm update --prefix /opt/browserless &>/dev/null
|
fi
|
||||||
npm run build --prefix /opt/browserless &>/dev/null
|
|
||||||
npm run build:function --prefix /opt/browserless &>/dev/null
|
msg_info "Updating ${APP}"
|
||||||
npm prune production --prefix /opt/browserless &>/dev/null
|
pip3 install changedetection.io --upgrade &>/dev/null
|
||||||
systemctl restart browserless
|
msg_ok "Updated ${APP}"
|
||||||
else
|
|
||||||
msg_error "No Browserless Installation Found!"
|
msg_info "Updating Playwright"
|
||||||
fi
|
pip3 install playwright --upgrade &>/dev/null
|
||||||
systemctl restart changedetection
|
msg_ok "Updated Playwright"
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
exit
|
if [[ -f /etc/systemd/system/browserless.service ]]; then
|
||||||
|
msg_info "Updating Browserless (Patience)"
|
||||||
|
git -C /opt/browserless/ fetch --all &>/dev/null
|
||||||
|
git -C /opt/browserless/ reset --hard origin/main &>/dev/null
|
||||||
|
npm update --prefix /opt/browserless &>/dev/null
|
||||||
|
/opt/browserless/node_modules/playwright-core/cli.js install --with-deps &>/dev/null
|
||||||
|
# Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
|
||||||
|
/opt/browserless/node_modules/playwright-core/cli.js install --force chrome &>/dev/null
|
||||||
|
/opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit &>/dev/null
|
||||||
|
npm run build --prefix /opt/browserless &>/dev/null
|
||||||
|
npm run build:function --prefix /opt/browserless &>/dev/null
|
||||||
|
npm prune production --prefix /opt/browserless &>/dev/null
|
||||||
|
systemctl restart browserless
|
||||||
|
msg_ok "Updated Browserless"
|
||||||
|
else
|
||||||
|
msg_error "No Browserless Installation Found!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
systemctl restart changedetection
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -85,5 +77,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:5000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
|
||||||
|
@ -1,64 +1,39 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://getchannels.com/dvr-server/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
________ __ ____ _ ______ _____
|
|
||||||
/ ____/ /_ ____ _____ ____ ___ / /____ / __ \ | / / __ \ / ___/___ ______ _____ _____
|
|
||||||
/ / / __ \/ __ `/ __ \/ __ \/ _ \/ / ___/ / / / / | / / /_/ / \__ \/ _ \/ ___/ | / / _ \/ ___/
|
|
||||||
/ /___/ / / / /_/ / / / / / / / __/ (__ ) / /_/ /| |/ / _, _/ ___/ / __/ / | |/ / __/ /
|
|
||||||
\____/_/ /_/\__,_/_/ /_/_/ /_/\___/_/____/ /_____/ |___/_/ |_| /____/\___/_/ |___/\___/_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Channels"
|
APP="Channels"
|
||||||
var_disk="8"
|
var_tags="dvr"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="0"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/channels-dvr ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/channels-dvr ]]; then
|
||||||
msg_error "There is currently no update path available."
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "There is currently no update path available."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -66,5 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8089 ${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8089${CL}"
|
59
ct/checkmk.sh
Normal file
59
ct/checkmk.sh
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Michel Roegl-Brunner (michelroegl-brunner)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://checkmk.com/
|
||||||
|
|
||||||
|
APP="checkmk"
|
||||||
|
var_tags="monitoring"
|
||||||
|
var_cpu="2"
|
||||||
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -f /opt/checkmk_version.txt ]]; then
|
||||||
|
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) }')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
|
omd stop monitoring &>/dev/null
|
||||||
|
omd cp monitoring monitoringbackup &>/dev/null
|
||||||
|
wget -q https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb -O /opt/checkmk.deb
|
||||||
|
apt-get install -y /opt/checkmk.deb &>/dev/null
|
||||||
|
omd --force -V ${RELEASE}.cre update --conflict=install monitoring &>/dev/null
|
||||||
|
omd start monitoring &>/dev/null
|
||||||
|
omd -f rm monitoringbackup &>/dev/null
|
||||||
|
omd cleanup &>/dev/null
|
||||||
|
rm -rf /opt/checkmk.deb
|
||||||
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/monitoring${CL}"
|
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.cloudflare.com/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
________ ________ __
|
|
||||||
/ ____/ /___ __ ______/ / __/ /___ _________ ____/ /
|
|
||||||
/ / / / __ \/ / / / __ / /_/ / __ `/ ___/ _ \/ __ /
|
|
||||||
/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / / / __/ /_/ /
|
|
||||||
\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/ \___/\__,_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Cloudflared"
|
APP="Cloudflared"
|
||||||
var_disk="2"
|
var_tags="network;cloudflare"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,3 +44,4 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
181
ct/cockpit.sh
181
ct/cockpit.sh
@ -1,118 +1,92 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck
|
# Author: tteck | Co-Author: havardthom
|
||||||
# Co-Author: havardthom
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# License: MIT
|
# Source: https://cockpit-project.org/
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ __ _ __
|
|
||||||
/ ____/___ _____/ /______ (_) /_
|
|
||||||
/ / / __ \/ ___/ //_/ __ \/ / __/
|
|
||||||
/ /___/ /_/ / /__/ ,< / /_/ / / /_
|
|
||||||
\____/\____/\___/_/|_/ .___/_/\__/
|
|
||||||
/_/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Cockpit"
|
APP="Cockpit"
|
||||||
var_disk="4"
|
var_tags="monitoring;network"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /etc/cockpit ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /etc/cockpit ]]; then
|
||||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
msg_error "No ${APP} Installation Found!"
|
||||||
"1" "Update LXC" ON \
|
exit
|
||||||
"2" "Install cockpit-file-sharing" OFF \
|
fi
|
||||||
"3" "Install cockpit-identities" OFF \
|
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
||||||
"4" "Install cockpit-navigator" OFF \
|
"1" "Update LXC" ON \
|
||||||
3>&1 1>&2 2>&3)
|
"2" "Install cockpit-file-sharing" OFF \
|
||||||
|
"3" "Install cockpit-identities" OFF \
|
||||||
|
"4" "Install cockpit-navigator" OFF \
|
||||||
|
3>&1 1>&2 2>&3)
|
||||||
|
|
||||||
if [ "$UPD" == "1" ]; then
|
if [ "$UPD" == "1" ]; then
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
apt-get update &>/dev/null
|
apt-get update &>/dev/null
|
||||||
apt-get -y upgrade &>/dev/null
|
apt-get -y upgrade &>/dev/null
|
||||||
msg_ok "Updated ${APP} LXC"
|
msg_ok "Updated ${APP} LXC"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [ "$UPD" == "2" ]; then
|
if [ "$UPD" == "2" ]; then
|
||||||
msg_info "Installing dependencies (patience)"
|
msg_info "Installing dependencies (patience)"
|
||||||
apt-get install -y attr &>/dev/null
|
apt-get install -y attr &>/dev/null
|
||||||
apt-get install -y nfs-kernel-server &>/dev/null
|
apt-get install -y nfs-kernel-server &>/dev/null
|
||||||
apt-get install -y samba &>/dev/null
|
apt-get install -y samba &>/dev/null
|
||||||
apt-get install -y samba-common-bin &>/dev/null
|
apt-get install -y samba-common-bin &>/dev/null
|
||||||
apt-get install -y winbind &>/dev/null
|
apt-get install -y winbind &>/dev/null
|
||||||
apt-get install -y gawk &>/dev/null
|
apt-get install -y gawk &>/dev/null
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
msg_info "Installing Cockpit file sharing"
|
msg_info "Installing Cockpit file sharing"
|
||||||
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||||
dpkg -i cockpit-file-sharing_*focal_all.deb &>/dev/null
|
dpkg -i cockpit-file-sharing_*focal_all.deb &>/dev/null
|
||||||
rm cockpit-file-sharing_*focal_all.deb
|
rm cockpit-file-sharing_*focal_all.deb
|
||||||
msg_ok "Installed Cockpit file sharing"
|
msg_ok "Installed Cockpit file sharing"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [ "$UPD" == "3" ]; then
|
if [ "$UPD" == "3" ]; then
|
||||||
msg_info "Installing dependencies (patience)"
|
msg_info "Installing dependencies (patience)"
|
||||||
apt-get install -y psmisc &>/dev/null
|
apt-get install -y psmisc &>/dev/null
|
||||||
apt-get install -y samba &>/dev/null
|
apt-get install -y samba &>/dev/null
|
||||||
apt-get install -y samba-common-bin &>/dev/null
|
apt-get install -y samba-common-bin &>/dev/null
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
msg_info "Installing Cockpit identities"
|
msg_info "Installing Cockpit identities"
|
||||||
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||||
dpkg -i cockpit-identities_*focal_all.deb &>/dev/null
|
dpkg -i cockpit-identities_*focal_all.deb &>/dev/null
|
||||||
rm cockpit-identities_*focal_all.deb
|
rm cockpit-identities_*focal_all.deb
|
||||||
msg_ok "Installed Cockpit identities"
|
msg_ok "Installed Cockpit identities"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if [ "$UPD" == "4" ]; then
|
if [ "$UPD" == "4" ]; then
|
||||||
msg_info "Installing dependencies"
|
msg_info "Installing dependencies"
|
||||||
apt-get install -y rsync &>/dev/null
|
apt-get install -y rsync &>/dev/null
|
||||||
apt-get install -y zip &>/dev/null
|
apt-get install -y zip &>/dev/null
|
||||||
msg_ok "Installed dependencies"
|
msg_ok "Installed dependencies"
|
||||||
msg_info "Installing Cockpit navigator"
|
msg_info "Installing Cockpit navigator"
|
||||||
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
wget -q $(curl -s https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
|
||||||
dpkg -i cockpit-navigator_*focal_all.deb &>/dev/null
|
dpkg -i cockpit-navigator_*focal_all.deb &>/dev/null
|
||||||
rm cockpit-navigator_*focal_all.deb
|
rm cockpit-navigator_*focal_all.deb
|
||||||
msg_ok "Installed Cockpit navigator"
|
msg_ok "Installed Cockpit navigator"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -120,5 +94,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:9090${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9090${CL}"
|
110
ct/commafeed.sh
110
ct/commafeed.sh
@ -1,84 +1,59 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.commafeed.com/#/welcome
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ ______ __
|
|
||||||
/ ____/___ ____ ___ ____ ___ ____ _/ ____/__ ___ ____/ /
|
|
||||||
/ / / __ \/ __ `__ \/ __ `__ \/ __ `/ /_ / _ \/ _ \/ __ /
|
|
||||||
/ /___/ /_/ / / / / / / / / / / / /_/ / __/ / __/ __/ /_/ /
|
|
||||||
\____/\____/_/ /_/ /_/_/ /_/ /_/\__,_/_/ \___/\___/\__,_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="CommaFeed"
|
APP="CommaFeed"
|
||||||
var_disk="4"
|
var_tags="rss-reader"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/commafeed ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/commafeed ]]; then
|
||||||
RELEASE=$(curl -sL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
msg_error "No ${APP} Installation Found!"
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
exit
|
||||||
msg_info "Stopping ${APP}"
|
fi
|
||||||
systemctl stop commafeed
|
RELEASE=$(curl -sL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||||
msg_ok "Stopped ${APP}"
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop commafeed
|
||||||
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
wget -q https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip
|
wget -q https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip
|
||||||
unzip -q commafeed-${RELEASE}-h2-jvm.zip
|
unzip -q commafeed-${RELEASE}-h2-jvm.zip
|
||||||
rsync -a --exclude 'data/' commafeed-${RELEASE}-h2/ /opt/commafeed/
|
rsync -a --exclude 'data/' commafeed-${RELEASE}-h2/ /opt/commafeed/
|
||||||
rm -rf commafeed-${RELEASE}-h2 commafeed-${RELEASE}-h2-jvm.zip
|
rm -rf commafeed-${RELEASE}-h2 commafeed-${RELEASE}-h2-jvm.zip
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start commafeed
|
systemctl start commafeed
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -86,5 +61,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8082${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8082${CL}"
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
|
# Co-Author: MickLesk
|
||||||
# License: MIT
|
# License: MIT
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
@ -9,15 +10,25 @@
|
|||||||
# if [ "$VERBOSE" == "yes" ]; then set -x; fi
|
# if [ "$VERBOSE" == "yes" ]; then set -x; fi
|
||||||
|
|
||||||
# This function sets color variables for formatting output in the terminal
|
# This function sets color variables for formatting output in the terminal
|
||||||
|
# Colors
|
||||||
YW=$(echo "\033[33m")
|
YW=$(echo "\033[33m")
|
||||||
|
YWB=$(echo "\033[93m")
|
||||||
BL=$(echo "\033[36m")
|
BL=$(echo "\033[36m")
|
||||||
RD=$(echo "\033[01;31m")
|
RD=$(echo "\033[01;31m")
|
||||||
GN=$(echo "\033[1;92m")
|
GN=$(echo "\033[1;92m")
|
||||||
|
|
||||||
|
# Formatting
|
||||||
CL=$(echo "\033[m")
|
CL=$(echo "\033[m")
|
||||||
CM="${GN}✓${CL}"
|
UL=$(echo "\033[4m")
|
||||||
CROSS="${RD}✗${CL}"
|
BOLD=$(echo "\033[1m")
|
||||||
BFR="\\r\\033[K"
|
BFR="\\r\\033[K"
|
||||||
HOLD=" "
|
HOLD=" "
|
||||||
|
TAB=" "
|
||||||
|
|
||||||
|
# Icons
|
||||||
|
CM="${TAB}✔️${TAB}${CL}"
|
||||||
|
CROSS="${TAB}✖️${TAB}${CL}"
|
||||||
|
INFO="${TAB}💡${TAB}${CL}"
|
||||||
|
|
||||||
# This sets error handling options and defines the error_handler function to handle errors
|
# This sets error handling options and defines the error_handler function to handle errors
|
||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
@ -36,19 +47,24 @@ function error_handler() {
|
|||||||
|
|
||||||
# This function displays a spinner.
|
# This function displays a spinner.
|
||||||
function spinner() {
|
function spinner() {
|
||||||
local chars="/-\|"
|
local frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
|
||||||
local spin_i=0
|
local spin_i=0
|
||||||
printf "\e[?25l"
|
local interval=0.1
|
||||||
while true; do
|
printf "\e[?25l"
|
||||||
printf "\r \e[36m%s\e[0m" "${chars:spin_i++%${#chars}:1}"
|
|
||||||
sleep 0.1
|
local color="${YWB}"
|
||||||
done
|
|
||||||
|
while true; do
|
||||||
|
printf "\r ${color}%s${CL}" "${frames[spin_i]}"
|
||||||
|
spin_i=$(( (spin_i + 1) % ${#frames[@]} ))
|
||||||
|
sleep "$interval"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# This function displays an informational message with a yellow color.
|
# This function displays an informational message with a yellow color.
|
||||||
function msg_info() {
|
function msg_info() {
|
||||||
local msg="$1"
|
local msg="$1"
|
||||||
echo -ne " ${HOLD} ${YW}${msg} "
|
echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}"
|
||||||
spinner &
|
spinner &
|
||||||
SPINNER_PID=$!
|
SPINNER_PID=$!
|
||||||
}
|
}
|
||||||
@ -58,7 +74,7 @@ function msg_ok() {
|
|||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
|
||||||
printf "\e[?25h"
|
printf "\e[?25h"
|
||||||
local msg="$1"
|
local msg="$1"
|
||||||
echo -e "${BFR} ${CM} ${GN}${msg}${CL}"
|
echo -e "${BFR}${CM}${GN}${msg}${CL}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# This function displays a error message with a red color.
|
# This function displays a error message with a red color.
|
||||||
@ -66,7 +82,7 @@ function msg_error() {
|
|||||||
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
|
if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID > /dev/null; then kill $SPINNER_PID > /dev/null; fi
|
||||||
printf "\e[?25h"
|
printf "\e[?25h"
|
||||||
local msg="$1"
|
local msg="$1"
|
||||||
echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}"
|
echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# This checks for the presence of valid Container Storage and Template Storage locations
|
# This checks for the presence of valid Container Storage and Template Storage locations
|
||||||
@ -105,7 +121,7 @@ function select_storage() {
|
|||||||
local TAG=$(echo $line | awk '{print $1}')
|
local TAG=$(echo $line | awk '{print $1}')
|
||||||
local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
|
local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
|
||||||
local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
|
local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
|
||||||
local ITEM=" Type: $TYPE Free: $FREE "
|
local ITEM="Type: $TYPE Free: $FREE "
|
||||||
local OFFSET=2
|
local OFFSET=2
|
||||||
if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
|
if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
|
||||||
local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
|
local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
|
||||||
@ -123,11 +139,14 @@ function select_storage() {
|
|||||||
"Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \
|
"Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \
|
||||||
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
16 $(($MSG_MAX_LENGTH + 23)) 6 \
|
||||||
"${MENU[@]}" 3>&1 1>&2 2>&3) || exit "Menu aborted."
|
"${MENU[@]}" 3>&1 1>&2 2>&3) || exit "Menu aborted."
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -e "${CROSS}${RD} Menu aborted by user.${CL}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
printf $STORAGE
|
printf "%s" "$STORAGE"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Test if required variables are set
|
# Test if required variables are set
|
||||||
[[ "${CTID:-}" ]] || exit "You need to set 'CTID' variable."
|
[[ "${CTID:-}" ]] || exit "You need to set 'CTID' variable."
|
||||||
[[ "${PCT_OSTYPE:-}" ]] || exit "You need to set 'PCT_OSTYPE' variable."
|
[[ "${PCT_OSTYPE:-}" ]] || exit "You need to set 'PCT_OSTYPE' variable."
|
||||||
|
182
ct/cronicle.sh
182
ct/cronicle.sh
@ -1,126 +1,101 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://cronicle.net/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ _ __
|
|
||||||
/ ____/________ ____ (_)____/ /__
|
|
||||||
/ / / ___/ __ \/ __ \/ / ___/ / _ \
|
|
||||||
/ /___/ / / /_/ / / / / / /__/ / __/
|
|
||||||
\____/_/ \____/_/ /_/_/\___/_/\___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Cronicle"
|
APP="Cronicle"
|
||||||
var_disk="2"
|
var_tags="task-scheduler"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
|
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 2 \
|
||||||
"1" "Update ${APP}" ON \
|
"1" "Update ${APP}" ON \
|
||||||
"2" "Install ${APP} Worker" OFF \
|
"2" "Install ${APP} Worker" OFF \
|
||||||
3>&1 1>&2 2>&3)
|
3>&1 1>&2 2>&3)
|
||||||
|
|
||||||
if [ "$UPD" == "1" ]; then
|
if [ "$UPD" == "1" ]; then
|
||||||
if [[ ! -d /opt/cronicle ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/cronicle ]]; then
|
||||||
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
|
msg_error "No ${APP} Installation Found!"
|
||||||
if ! command -v npm >/dev/null 2>&1; then
|
exit
|
||||||
echo "Installing NPM..."
|
|
||||||
apt-get install -y npm >/dev/null 2>&1
|
|
||||||
echo "Installed NPM..."
|
|
||||||
fi
|
fi
|
||||||
fi
|
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
|
||||||
msg_info "Updating ${APP}"
|
if ! command -v npm >/dev/null 2>&1; then
|
||||||
/opt/cronicle/bin/control.sh upgrade &>/dev/null
|
echo "Installing NPM..."
|
||||||
msg_ok "Updated ${APP}"
|
apt-get install -y npm >/dev/null 2>&1
|
||||||
exit
|
echo "Installed NPM..."
|
||||||
fi
|
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..."
|
|
||||||
apt-get install -y npm >/dev/null 2>&1
|
|
||||||
echo "Installed NPM..."
|
|
||||||
fi
|
fi
|
||||||
|
msg_info "Updating ${APP}"
|
||||||
|
/opt/cronicle/bin/control.sh upgrade &>/dev/null
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
exit
|
||||||
fi
|
fi
|
||||||
LATEST=$(curl -sL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
if [ "$UPD" == "2" ]; then
|
||||||
IP=$(hostname -I | awk '{print $1}')
|
if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
|
||||||
msg_info "Installing Dependencies"
|
if ! command -v npm >/dev/null 2>&1; then
|
||||||
|
echo "Installing NPM..."
|
||||||
|
apt-get install -y npm >/dev/null 2>&1
|
||||||
|
echo "Installed NPM..."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
LATEST=$(curl -sL 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"
|
||||||
|
|
||||||
apt-get install -y git &>/dev/null
|
apt-get install -y git &>/dev/null
|
||||||
apt-get install -y make &>/dev/null
|
apt-get install -y make &>/dev/null
|
||||||
apt-get install -y g++ &>/dev/null
|
apt-get install -y g++ &>/dev/null
|
||||||
apt-get install -y gcc &>/dev/null
|
apt-get install -y gcc &>/dev/null
|
||||||
apt-get install -y ca-certificates &>/dev/null
|
apt-get install -y ca-certificates &>/dev/null
|
||||||
apt-get install -y gnupg &>/dev/null
|
apt-get install -y gnupg &>/dev/null
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Setting up Node.js Repository"
|
msg_info "Setting up Node.js Repository"
|
||||||
mkdir -p /etc/apt/keyrings
|
mkdir -p /etc/apt/keyrings
|
||||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
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_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
||||||
msg_ok "Set up Node.js Repository"
|
msg_ok "Set up Node.js Repository"
|
||||||
|
|
||||||
msg_info "Installing Node.js"
|
msg_info "Installing Node.js"
|
||||||
apt-get update &>/dev/null
|
apt-get update &>/dev/null
|
||||||
apt-get install -y nodejs &>/dev/null
|
apt-get install -y nodejs &>/dev/null
|
||||||
msg_ok "Installed Node.js"
|
msg_ok "Installed Node.js"
|
||||||
|
|
||||||
msg_info "Installing Cronicle Worker"
|
msg_info "Installing Cronicle Worker"
|
||||||
mkdir -p /opt/cronicle
|
mkdir -p /opt/cronicle
|
||||||
cd /opt/cronicle
|
cd /opt/cronicle
|
||||||
tar zxvf <(curl -fsSL https://github.com/jhuckaby/Cronicle/archive/${LATEST}.tar.gz) --strip-components 1 &>/dev/null
|
tar zxvf <(curl -fsSL https://github.com/jhuckaby/Cronicle/archive/${LATEST}.tar.gz) --strip-components 1 &>/dev/null
|
||||||
npm install &>/dev/null
|
npm install &>/dev/null
|
||||||
node bin/build.js dist &>/dev/null
|
node bin/build.js dist &>/dev/null
|
||||||
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
|
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
|
||||||
/opt/cronicle/bin/control.sh start &>/dev/null
|
/opt/cronicle/bin/control.sh start &>/dev/null
|
||||||
cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled &>/dev/null
|
cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled &>/dev/null
|
||||||
chmod 775 /etc/init.d/cronicled
|
chmod 775 /etc/init.d/cronicled
|
||||||
update-rc.d cronicled defaults &>/dev/null
|
update-rc.d cronicled defaults &>/dev/null
|
||||||
msg_ok "Installed Cronicle Worker"
|
msg_ok "Installed Cronicle Worker"
|
||||||
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
|
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -128,5 +103,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Primary should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:3012${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3012${CL}"
|
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://daemonsync.me/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ _____
|
|
||||||
/ __ \____ ____ ____ ___ ____ ____ / ___/__ ______ _____
|
|
||||||
/ / / / __ / _ \/ __ __ \/ __ \/ __ \ \__ \/ / / / __ \/ ___/
|
|
||||||
/ /_/ / /_/ / __/ / / / / / /_/ / / / / ___/ / /_/ / / / / /__
|
|
||||||
/_____/\__,_/\___/_/ /_/ /_/\____/_/ /_/ /____/\__, /_/ /_/\___/
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Daemon Sync"
|
APP="Daemon Sync"
|
||||||
var_disk="8"
|
var_tags="sync"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8084${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8084${CL}"
|
146
ct/dashy.sh
146
ct/dashy.sh
@ -1,105 +1,80 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://dashy.to/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __
|
|
||||||
/ __ \____ ______/ /_ __ __
|
|
||||||
/ / / / __ / ___/ __ \/ / / /
|
|
||||||
/ /_/ / /_/ (__ ) / / / /_/ /
|
|
||||||
/_____/\__,_/____/_/ /_/\__, /
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Dashy"
|
APP="Dashy"
|
||||||
var_disk="6"
|
var_tags="dashboard"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="6"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/dashy/public/ ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/dashy/public/ ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
RELEASE=$(curl -sL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
exit
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
|
||||||
msg_info "Stopping ${APP}"
|
|
||||||
systemctl stop dashy
|
|
||||||
msg_ok "Stopped ${APP}"
|
|
||||||
|
|
||||||
msg_info "Backing up conf.yml"
|
|
||||||
cd ~
|
|
||||||
if [[ -f /opt/dashy/public/conf.yml ]]; then
|
|
||||||
cp -R /opt/dashy/public/conf.yml conf.yml
|
|
||||||
else
|
|
||||||
cp -R /opt/dashy/user-data/conf.yml conf.yml
|
|
||||||
fi
|
fi
|
||||||
msg_ok "Backed up conf.yml"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
RELEASE=$(curl -sL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||||
rm -rf /opt/dashy
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
mkdir -p /opt/dashy
|
msg_info "Stopping ${APP}"
|
||||||
wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/${RELEASE}.tar.gz | tar -xz -C /opt/dashy --strip-components=1
|
systemctl stop dashy
|
||||||
cd /opt/dashy
|
msg_ok "Stopped ${APP}"
|
||||||
npm install
|
|
||||||
npm run build
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Restoring conf.yml"
|
msg_info "Backing up conf.yml"
|
||||||
cd ~
|
cd ~
|
||||||
cp -R conf.yml /opt/dashy/user-data
|
if [[ -f /opt/dashy/public/conf.yml ]]; then
|
||||||
msg_ok "Restored conf.yml"
|
cp -R /opt/dashy/public/conf.yml conf.yml
|
||||||
|
else
|
||||||
|
cp -R /opt/dashy/user-data/conf.yml conf.yml
|
||||||
|
fi
|
||||||
|
msg_ok "Backed up conf.yml"
|
||||||
|
|
||||||
msg_info "Cleaning"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
rm -rf conf.yml /opt/dashy/public/conf.yml
|
rm -rf /opt/dashy
|
||||||
msg_ok "Cleaned"
|
mkdir -p /opt/dashy
|
||||||
|
wget -qO- https://github.com/Lissy93/dashy/archive/refs/tags/${RELEASE}.tar.gz | tar -xz -C /opt/dashy --strip-components=1
|
||||||
|
cd /opt/dashy
|
||||||
|
npm install
|
||||||
|
npm run build
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting Dashy"
|
msg_info "Restoring conf.yml"
|
||||||
systemctl start dashy
|
cd ~
|
||||||
msg_ok "Started Dashy"
|
cp -R conf.yml /opt/dashy/user-data
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Restored conf.yml"
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_info "Cleaning"
|
||||||
fi
|
rm -rf conf.yml /opt/dashy/public/conf.yml
|
||||||
exit
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -107,5 +82,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:4000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"
|
76
ct/debian.sh
76
ct/debian.sh
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.debian.org/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __ _
|
|
||||||
/ __ \___ / /_ (_)___ ____
|
|
||||||
/ / / / _ \/ __ \/ / __ `/ __ \
|
|
||||||
/ /_/ / __/ /_/ / / /_/ / / / /
|
|
||||||
/_____/\___/_.___/_/\__,_/_/ /_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Debian"
|
APP="Debian"
|
||||||
var_disk="2"
|
var_tags="os"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,3 +44,4 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
80
ct/deconz.sh
80
ct/deconz.sh
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.phoscon.de/en/conbee2/software#deconz
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
__ __________ _ _______
|
|
||||||
____/ /__ / ____/ __ \/ | / /__ /
|
|
||||||
/ __ / _ \/ / / / / / |/ / / /
|
|
||||||
/ /_/ / __/ /___/ /_/ / /| / / /__
|
|
||||||
\__,_/\___/\____/\____/_/ |_/ /____/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="deCONZ"
|
APP="deCONZ"
|
||||||
var_disk="4"
|
var_tags="zigbee"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="0"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/apt/sources.list.d/deconz.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/apt/sources.list.d/deconz.list ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}${CL}\n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
81
ct/deluge.sh
81
ct/deluge.sh
@ -1,68 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.deluge-torrent.org/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __
|
|
||||||
/ __ \___ / /_ ______ ____
|
|
||||||
/ / / / _ \/ / / / / __ `/ _ \
|
|
||||||
/ /_/ / __/ / /_/ / /_/ / __/
|
|
||||||
/_____/\___/_/\__,_/\__, /\___/
|
|
||||||
/____/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Deluge"
|
APP="Deluge"
|
||||||
var_disk="4"
|
var_tags="torrent"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/deluged.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/systemd/system/deluged.service ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
pip3 install deluge[all] --upgrade
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
pip3 install deluge[all] --upgrade
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -70,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8112${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8112${CL}"
|
76
ct/docker.sh
76
ct/docker.sh
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.docker.com/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __
|
|
||||||
/ __ \____ _____/ /_ __ _____
|
|
||||||
/ / / / __ \/ ___/ //_/ _ \/ ___/
|
|
||||||
/ /_/ / /_/ / /__/ ,< / __/ /
|
|
||||||
/_____/\____/\___/_/|_|\___/_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Docker"
|
APP="Docker"
|
||||||
var_disk="4"
|
var_tags="docker"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated ${APP} LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,3 +44,4 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
82
ct/dockge.sh
82
ct/dockge.sh
@ -1,68 +1,43 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://dockge.kuma.pet/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __
|
|
||||||
/ __ \____ _____/ /______ ____
|
|
||||||
/ / / / __ \/ ___/ //_/ __ `/ _ \
|
|
||||||
/ /_/ / /_/ / /__/ ,< / /_/ / __/
|
|
||||||
/_____/\____/\___/_/|_|\__, /\___/
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Dockge"
|
APP="Dockge"
|
||||||
var_disk="18"
|
var_tags="docker"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="18"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/dockge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/dockge ]]; then
|
||||||
msg_info "Updating ${APP}"
|
msg_error "No ${APP} Installation Found!"
|
||||||
cd /opt/dockge
|
exit
|
||||||
docker compose pull
|
fi
|
||||||
docker compose up -d
|
msg_info "Updating ${APP}"
|
||||||
msg_ok "Updated ${APP}"
|
cd /opt/dockge
|
||||||
exit
|
docker compose pull
|
||||||
|
docker compose up -d
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -70,5 +45,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:5001${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5001${CL}"
|
49
ct/dotnetaspwebapi.sh
Normal file
49
ct/dotnetaspwebapi.sh
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Kristian Skov
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-9.0&tabs=linux-ubuntu
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Dotnet ASP Web API"
|
||||||
|
var_tags="web"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
|
var_os="ubuntu"
|
||||||
|
var_version="24.04"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /var/www ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating ${APP} LXC"
|
||||||
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
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 IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}${IP}:80${CL}"
|
98
ct/emby.sh
98
ct/emby.sh
@ -1,78 +1,53 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://emby.media/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ __
|
|
||||||
/ ____/___ ___ / /_ __ __
|
|
||||||
/ __/ / __ __ \/ __ \/ / / /
|
|
||||||
/ /___/ / / / / / /_/ / /_/ /
|
|
||||||
/_____/_/ /_/ /_/_.___/\__, /
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Emby"
|
APP="Emby"
|
||||||
var_disk="8"
|
var_tags="media"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="8"
|
||||||
var_os="ubuntu"
|
var_os="ubuntu"
|
||||||
var_version="22.04"
|
var_version="22.04"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/emby-server ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/emby-server ]]; then
|
||||||
LATEST=$(curl -sL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
msg_error "No ${APP} Installation Found!"
|
||||||
msg_info "Stopping ${APP}"
|
exit
|
||||||
systemctl stop emby-server
|
fi
|
||||||
msg_ok "Stopped ${APP}"
|
LATEST=$(curl -sL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop emby-server
|
||||||
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
wget https://github.com/MediaBrowser/Emby.Releases/releases/download/${LATEST}/emby-server-deb_${LATEST}_amd64.deb &>/dev/null
|
wget https://github.com/MediaBrowser/Emby.Releases/releases/download/${LATEST}/emby-server-deb_${LATEST}_amd64.deb &>/dev/null
|
||||||
dpkg -i emby-server-deb_${LATEST}_amd64.deb &>/dev/null
|
dpkg -i emby-server-deb_${LATEST}_amd64.deb &>/dev/null
|
||||||
rm emby-server-deb_${LATEST}_amd64.deb
|
rm emby-server-deb_${LATEST}_amd64.deb
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start emby-server
|
systemctl start emby-server
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -80,5 +55,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8096${CL}\n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8096${CL}"
|
||||||
|
80
ct/emqx.sh
80
ct/emqx.sh
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://www.emqx.com/en
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
________ _______ _ __
|
|
||||||
/ ____/ |/ / __ \ | |/ /
|
|
||||||
/ __/ / /|_/ / / / / | /
|
|
||||||
/ /___/ / / / /_/ / / |
|
|
||||||
/_____/_/ /_/\___\_\/_/|_|
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="EMQX"
|
APP="EMQX"
|
||||||
var_disk="4"
|
var_tags="mqtt"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /var ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:18083${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:18083${CL}"
|
||||||
|
111
ct/ersatztv.sh
111
ct/ersatztv.sh
@ -1,85 +1,57 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck
|
# Author: MickLesk (Canbiz)
|
||||||
# Co-Author: MickLesk (Canbiz)
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# License: MIT
|
# Source: https://ersatztv.org/
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://github.com/ErsatzTV/ErsatzTV/
|
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
function header_info {
|
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ __ _______ __
|
|
||||||
/ ____/_____________ _/ /_____/_ __/ | / /
|
|
||||||
/ __/ / ___/ ___/ __ `/ __/_ / / / | | / /
|
|
||||||
/ /___/ / (__ ) /_/ / /_ / /_/ / | |/ /
|
|
||||||
/_____/_/ /____/\__,_/\__/ /___/_/ |___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="ErsatzTV"
|
APP="ErsatzTV"
|
||||||
var_disk="5"
|
var_tags="iptv"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="5"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/ErsatzTV ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/ErsatzTV ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Stopping ErsatzTV"
|
msg_info "Stopping ErsatzTV"
|
||||||
systemctl stop ersatzTV
|
systemctl stop ersatzTV
|
||||||
msg_ok "Stopped ErsatzTV"
|
msg_ok "Stopped ErsatzTV"
|
||||||
|
|
||||||
msg_info "Updating ErsatzTV"
|
msg_info "Updating ErsatzTV"
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
|
RELEASE=$(curl -s https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
|
||||||
cp -R /opt/ErsatzTV/ ErsatzTV-backup
|
cp -R /opt/ErsatzTV/ ErsatzTV-backup
|
||||||
rm ErsatzTV-backup/ErsatzTV
|
rm ErsatzTV-backup/ErsatzTV
|
||||||
rm -rf /opt/ErsatzTV
|
rm -rf /opt/ErsatzTV
|
||||||
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt
|
wget -qO- "https://github.com/ErsatzTV/ErsatzTV/releases/download/${RELEASE}/ErsatzTV-${RELEASE}-linux-x64.tar.gz" | tar -xz -C /opt
|
||||||
mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
|
mv "/opt/ErsatzTV-${RELEASE}-linux-x64" /opt/ErsatzTV
|
||||||
cp -R ErsatzTV-backup/* /opt/ErsatzTV/
|
cp -R ErsatzTV-backup/* /opt/ErsatzTV/
|
||||||
rm -rf ErsatzTV-backup
|
rm -rf ErsatzTV-backup
|
||||||
msg_ok "Updated ErsatzTV"
|
msg_ok "Updated ErsatzTV"
|
||||||
|
|
||||||
msg_info "Starting ErsatzTV"
|
msg_info "Starting ErsatzTV"
|
||||||
systemctl start ersatzTV
|
systemctl start ersatzTV
|
||||||
msg_ok "Started ErsatzTV"
|
msg_ok "Started ErsatzTV"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -87,5 +59,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8409${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8409${CL}"
|
@ -1,78 +1,53 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://esphome.io/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___________ ____ __ __
|
|
||||||
/ ____/ ___// __ \/ / / /___ ____ ___ ___
|
|
||||||
/ __/ \__ \/ /_/ / /_/ / __ \/ __ `__ \/ _ \
|
|
||||||
/ /___ ___/ / ____/ __ / /_/ / / / / / / __/
|
|
||||||
/_____//____/_/ /_/ /_/\____/_/ /_/ /_/\___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="ESPHome"
|
APP="ESPHome"
|
||||||
var_disk="4"
|
var_tags="automation"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/systemd/system/esphomeDashboard.service ]]; then
|
||||||
msg_info "Stopping ESPHome"
|
msg_error "No ${APP} Installation Found!"
|
||||||
systemctl stop esphomeDashboard
|
exit
|
||||||
msg_ok "Stopped ESPHome"
|
fi
|
||||||
|
msg_info "Stopping ESPHome"
|
||||||
|
systemctl stop esphomeDashboard
|
||||||
|
msg_ok "Stopped ESPHome"
|
||||||
|
|
||||||
msg_info "Updating ESPHome"
|
msg_info "Updating ESPHome"
|
||||||
if [[ -d /srv/esphome ]]; then
|
if [[ -d /srv/esphome ]]; then
|
||||||
source /srv/esphome/bin/activate &>/dev/null
|
source /srv/esphome/bin/activate &>/dev/null
|
||||||
fi
|
fi
|
||||||
pip3 install -U esphome &>/dev/null
|
pip3 install -U esphome &>/dev/null
|
||||||
msg_ok "Updated ESPHome"
|
msg_ok "Updated ESPHome"
|
||||||
|
|
||||||
msg_info "Starting ESPHome"
|
msg_info "Starting ESPHome"
|
||||||
systemctl start esphomeDashboard
|
systemctl start esphomeDashboard
|
||||||
msg_ok "Started ESPHome"
|
msg_ok "Started ESPHome"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -80,5 +55,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:6052${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6052${CL}"
|
79
ct/evcc.sh
79
ct/evcc.sh
@ -1,66 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: MickLesk (Canbiz)
|
# Author: MickLesk (Canbiz)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://evcc.io/en/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ _ ____________
|
|
||||||
/ _ \ | / / ___/ ___/
|
|
||||||
/ __/ |/ / /__/ /__
|
|
||||||
\___/|___/\___/\___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="evcc"
|
APP="evcc"
|
||||||
var_disk="4"
|
var_tags="solar;ev;automation"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/apt/sources.list.d/evcc-stable.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/apt/sources.list.d/evcc-stable.list ]]; then
|
||||||
msg_info "Updating evcc LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt update &>/dev/null
|
exit
|
||||||
apt --only-upgrade install -y evcc &>/dev/null
|
fi
|
||||||
msg_ok "Updated Successfully"
|
msg_info "Updating evcc LXC"
|
||||||
exit
|
apt update &>/dev/null
|
||||||
|
apt --only-upgrade install -y evcc &>/dev/null
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -68,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:7070${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:7070${CL}"
|
125
ct/fenrus.sh
125
ct/fenrus.sh
@ -1,89 +1,67 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | Co-Author: Scorpoon
|
||||||
# Co-Author: Scorpoon
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# License: MIT
|
# Source: https://github.com/revenz/Fenrus
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______
|
|
||||||
/ ____/__ ____ _______ _______
|
|
||||||
/ /_ / _ \/ __ \/ ___/ / / / ___/
|
|
||||||
/ __/ / __/ / / / / / /_/ (__ )
|
|
||||||
/_/ \___/_/ /_/_/ \__,_/____/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Fenrus"
|
APP="Fenrus"
|
||||||
var_disk="4"
|
var_tags="dashboard"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/${APP} ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/${APP} ]]; then
|
||||||
msg_error "There is currently no update path available."
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
msg_info "Updating ${APP}"
|
fi
|
||||||
systemctl stop ${APP}
|
msg_error "There is currently no update path available."
|
||||||
git clone https://github.com/revenz/Fenrus.git
|
exit
|
||||||
cd Fenrus || exit
|
msg_info "Updating ${APP}"
|
||||||
gitVersionNumber=$(git rev-parse HEAD)
|
systemctl stop ${APP}
|
||||||
|
git clone https://github.com/revenz/Fenrus.git
|
||||||
|
cd Fenrus || exit
|
||||||
|
gitVersionNumber=$(git rev-parse HEAD)
|
||||||
|
|
||||||
if [[ "${gitVersionNumber}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
if [[ "${gitVersionNumber}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
mkdir /opt/fenrus-data-backup
|
mkdir /opt/fenrus-data-backup
|
||||||
cp -r "/opt/${APP}/data/" /opt/fenrus-data-backup/data
|
cp -r "/opt/${APP}/data/" /opt/fenrus-data-backup/data
|
||||||
if [[ ! -d /opt/fenrus-data-backup/data ]]; then msg_error "Backup of data folder failed! exiting..."; rm -r /opt/fenrus-data-backup/; exit; fi
|
if [[ ! -d /opt/fenrus-data-backup/data ]]; then
|
||||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
msg_error "Backup of data folder failed! exiting..."
|
||||||
dotnet publish -c Release -o "/opt/${APP}/" Fenrus.csproj
|
rm -r /opt/fenrus-data-backup/
|
||||||
cp -r /opt/fenrus-data-backup/data/ "/opt/${APP}/"
|
exit
|
||||||
echo "${gitVersionNumber}" >"/opt/${APP}_version.txt"
|
fi
|
||||||
rm -r /opt/fenrus-data-backup/
|
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||||
msg_ok "Updated $APP"
|
dotnet publish -c Release -o "/opt/${APP}/" Fenrus.csproj
|
||||||
else
|
cp -r /opt/fenrus-data-backup/data/ "/opt/${APP}/"
|
||||||
msg_ok "No update required. ${APP} is already up to date"
|
echo "${gitVersionNumber}" >"/opt/${APP}_version.txt"
|
||||||
fi
|
rm -r /opt/fenrus-data-backup/
|
||||||
cd ..
|
msg_ok "Updated $APP"
|
||||||
rm -r Fenrus/
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already up to date"
|
||||||
|
fi
|
||||||
|
cd ..
|
||||||
|
rm -r Fenrus/
|
||||||
|
|
||||||
systemctl start ${APP}
|
systemctl start ${APP}
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -91,5 +69,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:5000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
|
||||||
|
82
ct/fhem.sh
82
ct/fhem.sh
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://fhem.de/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
APP="FHEM"
|
||||||
cat <<"EOF"
|
var_tags="automation"
|
||||||
________
|
|
||||||
/ ____/ /_ ___ ____ ___
|
|
||||||
/ /_ / __ \/ _ \/ __ `__ \
|
|
||||||
/ __/ / / / / __/ / / / / /
|
|
||||||
/_/ /_/ /_/\___/_/ /_/ /_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Fhem"
|
|
||||||
var_disk="8"
|
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/fhem.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/systemd/system/fhem.service ]]; then
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated Successfully"
|
msg_info "Updating ${APP} LXC"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8083${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"
|
85
ct/firefly.sh
Normal file
85
ct/firefly.sh
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: quantumryuu
|
||||||
|
# License: MIT
|
||||||
|
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://firefly-iii.org/
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Firefly"
|
||||||
|
var_tags="finance"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="1024"
|
||||||
|
var_disk="2"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/firefly ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_info "Stopping Apache2"
|
||||||
|
systemctl stop apache2
|
||||||
|
msg_ok "Stopped Apache2"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
|
cp /opt/firefly/.env /opt/.env
|
||||||
|
cp -r /opt/firefly/storage /opt/storage
|
||||||
|
rm -rf /opt/firefly/*
|
||||||
|
cd /opt
|
||||||
|
wget -q "https://github.com/firefly-iii/firefly-iii/releases/download/v${RELEASE}/FireflyIII-v${RELEASE}.tar.gz"
|
||||||
|
tar -xzf FireflyIII-v${RELEASE}.tar.gz -C /opt/firefly --exclude='storage'
|
||||||
|
cd /opt/firefly
|
||||||
|
composer install --no-dev --no-interaction &>/dev/null
|
||||||
|
php artisan migrate --seed --force &>/dev/null
|
||||||
|
php artisan firefly:decrypt-all &>/dev/null
|
||||||
|
php artisan cache:clear &>/dev/null
|
||||||
|
php artisan view:clear &>/dev/null
|
||||||
|
php artisan firefly:upgrade-database &>/dev/null
|
||||||
|
php artisan firefly:laravel-passport-keys &>/dev/null
|
||||||
|
chown -R www-data:www-data /opt/firefly
|
||||||
|
chmod -R 775 /opt/firefly/storage
|
||||||
|
|
||||||
|
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||||
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting Apache2"
|
||||||
|
systemctl start apache2
|
||||||
|
msg_ok "Started Apache2"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/FireflyIII-v${RELEASE}.tar.gz
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
@ -1,63 +1,37 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | Co-Author: remz1337
|
||||||
# Co-Author: remz1337
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# License: MIT
|
# Source: https://github.com/FlareSolverr/FlareSolverr
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
________ _____ __
|
|
||||||
/ ____/ /___ _________ / ___/____ / / _____ __________
|
|
||||||
/ /_ / / __ `/ ___/ _ \\__ \/ __ \/ / | / / _ \/ ___/ ___/
|
|
||||||
/ __/ / / /_/ / / / __/__/ / /_/ / /| |/ / __/ / / /
|
|
||||||
/_/ /_/\__,_/_/ \___/____/\____/_/ |___/\___/_/ /_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="FlareSolverr"
|
APP="FlareSolverr"
|
||||||
var_disk="4"
|
var_tags="proxy"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/flaresolverr.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/systemd/system/flaresolverr.service ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
RELEASE=$(wget -q https://github.com/FlareSolverr/FlareSolverr/releases/latest -O - | grep "title>Release" | cut -d " " -f 4)
|
RELEASE=$(wget -q https://github.com/FlareSolverr/FlareSolverr/releases/latest -O - | grep "title>Release" | cut -d " " -f 4)
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
||||||
msg_info "Updating $APP LXC"
|
msg_info "Updating $APP LXC"
|
||||||
@ -79,5 +53,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8191${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8191${CL}"
|
@ -1,68 +1,43 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://flowiseai.com/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
________ _ ___ ____
|
|
||||||
/ ____/ /___ _ __(_)_______ / | / _/
|
|
||||||
/ /_ / / __ \ | /| / / / ___/ _ \/ /| | / /
|
|
||||||
/ __/ / / /_/ / |/ |/ / (__ ) __/ ___ |_/ /
|
|
||||||
/_/ /_/\____/|__/|__/_/____/\___/_/ |_/___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="FlowiseAI"
|
APP="FlowiseAI"
|
||||||
|
var_tags="low-code"
|
||||||
var_disk="10"
|
var_disk="10"
|
||||||
var_cpu="4"
|
var_cpu="4"
|
||||||
var_ram="4096"
|
var_ram="4096"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/flowise.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/systemd/system/flowise.service ]]; then
|
||||||
msg_info "Updating ${APP}"
|
msg_error "No ${APP} Installation Found!"
|
||||||
systemctl stop flowise
|
exit
|
||||||
npm install -g flowise --upgrade
|
fi
|
||||||
systemctl start flowise
|
msg_info "Updating ${APP}"
|
||||||
msg_ok "Updated ${APP}"
|
systemctl stop flowise
|
||||||
exit
|
npm install -g flowise --upgrade
|
||||||
|
systemctl start flowise
|
||||||
|
msg_ok "Updated ${APP}"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -70,5 +45,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:3000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
109
ct/forgejo.sh
109
ct/forgejo.sh
@ -1,85 +1,59 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://forgejo.org/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ _
|
|
||||||
/ ____/___ _________ ___ (_)___
|
|
||||||
/ /_ / __ \/ ___/ __ `/ _ \ / / __ \
|
|
||||||
/ __/ / /_/ / / / /_/ / __/ / / /_/ /
|
|
||||||
/_/ \____/_/ \__, /\___/_/ /\____/
|
|
||||||
/____/ /___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Forgejo"
|
APP="Forgejo"
|
||||||
var_disk="10"
|
var_tags="git"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="10"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/forgejo ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/forgejo ]]; then
|
||||||
msg_info "Stopping ${APP}"
|
msg_error "No ${APP} Installation Found!"
|
||||||
systemctl stop forgejo
|
exit
|
||||||
msg_ok "Stopped ${APP}"
|
fi
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop forgejo
|
||||||
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
RELEASE=$(curl -s https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+' | sed 's/^v//')
|
RELEASE=$(curl -s https://codeberg.org/api/v1/repos/forgejo/forgejo/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+' | sed 's/^v//')
|
||||||
wget -qO forgejo-$RELEASE-linux-amd64 "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64"
|
wget -qO forgejo-$RELEASE-linux-amd64 "https://codeberg.org/forgejo/forgejo/releases/download/v${RELEASE}/forgejo-${RELEASE}-linux-amd64"
|
||||||
rm -rf /opt/forgejo/*
|
rm -rf /opt/forgejo/*
|
||||||
cp -r forgejo-$RELEASE-linux-amd64 /opt/forgejo/forgejo-$RELEASE-linux-amd64
|
cp -r forgejo-$RELEASE-linux-amd64 /opt/forgejo/forgejo-$RELEASE-linux-amd64
|
||||||
chmod +x /opt/forgejo/forgejo-$RELEASE-linux-amd64
|
chmod +x /opt/forgejo/forgejo-$RELEASE-linux-amd64
|
||||||
ln -sf /opt/forgejo/forgejo-$RELEASE-linux-amd64 /usr/local/bin/forgejo
|
ln -sf /opt/forgejo/forgejo-$RELEASE-linux-amd64 /usr/local/bin/forgejo
|
||||||
msg_ok "Updated ${APP}"
|
msg_ok "Updated ${APP}"
|
||||||
|
|
||||||
msg_info "Cleaning"
|
msg_info "Cleaning"
|
||||||
rm -rf forgejo-$RELEASE-linux-amd64
|
rm -rf forgejo-$RELEASE-linux-amd64
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start forgejo
|
systemctl start forgejo
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -87,5 +61,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:3000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
@ -1,65 +1,39 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Authors: tteck (tteckster)
|
# Authors: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://frigate.video/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ _ __
|
|
||||||
/ ____/____(_)___ _____ _/ /____
|
|
||||||
/ /_ / ___/ / __ `/ __ `/ __/ _ \
|
|
||||||
/ __/ / / / / /_/ / /_/ / /_/ __/
|
|
||||||
/_/ /_/ /_/\__, /\__,_/\__/\___/
|
|
||||||
/____/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Frigate"
|
APP="Frigate"
|
||||||
var_disk="20"
|
var_tags="nvr"
|
||||||
var_cpu="4"
|
var_cpu="4"
|
||||||
var_ram="4096"
|
var_ram="4096"
|
||||||
|
var_disk="20"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="11"
|
var_version="11"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="0"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/systemd/system/frigate.service ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/systemd/system/frigate.service ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
msg_error "To update Frigate, create a new container and transfer your configuration."
|
msg_error "To update Frigate, create a new container and transfer your configuration."
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -67,7 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:5000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "go2rtc should be reachable by going to the following URL.
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
|
||||||
${BL}http://${IP}:1984${CL} \n"
|
|
57
ct/ghost.sh
Normal file
57
ct/ghost.sh
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: fabrice1236
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://ghost.org/
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Ghost"
|
||||||
|
var_tags="cms;blog"
|
||||||
|
var_cpu="2"
|
||||||
|
var_ram="1024"
|
||||||
|
var_disk="5"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
msg_info "Updating ${APP} LXC"
|
||||||
|
|
||||||
|
if command -v ghost &> /dev/null; then
|
||||||
|
current_version=$(ghost version | grep 'Ghost-CLI version' | awk '{print $3}')
|
||||||
|
latest_version=$(npm show ghost-cli version)
|
||||||
|
if [ "$current_version" != "$latest_version" ]; then
|
||||||
|
msg_info "Updating ${APP} from version v${current_version} to v${latest_version}"
|
||||||
|
npm install -g ghost-cli@latest &> /dev/null
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
else
|
||||||
|
msg_ok "${APP} is already at v${current_version}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:2368${CL}"
|
93
ct/gitea.sh
93
ct/gitea.sh
@ -1,73 +1,47 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster) | Co-Author: Rogue-King
|
||||||
# Co-author: Rogue-King
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# License: MIT
|
# Source: https://about.gitea.com/
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ _ __
|
|
||||||
/ ____/(_)/ /____ ____ _
|
|
||||||
/ / __// // __/ _ \/ __ /
|
|
||||||
/ /_/ // // /_/ __/ /_/ /
|
|
||||||
\____//_/ \__/\___/\__,_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Gitea"
|
APP="Gitea"
|
||||||
var_disk="8"
|
var_tags="git"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="1024"
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /usr/local/bin/gitea ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /usr/local/bin/gitea ]]; then
|
||||||
RELEASE=$(wget -q https://github.com/go-gitea/gitea/releases/latest -O - | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
|
msg_error "No ${APP} Installation Found!"
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
exit
|
||||||
wget -q https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64
|
fi
|
||||||
systemctl stop gitea
|
RELEASE=$(wget -q https://github.com/go-gitea/gitea/releases/latest -O - | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
|
||||||
rm -rf /usr/local/bin/gitea
|
msg_info "Updating $APP to ${RELEASE}"
|
||||||
mv gitea* /usr/local/bin/gitea
|
wget -q https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64
|
||||||
chmod +x /usr/local/bin/gitea
|
systemctl stop gitea
|
||||||
systemctl start gitea
|
rm -rf /usr/local/bin/gitea
|
||||||
msg_ok "Updated $APP Successfully"
|
mv gitea* /usr/local/bin/gitea
|
||||||
exit
|
chmod +x /usr/local/bin/gitea
|
||||||
|
systemctl start gitea
|
||||||
|
msg_ok "Updated $APP Successfully"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -75,5 +49,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:3000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
69
ct/glance.sh
69
ct/glance.sh
@ -1,68 +1,40 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 community-scripts ORG
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
# Author: kristocopani
|
# Author: kristocopani
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://github.com/glanceapp/glance
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
________
|
|
||||||
/ ____/ /___ _____ ________
|
|
||||||
/ / __/ / __ `/ __ \/ ___/ _ \
|
|
||||||
/ /_/ / / /_/ / / / / /__/ __/
|
|
||||||
\____/_/\__,_/_/ /_/\___/\___/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Glance"
|
APP="Glance"
|
||||||
var_disk="2"
|
var_tags="dashboard"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
if [[ ! -f /etc/systemd/system/glance.service ]]; then
|
if [[ ! -f /etc/systemd/system/glance.service ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/glanceapp/glance/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -s https://api.github.com/repos/glanceapp/glance/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_info "Stopping Service"
|
msg_info "Stopping Service"
|
||||||
systemctl stop glance
|
systemctl stop glance
|
||||||
@ -70,7 +42,7 @@ check_container_resources
|
|||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
cd /opt
|
cd /opt
|
||||||
wget -q https://github.com/glanceapp/glance/releases/download/v${RELEASE}/glance-linux-amd64.tar.gz
|
wget -q https://github.com/glanceapp/glance/releases/download/v${RELEASE}/glance-linux-amd64.tar.gz
|
||||||
rm -rf /opt/glance/glance
|
rm -rf /opt/glance/glance
|
||||||
tar -xzf glance-linux-amd64.tar.gz -C /opt/glance
|
tar -xzf glance-linux-amd64.tar.gz -C /opt/glance
|
||||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||||
@ -95,5 +67,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:8080${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
|
52
ct/glpi.sh
Normal file
52
ct/glpi.sh
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Nícolas Pastorello (opastorello)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="GLPI"
|
||||||
|
var_tags="asset-management;foss"
|
||||||
|
var_cpu="2"
|
||||||
|
var_ram="2048"
|
||||||
|
var_disk="10"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/glpi ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/glpi-project/glpi/releases/latest | grep '"tag_name"' | sed -E 's/.*"tag_name": "([^"]+)".*/\1/')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
msg_error "Ther is currently no automatic update function for ${APP}."
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
|
89
ct/go2rtc.sh
89
ct/go2rtc.sh
@ -1,72 +1,46 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://github.com/AlexxIT/go2rtc
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
___ __
|
|
||||||
____ _____ |__ \ _____/ /______
|
|
||||||
/ __ `/ __ \__/ // ___/ __/ ___/
|
|
||||||
/ /_/ / /_/ / __// / / /_/ /__
|
|
||||||
\__, /\____/____/_/ \__/\___/
|
|
||||||
/____/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="go2rtc"
|
APP="go2rtc"
|
||||||
var_disk="4"
|
var_tags="recorder;video"
|
||||||
var_cpu="2"
|
var_cpu="2"
|
||||||
var_ram="2048"
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/go2rtc ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/go2rtc ]]; then
|
||||||
msg_info "Updating $APP"
|
msg_error "No ${APP} Installation Found!"
|
||||||
systemctl stop go2rtc
|
exit
|
||||||
cd /opt/go2rtc
|
fi
|
||||||
rm go2rtc_linux_amd64
|
msg_info "Updating $APP"
|
||||||
wget -q https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64
|
systemctl stop go2rtc
|
||||||
chmod +x go2rtc_linux_amd64
|
cd /opt/go2rtc
|
||||||
systemctl start go2rtc
|
rm go2rtc_linux_amd64
|
||||||
msg_ok "Updated $APP"
|
wget -q https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64
|
||||||
exit
|
chmod +x go2rtc_linux_amd64
|
||||||
|
systemctl start go2rtc
|
||||||
|
msg_ok "Updated $APP"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -74,5 +48,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:1984${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:1984${CL}"
|
74
ct/gokapi.sh
74
ct/gokapi.sh
@ -1,64 +1,39 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://github.com/Forceu/Gokapi
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ __ _
|
|
||||||
/ ____/___ / /______ _____ (_)
|
|
||||||
/ / __/ __ \/ //_/ __ `/ __ \/ /
|
|
||||||
/ /_/ / /_/ / ,< / /_/ / /_/ / /
|
|
||||||
\____/\____/_/|_|\__,_/ .___/_/
|
|
||||||
/_/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Gokapi"
|
APP="Gokapi"
|
||||||
var_disk="4"
|
var_tags="file;sharing"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="4"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/gokapi ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/gokapi ]]; then
|
||||||
msg_error "There is currently no update path available."
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "There is currently no update path available."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -66,5 +41,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} Setup should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:53842/setup${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:53842/setup${CL}"
|
112
ct/gotify.sh
112
ct/gotify.sh
@ -1,86 +1,61 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://gotify.net/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ __ _ ____
|
|
||||||
/ ____/___ / /_(_) __/_ __
|
|
||||||
/ / __/ __ \/ __/ / /_/ / / /
|
|
||||||
/ /_/ / /_/ / /_/ / __/ /_/ /
|
|
||||||
\____/\____/\__/_/_/ \__, /
|
|
||||||
/____/
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Gotify"
|
APP="Gotify"
|
||||||
var_disk="2"
|
var_tags="notification"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/gotify ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -d /opt/gotify ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -s https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
msg_info "Stopping ${APP}"
|
msg_info "Stopping ${APP}"
|
||||||
systemctl stop gotify
|
systemctl stop gotify
|
||||||
msg_ok "Stopped ${APP}"
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
msg_info "Updating ${APP} to ${RELEASE}"
|
||||||
cd /opt/gotify
|
cd /opt/gotify
|
||||||
wget -q https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip
|
wget -q https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip
|
||||||
unzip -oq gotify-linux-amd64.zip
|
unzip -oq gotify-linux-amd64.zip
|
||||||
rm -rf gotify-linux-amd64.zip
|
rm -rf gotify-linux-amd64.zip
|
||||||
chmod +x gotify-linux-amd64
|
chmod +x gotify-linux-amd64
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
msg_ok "Updated ${APP} to ${RELEASE}"
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start gotify
|
systemctl start gotify
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
fi
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -88,5 +63,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP} ${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
||||||
|
@ -1,67 +1,42 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://grafana.com/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
______ ____
|
|
||||||
/ ____/________ _/ __/___ _____ ____ _
|
|
||||||
/ / __/ ___/ __ / /_/ __ / __ \/ __ /
|
|
||||||
/ /_/ / / / /_/ / __/ /_/ / / / / /_/ /
|
|
||||||
\____/_/ \__,_/_/ \__,_/_/ /_/\__,_/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="Grafana"
|
APP="Grafana"
|
||||||
var_disk="2"
|
var_tags="monitoring;visualization"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/apt/sources.list.d/grafana.list ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/apt/sources.list.d/grafana.list ]]; then
|
||||||
msg_info "Updating ${APP}"
|
msg_error "No ${APP} Installation Found!"
|
||||||
apt-get update &>/dev/null
|
exit
|
||||||
apt-get -y upgrade &>/dev/null
|
fi
|
||||||
msg_ok "Updated Successfully"
|
msg_info "Updating ${APP}"
|
||||||
exit
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -69,5 +44,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}:3000${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
78
ct/grist.sh
Normal file
78
ct/grist.sh
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Source: https://github.com/gristlabs/grist-core
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Grist"
|
||||||
|
var_tags="database;spreadsheet"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="2048"
|
||||||
|
var_disk="4"
|
||||||
|
var_os="debian"
|
||||||
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/grist ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/gristlabs/grist-core/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||||
|
|
||||||
|
msg_info "Stopping ${APP} Service"
|
||||||
|
systemctl stop grist
|
||||||
|
msg_ok "Stopped ${APP} Service"
|
||||||
|
|
||||||
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
|
cd /opt
|
||||||
|
rm -rf grist_bak
|
||||||
|
mv grist grist_bak
|
||||||
|
wget -q https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip
|
||||||
|
unzip -q v$RELEASE.zip
|
||||||
|
mv grist-core-${RELEASE} grist
|
||||||
|
cp -n /opt/grist_bak/.env /opt/grist/.env
|
||||||
|
cd grist
|
||||||
|
yarn install >/dev/null 2>&1
|
||||||
|
yarn run build:prod >/dev/null 2>&1
|
||||||
|
yarn run install:python >/dev/null 2>&1
|
||||||
|
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||||
|
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP} Service"
|
||||||
|
systemctl start grist
|
||||||
|
msg_ok "Started ${APP} Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -rf /opt/v$RELEASE.zip
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
|
||||||
|
msg_ok "Updated Successfully!\n"
|
||||||
|
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}Grist: http://${IP}:8484${CL}"
|
100
ct/grocy.sh
100
ct/grocy.sh
@ -1,77 +1,52 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2024 tteck
|
# Copyright (c) 2021-2025 tteck
|
||||||
# Author: tteck (tteckster)
|
# Author: tteck (tteckster)
|
||||||
# License: MIT
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# Source: https://grocy.info/
|
||||||
|
|
||||||
function header_info {
|
# App Default Values
|
||||||
clear
|
|
||||||
cat <<"EOF"
|
|
||||||
____ __________ _______ __
|
|
||||||
/ __ / ___/ __ \/ ___/ / / /
|
|
||||||
/ /_/ / / / /_/ / /__/ /_/ /
|
|
||||||
\__, /_/ \____/\___/\__, /
|
|
||||||
/____/ /____/
|
|
||||||
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
header_info
|
|
||||||
echo -e "Loading..."
|
|
||||||
APP="grocy"
|
APP="grocy"
|
||||||
var_disk="2"
|
var_tags="grocery;household"
|
||||||
var_cpu="1"
|
var_cpu="1"
|
||||||
var_ram="512"
|
var_ram="512"
|
||||||
|
var_disk="2"
|
||||||
var_os="debian"
|
var_os="debian"
|
||||||
var_version="12"
|
var_version="12"
|
||||||
|
var_unprivileged="1"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
variables
|
variables
|
||||||
color
|
color
|
||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function default_settings() {
|
|
||||||
CT_TYPE="1"
|
|
||||||
PW=""
|
|
||||||
CT_ID=$NEXTID
|
|
||||||
HN=$NSAPP
|
|
||||||
DISK_SIZE="$var_disk"
|
|
||||||
CORE_COUNT="$var_cpu"
|
|
||||||
RAM_SIZE="$var_ram"
|
|
||||||
BRG="vmbr0"
|
|
||||||
NET="dhcp"
|
|
||||||
GATE=""
|
|
||||||
APT_CACHER=""
|
|
||||||
APT_CACHER_IP=""
|
|
||||||
DISABLEIP6="no"
|
|
||||||
MTU=""
|
|
||||||
SD=""
|
|
||||||
NS=""
|
|
||||||
MAC=""
|
|
||||||
VLAN=""
|
|
||||||
SSH="no"
|
|
||||||
VERB="no"
|
|
||||||
echo_default
|
|
||||||
}
|
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /etc/apache2/sites-available/grocy.conf ]]; then msg_error "No ${APP} Installation Found!"; exit; fi
|
if [[ ! -f /etc/apache2/sites-available/grocy.conf ]]; then
|
||||||
php_version=$(php -v | head -n 1 | awk '{print $2}')
|
msg_error "No ${APP} Installation Found!"
|
||||||
if [[ ! $php_version == "8.3"* ]]; then
|
exit
|
||||||
msg_info "Updating PHP"
|
fi
|
||||||
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
|
php_version=$(php -v | head -n 1 | awk '{print $2}')
|
||||||
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ bookworm main" >/etc/apt/sources.list.d/php.list
|
if [[ ! $php_version == "8.3"* ]]; then
|
||||||
apt-get update
|
msg_info "Updating PHP"
|
||||||
apt-get install -y php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl,sqlite3,fpm,gd,zip,xml}
|
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
|
||||||
systemctl reload apache2
|
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ bookworm main" >/etc/apt/sources.list.d/php.list
|
||||||
apt autoremove
|
apt-get update
|
||||||
msg_ok "Updated PHP"
|
apt-get install -y php8.3 php8.3-cli php8.3-{bz2,curl,mbstring,intl,sqlite3,fpm,gd,zip,xml}
|
||||||
fi
|
systemctl reload apache2
|
||||||
msg_info "Updating ${APP}"
|
apt autoremove
|
||||||
bash /var/www/html/update.sh
|
msg_ok "Updated PHP"
|
||||||
msg_ok "Updated Successfully"
|
fi
|
||||||
exit
|
msg_info "Updating ${APP}"
|
||||||
|
bash /var/www/html/update.sh
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -79,5 +54,6 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${APP} should be reachable by going to the following URL.
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
${BL}http://${IP}${CL} \n"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
|
6
ct/headers/2fauth
Normal file
6
ct/headers/2fauth
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
___ _________ __ __
|
||||||
|
|__ \ / ____/ | __ __/ /_/ /_
|
||||||
|
__/ // /_ / /| |/ / / / __/ __ \
|
||||||
|
/ __// __/ / ___ / /_/ / /_/ / / /
|
||||||
|
/____/_/ /_/ |_\__,_/\__/_/ /_/
|
||||||
|
|
6
ct/headers/actualbudget
Normal file
6
ct/headers/actualbudget
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
___ __ __ ____ __ __
|
||||||
|
/ | _____/ /___ ______ _/ / / __ )__ ______/ /___ ____ / /_
|
||||||
|
/ /| |/ ___/ __/ / / / __ `/ / / __ / / / / __ / __ `/ _ \/ __/
|
||||||
|
/ ___ / /__/ /_/ /_/ / /_/ / / / /_/ / /_/ / /_/ / /_/ / __/ /_
|
||||||
|
/_/ |_\___/\__/\__,_/\__,_/_/ /_____/\__,_/\__,_/\__, /\___/\__/
|
||||||
|
/____/
|
6
ct/headers/adguard
Normal file
6
ct/headers/adguard
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
___ __ __
|
||||||
|
/ | ____/ /___ ___ ______ __________/ /
|
||||||
|
/ /| |/ __ / __ `/ / / / __ `/ ___/ __ /
|
||||||
|
/ ___ / /_/ / /_/ / /_/ / /_/ / / / /_/ /
|
||||||
|
/_/ |_\__,_/\__, /\__,_/\__,_/_/ \__,_/
|
||||||
|
/____/
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user