mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			772 Commits
		
	
	
		
			2025-04-08
			...
			2025-06-09
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					2aeb7cf79a | ||
| 
						 | 
					98c277f471 | ||
| 
						 | 
					78a2201a93 | ||
| 
						 | 
					2de03f5734 | ||
| 
						 | 
					c59f9f421c | ||
| 
						 | 
					598acc2048 | ||
| 
						 | 
					6e6b279b88 | ||
| 
						 | 
					943a5f4d8f | ||
| 
						 | 
					4efa882558 | ||
| 
						 | 
					eff985ca02 | ||
| 
						 | 
					ff239ff3cd | ||
| 
						 | 
					45bb824101 | ||
| 
						 | 
					1956c8740b | ||
| 
						 | 
					f6638b095d | ||
| 
						 | 
					6a1738c52a | ||
| 
						 | 
					a9e3520df1 | ||
| 
						 | 
					08230e9089 | ||
| 
						 | 
					a5c6984087 | ||
| 
						 | 
					99174cb9c2 | ||
| 
						 | 
					336e70f059 | ||
| 
						 | 
					ce8b9aa5b4 | ||
| 
						 | 
					70d6815d91 | ||
| 
						 | 
					75273e86b6 | ||
| 
						 | 
					37a2f6a715 | ||
| 
						 | 
					4b7c734b9a | ||
| 
						 | 
					590db0d148 | ||
| 
						 | 
					50ad6410d5 | ||
| 
						 | 
					85b80bfb22 | ||
| 
						 | 
					33e49b7556 | ||
| 
						 | 
					0a6f7e6426 | ||
| 
						 | 
					5fd5d78a2a | ||
| 
						 | 
					ab32878b63 | ||
| 
						 | 
					ee7090f271 | ||
| 
						 | 
					df6bd2a68a | ||
| 
						 | 
					e46e9a3372 | ||
| 
						 | 
					6c08814cc5 | ||
| 
						 | 
					4cca5062af | ||
| 
						 | 
					dc2b585e6b | ||
| 
						 | 
					cc4f5c4478 | ||
| 
						 | 
					01ced07bff | ||
| 
						 | 
					85e13c9ac5 | ||
| 
						 | 
					1ac4b0c10f | ||
| 
						 | 
					781471f37a | ||
| 
						 | 
					e2790814b8 | ||
| 
						 | 
					f5705621b2 | ||
| 
						 | 
					a28a4fd752 | ||
| 
						 | 
					b890fae808 | ||
| 
						 | 
					8e88379c1b | ||
| 
						 | 
					b2307f1bb9 | ||
| 
						 | 
					db9ffe3105 | ||
| 
						 | 
					2c1e101135 | ||
| 
						 | 
					a991908a37 | ||
| 
						 | 
					f0206a6252 | ||
| 
						 | 
					e8061a9f6e | ||
| 
						 | 
					64c47bd335 | ||
| 
						 | 
					ec573be7e0 | ||
| 
						 | 
					4e53abbd48 | ||
| 
						 | 
					338d351c29 | ||
| 
						 | 
					835893e589 | ||
| 
						 | 
					1e81c11e74 | ||
| 
						 | 
					27384ad89a | ||
| 
						 | 
					27d3909df5 | ||
| 
						 | 
					2e3f416242 | ||
| 
						 | 
					b91cbbcbe9 | ||
| 
						 | 
					3f43cd5575 | ||
| 
						 | 
					1564d4d6d3 | ||
| 
						 | 
					077db6c52f | ||
| 
						 | 
					a0d2bece1d | ||
| 
						 | 
					0178742308 | ||
| 
						 | 
					d2482e5c82 | ||
| 
						 | 
					2400f98f75 | ||
| 
						 | 
					176946bd45 | ||
| 
						 | 
					a25009bdb1 | ||
| 
						 | 
					03eff3a2e1 | ||
| 
						 | 
					ff12d802cc | ||
| 
						 | 
					02b753eb12 | ||
| 
						 | 
					c9eaaee0c0 | ||
| 
						 | 
					f154249dde | ||
| 
						 | 
					9ef7274199 | ||
| 
						 | 
					e9477e7a07 | ||
| 
						 | 
					1fcf9f9520 | ||
| 
						 | 
					bbe226218c | ||
| 
						 | 
					8d38c1d724 | ||
| 
						 | 
					1cac2afc41 | ||
| 
						 | 
					644a365c69 | ||
| 
						 | 
					9bd4f5bb1b | ||
| 
						 | 
					b2a80b6971 | ||
| 
						 | 
					1e3d0e501b | ||
| 
						 | 
					3aa1f05343 | ||
| 
						 | 
					05c008241e | ||
| 
						 | 
					91d8efcde0 | ||
| 
						 | 
					16ac1adf75 | ||
| 
						 | 
					805bbc5ee3 | ||
| 
						 | 
					43697716ae | ||
| 
						 | 
					623c8d993d | ||
| 
						 | 
					bf2545ce40 | ||
| 
						 | 
					dd9e285962 | ||
| 
						 | 
					7f513afcf2 | ||
| 
						 | 
					912c92d6f3 | ||
| 
						 | 
					a4904fdd7e | ||
| 
						 | 
					b4a58b907f | ||
| 
						 | 
					824fd22aae | ||
| 
						 | 
					feacacc368 | ||
| 
						 | 
					a307f9086b | ||
| 
						 | 
					d97ce713ac | ||
| 
						 | 
					807870e739 | ||
| 
						 | 
					53c40775ee | ||
| 
						 | 
					bf9f5d62e2 | ||
| 
						 | 
					6650e0bdd8 | ||
| 
						 | 
					f2bf6c9a6f | ||
| 
						 | 
					8d50a5d8a9 | ||
| 
						 | 
					4e3286f11b | ||
| 
						 | 
					e08a587439 | ||
| 
						 | 
					6ee8349d28 | ||
| 
						 | 
					87f6c9ebde | ||
| 
						 | 
					6239075c2d | ||
| 
						 | 
					04ee11aab7 | ||
| 
						 | 
					60ae9bba5d | ||
| 
						 | 
					85dd171b48 | ||
| 
						 | 
					a174177357 | ||
| 
						 | 
					7afae35553 | ||
| 
						 | 
					1a49970ae2 | ||
| 
						 | 
					a413750562 | ||
| 
						 | 
					82707e1def | ||
| 
						 | 
					ac3d8c6b54 | ||
| 
						 | 
					1fd24bd60d | ||
| 
						 | 
					fc780646d2 | ||
| 
						 | 
					5f175b4f7b | ||
| 
						 | 
					afaeadd77e | ||
| 
						 | 
					72c7abeb69 | ||
| 
						 | 
					12723c33d0 | ||
| 
						 | 
					7af6bf3fe7 | ||
| 
						 | 
					e56436d3f2 | ||
| 
						 | 
					25de119cad | ||
| 
						 | 
					c8308da95e | ||
| 
						 | 
					9923094a54 | ||
| 
						 | 
					463cc62443 | ||
| 
						 | 
					92227fb9bf | ||
| 
						 | 
					18a9c524ae | ||
| 
						 | 
					d925ae0f04 | ||
| 
						 | 
					cb0d0bd83e | ||
| 
						 | 
					9fcfb2fe49 | ||
| 
						 | 
					d23aa3fda0 | ||
| 
						 | 
					131f83505c | ||
| 
						 | 
					5a95a745ff | ||
| 
						 | 
					809bc6c302 | ||
| 
						 | 
					4fba20d80b | ||
| 
						 | 
					42a7614d15 | ||
| 
						 | 
					2dd7ebda2c | ||
| 
						 | 
					e388ce82a1 | ||
| 
						 | 
					ac902f2098 | ||
| 
						 | 
					a23b83dfc5 | ||
| 
						 | 
					85975fbe15 | ||
| 
						 | 
					23e33c5cb6 | ||
| 
						 | 
					e39e5d5b7d | ||
| 
						 | 
					1619d6a093 | ||
| 
						 | 
					f23b688d55 | ||
| 
						 | 
					b6319b5dd3 | ||
| 
						 | 
					030e6344d2 | ||
| 
						 | 
					85837d8099 | ||
| 
						 | 
					5295ed8cf2 | ||
| 
						 | 
					85ae0e2f74 | ||
| 
						 | 
					b406921c1a | ||
| 
						 | 
					5a16b5995d | ||
| 
						 | 
					fd637c8819 | ||
| 
						 | 
					6d40ca9cd6 | ||
| 
						 | 
					48979104d7 | ||
| 
						 | 
					964950c82c | ||
| 
						 | 
					0677af31c4 | ||
| 
						 | 
					4495ffee6a | ||
| 
						 | 
					6745dad963 | ||
| 
						 | 
					e9470ab1af | ||
| 
						 | 
					5abcb47051 | ||
| 
						 | 
					709a899f8f | ||
| 
						 | 
					b9ff7513a4 | ||
| 
						 | 
					7a963a76b7 | ||
| 
						 | 
					13506d92fb | ||
| 
						 | 
					36f859c062 | ||
| 
						 | 
					adc8225ed2 | ||
| 
						 | 
					640dca8d8b | ||
| 
						 | 
					3b0713b812 | ||
| 
						 | 
					d20165f25c | ||
| 
						 | 
					c79d05ca5f | ||
| 
						 | 
					f0dd1c264d | ||
| 
						 | 
					951782d8f2 | ||
| 
						 | 
					5e8ee6baa8 | ||
| 
						 | 
					7bb9fb09ba | ||
| 
						 | 
					eb04327aa9 | ||
| 
						 | 
					ce39e7c87e | ||
| 
						 | 
					0e75a57582 | ||
| 
						 | 
					8765b7ac1d | ||
| 
						 | 
					56e316b849 | ||
| 
						 | 
					79a5624905 | ||
| 
						 | 
					a4dee03140 | ||
| 
						 | 
					8787ef57b5 | ||
| 
						 | 
					86674ef376 | ||
| 
						 | 
					1e195cac1e | ||
| 
						 | 
					8e8e09668b | ||
| 
						 | 
					6ef1c99f65 | ||
| 
						 | 
					e2a8b8b799 | ||
| 
						 | 
					c356f77efe | ||
| 
						 | 
					dcfe80e069 | ||
| 
						 | 
					010928fee2 | ||
| 
						 | 
					aed2c0e5bf | ||
| 
						 | 
					9e2d66266a | ||
| 
						 | 
					da406b5ce8 | ||
| 
						 | 
					a7bf2679de | ||
| 
						 | 
					7079f428ca | ||
| 
						 | 
					121bd8e557 | ||
| 
						 | 
					d9c4ff9867 | ||
| 
						 | 
					7db94ad73a | ||
| 
						 | 
					56c2682601 | ||
| 
						 | 
					11a7c2e410 | ||
| 
						 | 
					ed9d8e995d | ||
| 
						 | 
					3b67e8dcc1 | ||
| 
						 | 
					f09e57c200 | ||
| 
						 | 
					72c24d5147 | ||
| 
						 | 
					93a179c201 | ||
| 
						 | 
					ac2f0e66ae | ||
| 
						 | 
					5ccf8a7cd6 | ||
| 
						 | 
					db82285b95 | ||
| 
						 | 
					58586cbfc8 | ||
| 
						 | 
					8708980786 | ||
| 
						 | 
					943fa7b7aa | ||
| 
						 | 
					5085547f39 | ||
| 
						 | 
					5685e7e088 | ||
| 
						 | 
					72db97b226 | ||
| 
						 | 
					e6805db9f5 | ||
| 
						 | 
					97073be5e2 | ||
| 
						 | 
					82228189a7 | ||
| 
						 | 
					53bdedfc08 | ||
| 
						 | 
					92ff5a9881 | ||
| 
						 | 
					0bb4509cd7 | ||
| 
						 | 
					f339b7df10 | ||
| 
						 | 
					a23a6a3da1 | ||
| 
						 | 
					3c12773956 | ||
| 
						 | 
					d79ac98a31 | ||
| 
						 | 
					17654c2006 | ||
| 
						 | 
					575443fac5 | ||
| 
						 | 
					f38225d52f | ||
| 
						 | 
					cef451c42c | ||
| 
						 | 
					2a5856db03 | ||
| 
						 | 
					47abe248d0 | ||
| 
						 | 
					98c64ffae9 | ||
| 
						 | 
					c136133b7c | ||
| 
						 | 
					1e5395d21b | ||
| 
						 | 
					dfb98698f3 | ||
| 
						 | 
					ff5b793e1e | ||
| 
						 | 
					4044790e5e | ||
| 
						 | 
					e64b10bf99 | ||
| 
						 | 
					bf2b36f095 | ||
| 
						 | 
					15b606c019 | ||
| 
						 | 
					16740ece38 | ||
| 
						 | 
					d2d9a59e35 | ||
| 
						 | 
					7d7664f12a | ||
| 
						 | 
					98c1136d8e | ||
| 
						 | 
					2f1f0393b6 | ||
| 
						 | 
					0cdde92556 | ||
| 
						 | 
					85b638169d | ||
| 
						 | 
					1c186b5087 | ||
| 
						 | 
					21efb1a2ec | ||
| 
						 | 
					9de702c301 | ||
| 
						 | 
					a47d6efe41 | ||
| 
						 | 
					36253b0045 | ||
| 
						 | 
					34e7c33e05 | ||
| 
						 | 
					e0a47f0aa3 | ||
| 
						 | 
					bce10d447e | ||
| 
						 | 
					0d9804fcfe | ||
| 
						 | 
					3b7c63183b | ||
| 
						 | 
					2d323d94ec | ||
| 
						 | 
					ab0ed91c4f | ||
| 
						 | 
					31e99bc49b | ||
| 
						 | 
					5b27942981 | ||
| 
						 | 
					161bafa818 | ||
| 
						 | 
					a5241ef1c5 | ||
| 
						 | 
					bf3f7dc3b1 | ||
| 
						 | 
					7264934136 | ||
| 
						 | 
					a0745de096 | ||
| 
						 | 
					4f4ec7d477 | ||
| 
						 | 
					ba3de8d080 | ||
| 
						 | 
					0f8932b125 | ||
| 
						 | 
					348354079b | ||
| 
						 | 
					48db08192a | ||
| 
						 | 
					b6f410e895 | ||
| 
						 | 
					1221fec5ab | ||
| 
						 | 
					faa805547c | ||
| 
						 | 
					fe0ac37ff1 | ||
| 
						 | 
					eed391917c | ||
| 
						 | 
					76da24386d | ||
| 
						 | 
					8e7caf4cd9 | ||
| 
						 | 
					7d3040ab76 | ||
| 
						 | 
					6a3bf770fb | ||
| 
						 | 
					6805b01df2 | ||
| 
						 | 
					7520917dcc | ||
| 
						 | 
					ec186b0288 | ||
| 
						 | 
					c7afd9c427 | ||
| 
						 | 
					bd3b022b08 | ||
| 
						 | 
					49fcd68f42 | ||
| 
						 | 
					1382742c26 | ||
| 
						 | 
					9e2441ff53 | ||
| 
						 | 
					490dbc725e | ||
| 
						 | 
					d9201e2cac | ||
| 
						 | 
					52c09646b2 | ||
| 
						 | 
					b5d70d5201 | ||
| 
						 | 
					7089b9ef7b | ||
| 
						 | 
					034d7df9cd | ||
| 
						 | 
					f41ac673a3 | ||
| 
						 | 
					a7382f9273 | ||
| 
						 | 
					cb1465544d | ||
| 
						 | 
					796c31eae4 | ||
| 
						 | 
					047c2c44d6 | ||
| 
						 | 
					1baa841963 | ||
| 
						 | 
					7d40ee4aa9 | ||
| 
						 | 
					f9a8925f64 | ||
| 
						 | 
					c62a0b149d | ||
| 
						 | 
					513402b099 | ||
| 
						 | 
					a39354f8f3 | ||
| 
						 | 
					3814e51d3f | ||
| 
						 | 
					326f5e9151 | ||
| 
						 | 
					1e2fda29b7 | ||
| 
						 | 
					222db46cac | ||
| 
						 | 
					9e8841ea7a | ||
| 
						 | 
					24d612c9e7 | ||
| 
						 | 
					3cfe253a3d | ||
| 
						 | 
					b7e951fc1a | ||
| 
						 | 
					f735e37b15 | ||
| 
						 | 
					2c2e602eb1 | ||
| 
						 | 
					37cd6a6620 | ||
| 
						 | 
					a386765e33 | ||
| 
						 | 
					d252e33e5c | ||
| 
						 | 
					08992599a0 | ||
| 
						 | 
					2a10eca156 | ||
| 
						 | 
					b4be96ff45 | ||
| 
						 | 
					06156a5a20 | ||
| 
						 | 
					5ccff37e3b | ||
| 
						 | 
					c5ca62ec38 | ||
| 
						 | 
					bc5fc031e7 | ||
| 
						 | 
					4ead65f948 | ||
| 
						 | 
					b602416a7e | ||
| 
						 | 
					cb431da23b | ||
| 
						 | 
					19ddb4b2b1 | ||
| 
						 | 
					1378d55fae | ||
| 
						 | 
					8f647b9abe | ||
| 
						 | 
					8a481e1423 | ||
| 
						 | 
					42ee79ac30 | ||
| 
						 | 
					5a6dc35fe0 | ||
| 
						 | 
					73c08a8c5e | ||
| 
						 | 
					67feae778e | ||
| 
						 | 
					7dd49d634e | ||
| 
						 | 
					06191ca260 | ||
| 
						 | 
					0118974ba7 | ||
| 
						 | 
					22e5a54941 | ||
| 
						 | 
					ce7442bab7 | ||
| 
						 | 
					54c522e39b | ||
| 
						 | 
					dfa08625e3 | ||
| 
						 | 
					f6d411b992 | ||
| 
						 | 
					9359f6d883 | ||
| 
						 | 
					b021a2c139 | ||
| 
						 | 
					4de228d41b | ||
| 
						 | 
					7d2e8eaaad | ||
| 
						 | 
					ce69a571bc | ||
| 
						 | 
					1fdda378ac | ||
| 
						 | 
					7b62fd4866 | ||
| 
						 | 
					0da24e2651 | ||
| 
						 | 
					fd689e94ed | ||
| 
						 | 
					47155ac280 | ||
| 
						 | 
					aa57bac96d | ||
| 
						 | 
					24d730c120 | ||
| 
						 | 
					de9ae6eaa9 | ||
| 
						 | 
					4fd065a4bd | ||
| 
						 | 
					e26aac187b | ||
| 
						 | 
					5e63b70e83 | ||
| 
						 | 
					292ab6e54b | ||
| 
						 | 
					7d924fac27 | ||
| 
						 | 
					4b31957617 | ||
| 
						 | 
					35c99ae503 | ||
| 
						 | 
					62189321cc | ||
| 
						 | 
					59dfdc9af6 | ||
| 
						 | 
					19cf4d3dc2 | ||
| 
						 | 
					369265a6d5 | ||
| 
						 | 
					56f8306960 | ||
| 
						 | 
					3daf3c3325 | ||
| 
						 | 
					c36000a6aa | ||
| 
						 | 
					12265b92e7 | ||
| 
						 | 
					4e31445038 | ||
| 
						 | 
					c30f96912d | ||
| 
						 | 
					e3860c065e | ||
| 
						 | 
					110b64df85 | ||
| 
						 | 
					e17f7aa6f1 | ||
| 
						 | 
					b4d98b1dd2 | ||
| 
						 | 
					e24636133d | ||
| 
						 | 
					7d0a964918 | ||
| 
						 | 
					38c7e747bc | ||
| 
						 | 
					180e003978 | ||
| 
						 | 
					4762ea8fae | ||
| 
						 | 
					4ec3af8e45 | ||
| 
						 | 
					b816ca6788 | ||
| 
						 | 
					d703a8abb2 | ||
| 
						 | 
					4a1f87727b | ||
| 
						 | 
					16c0d09d6b | ||
| 
						 | 
					7740ab68f7 | ||
| 
						 | 
					cd61025295 | ||
| 
						 | 
					2695e2de1a | ||
| 
						 | 
					7aea03034a | ||
| 
						 | 
					e9960347bf | ||
| 
						 | 
					3808d4d0b8 | ||
| 
						 | 
					14c5bf5f75 | ||
| 
						 | 
					fcc16ae8e1 | ||
| 
						 | 
					aaf8bdb893 | ||
| 
						 | 
					db81851db4 | ||
| 
						 | 
					a2d92155a5 | ||
| 
						 | 
					0bd18cc91b | ||
| 
						 | 
					1e7981dbb7 | ||
| 
						 | 
					704073cd69 | ||
| 
						 | 
					22e1518951 | ||
| 
						 | 
					57bd730233 | ||
| 
						 | 
					cf1b13e5fb | ||
| 
						 | 
					9a3b2c076d | ||
| 
						 | 
					3981cc90c4 | ||
| 
						 | 
					592d9d03aa | ||
| 
						 | 
					59b00890f9 | ||
| 
						 | 
					7ee57e7416 | ||
| 
						 | 
					82a30df0c9 | ||
| 
						 | 
					10e1d7e741 | ||
| 
						 | 
					f85cddadcf | ||
| 
						 | 
					1700291af7 | ||
| 
						 | 
					e126e48439 | ||
| 
						 | 
					b3bda56498 | ||
| 
						 | 
					e59f868966 | ||
| 
						 | 
					a9b53afcc5 | ||
| 
						 | 
					38cf296a4c | ||
| 
						 | 
					35c0d269ac | ||
| 
						 | 
					d7211e856e | ||
| 
						 | 
					dfbb1a8035 | ||
| 
						 | 
					61b09e926a | ||
| 
						 | 
					9140fd52ac | ||
| 
						 | 
					4a3ee4db67 | ||
| 
						 | 
					b333d8c3f9 | ||
| 
						 | 
					245b35d01e | ||
| 
						 | 
					37d20ba0dd | ||
| 
						 | 
					b5062c51af | ||
| 
						 | 
					1ea830c955 | ||
| 
						 | 
					be31ecf432 | ||
| 
						 | 
					c586dfe87f | ||
| 
						 | 
					7f65be34ff | ||
| 
						 | 
					c158dbb3ea | ||
| 
						 | 
					95acf8c018 | ||
| 
						 | 
					6c5aa6677a | ||
| 
						 | 
					43ff379ed4 | ||
| 
						 | 
					2c2849179a | ||
| 
						 | 
					d116505ff2 | ||
| 
						 | 
					42535e14ab | ||
| 
						 | 
					990ce16a7d | ||
| 
						 | 
					af1cf0bc71 | ||
| 
						 | 
					e166115745 | ||
| 
						 | 
					bdef92cc71 | ||
| 
						 | 
					1e59c934ec | ||
| 
						 | 
					456b00882d | ||
| 
						 | 
					9b8a30c84f | ||
| 
						 | 
					3b90e3fe15 | ||
| 
						 | 
					5e3a5bb24c | ||
| 
						 | 
					7413a03009 | ||
| 
						 | 
					bb1c9d73c4 | ||
| 
						 | 
					3b5a901832 | ||
| 
						 | 
					a62a4876ec | ||
| 
						 | 
					9d21ceacc3 | ||
| 
						 | 
					c604aeb064 | ||
| 
						 | 
					9b9ed2f6e1 | ||
| 
						 | 
					1ddc74d2b5 | ||
| 
						 | 
					ee9f6dd818 | ||
| 
						 | 
					a1754dff4e | ||
| 
						 | 
					4827a17ba3 | ||
| 
						 | 
					b5ed7b9f4e | ||
| 
						 | 
					ab9760194d | ||
| 
						 | 
					abb5b6d5ac | ||
| 
						 | 
					4656fe21f9 | ||
| 
						 | 
					93e503eb87 | ||
| 
						 | 
					6ab80dc5e3 | ||
| 
						 | 
					ceaff9006a | ||
| 
						 | 
					c749fe6fb0 | ||
| 
						 | 
					402586756f | ||
| 
						 | 
					19800da808 | ||
| 
						 | 
					d62da0c982 | ||
| 
						 | 
					41df1d5a76 | ||
| 
						 | 
					bcdf8f15e7 | ||
| 
						 | 
					326cbc3bec | ||
| 
						 | 
					607d966322 | ||
| 
						 | 
					69298090ce | ||
| 
						 | 
					9c7d50fdff | ||
| 
						 | 
					fabbe8fe59 | ||
| 
						 | 
					6abb55ba86 | ||
| 
						 | 
					9cddbbd986 | ||
| 
						 | 
					31c7c9301c | ||
| 
						 | 
					c9aad3a54d | ||
| 
						 | 
					ebc17e120e | ||
| 
						 | 
					1ebb1782fa | ||
| 
						 | 
					cce3ca1996 | ||
| 
						 | 
					eb6018ac01 | ||
| 
						 | 
					3b54371d5c | ||
| 
						 | 
					67cd29e9f2 | ||
| 
						 | 
					0f4c14ff41 | ||
| 
						 | 
					5d9795139e | ||
| 
						 | 
					0bbbd5de10 | ||
| 
						 | 
					8963d8dec9 | ||
| 
						 | 
					eeb7766f36 | ||
| 
						 | 
					e7d4630fa5 | ||
| 
						 | 
					0f19440864 | ||
| 
						 | 
					d0a3510b96 | ||
| 
						 | 
					0946b5220f | ||
| 
						 | 
					d5a64ee41c | ||
| 
						 | 
					067d60978c | ||
| 
						 | 
					4b89174542 | ||
| 
						 | 
					0a2a1b4692 | ||
| 
						 | 
					4d99838209 | ||
| 
						 | 
					27ac2633c7 | ||
| 
						 | 
					1bff7fe861 | ||
| 
						 | 
					a9c36a9417 | ||
| 
						 | 
					8e26cd4d9d | ||
| 
						 | 
					237c920893 | ||
| 
						 | 
					354d95eb2d | ||
| 
						 | 
					e7f0f09dee | ||
| 
						 | 
					093a1aacf6 | ||
| 
						 | 
					afbac8e2f0 | ||
| 
						 | 
					17c3163a2a | ||
| 
						 | 
					f0a96b9a7b | ||
| 
						 | 
					e5766da56d | ||
| 
						 | 
					0239abb126 | ||
| 
						 | 
					06960d3023 | ||
| 
						 | 
					fd813b8936 | ||
| 
						 | 
					fa9c39f212 | ||
| 
						 | 
					536c3d113d | ||
| 
						 | 
					23281bdc0c | ||
| 
						 | 
					cc5d8e162b | ||
| 
						 | 
					5c43513295 | ||
| 
						 | 
					6c648f4b89 | ||
| 
						 | 
					9f88b1b1fb | ||
| 
						 | 
					0ea0f56e1b | ||
| 
						 | 
					bff0ab3d3d | ||
| 
						 | 
					1f56a8cc6d | ||
| 
						 | 
					eaebc184b1 | ||
| 
						 | 
					b9594538ca | ||
| 
						 | 
					8e56da691a | ||
| 
						 | 
					c9f739ae3b | ||
| 
						 | 
					2ba1aaa383 | ||
| 
						 | 
					4510e7b4d8 | ||
| 
						 | 
					9f1bf85b42 | ||
| 
						 | 
					a2a528c294 | ||
| 
						 | 
					15ec09d71c | ||
| 
						 | 
					57a18aec76 | ||
| 
						 | 
					8fa1743dd6 | ||
| 
						 | 
					78bb1ee195 | ||
| 
						 | 
					130031e4f9 | ||
| 
						 | 
					ea9f91036e | ||
| 
						 | 
					783e7518f8 | ||
| 
						 | 
					64595b08ce | ||
| 
						 | 
					43d67cff58 | ||
| 
						 | 
					4ae2eb2bfa | ||
| 
						 | 
					6220e272af | ||
| 
						 | 
					dc36ba409c | ||
| 
						 | 
					15deb9c658 | ||
| 
						 | 
					07d87334d5 | ||
| 
						 | 
					39300b2b6e | ||
| 
						 | 
					3b2aa30d48 | ||
| 
						 | 
					0c7052ae58 | ||
| 
						 | 
					fa7aead863 | ||
| 
						 | 
					b5dc4bdf59 | ||
| 
						 | 
					9905012cd7 | ||
| 
						 | 
					abfe9114c7 | ||
| 
						 | 
					f65409be75 | ||
| 
						 | 
					3fd0bdbf40 | ||
| 
						 | 
					8d7ce2e84e | ||
| 
						 | 
					0d5a697e99 | ||
| 
						 | 
					fdc59fd418 | ||
| 
						 | 
					7cfc8ce601 | ||
| 
						 | 
					5c35dbfcdf | ||
| 
						 | 
					885b22898c | ||
| 
						 | 
					c842943b1b | ||
| 
						 | 
					92b170267b | ||
| 
						 | 
					53ebd3ceac | ||
| 
						 | 
					ca35365e42 | ||
| 
						 | 
					8e83943498 | ||
| 
						 | 
					86706bbb4c | ||
| 
						 | 
					c66fb807c8 | ||
| 
						 | 
					0356697d5f | ||
| 
						 | 
					dd4f291bf5 | ||
| 
						 | 
					8089cc9b3e | ||
| 
						 | 
					42a341a30c | ||
| 
						 | 
					e09b216beb | ||
| 
						 | 
					5825dfae88 | ||
| 
						 | 
					7fb0c8e276 | ||
| 
						 | 
					2ffac1d229 | ||
| 
						 | 
					759e9598fb | ||
| 
						 | 
					6b93a3fa18 | ||
| 
						 | 
					aada00ce61 | ||
| 
						 | 
					a2fdb4e236 | ||
| 
						 | 
					57e5f23c72 | ||
| 
						 | 
					c3b69f40fc | ||
| 
						 | 
					592b310a81 | ||
| 
						 | 
					e10a062de1 | ||
| 
						 | 
					74a736dc9f | ||
| 
						 | 
					b5fdb94246 | ||
| 
						 | 
					129698dd3d | ||
| 
						 | 
					77997d558c | ||
| 
						 | 
					d65d4edea5 | ||
| 
						 | 
					60c480042c | ||
| 
						 | 
					956c13fa89 | ||
| 
						 | 
					3aee31007a | ||
| 
						 | 
					b82e988837 | ||
| 
						 | 
					5cf162a3c9 | ||
| 
						 | 
					ce76ebc68f | ||
| 
						 | 
					cbe8e2f1b7 | ||
| 
						 | 
					50c9a0e8f1 | ||
| 
						 | 
					246c6e950d | ||
| 
						 | 
					04d6171cba | ||
| 
						 | 
					9556d63890 | ||
| 
						 | 
					b26fbd0d70 | ||
| 
						 | 
					50aa00109a | ||
| 
						 | 
					c0398ef3b8 | ||
| 
						 | 
					2676a48985 | ||
| 
						 | 
					e8ff2fed45 | ||
| 
						 | 
					65c674b4c1 | ||
| 
						 | 
					6bb97836b6 | ||
| 
						 | 
					89bef0fb41 | ||
| 
						 | 
					51c4eba520 | ||
| 
						 | 
					71a659e5b9 | ||
| 
						 | 
					18e1e7d0b9 | ||
| 
						 | 
					fe0a00d02d | ||
| 
						 | 
					9068dbb7a2 | ||
| 
						 | 
					8b489a9554 | ||
| 
						 | 
					70e0d31f58 | ||
| 
						 | 
					cd35b9b9a5 | ||
| 
						 | 
					2852c5b374 | ||
| 
						 | 
					2251f6bb5e | ||
| 
						 | 
					98b8895de0 | ||
| 
						 | 
					0608a4a285 | ||
| 
						 | 
					be9784336e | ||
| 
						 | 
					08ff2daa38 | ||
| 
						 | 
					dc84667ad8 | ||
| 
						 | 
					0d1492d527 | ||
| 
						 | 
					9d62b9e064 | ||
| 
						 | 
					398a25ce62 | ||
| 
						 | 
					15be0b91a5 | ||
| 
						 | 
					df93fc0ecf | ||
| 
						 | 
					e24e9309d1 | ||
| 
						 | 
					2f3892d29c | ||
| 
						 | 
					6d4278a9e0 | ||
| 
						 | 
					cf4a2c8ffe | ||
| 
						 | 
					945a32dfef | ||
| 
						 | 
					731dd70816 | ||
| 
						 | 
					1c2e708ccf | ||
| 
						 | 
					792d370c49 | ||
| 
						 | 
					de89dd90cc | ||
| 
						 | 
					fb3d0b24c7 | ||
| 
						 | 
					c4caccfab1 | ||
| 
						 | 
					f2fecc18e8 | ||
| 
						 | 
					14313687c9 | ||
| 
						 | 
					d28f33eb91 | ||
| 
						 | 
					0bab7c06a6 | ||
| 
						 | 
					90722de17d | ||
| 
						 | 
					8a4dfa0cc7 | ||
| 
						 | 
					e3c2fba599 | ||
| 
						 | 
					563e73e65e | ||
| 
						 | 
					235690658c | ||
| 
						 | 
					8dddea132c | ||
| 
						 | 
					46ca78abc8 | ||
| 
						 | 
					933539ca7c | ||
| 
						 | 
					2c46695b72 | ||
| 
						 | 
					f46c3005b3 | ||
| 
						 | 
					bad84322ee | ||
| 
						 | 
					3b12c0ca62 | ||
| 
						 | 
					2583c110d2 | ||
| 
						 | 
					22c960c99c | ||
| 
						 | 
					fcb674b755 | ||
| 
						 | 
					0373324653 | ||
| 
						 | 
					3297df1d50 | ||
| 
						 | 
					80f1330a75 | ||
| 
						 | 
					05fda7e56a | ||
| 
						 | 
					73a42eaaae | ||
| 
						 | 
					1ae420eef5 | ||
| 
						 | 
					96fc1ea91d | ||
| 
						 | 
					432c6837e7 | ||
| 
						 | 
					2450baffc0 | ||
| 
						 | 
					4be3bca2e3 | ||
| 
						 | 
					1f93341311 | ||
| 
						 | 
					5723abb81f | ||
| 
						 | 
					5cfeb8a0bc | ||
| 
						 | 
					8cf9658efb | ||
| 
						 | 
					5dcb75a121 | ||
| 
						 | 
					3c909cabb6 | ||
| 
						 | 
					85a5bf2a55 | ||
| 
						 | 
					6cdda0924f | ||
| 
						 | 
					56c358cbdb | ||
| 
						 | 
					9871de48d6 | ||
| 
						 | 
					af7d8bac67 | ||
| 
						 | 
					0acfc2f7d1 | ||
| 
						 | 
					c04167ccac | ||
| 
						 | 
					13a505df7a | ||
| 
						 | 
					aec596a18a | ||
| 
						 | 
					30e8cbf5b4 | ||
| 
						 | 
					d557d01161 | ||
| 
						 | 
					cabcdc272e | ||
| 
						 | 
					e8e4748c96 | ||
| 
						 | 
					4b275ae911 | ||
| 
						 | 
					b25b823d69 | ||
| 
						 | 
					d7757aa5d1 | ||
| 
						 | 
					5def868c67 | ||
| 
						 | 
					b87871f56c | ||
| 
						 | 
					4403635733 | ||
| 
						 | 
					2fd847215c | ||
| 
						 | 
					6e2cb8d4e2 | ||
| 
						 | 
					173bc7201c | ||
| 
						 | 
					54b794da54 | ||
| 
						 | 
					203d022db5 | ||
| 
						 | 
					97c05542d6 | ||
| 
						 | 
					20e5b1a2bf | ||
| 
						 | 
					e5800a0ec5 | ||
| 
						 | 
					21bdf2a828 | ||
| 
						 | 
					2551cb4b22 | ||
| 
						 | 
					0cb6ea8e4a | ||
| 
						 | 
					04656327e2 | ||
| 
						 | 
					374c3342a1 | ||
| 
						 | 
					3668c089dd | ||
| 
						 | 
					6dbe7aed99 | ||
| 
						 | 
					423c1e9568 | ||
| 
						 | 
					73fbf74707 | ||
| 
						 | 
					8e87fbd481 | ||
| 
						 | 
					9c9a7c78fc | ||
| 
						 | 
					ea03177126 | ||
| 
						 | 
					df507f74a9 | ||
| 
						 | 
					d933d05bd3 | ||
| 
						 | 
					1cc8b93fc2 | ||
| 
						 | 
					b132580f62 | ||
| 
						 | 
					21da4bc8b5 | ||
| 
						 | 
					36bab52e7a | ||
| 
						 | 
					911ca2da24 | ||
| 
						 | 
					220faf05ff | ||
| 
						 | 
					bb9c3ab41b | ||
| 
						 | 
					31938058d3 | ||
| 
						 | 
					6f69cc00be | ||
| 
						 | 
					e370004069 | ||
| 
						 | 
					12fc24edb0 | ||
| 
						 | 
					fe987585e4 | ||
| 
						 | 
					80a11cb42d | ||
| 
						 | 
					d66b2ee577 | ||
| 
						 | 
					634f3b021f | ||
| 
						 | 
					2e4c51450f | ||
| 
						 | 
					e3be9ae437 | ||
| 
						 | 
					575fe5138a | ||
| 
						 | 
					12dba1c55b | ||
| 
						 | 
					5f9bc1a729 | ||
| 
						 | 
					edfbc82048 | ||
| 
						 | 
					2c36a13af1 | ||
| 
						 | 
					607ab48f79 | ||
| 
						 | 
					30fbcb5ba8 | ||
| 
						 | 
					ef81b82d87 | ||
| 
						 | 
					f1a29c1ebb | ||
| 
						 | 
					404ae5dbcf | ||
| 
						 | 
					84478921e7 | ||
| 
						 | 
					2b8d10a4d9 | ||
| 
						 | 
					fefdcbbad1 | ||
| 
						 | 
					6c239ceb56 | ||
| 
						 | 
					b520c0ab5f | ||
| 
						 | 
					d329666a88 | ||
| 
						 | 
					874b61d4d5 | ||
| 
						 | 
					a536c4a5a0 | ||
| 
						 | 
					e4ef18ccfc | ||
| 
						 | 
					d949e836b5 | ||
| 
						 | 
					ed29ba3409 | ||
| 
						 | 
					495da1bf98 | ||
| 
						 | 
					cc17c2618d | ||
| 
						 | 
					3dffd02f08 | ||
| 
						 | 
					f2f10376ac | 
							
								
								
									
										14
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.md
									
									
									
									
										vendored
									
									
								
							@@ -108,13 +108,13 @@ Example:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
APP="SnipeIT"
 | 
					APP="SnipeIT"
 | 
				
			||||||
var_tags="asset-management;foss"
 | 
					var_tags="${var_tags:-asset-management;foss}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 2.2 **📋 App output & base settings**
 | 
					## 2.2 **📋 App output & base settings**
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										104
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.sh
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										104
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.sh
									
									
									
									
										vendored
									
									
								
							@@ -6,22 +6,22 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: [SOURCE_URL]
 | 
					# Source: [SOURCE_URL]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# App Default Values
 | 
					# App Default Values
 | 
				
			||||||
APP="[APP_NAME]"
 | 
					 | 
				
			||||||
# Name of the app (e.g. Google, Adventurelog, Apache-Guacamole"
 | 
					# Name of the app (e.g. Google, Adventurelog, Apache-Guacamole"
 | 
				
			||||||
var_tags="[TAGS]"
 | 
					APP="[APP_NAME]"
 | 
				
			||||||
# Tags for Proxmox VE, maximum 2 pcs., no spaces allowed, separated by a semicolon ; (e.g. database | adblock;dhcp)
 | 
					# Tags for Proxmox VE, maximum 2 pcs., no spaces allowed, separated by a semicolon ; (e.g. database | adblock;dhcp)
 | 
				
			||||||
var_cpu="[CPU]"
 | 
					var_tags="${var_tags:-[TAGS]}"
 | 
				
			||||||
# Number of cores (1-X) (e.g. 4) - default are 2
 | 
					# Number of cores (1-X) (e.g. 4) - default are 2
 | 
				
			||||||
var_ram="[RAM]"
 | 
					var_cpu="${var_cpu:-[CPU]}"
 | 
				
			||||||
# Amount of used RAM in MB (e.g. 2048 or 4096)
 | 
					# Amount of used RAM in MB (e.g. 2048 or 4096)
 | 
				
			||||||
var_disk="[DISK]"
 | 
					var_ram="${var_ram:-[RAM]}"
 | 
				
			||||||
# Amount of used disk space in GB (e.g. 4 or 10)
 | 
					# Amount of used disk space in GB (e.g. 4 or 10)
 | 
				
			||||||
var_os="[OS]"
 | 
					var_disk="${var_disk:-[DISK]}"
 | 
				
			||||||
# Default OS (e.g. debian, ubuntu, alpine)
 | 
					# Default OS (e.g. debian, ubuntu, alpine)
 | 
				
			||||||
var_version="[VERSION]"
 | 
					var_os="${var_os:-[OS]}"
 | 
				
			||||||
# Default OS version (e.g. 12 for debian, 24.04 for ubuntu, 3.20 for alpine)
 | 
					# Default OS version (e.g. 12 for debian, 24.04 for ubuntu, 3.20 for alpine)
 | 
				
			||||||
var_unprivileged="[UNPRIVILEGED]"
 | 
					var_version="${var_version:-[VERSION]}"
 | 
				
			||||||
# 1 = unprivileged container, 0 = privileged container
 | 
					# 1 = unprivileged container, 0 = privileged container
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-[UNPRIVILEGED]}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -29,51 +29,51 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    header_info
 | 
					  header_info
 | 
				
			||||||
    check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
    check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Check if installation is present | -f for file, -d for folder
 | 
					  # Check if installation is present | -f for file, -d for folder
 | 
				
			||||||
    if [[ ! -f [INSTALLATION_CHECK_PATH] ]]; then
 | 
					  if [[ ! -f [INSTALLATION_CHECK_PATH] ]]; then
 | 
				
			||||||
        msg_error "No ${APP} Installation Found!"
 | 
					    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
 | 
					 | 
				
			||||||
        # 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]
 | 
					 | 
				
			||||||
        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
 | 
					    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
 | 
				
			||||||
 | 
					    # 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]
 | 
				
			||||||
 | 
					    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
 | 
					start
 | 
				
			||||||
@@ -83,4 +83,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:[PORT]${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:[PORT]${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -152,7 +152,7 @@ Example for a git release:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```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) }')
 | 
					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"
 | 
					curl -fsSL "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 5.2 **Save the version for update checks**
 | 
					### 5.2 **Save the version for update checks**
 | 
				
			||||||
@@ -163,7 +163,7 @@ wget -q "https://github.com/snipe/snipe-it/archive/refs/tags/v${RELEASE}.zip"
 | 
				
			|||||||
Example:
 | 
					Example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```bash
 | 
					```bash
 | 
				
			||||||
echo "${RELEASE}" >"/opt/AppName_version.txt"
 | 
					echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
@@ -184,7 +184,7 @@ msg_info "Installing Dependencies"
 | 
				
			|||||||
$STD apt-get install -y ...
 | 
					$STD apt-get install -y ...
 | 
				
			||||||
msg_ok "Installed Dependencies"
 | 
					msg_ok "Installed Dependencies"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
read -p "Do you wish to enable HTTPS mode? (y/N): " httpschoice
 | 
					read -p "${TAB3}Do you wish to enable HTTPS mode? (y/N): " httpschoice
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 6.2 **Verbosity**
 | 
					### 6.2 **Verbosity**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,7 +6,7 @@
 | 
				
			|||||||
# Source: [SOURCE_URL]
 | 
					# Source: [SOURCE_URL]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Import Functions und Setup
 | 
					# Import Functions und Setup
 | 
				
			||||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
 | 
					source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
 | 
				
			||||||
color
 | 
					color
 | 
				
			||||||
verb_ip6
 | 
					verb_ip6
 | 
				
			||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
@@ -31,30 +31,28 @@ $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 "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;"
 | 
					$STD mysql -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    echo "${APPLICATION} Credentials"
 | 
					  echo "${APPLICATION} Credentials"
 | 
				
			||||||
    echo "Database User: $DB_USER"
 | 
					  echo "Database User: $DB_USER"
 | 
				
			||||||
    echo "Database Password: $DB_PASS"
 | 
					  echo "Database Password: $DB_PASS"
 | 
				
			||||||
    echo "Database Name: $DB_NAME"
 | 
					  echo "Database Name: $DB_NAME"
 | 
				
			||||||
} >> ~/$APP_NAME.creds
 | 
					} >>~/"$APP_NAME".creds
 | 
				
			||||||
msg_ok "Set up Database"
 | 
					msg_ok "Set up Database"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Temp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Setup App
 | 
					# Setup App
 | 
				
			||||||
msg_info "Setup ${APPLICATION}"
 | 
					msg_info "Setup ${APPLICATION}"
 | 
				
			||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/[REPO]/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					RELEASE=$(curl -fsSL https://api.github.com/repos/[REPO]/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
				
			||||||
curl -fsSL -o "${RELEASE}.zip" "https://github.com/[REPO]/archive/refs/tags/${RELEASE}.zip"
 | 
					curl -fsSL -o "${RELEASE}.zip" "https://github.com/[REPO]/archive/refs/tags/${RELEASE}.zip"
 | 
				
			||||||
unzip -q "${RELEASE}.zip"
 | 
					unzip -q "${RELEASE}.zip"
 | 
				
			||||||
mv "${APPLICATION}-${RELEASE}/" "/opt/${APPLICATION}"
 | 
					mv "${APPLICATION}-${RELEASE}/" "/opt/${APPLICATION}"
 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
# 
 | 
					 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
 | 
					#
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					echo "${RELEASE}" >/opt/"${APPLICATION}"_version.txt
 | 
				
			||||||
msg_ok "Setup ${APPLICATION}"
 | 
					msg_ok "Setup ${APPLICATION}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Creating Service (if needed)
 | 
					# Creating Service (if needed)
 | 
				
			||||||
msg_info "Creating Service"
 | 
					msg_info "Creating Service"
 | 
				
			||||||
cat <<EOF >/etc/systemd/system/${APPLICATION}.service
 | 
					cat <<EOF >/etc/systemd/system/"${APPLICATION}".service
 | 
				
			||||||
[Unit]
 | 
					[Unit]
 | 
				
			||||||
Description=${APPLICATION} Service
 | 
					Description=${APPLICATION} Service
 | 
				
			||||||
After=network.target
 | 
					After=network.target
 | 
				
			||||||
@@ -66,7 +64,7 @@ Restart=always
 | 
				
			|||||||
[Install]
 | 
					[Install]
 | 
				
			||||||
WantedBy=multi-user.target
 | 
					WantedBy=multi-user.target
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
systemctl enable -q --now ${APPLICATION}
 | 
					systemctl enable -q --now "${APPLICATION}"
 | 
				
			||||||
msg_ok "Created Service"
 | 
					msg_ok "Created Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
motd_ssh
 | 
					motd_ssh
 | 
				
			||||||
@@ -74,7 +72,7 @@ customize
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Cleanup
 | 
					# Cleanup
 | 
				
			||||||
msg_info "Cleaning up"
 | 
					msg_info "Cleaning up"
 | 
				
			||||||
rm -f ${RELEASE}.zip
 | 
					rm -f "${RELEASE}".zip
 | 
				
			||||||
$STD apt-get -y autoremove
 | 
					$STD apt-get -y autoremove
 | 
				
			||||||
$STD apt-get -y autoclean
 | 
					$STD apt-get -y autoclean
 | 
				
			||||||
msg_ok "Cleaned"
 | 
					msg_ok "Cleaned"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
title: "[Script request] "
 | 
					title: "[Script request]: "
 | 
				
			||||||
labels: ["enhancement"]
 | 
					labels: ["enhancement"]
 | 
				
			||||||
body:
 | 
					body:
 | 
				
			||||||
- type: input
 | 
					- type: input
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										27
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
									
										vendored
									
									
								
							@@ -5,16 +5,15 @@ body:
 | 
				
			|||||||
  - type: markdown
 | 
					  - type: markdown
 | 
				
			||||||
    attributes:
 | 
					    attributes:
 | 
				
			||||||
      value: |
 | 
					      value: |
 | 
				
			||||||
        # 🐞 **Script Issue Report**
 | 
					 | 
				
			||||||
        Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently.  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ## ⚠️ **IMPORTANT - READ FIRST**  
 | 
					        ## ⚠️ **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.  
 | 
					        - 🔍 **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.  
 | 
					        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.  
 | 
					        - 🔎 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).  
 | 
					        - 📜 **Read the script:** Familiarize yourself with the script's content and its purpose. This will help you understand the issue better and provide more relevant information
 | 
				
			||||||
        
 | 
					
 | 
				
			||||||
 | 
					        Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently.  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					     
 | 
				
			||||||
  - type: input
 | 
					  - type: input
 | 
				
			||||||
    id: guidelines
 | 
					    id: guidelines
 | 
				
			||||||
    attributes:
 | 
					    attributes:
 | 
				
			||||||
@@ -35,14 +34,7 @@ body:
 | 
				
			|||||||
    id: script_command
 | 
					    id: script_command
 | 
				
			||||||
    attributes:
 | 
					    attributes:
 | 
				
			||||||
      label: 📂 What was the exact command used to execute the script?
 | 
					      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\""
 | 
					      placeholder: "e.g., bash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/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:
 | 
					    validations:
 | 
				
			||||||
      required: true
 | 
					      required: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -75,6 +67,13 @@ body:
 | 
				
			|||||||
    validations:
 | 
					    validations:
 | 
				
			||||||
      required: true
 | 
					      required: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - type: textarea
 | 
				
			||||||
 | 
					    id: issue_description
 | 
				
			||||||
 | 
					    attributes:
 | 
				
			||||||
 | 
					      label: 📝 Provide a clear and concise description of the issue.
 | 
				
			||||||
 | 
					    validations:
 | 
				
			||||||
 | 
					      required: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - type: textarea
 | 
					  - type: textarea
 | 
				
			||||||
    id: steps_to_reproduce
 | 
					    id: steps_to_reproduce
 | 
				
			||||||
    attributes:
 | 
					    attributes:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/ISSUE_TEMPLATE/config.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,11 +1,11 @@
 | 
				
			|||||||
blank_issues_enabled: false
 | 
					blank_issues_enabled: false
 | 
				
			||||||
contact_links:
 | 
					contact_links:
 | 
				
			||||||
    - name: 🤔 Questions and Help
 | 
					 | 
				
			||||||
      url: https://github.com/community-scripts/ProxmoxVE/discussions
 | 
					 | 
				
			||||||
      about: For suggestions or questions, please use the Discussions section.
 | 
					 | 
				
			||||||
    - name: 🌟 new Script request
 | 
					    - name: 🌟 new Script request
 | 
				
			||||||
      url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script
 | 
					      url: https://github.com/community-scripts/ProxmoxVE/discussions/new?category=request-script
 | 
				
			||||||
      about: For feature/script requests, please use the Discussions section.
 | 
					      about: For feature/script requests, please use the Discussions section.
 | 
				
			||||||
 | 
					    - name: 🤔 Questions and Help
 | 
				
			||||||
 | 
					      url: https://github.com/community-scripts/ProxmoxVE/discussions
 | 
				
			||||||
 | 
					      about: For suggestions or questions, please use the Discussions section.
 | 
				
			||||||
    - name: 💻 Discord
 | 
					    - name: 💻 Discord
 | 
				
			||||||
      url: https://discord.gg/jsYVk5JBxq
 | 
					      url: https://discord.gg/jsYVk5JBxq
 | 
				
			||||||
      about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community.
 | 
					      about: Join our Discord server to chat with other users in the Proxmox Helper Scripts community.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/ISSUE_TEMPLATE/feature_request.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,5 +1,5 @@
 | 
				
			|||||||
name: "✨ Feature Request"
 | 
					name: "✨ Feature Request"
 | 
				
			||||||
description: "Suggest a new feature or enhancement."
 | 
					description: "Suggest a new feature or enhancement. (not for script requests)"
 | 
				
			||||||
labels: ["enhancement"]
 | 
					labels: ["enhancement"]
 | 
				
			||||||
body:
 | 
					body:
 | 
				
			||||||
  - type: markdown
 | 
					  - type: markdown
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								.github/pull_request_template.md
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								.github/pull_request_template.md
									
									
									
									
										vendored
									
									
								
							@@ -1,8 +1,7 @@
 | 
				
			|||||||
<!--🛑 New scripts must first be submitted to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) for testing.
 | 
					<!--🛑 New scripts must be submitted to [ProxmoxVED](https://github.com/community-scripts/ProxmoxVED) for testing.  
 | 
				
			||||||
PRs for new scripts that skip this process will be closed. -->  
 | 
					PRs without prior testing will be closed. -->
 | 
				
			||||||
 | 
					 | 
				
			||||||
## ✍️ Description  
 | 
					## ✍️ Description  
 | 
				
			||||||
<!-- Briefly describe your changes. -->  
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 🔗 Related PR / Issue  
 | 
					## 🔗 Related PR / Issue  
 | 
				
			||||||
@@ -13,7 +12,6 @@ Link: #
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- [ ] **Self-review completed** – Code follows project standards.  
 | 
					- [ ] **Self-review completed** – Code follows project standards.  
 | 
				
			||||||
- [ ] **Tested thoroughly** – Changes work as expected.  
 | 
					- [ ] **Tested thoroughly** – Changes work as expected.  
 | 
				
			||||||
- [ ] **No breaking changes** – Existing functionality remains intact.  
 | 
					 | 
				
			||||||
- [ ] **No security risks** – No hardcoded secrets, unnecessary privilege escalations, or permission issues.  
 | 
					- [ ] **No security risks** – No hardcoded secrets, unnecessary privilege escalations, or permission issues.  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
@@ -27,13 +25,3 @@ Link: #
 | 
				
			|||||||
- [ ] 🌍 **Website update** – Changes to website-related JSON files or metadata.  
 | 
					- [ ] 🌍 **Website update** – Changes to website-related JSON files or metadata.  
 | 
				
			||||||
- [ ] 🔧 **Refactoring / Code Cleanup** – Improves readability or maintainability without changing functionality.  
 | 
					- [ ] 🔧 **Refactoring / Code Cleanup** – Improves readability or maintainability without changing functionality.  
 | 
				
			||||||
- [ ] 📝 **Documentation update** – Changes to `README`, `AppName.md`, `CONTRIBUTING.md`, or other docs.  
 | 
					- [ ] 📝 **Documentation update** – Changes to `README`, `AppName.md`, `CONTRIBUTING.md`, or other docs.  
 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 🔍 Code & Security Review  (**X** in brackets) 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- [ ] **Follows `Code_Audit.md` & `CONTRIBUTING.md` guidelines**
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## 📋 Additional Information (optional)  
 | 
					 | 
				
			||||||
<!-- Add any extra context, screenshots, or references. -->  
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								.github/workflows/auto-update-app-headers.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/auto-update-app-headers.yml
									
									
									
									
										vendored
									
									
								
							@@ -5,11 +5,12 @@ on:
 | 
				
			|||||||
    branches:
 | 
					    branches:
 | 
				
			||||||
      - main
 | 
					      - main
 | 
				
			||||||
    paths:
 | 
					    paths:
 | 
				
			||||||
      - 'ct/**.sh'
 | 
					      - "ct/**.sh"
 | 
				
			||||||
  workflow_dispatch: 
 | 
					  workflow_dispatch:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  update-app-files:
 | 
					  update-app-files:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
@@ -24,6 +25,13 @@ jobs:
 | 
				
			|||||||
          app-id: ${{ vars.APP_ID }}
 | 
					          app-id: ${{ vars.APP_ID }}
 | 
				
			||||||
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
					          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Generate a token for PR approval and merge
 | 
				
			||||||
 | 
					        id: generate-token-merge
 | 
				
			||||||
 | 
					        uses: actions/create-github-app-token@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
 | 
				
			||||||
 | 
					          private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Step 1: Checkout repository
 | 
					      # Step 1: Checkout repository
 | 
				
			||||||
      - name: Checkout repository
 | 
					      - name: Checkout repository
 | 
				
			||||||
        uses: actions/checkout@v2
 | 
					        uses: actions/checkout@v2
 | 
				
			||||||
@@ -79,7 +87,7 @@ jobs:
 | 
				
			|||||||
                       --label "automated pr"
 | 
					                       --label "automated pr"
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
          GH_TOKEN: ${{ steps.generate-token.outputs.token }}
 | 
					          GH_TOKEN: ${{ steps.generate-token.outputs.token }}
 | 
				
			||||||
      
 | 
					
 | 
				
			||||||
      - name: Approve pull request
 | 
					      - name: Approve pull request
 | 
				
			||||||
        if: env.changed == 'true'
 | 
					        if: env.changed == 'true'
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
@@ -89,15 +97,18 @@ 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
 | 
					      - name: Approve pull request and merge
 | 
				
			||||||
        if: env.changed == 'true'
 | 
					        if: env.changed == 'true'
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
					          GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number')
 | 
					          git config --global user.name "github-actions-automege[bot]"
 | 
				
			||||||
 | 
					          git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
 | 
				
			||||||
 | 
					          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
				
			||||||
          if [ -n "$PR_NUMBER" ]; then
 | 
					          if [ -n "$PR_NUMBER" ]; then
 | 
				
			||||||
            gh pr review $PR_NUMBER --approve
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
 | 
					            gh pr merge $PR_NUMBER --squash --admin
 | 
				
			||||||
          fi
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Step 8: Output success message when no changes
 | 
					      # Step 8: Output success message when no changes
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.github/workflows/autolabeler.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/autolabeler.yml
									
									
									
									
										vendored
									
									
								
							@@ -7,6 +7,7 @@ on:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  autolabeler:
 | 
					  autolabeler:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
      pull-requests: write
 | 
					      pull-requests: write
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										21
									
								
								.github/workflows/changelog-pr.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								.github/workflows/changelog-pr.yml
									
									
									
									
										vendored
									
									
								
							@@ -7,6 +7,7 @@ on:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  update-changelog-pull-request:
 | 
					  update-changelog-pull-request:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
    env:
 | 
					    env:
 | 
				
			||||||
      CONFIG_PATH: .github/changelog-pr-config.json
 | 
					      CONFIG_PATH: .github/changelog-pr-config.json
 | 
				
			||||||
@@ -23,6 +24,13 @@ jobs:
 | 
				
			|||||||
          app-id: ${{ vars.APP_ID }}
 | 
					          app-id: ${{ vars.APP_ID }}
 | 
				
			||||||
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
					          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Generate a token for PR approval and merge
 | 
				
			||||||
 | 
					        id: generate-token-merge
 | 
				
			||||||
 | 
					        uses: actions/create-github-app-token@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
 | 
				
			||||||
 | 
					          private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Checkout code
 | 
					      - name: Checkout code
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -176,7 +184,7 @@ jobs:
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return await main();
 | 
					            return await main();
 | 
				
			||||||
            
 | 
					
 | 
				
			||||||
      - name: Update CHANGELOG.md
 | 
					      - name: Update CHANGELOG.md
 | 
				
			||||||
        uses: actions/github-script@v7
 | 
					        uses: actions/github-script@v7
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -201,7 +209,7 @@ jobs:
 | 
				
			|||||||
              if (hasMainNotes || hasSubNotes) {
 | 
					              if (hasMainNotes || hasSubNotes) {
 | 
				
			||||||
                newReleaseNotes += `### ${title}\n\n`;
 | 
					                newReleaseNotes += `### ${title}\n\n`;
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
            
 | 
					
 | 
				
			||||||
              if (hasMainNotes) {
 | 
					              if (hasMainNotes) {
 | 
				
			||||||
                newReleaseNotes += `  ${notes.join("\n")}\n\n`;
 | 
					                newReleaseNotes += `  ${notes.join("\n")}\n\n`;
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
@@ -263,12 +271,15 @@ jobs:
 | 
				
			|||||||
            gh pr review $PR_NUMBER --approve
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
          fi
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Re-approve pull request after update
 | 
					      - name: Approve pull request and merge
 | 
				
			||||||
        if: env.changed == 'true'
 | 
					        if: env.changed == 'true'
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
					          GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
 | 
					          git config --global user.name "github-actions-automege[bot]"
 | 
				
			||||||
 | 
					          git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
 | 
				
			||||||
          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
					          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
				
			||||||
          if [ -n "$PR_NUMBER" ]; then
 | 
					          if [ -n "$PR_NUMBER" ]; then
 | 
				
			||||||
            gh pr review $PR_NUMBER --approve
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
          fi
 | 
					            gh pr merge $PR_NUMBER --squash --admin
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										108
									
								
								.github/workflows/close-discussion.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										108
									
								
								.github/workflows/close-discussion.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,66 +1,98 @@
 | 
				
			|||||||
name: Close Discussion on PR Merge
 | 
					name: Close Discussion on PR Merge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
on:
 | 
					on:
 | 
				
			||||||
  pull_request:
 | 
					  push:
 | 
				
			||||||
    types: [closed]
 | 
					    branches:
 | 
				
			||||||
 | 
					      - main
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					permissions:
 | 
				
			||||||
 | 
					  contents: read
 | 
				
			||||||
 | 
					  discussions: write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  close-discussion:
 | 
					  close-discussion:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout Repository
 | 
					      - name: Checkout Repository
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
        with:
 | 
					 | 
				
			||||||
          repository: community-scripts/ProxmoxVE
 | 
					 | 
				
			||||||
          ref: main
 | 
					 | 
				
			||||||
          token: ${{ secrets.GITHUB_TOKEN }}  
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Set Up Node.js
 | 
					      - name: Set Up Node.js
 | 
				
			||||||
        uses: actions/setup-node@v4
 | 
					        uses: actions/setup-node@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          node-version: "20"
 | 
					          node-version: "20"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Install Dependencies
 | 
					      - name: Install Dependencies
 | 
				
			||||||
        run: npm install zx @octokit/graphql
 | 
					        run: npm install zx @octokit/graphql
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Close Discussion
 | 
					      - name: Close Discussion
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
          GITHUB_TOKEN: ${{ secrets.PAT_MICHEL }}
 | 
					          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
          PR_BODY: ${{ github.event.pull_request.body }}
 | 
					          GITHUB_SHA: ${{ github.sha }}
 | 
				
			||||||
          PR_NUMBER: ${{ github.event.pull_request.number }}
 | 
					          GITHUB_REPOSITORY: ${{ github.repository }}
 | 
				
			||||||
          REPO_OWNER: ${{ github.repository_owner }}
 | 
					 | 
				
			||||||
          REPO_NAME: ${{ github.event.repository.name }}
 | 
					 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          npx zx << 'EOF'
 | 
					          npx zx << 'EOF'
 | 
				
			||||||
          import { graphql } from "@octokit/graphql";
 | 
					          import { graphql } from "@octokit/graphql";
 | 
				
			||||||
          (async function() {
 | 
					
 | 
				
			||||||
 | 
					          (async function () {
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
              const token = process.env.GITHUB_TOKEN;
 | 
					              const token = process.env.GITHUB_TOKEN;
 | 
				
			||||||
              const prBody = process.env.PR_BODY;
 | 
					              const commitSha = process.env.GITHUB_SHA;
 | 
				
			||||||
              const prNumber = process.env.PR_NUMBER;
 | 
					              const [owner, repo] = process.env.GITHUB_REPOSITORY.split("/");
 | 
				
			||||||
              const owner = process.env.REPO_OWNER;
 | 
					 | 
				
			||||||
              const repo = process.env.REPO_NAME;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
              if (!token || !prBody || !prNumber || !owner || !repo) {
 | 
					              if (!token || !commitSha || !owner || !repo) {
 | 
				
			||||||
                console.log("Missing required environment variables.");
 | 
					                console.log("Missing required environment variables.");
 | 
				
			||||||
                process.exit(1);
 | 
					                process.exit(1);
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              const graphqlWithAuth = graphql.defaults({
 | 
				
			||||||
 | 
					                headers: { authorization: `Bearer ${token}` },
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              // Find PR from commit SHA
 | 
				
			||||||
 | 
					              const searchQuery = `
 | 
				
			||||||
 | 
					                query($owner: String!, $repo: String!, $sha: GitObjectID!) {
 | 
				
			||||||
 | 
					                  repository(owner: $owner, name: $repo) {
 | 
				
			||||||
 | 
					                    object(oid: $sha) {
 | 
				
			||||||
 | 
					                      ... on Commit {
 | 
				
			||||||
 | 
					                        associatedPullRequests(first: 1) {
 | 
				
			||||||
 | 
					                          nodes {
 | 
				
			||||||
 | 
					                            number
 | 
				
			||||||
 | 
					                            body
 | 
				
			||||||
 | 
					                          }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                      }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                  }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              `;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              const prResult = await graphqlWithAuth(searchQuery, {
 | 
				
			||||||
 | 
					                owner,
 | 
				
			||||||
 | 
					                repo,
 | 
				
			||||||
 | 
					                sha: commitSha,
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              const pr = prResult.repository.object.associatedPullRequests.nodes[0];
 | 
				
			||||||
 | 
					              if (!pr) {
 | 
				
			||||||
 | 
					                console.log("No PR found for this commit.");
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              const prNumber = pr.number;
 | 
				
			||||||
 | 
					              const prBody = pr.body;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              const match = prBody.match(/#(\d+)/);
 | 
					              const match = prBody.match(/#(\d+)/);
 | 
				
			||||||
              if (!match) {
 | 
					              if (!match) {
 | 
				
			||||||
                console.log("No discussion ID found in PR body.");
 | 
					                console.log("No discussion ID found in PR body.");
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              const discussionNumber = match[1];
 | 
					              const discussionNumber = match[1];
 | 
				
			||||||
 | 
					 | 
				
			||||||
              console.log(`Extracted Discussion Number: ${discussionNumber}`);
 | 
					              console.log(`Extracted Discussion Number: ${discussionNumber}`);
 | 
				
			||||||
              console.log(`PR Number: ${prNumber}`);
 | 
					 | 
				
			||||||
              console.log(`Repository: ${owner}/${repo}`);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              const graphqlWithAuth = graphql.defaults({
 | 
					 | 
				
			||||||
                headers: { authorization: `Bearer ${token}` },
 | 
					 | 
				
			||||||
              });
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              // Fetch GraphQL discussion ID
 | 
				
			||||||
              const discussionQuery = `
 | 
					              const discussionQuery = `
 | 
				
			||||||
                query($owner: String!, $repo: String!, $number: Int!) {
 | 
					                query($owner: String!, $repo: String!, $number: Int!) {
 | 
				
			||||||
                  repository(owner: $owner, name: $repo) {
 | 
					                  repository(owner: $owner, name: $repo) {
 | 
				
			||||||
@@ -70,21 +102,26 @@ jobs:
 | 
				
			|||||||
                  }
 | 
					                  }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
              `;
 | 
					              `;
 | 
				
			||||||
              
 | 
					
 | 
				
			||||||
              const discussionResponse = await graphqlWithAuth(discussionQuery, {
 | 
					              //
 | 
				
			||||||
 | 
					              try {
 | 
				
			||||||
 | 
					                const discussionResponse = await graphqlWithAuth(discussionQuery, {
 | 
				
			||||||
                  owner,
 | 
					                  owner,
 | 
				
			||||||
                  repo,
 | 
					                  repo,
 | 
				
			||||||
                  number: parseInt(discussionNumber, 10),
 | 
					                  number: parseInt(discussionNumber, 10),
 | 
				
			||||||
              });              
 | 
					                });
 | 
				
			||||||
              
 | 
					
 | 
				
			||||||
              const discussionQLId = discussionResponse.repository.discussion.id;
 | 
					                const discussionQLId = discussionResponse.repository.discussion.id;
 | 
				
			||||||
              if (!discussionQLId) {
 | 
					                if (!discussionQLId) {
 | 
				
			||||||
                console.log("Failed to fetch discussion GraphQL ID.");
 | 
					                  console.log("Failed to fetch discussion GraphQL ID.");
 | 
				
			||||||
 | 
					                  return;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					              } catch (error) {
 | 
				
			||||||
 | 
					                console.error("Discussion not found or error occurred while fetching discussion:", error);
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              console.log(`GraphQL Discussion ID: ${discussionQLId}`);
 | 
					              // Post comment
 | 
				
			||||||
              
 | 
					 | 
				
			||||||
              const commentMutation = `
 | 
					              const commentMutation = `
 | 
				
			||||||
                mutation($discussionId: ID!, $body: String!) {
 | 
					                mutation($discussionId: ID!, $body: String!) {
 | 
				
			||||||
                  addDiscussionComment(input: { discussionId: $discussionId, body: $body }) {
 | 
					                  addDiscussionComment(input: { discussionId: $discussionId, body: $body }) {
 | 
				
			||||||
@@ -106,6 +143,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
              console.log(`Comment Posted Successfully! Comment ID: ${commentId}`);
 | 
					              console.log(`Comment Posted Successfully! Comment ID: ${commentId}`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              // Mark comment as answer
 | 
				
			||||||
              const markAnswerMutation = `
 | 
					              const markAnswerMutation = `
 | 
				
			||||||
                mutation($id: ID!) {
 | 
					                mutation($id: ID!) {
 | 
				
			||||||
                  markDiscussionCommentAsAnswer(input: { id: $id }) {
 | 
					                  markDiscussionCommentAsAnswer(input: { id: $id }) {
 | 
				
			||||||
@@ -120,7 +158,7 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            } catch (error) {
 | 
					            } catch (error) {
 | 
				
			||||||
              console.error("Error:", error);
 | 
					              console.error("Error:", error);
 | 
				
			||||||
              return;
 | 
					              process.exit(1);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          })();
 | 
					          })();
 | 
				
			||||||
          EOF
 | 
					          EOF
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								.github/workflows/close-ttek-issues.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								.github/workflows/close-ttek-issues.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					name: Auto-Close tteck Issues
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  issues:
 | 
				
			||||||
 | 
					    types: [opened]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  close_tteck_issues:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Auto-close if tteck script detected
 | 
				
			||||||
 | 
					        uses: actions/github-script@v7
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          script: |
 | 
				
			||||||
 | 
					            const issue = context.payload.issue;
 | 
				
			||||||
 | 
					            const content = `${issue.title}\n${issue.body}`;
 | 
				
			||||||
 | 
					            const issueNumber = issue.number;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Check for tteck script mention
 | 
				
			||||||
 | 
					            if (content.includes("tteck") || content.includes("tteck/Proxmox")) {
 | 
				
			||||||
 | 
					              const message = `Hello, it looks like you are referencing the **old tteck repo**.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            This repository is no longer used for active scripts.
 | 
				
			||||||
 | 
					            **Please update your bookmarks** and use: [https://helper-scripts.com](https://helper-scripts.com)
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					            Also make sure your Bash command starts with:
 | 
				
			||||||
 | 
					            \`\`\`bash
 | 
				
			||||||
 | 
					            bash <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/...)
 | 
				
			||||||
 | 
					            \`\`\`
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            This issue is being closed automatically.`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              await github.rest.issues.createComment({
 | 
				
			||||||
 | 
					                ...context.repo,
 | 
				
			||||||
 | 
					                issue_number: issueNumber,
 | 
				
			||||||
 | 
					                body: message
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              // Optionally apply a label like "not planned"
 | 
				
			||||||
 | 
					              await github.rest.issues.addLabels({
 | 
				
			||||||
 | 
					                ...context.repo,
 | 
				
			||||||
 | 
					                issue_number: issueNumber,
 | 
				
			||||||
 | 
					                labels: ["not planned"]
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              // Close the issue
 | 
				
			||||||
 | 
					              await github.rest.issues.update({
 | 
				
			||||||
 | 
					                ...context.repo,
 | 
				
			||||||
 | 
					                issue_number: issueNumber,
 | 
				
			||||||
 | 
					                state: "closed"
 | 
				
			||||||
 | 
					              });
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
							
								
								
									
										2
									
								
								.github/workflows/close_issue_in_dev.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/close_issue_in_dev.yaml
									
									
									
									
										vendored
									
									
								
							@@ -5,7 +5,7 @@ on:
 | 
				
			|||||||
      - closed
 | 
					      - closed
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  close_issue:
 | 
					  close_issue:
 | 
				
			||||||
    if: github.event.pull_request.merged == true
 | 
					    if: github.event.pull_request.merged == true && github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										12
									
								
								.github/workflows/crawl-versions.yaml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/crawl-versions.yaml
									
									
									
									
										vendored
									
									
								
							@@ -12,6 +12,7 @@ permissions:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  crawl-versions:
 | 
					  crawl-versions:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
@@ -103,6 +104,17 @@ jobs:
 | 
				
			|||||||
            gh pr review $PR_NUMBER --approve
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
          fi
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Approve pull request and merge
 | 
				
			||||||
 | 
					        if: env.changed == 'true'
 | 
				
			||||||
 | 
					        env:
 | 
				
			||||||
 | 
					          GH_TOKEN: ${{ secrets.PAT_AUTOMERGE }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          PR_NUMBER=$(gh pr list --head "update_versions" --json number --jq '.[].number')
 | 
				
			||||||
 | 
					          if [ -n "$PR_NUMBER" ]; then
 | 
				
			||||||
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
 | 
					            gh pr merge $PR_NUMBER --squash --admin
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Re-approve pull request after update
 | 
					      - name: Re-approve pull request after update
 | 
				
			||||||
        if: env.changed == 'true'
 | 
					        if: env.changed == 'true'
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,7 @@ on:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  build:
 | 
					  build:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: ubuntu-latest #To ensure it always builds we use the github runner with all the right tooling
 | 
					    runs-on: ubuntu-latest #To ensure it always builds we use the github runner with all the right tooling
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								.github/workflows/delete-json-branch.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/delete-json-branch.yml
									
									
									
									
										vendored
									
									
								
							@@ -9,6 +9,7 @@ on:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  delete_branch:
 | 
					  delete_branch:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout the code
 | 
					      - name: Checkout the code
 | 
				
			||||||
@@ -25,4 +26,4 @@ jobs:
 | 
				
			|||||||
            git push origin --delete "$PR_BRANCH"
 | 
					            git push origin --delete "$PR_BRANCH"
 | 
				
			||||||
          else
 | 
					          else
 | 
				
			||||||
            echo "Skipping deletion of the main branch"
 | 
					            echo "Skipping deletion of the main branch"
 | 
				
			||||||
          fi
 | 
					          fi
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								.github/workflows/frontend-cicd.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/frontend-cicd.yml
									
									
									
									
										vendored
									
									
								
							@@ -25,6 +25,7 @@ concurrency:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  build:
 | 
					  build:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
    defaults:
 | 
					    defaults:
 | 
				
			||||||
      run:
 | 
					      run:
 | 
				
			||||||
@@ -63,7 +64,7 @@ jobs:
 | 
				
			|||||||
  deploy:
 | 
					  deploy:
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    needs: build
 | 
					    needs: build
 | 
				
			||||||
    if: github.ref == 'refs/heads/main'
 | 
					    if: github.ref == 'refs/heads/main' && github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
      pages: write
 | 
					      pages: write
 | 
				
			||||||
      id-token: write
 | 
					      id-token: write
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.github/workflows/github-release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/github-release.yml
									
									
									
									
										vendored
									
									
								
							@@ -7,6 +7,7 @@ on:
 | 
				
			|||||||
  
 | 
					  
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  create-daily-release:
 | 
					  create-daily-release:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
      contents: write
 | 
					      contents: write
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.github/workflows/script-test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/script-test.yml
									
									
									
									
										vendored
									
									
								
							@@ -11,6 +11,7 @@ on:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  run-install-script:
 | 
					  run-install-script:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: pvenode
 | 
					    runs-on: pvenode
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout PR branch
 | 
					      - name: Checkout PR branch
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.github/workflows/script_format.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/script_format.yml
									
									
									
									
										vendored
									
									
								
							@@ -11,6 +11,7 @@ on:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  run-install-script:
 | 
					  run-install-script:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: pvenode
 | 
					    runs-on: pvenode
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Checkout PR branch (supports forks)
 | 
					      - name: Checkout PR branch (supports forks)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -72,8 +72,7 @@ network_check() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
update_os() {
 | 
					update_os() {
 | 
				
			||||||
  msg_info "Updating Container OS"
 | 
					  msg_info "Updating Container OS"
 | 
				
			||||||
  apk update
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
  apk upgrade
 | 
					 | 
				
			||||||
  msg_ok "Updated Container OS"
 | 
					  msg_ok "Updated Container OS"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -83,4 +82,4 @@ motd_ssh() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
customize() {
 | 
					customize() {
 | 
				
			||||||
  return
 | 
					  return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,34 +1,50 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Base directory for headers
 | 
					# Function for generating Figlet headers
 | 
				
			||||||
headers_dir="./ct/headers"
 | 
					generate_headers() {
 | 
				
			||||||
 | 
					  local base_dir=$1
 | 
				
			||||||
 | 
					  local target_subdir=$2
 | 
				
			||||||
 | 
					  local search_pattern=$3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Ensure the headers directory exists and clear it
 | 
					  local headers_dir="${base_dir}/headers"
 | 
				
			||||||
mkdir -p "$headers_dir"
 | 
					  mkdir -p "$headers_dir"
 | 
				
			||||||
rm -f "$headers_dir"/*
 | 
					  rm -f "$headers_dir"/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Find all .sh files in ./ct directory, sorted alphabetically
 | 
					  # Recursive or non-recursive search
 | 
				
			||||||
find ./ct -type f -name "*.sh" | sort | while read -r script; do
 | 
					  if [[ "$search_pattern" == "**" ]]; then
 | 
				
			||||||
  # Extract the APP name from the APP line
 | 
					    shopt -s globstar nullglob
 | 
				
			||||||
  app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
 | 
					    file_list=("${base_dir}"/**/*.sh)
 | 
				
			||||||
 | 
					    shopt -u globstar
 | 
				
			||||||
  if [[ -n "$app_name" ]]; then
 | 
					 | 
				
			||||||
    # Define the output file name in the headers directory
 | 
					 | 
				
			||||||
    output_file="${headers_dir}/$(basename "${script%.*}")"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Generate figlet output
 | 
					 | 
				
			||||||
    figlet_output=$(figlet -w 500 -f slant "$app_name")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Check if figlet output is not empty
 | 
					 | 
				
			||||||
    if [[ -n "$figlet_output" ]]; then
 | 
					 | 
				
			||||||
      echo "$figlet_output" > "$output_file"
 | 
					 | 
				
			||||||
      echo "Generated: $output_file"
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      echo "Figlet failed for $app_name in $script"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    echo "No APP name found in $script, skipping."
 | 
					    file_list=("${base_dir}"/*.sh)
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "Completed processing .sh files."
 | 
					  for script in "${file_list[@]}"; do
 | 
				
			||||||
 | 
					    [[ -f "$script" ]] || continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
 | 
				
			||||||
 | 
					    if [[ -n "$app_name" ]]; then
 | 
				
			||||||
 | 
					      output_file="${headers_dir}/$(basename "${script%.*}")"
 | 
				
			||||||
 | 
					      figlet_output=$(figlet -w 500 -f slant "$app_name")
 | 
				
			||||||
 | 
					      if [[ -n "$figlet_output" ]]; then
 | 
				
			||||||
 | 
					        echo "$figlet_output" >"$output_file"
 | 
				
			||||||
 | 
					        echo "Generated: $output_file"
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        echo "Figlet failed for $app_name in $script"
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      echo "No APP name found in $script, skipping."
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ct
 | 
				
			||||||
 | 
					generate_headers "./ct" "headers" "*"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# tools (addon, pve, ...)
 | 
				
			||||||
 | 
					generate_headers "./tools" "headers" "**"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vm
 | 
				
			||||||
 | 
					generate_headers "./vm" "headers" "*"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Completed processing all sections."
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										33
									
								
								.github/workflows/update-json-date.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								.github/workflows/update-json-date.yml
									
									
									
									
										vendored
									
									
								
							@@ -5,11 +5,12 @@ on:
 | 
				
			|||||||
    branches:
 | 
					    branches:
 | 
				
			||||||
      - main
 | 
					      - main
 | 
				
			||||||
    paths:
 | 
					    paths:
 | 
				
			||||||
      - 'frontend/public/json/**.json'
 | 
					      - "frontend/public/json/**.json"
 | 
				
			||||||
  workflow_dispatch: 
 | 
					  workflow_dispatch:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  update-app-files:
 | 
					  update-app-files:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
@@ -24,10 +25,17 @@ jobs:
 | 
				
			|||||||
          app-id: ${{ vars.APP_ID }}
 | 
					          app-id: ${{ vars.APP_ID }}
 | 
				
			||||||
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
					          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Generate a token for PR approval and merge
 | 
				
			||||||
 | 
					        id: generate-token-merge
 | 
				
			||||||
 | 
					        uses: actions/create-github-app-token@v1
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          app-id: ${{ secrets.APP_ID_APPROVE_AND_MERGE }}
 | 
				
			||||||
 | 
					          private-key: ${{ secrets.APP_KEY_APPROVE_AND_MERGE }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Generate dynamic branch name
 | 
					      - name: Generate dynamic branch name
 | 
				
			||||||
        id: timestamp
 | 
					        id: timestamp
 | 
				
			||||||
        run: echo "BRANCH_NAME=pr-update-json-$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
 | 
					        run: echo "BRANCH_NAME=pr-update-json-$(date +'%Y%m%d%H%M%S')" >> $GITHUB_ENV
 | 
				
			||||||
      
 | 
					
 | 
				
			||||||
      - name: Set up GH_TOKEN
 | 
					      - name: Set up GH_TOKEN
 | 
				
			||||||
        env:
 | 
					        env:
 | 
				
			||||||
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
					          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
@@ -37,7 +45,7 @@ jobs:
 | 
				
			|||||||
      - name: Checkout Repository
 | 
					      - name: Checkout Repository
 | 
				
			||||||
        uses: actions/checkout@v4
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          fetch-depth: 2  # Ensure we have the last two commits
 | 
					          fetch-depth: 2 # Ensure we have the last two commits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Get Previous Commit
 | 
					      - name: Get Previous Commit
 | 
				
			||||||
        id: prev_commit
 | 
					        id: prev_commit
 | 
				
			||||||
@@ -102,8 +110,8 @@ jobs:
 | 
				
			|||||||
      - name: Commit and create PR if changes exist
 | 
					      - name: Commit and create PR if changes exist
 | 
				
			||||||
        if: env.changed == 'true'
 | 
					        if: env.changed == 'true'
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
         
 | 
					
 | 
				
			||||||
          
 | 
					
 | 
				
			||||||
          git commit -m "Update date in json"
 | 
					          git commit -m "Update date in json"
 | 
				
			||||||
          git checkout -b ${{ env.BRANCH_NAME }}
 | 
					          git checkout -b ${{ env.BRANCH_NAME }}
 | 
				
			||||||
          git push origin ${{ env.BRANCH_NAME }}
 | 
					          git push origin ${{ env.BRANCH_NAME }}
 | 
				
			||||||
@@ -126,6 +134,19 @@ jobs:
 | 
				
			|||||||
            gh pr review $PR_NUMBER --approve
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
          fi
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - name: Approve pull request and merge
 | 
				
			||||||
 | 
					        if: env.changed == 'true'
 | 
				
			||||||
 | 
					        env:
 | 
				
			||||||
 | 
					          GH_TOKEN: ${{ steps.generate-token-merge.outputs.token }}
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          git config --global user.name "github-actions-automege[bot]"
 | 
				
			||||||
 | 
					          git config --global user.email "github-actions-automege[bot]@users.noreply.github.com"
 | 
				
			||||||
 | 
					          PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
 | 
				
			||||||
 | 
					          if [ -n "$PR_NUMBER" ]; then
 | 
				
			||||||
 | 
					            gh pr review $PR_NUMBER --approve
 | 
				
			||||||
 | 
					            gh pr merge $PR_NUMBER --squash --admin
 | 
				
			||||||
 | 
					          fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: No changes detected
 | 
					      - name: No changes detected
 | 
				
			||||||
        if: env.changed == 'false'
 | 
					        if: env.changed == 'false'
 | 
				
			||||||
        run: echo "No changes to commit. Workflow completed successfully."
 | 
					        run: echo "No changes to commit. Workflow completed successfully."
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.github/workflows/validate-filenames.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/validate-filenames.yml
									
									
									
									
										vendored
									
									
								
							@@ -9,6 +9,7 @@ on:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  check-files:
 | 
					  check-files:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    name: Check changed files
 | 
					    name: Check changed files
 | 
				
			||||||
    runs-on: runner-cluster-htl-set
 | 
					    runs-on: runner-cluster-htl-set
 | 
				
			||||||
    permissions:
 | 
					    permissions:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -74,3 +74,4 @@ json/.vscode/
 | 
				
			|||||||
# Ignore repository metadata or Git itself
 | 
					# Ignore repository metadata or Git itself
 | 
				
			||||||
.git/
 | 
					.git/
 | 
				
			||||||
.gitignore
 | 
					.gitignore
 | 
				
			||||||
 | 
					.vscode/settings.json
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1084
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										1084
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -3,6 +3,7 @@ This project currently supports the following versions of Proxmox VE:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
| Version | Supported          |
 | 
					| Version | Supported          |
 | 
				
			||||||
| ------- | ------------------ |
 | 
					| ------- | ------------------ |
 | 
				
			||||||
 | 
					| 8.4.x   | :white_check_mark: |
 | 
				
			||||||
| 8.3.x   | :white_check_mark: |
 | 
					| 8.3.x   | :white_check_mark: |
 | 
				
			||||||
| 8.2.x   | :white_check_mark: |
 | 
					| 8.2.x   | :white_check_mark: |
 | 
				
			||||||
| 8.1.x   | :white_check_mark: |
 | 
					| 8.1.x   | :white_check_mark: |
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										27
									
								
								api/go.mod
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								api/go.mod
									
									
									
									
									
								
							@@ -2,31 +2,22 @@ module proxmox-api
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
go 1.23.2
 | 
					go 1.23.2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require go.mongodb.org/mongo-driver v1.17.2
 | 
					require (
 | 
				
			||||||
 | 
						github.com/gorilla/mux v1.8.1
 | 
				
			||||||
 | 
						github.com/joho/godotenv v1.5.1
 | 
				
			||||||
 | 
						github.com/rs/cors v1.11.1
 | 
				
			||||||
 | 
						go.mongodb.org/mongo-driver v1.17.2
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require (
 | 
					require (
 | 
				
			||||||
	filippo.io/edwards25519 v1.1.0 // indirect
 | 
					 | 
				
			||||||
	github.com/go-sql-driver/mysql v1.8.1 // indirect
 | 
					 | 
				
			||||||
	github.com/golang/snappy v0.0.4 // indirect
 | 
						github.com/golang/snappy v0.0.4 // indirect
 | 
				
			||||||
	github.com/gorilla/mux v1.8.1 // indirect
 | 
					 | 
				
			||||||
	github.com/jackc/pgpassfile v1.0.0 // indirect
 | 
					 | 
				
			||||||
	github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
 | 
					 | 
				
			||||||
	github.com/jackc/pgx/v5 v5.7.2 // indirect
 | 
					 | 
				
			||||||
	github.com/jackc/puddle/v2 v2.2.2 // indirect
 | 
					 | 
				
			||||||
	github.com/jinzhu/inflection v1.0.0 // indirect
 | 
					 | 
				
			||||||
	github.com/jinzhu/now v1.1.5 // indirect
 | 
					 | 
				
			||||||
	github.com/joho/godotenv v1.5.1 // indirect
 | 
					 | 
				
			||||||
	github.com/klauspost/compress v1.16.7 // indirect
 | 
						github.com/klauspost/compress v1.16.7 // indirect
 | 
				
			||||||
	github.com/montanaflynn/stats v0.7.1 // indirect
 | 
						github.com/montanaflynn/stats v0.7.1 // indirect
 | 
				
			||||||
	github.com/rs/cors v1.11.1 // indirect
 | 
					 | 
				
			||||||
	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
 | 
						github.com/xdg-go/pbkdf2 v1.0.0 // indirect
 | 
				
			||||||
	github.com/xdg-go/scram v1.1.2 // indirect
 | 
						github.com/xdg-go/scram v1.1.2 // indirect
 | 
				
			||||||
	github.com/xdg-go/stringprep v1.0.4 // indirect
 | 
						github.com/xdg-go/stringprep v1.0.4 // indirect
 | 
				
			||||||
	github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
 | 
						github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
 | 
				
			||||||
	golang.org/x/crypto v0.32.0 // indirect
 | 
						golang.org/x/crypto v0.35.0 // indirect
 | 
				
			||||||
	golang.org/x/sync v0.10.0 // indirect
 | 
						golang.org/x/sync v0.11.0 // indirect
 | 
				
			||||||
	golang.org/x/text v0.21.0 // indirect
 | 
						golang.org/x/text v0.22.0 // indirect
 | 
				
			||||||
	gorm.io/driver/mysql v1.5.7 // indirect
 | 
					 | 
				
			||||||
	gorm.io/driver/postgres v1.5.11 // indirect
 | 
					 | 
				
			||||||
	gorm.io/gorm v1.25.12 // indirect
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										47
									
								
								api/go.sum
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								api/go.sum
									
									
									
									
									
								
							@@ -1,37 +1,19 @@
 | 
				
			|||||||
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
 | 
					github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 | 
				
			||||||
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
 | 
					github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
				
			||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 | 
					 | 
				
			||||||
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
 | 
					 | 
				
			||||||
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
 | 
					 | 
				
			||||||
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
 | 
					 | 
				
			||||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
 | 
					github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
 | 
				
			||||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 | 
					github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
 | 
				
			||||||
 | 
					github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
 | 
				
			||||||
 | 
					github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 | 
				
			||||||
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
 | 
					github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
 | 
				
			||||||
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
 | 
					github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
 | 
				
			||||||
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
 | 
					 | 
				
			||||||
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
 | 
					 | 
				
			||||||
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
 | 
					 | 
				
			||||||
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
 | 
					 | 
				
			||||||
github.com/jackc/pgx/v5 v5.7.2 h1:mLoDLV6sonKlvjIEsV56SkWNCnuNv531l94GaIzO+XI=
 | 
					 | 
				
			||||||
github.com/jackc/pgx/v5 v5.7.2/go.mod h1:ncY89UGWxg82EykZUwSpUKEfccBGGYq1xjrOpsbsfGQ=
 | 
					 | 
				
			||||||
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
 | 
					 | 
				
			||||||
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
 | 
					 | 
				
			||||||
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
 | 
					 | 
				
			||||||
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
 | 
					 | 
				
			||||||
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
 | 
					 | 
				
			||||||
github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
 | 
					 | 
				
			||||||
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
 | 
					github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
 | 
				
			||||||
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
 | 
					github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
 | 
				
			||||||
github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
 | 
					github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
 | 
				
			||||||
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 | 
					github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 | 
				
			||||||
github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=
 | 
					github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=
 | 
				
			||||||
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
 | 
					github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
 | 
				
			||||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 | 
					 | 
				
			||||||
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
 | 
					github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
 | 
				
			||||||
github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
 | 
					github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
 | 
				
			||||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 | 
					 | 
				
			||||||
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
 | 
					github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
 | 
				
			||||||
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
 | 
					github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
 | 
				
			||||||
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
 | 
					github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
 | 
				
			||||||
@@ -45,16 +27,16 @@ go.mongodb.org/mongo-driver v1.17.2 h1:gvZyk8352qSfzyZ2UMWcpDpMSGEr1eqE4T793Sqyh
 | 
				
			|||||||
go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
 | 
					go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
					golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
				
			||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 | 
					golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 | 
				
			||||||
golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
 | 
					golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
 | 
				
			||||||
golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
 | 
					golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
 | 
				
			||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 | 
					golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
 | 
				
			||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
				
			||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
					golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 | 
				
			||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 | 
					golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
 | 
				
			||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
				
			||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
				
			||||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
 | 
					golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
 | 
				
			||||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 | 
					golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
				
			||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
					golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 | 
				
			||||||
@@ -66,18 +48,9 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 | 
				
			|||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
					golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 | 
				
			||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 | 
					golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 | 
				
			||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 | 
					golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
 | 
				
			||||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
 | 
					golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
 | 
				
			||||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
 | 
					golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
 | 
				
			||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
					golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 | 
				
			||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
					golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 | 
				
			||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 | 
					golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
 | 
				
			||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
					golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 | 
				
			||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 | 
					 | 
				
			||||||
gorm.io/driver/mysql v1.5.7 h1:MndhOPYOfEp2rHKgkZIhJ16eVUIRf2HmzgoPmh7FCWo=
 | 
					 | 
				
			||||||
gorm.io/driver/mysql v1.5.7/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM=
 | 
					 | 
				
			||||||
gorm.io/driver/postgres v1.5.11 h1:ubBVAfbKEUld/twyKZ0IYn9rSQh448EdelLYk9Mv314=
 | 
					 | 
				
			||||||
gorm.io/driver/postgres v1.5.11/go.mod h1:DX3GReXH+3FPWGrrgffdvCk3DQ1dwDPdmbenSkweRGI=
 | 
					 | 
				
			||||||
gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
 | 
					 | 
				
			||||||
gorm.io/gorm v1.25.12 h1:I0u8i2hWQItBq1WfE0o2+WuL9+8L21K9e2HHSTE/0f8=
 | 
					 | 
				
			||||||
gorm.io/gorm v1.25.12/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										158
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							
							
						
						
									
										158
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://docs.2fauth.app/
 | 
					# Source: https://docs.2fauth.app/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="2FAuth"
 | 
					APP="2FAuth"
 | 
				
			||||||
var_tags="2fa;authenticator"
 | 
					var_tags="${var_tags:-2fa;authenticator}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -20,79 +20,79 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    header_info
 | 
					  header_info
 | 
				
			||||||
    check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
    check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Check if installation is present | -f for file, -d for folder
 | 
					  # Check if installation is present | -f for file, -d for folder
 | 
				
			||||||
    if [[ ! -d "/opt/2fauth" ]]; then
 | 
					  if [[ ! -d "/opt/2fauth" ]]; then
 | 
				
			||||||
        msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
        exit
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Crawling the new version and checking whether an update is required
 | 
					 | 
				
			||||||
    RELEASE=$(curl -fsSL 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}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $STD apt-get update
 | 
					 | 
				
			||||||
        $STD apt-get -y upgrade
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Creating Backup
 | 
					 | 
				
			||||||
        msg_info "Creating Backup"
 | 
					 | 
				
			||||||
        mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
					 | 
				
			||||||
        if ! dpkg -l | grep -q 'php8.3'; then
 | 
					 | 
				
			||||||
            cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        msg_ok "Backup Created"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Upgrade PHP
 | 
					 | 
				
			||||||
        if ! dpkg -l | grep -q 'php8.3'; then
 | 
					 | 
				
			||||||
            $STD apt-get install -y \
 | 
					 | 
				
			||||||
                lsb-release \
 | 
					 | 
				
			||||||
                gpg
 | 
					 | 
				
			||||||
            curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
 | 
					 | 
				
			||||||
            echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
 | 
					 | 
				
			||||||
            $STD apt-get update
 | 
					 | 
				
			||||||
            $STD apt-get install -y php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli,intl}
 | 
					 | 
				
			||||||
            sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Execute Update
 | 
					 | 
				
			||||||
        curl -fsSL -o "${RELEASE}.zip" "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
 | 
					 | 
				
			||||||
        $STD composer install --no-dev --prefer-source
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        php artisan 2fauth:install
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $STD systemctl restart nginx
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Cleaning up
 | 
					 | 
				
			||||||
        msg_info "Cleaning Up"
 | 
					 | 
				
			||||||
        rm -rf "v${RELEASE}.zip"
 | 
					 | 
				
			||||||
        if dpkg -l | grep -q 'php8.2'; then
 | 
					 | 
				
			||||||
            $STD apt-get remove --purge -y php8.2*
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        $STD apt-get -y autoremove
 | 
					 | 
				
			||||||
        $STD apt-get -y autoclean
 | 
					 | 
				
			||||||
        msg_ok "Cleanup Completed"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # 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
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Crawling the new version and checking whether an update is required
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL 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}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $STD apt-get update
 | 
				
			||||||
 | 
					    $STD apt-get -y upgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Creating Backup
 | 
				
			||||||
 | 
					    msg_info "Creating Backup"
 | 
				
			||||||
 | 
					    mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
				
			||||||
 | 
					    if ! dpkg -l | grep -q 'php8.3'; then
 | 
				
			||||||
 | 
					      cp /etc/nginx/conf.d/2fauth.conf /etc/nginx/conf.d/2fauth.conf.bak
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    msg_ok "Backup Created"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Upgrade PHP
 | 
				
			||||||
 | 
					    if ! dpkg -l | grep -q 'php8.3'; then
 | 
				
			||||||
 | 
					      $STD apt-get install -y \
 | 
				
			||||||
 | 
					        lsb-release \
 | 
				
			||||||
 | 
					        gpg
 | 
				
			||||||
 | 
					      curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg
 | 
				
			||||||
 | 
					      echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" >/etc/apt/sources.list.d/php.list
 | 
				
			||||||
 | 
					      $STD apt-get update
 | 
				
			||||||
 | 
					      $STD apt-get install -y php8.3-{bcmath,common,ctype,curl,fileinfo,fpm,gd,mbstring,mysql,xml,cli,intl}
 | 
				
			||||||
 | 
					      sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Execute Update
 | 
				
			||||||
 | 
					    curl -fsSL -o "${RELEASE}.zip" "https://github.com/Bubka/2FAuth/archive/refs/tags/${RELEASE}.zip"
 | 
				
			||||||
 | 
					    $STD unzip "${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
 | 
				
			||||||
 | 
					    $STD composer install --no-dev --prefer-source
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    php artisan 2fauth:install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $STD systemctl restart nginx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Cleaning up
 | 
				
			||||||
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					    rm -rf "v${RELEASE}.zip"
 | 
				
			||||||
 | 
					    if dpkg -l | grep -q 'php8.2'; then
 | 
				
			||||||
 | 
					      $STD apt-get remove --purge -y php8.2*
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    $STD apt-get -y autoremove
 | 
				
			||||||
 | 
					    $STD apt-get -y autoclean
 | 
				
			||||||
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # 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
 | 
					start
 | 
				
			||||||
@@ -102,4 +102,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,15 +1,15 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2025 tteck
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: MickLesk (CanbiZ)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://actualbudget.org/
 | 
					# Source: https://actualbudget.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Actual Budget"
 | 
					APP="Actual Budget"
 | 
				
			||||||
var_tags="finance"
 | 
					var_tags="finance"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="2"
 | 
				
			||||||
var_ram="4096"
 | 
					var_ram="2048"
 | 
				
			||||||
var_disk="7"
 | 
					var_disk="4"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="debian"
 | 
				
			||||||
var_version="12"
 | 
					var_version="12"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="1"
 | 
				
			||||||
@@ -24,104 +24,35 @@ function update_script() {
 | 
				
			|||||||
  check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
  check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ ! -d /opt/actualbudget ]]; then
 | 
					  if [[ ! -f /opt/actualbudget_version.txt ]]; then
 | 
				
			||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  NODE_VERSION="22"
 | 
				
			||||||
 | 
					  install_node_and_modules
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
  if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
 | 
					  if [[ -f /opt/actualbudget-data/config.json ]]; then
 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
 | 
				
			||||||
    systemctl stop actualbudget
 | 
					      msg_info "Stopping ${APP}"
 | 
				
			||||||
    msg_ok "${APP} Stopped"
 | 
					      systemctl stop actualbudget
 | 
				
			||||||
 | 
					      msg_ok "${APP} Stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ! command -v git &>/dev/null; then
 | 
					      msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
      msg_info "Installing git"
 | 
					      $STD npm update -g @actual-app/sync-server
 | 
				
			||||||
      $STD apt-get update
 | 
					      echo "${RELEASE}" >/opt/actualbudget_version.txt
 | 
				
			||||||
      $STD apt-get install -y git
 | 
					      msg_ok "Updated ${APP} to ${RELEASE}"
 | 
				
			||||||
      msg_ok "Installed git"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					      msg_info "Starting ${APP}"
 | 
				
			||||||
    cd /tmp || exit
 | 
					      systemctl start actualbudget
 | 
				
			||||||
    curl -fsSL "https://github.com/actualbudget/actual/archive/refs/tags/v${RELEASE}.tar.gz" -o "v${RELEASE}.tar.gz"
 | 
					      msg_ok "Restarted ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    mv /opt/actualbudget /opt/actualbudget_bak
 | 
					 | 
				
			||||||
    tar -xzf "v${RELEASE}.tar.gz"
 | 
					 | 
				
			||||||
    mv "actual-${RELEASE}" /opt/actualbudget
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
 | 
					 | 
				
			||||||
    for dir in server-files .migrate user-files migrations; do
 | 
					 | 
				
			||||||
      if [[ -d /opt/actualbudget_bak/$dir ]]; then
 | 
					 | 
				
			||||||
        mv /opt/actualbudget_bak/$dir/* /opt/actualbudget-data/$dir/ || true
 | 
					 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
    if [[ -f /opt/actualbudget-data/migrate/.migrations ]]; then
 | 
					 | 
				
			||||||
      sed -i 's/null/1732656575219/g' /opt/actualbudget-data/migrate/.migrations
 | 
					 | 
				
			||||||
      sed -i 's/null/1732656575220/g' /opt/actualbudget-data/migrate/.migrations
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    if [[ -f /opt/actualbudget/server-files/account.sqlite ]] && [[ ! -f /opt/actualbudget-data/server-files/account.sqlite ]]; then
 | 
					 | 
				
			||||||
      mv /opt/actualbudget/server-files/account.sqlite /opt/actualbudget-data/server-files/account.sqlite
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [[ -f /opt/actualbudget_bak/selfhost.key ]]; then
 | 
					 | 
				
			||||||
      mv /opt/actualbudget_bak/selfhost.key /opt/actualbudget/selfhost.key
 | 
					 | 
				
			||||||
      mv /opt/actualbudget_bak/selfhost.crt /opt/actualbudget/selfhost.crt
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [[ -f /opt/actualbudget_bak/.env ]]; then
 | 
					 | 
				
			||||||
      mv /opt/actualbudget_bak/.env /opt/actualbudget-data/.env
 | 
					 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      cat <<EOF >/opt/actualbudget-data/.env
 | 
					      msg_info "${APP} is already up to date"
 | 
				
			||||||
ACTUAL_UPLOAD_DIR=/opt/actualbudget-data/upload
 | 
					 | 
				
			||||||
ACTUAL_DATA_DIR=/opt/actualbudget-data
 | 
					 | 
				
			||||||
ACTUAL_SERVER_FILES_DIR=/opt/actualbudget-data/server-files
 | 
					 | 
				
			||||||
ACTUAL_USER_FILES=/opt/actualbudget-data/user-files
 | 
					 | 
				
			||||||
PORT=5006
 | 
					 | 
				
			||||||
ACTUAL_TRUSTED_PROXIES="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1/32,::1/128,fc00::/7"
 | 
					 | 
				
			||||||
ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key
 | 
					 | 
				
			||||||
ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    cd /opt/actualbudget || exit
 | 
					 | 
				
			||||||
    export NODE_OPTIONS="--max_old_space_size=3072"
 | 
					 | 
				
			||||||
    $STD yarn install
 | 
					 | 
				
			||||||
    $STD yarn run build:server
 | 
					 | 
				
			||||||
    #$STD yarn workspaces focus @actual-app/sync-server --production
 | 
					 | 
				
			||||||
    echo "${RELEASE}" >/opt/actualbudget_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Updated ${APP}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					 | 
				
			||||||
    cat <<EOF >/etc/systemd/system/actualbudget.service
 | 
					 | 
				
			||||||
[Unit]
 | 
					 | 
				
			||||||
Description=Actual Budget Service
 | 
					 | 
				
			||||||
After=network.target
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Service]
 | 
					 | 
				
			||||||
Type=simple
 | 
					 | 
				
			||||||
User=root
 | 
					 | 
				
			||||||
Group=root
 | 
					 | 
				
			||||||
WorkingDirectory=/opt/actualbudget
 | 
					 | 
				
			||||||
EnvironmentFile=/opt/actualbudget-data/.env
 | 
					 | 
				
			||||||
ExecStart=/usr/bin/yarn start:server
 | 
					 | 
				
			||||||
Restart=always
 | 
					 | 
				
			||||||
RestartSec=10
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[Install]
 | 
					 | 
				
			||||||
WantedBy=multi-user.target
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    systemctl daemon-reload
 | 
					 | 
				
			||||||
    systemctl start actualbudget
 | 
					 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Cleaning Up"
 | 
					 | 
				
			||||||
    rm -rf /opt/actualbudget_bak
 | 
					 | 
				
			||||||
    rm -rf "/tmp/v${RELEASE}.tar.gz"
 | 
					 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					    msg_info "Old Installation Found, you need to migrate your data and recreate to a new container"
 | 
				
			||||||
 | 
					    msg_info "Please follow the instructions on the ${APP} website to migrate your data"
 | 
				
			||||||
 | 
					    msg_info "https://actualbudget.org/docs/backup-restore/backup"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://adguard.com/
 | 
					# Source: https://adguard.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Adguard"
 | 
					APP="Adguard"
 | 
				
			||||||
var_tags="adblock"
 | 
					var_tags="${var_tags:-adblock}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://adventurelog.app/
 | 
					# Source: https://adventurelog.app/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="AdventureLog"
 | 
					APP="AdventureLog"
 | 
				
			||||||
var_tags="traveling"
 | 
					var_tags="${var_tags:-traveling}"
 | 
				
			||||||
var_disk="7"
 | 
					var_disk="${var_disk:-7}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
    mv /opt/adventurelog/ /opt/adventurelog-backup/
 | 
					    mv /opt/adventurelog/ /opt/adventurelog-backup/
 | 
				
			||||||
    curl -fsSL -o /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
 | 
					    curl -fsSL -o /opt/v${RELEASE}.zip "https://github.com/seanmorley15/AdventureLog/archive/refs/tags/v${RELEASE}.zip"
 | 
				
			||||||
    unzip -q /opt/v${RELEASE}.zip -d /opt/
 | 
					    $STD unzip /opt/v${RELEASE}.zip -d /opt/
 | 
				
			||||||
    mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
 | 
					    mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
					    mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
				
			||||||
@@ -78,4 +78,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.ispyconnect.com/
 | 
					# Source: https://www.ispyconnect.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="AgentDVR"
 | 
					APP="AgentDVR"
 | 
				
			||||||
var_tags="dvr"
 | 
					var_tags="${var_tags:-dvr}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="8"
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
var_os="ubuntu"
 | 
					var_os="${var_os:-ubuntu}"
 | 
				
			||||||
var_version="22.04"
 | 
					var_version="${var_version:-22.04}"
 | 
				
			||||||
var_unprivileged="0"
 | 
					var_unprivileged="${var_unprivileged:-0}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										46
									
								
								ct/alpine-adguard.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								ct/alpine-adguard.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: MickLesk (CanbiZ)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://adguardhome.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-AdGuard"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-alpine;adblock}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating AdGuard Home"
 | 
				
			||||||
 | 
					  $STD /opt/AdGuardHome/AdGuardHome --update
 | 
				
			||||||
 | 
					  msg_ok "Updated AdGuard Home"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Restarting AdGuard Home"
 | 
				
			||||||
 | 
					  $STD rc-service adguardhome restart
 | 
				
			||||||
 | 
					  msg_ok "Restarted AdGuard Home"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  exit 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
				
			||||||
							
								
								
									
										89
									
								
								ct/alpine-bitmagnet.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								ct/alpine-bitmagnet.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: Slaviša Arežina (tremor021)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/bitmagnet-io/bitmagnet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-bitmagnet"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-alpine;torrent}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-3}"
 | 
				
			||||||
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/bitmagnet ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [ "${RELEASE}" != "$(cat /opt/bitmagnet_version.txt)" ] || [ ! -f /opt/bitmagnet_version.txt ]; then
 | 
				
			||||||
 | 
					    msg_info "Backing up database"
 | 
				
			||||||
 | 
					    rm -f /tmp/backup.sql
 | 
				
			||||||
 | 
					    $STD sudo -u postgres pg_dump \
 | 
				
			||||||
 | 
					      --column-inserts \
 | 
				
			||||||
 | 
					      --data-only \
 | 
				
			||||||
 | 
					      --on-conflict-do-nothing \
 | 
				
			||||||
 | 
					      --rows-per-insert=1000 \
 | 
				
			||||||
 | 
					      --table=metadata_sources \
 | 
				
			||||||
 | 
					      --table=content \
 | 
				
			||||||
 | 
					      --table=content_attributes \
 | 
				
			||||||
 | 
					      --table=content_collections \
 | 
				
			||||||
 | 
					      --table=content_collections_content \
 | 
				
			||||||
 | 
					      --table=torrent_sources \
 | 
				
			||||||
 | 
					      --table=torrents \
 | 
				
			||||||
 | 
					      --table=torrent_files \
 | 
				
			||||||
 | 
					      --table=torrent_hints \
 | 
				
			||||||
 | 
					      --table=torrent_contents \
 | 
				
			||||||
 | 
					      --table=torrent_tags \
 | 
				
			||||||
 | 
					      --table=torrents_torrent_sources \
 | 
				
			||||||
 | 
					      --table=key_values \
 | 
				
			||||||
 | 
					      bitmagnet \
 | 
				
			||||||
 | 
					      >/tmp/backup.sql
 | 
				
			||||||
 | 
					    mv /tmp/backup.sql /opt/
 | 
				
			||||||
 | 
					    msg_ok "Database backed up"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} from $(cat /opt/bitmagnet_version.txt) to ${RELEASE}"
 | 
				
			||||||
 | 
					    $STD apk -U upgrade
 | 
				
			||||||
 | 
					    $STD service bitmagnet stop
 | 
				
			||||||
 | 
					    [ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
 | 
				
			||||||
 | 
					    [ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
 | 
				
			||||||
 | 
					    rm -rf /opt/bitmagnet/*
 | 
				
			||||||
 | 
					    temp_file=$(mktemp)
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
				
			||||||
 | 
					    tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
 | 
				
			||||||
 | 
					    cd /opt/bitmagnet
 | 
				
			||||||
 | 
					    VREL=v$RELEASE
 | 
				
			||||||
 | 
					    $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
 | 
				
			||||||
 | 
					    chmod +x bitmagnet
 | 
				
			||||||
 | 
					    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
				
			||||||
 | 
					    [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
 | 
				
			||||||
 | 
					    rm -f "$temp_file"
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/bitmagnet_version.txt
 | 
				
			||||||
 | 
					    $STD service bitmagnet start
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  exit 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following IP:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3333${CL}"
 | 
				
			||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.docker.com/
 | 
					# Source: https://www.docker.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine-Docker"
 | 
					APP="Alpine-Docker"
 | 
				
			||||||
var_tags="docker;alpine"
 | 
					var_tags="${var_tags:-docker;alpine}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -36,7 +36,7 @@ function update_script() {
 | 
				
			|||||||
    header_info
 | 
					    header_info
 | 
				
			||||||
    case $CHOICE in
 | 
					    case $CHOICE in
 | 
				
			||||||
    1)
 | 
					    1)
 | 
				
			||||||
      apk update && apk upgrade
 | 
					      $STD apk -U upgrade
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
      ;;
 | 
					      ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
@@ -47,4 +47,4 @@ start
 | 
				
			|||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										62
									
								
								ct/alpine-gatus.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								ct/alpine-gatus.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: Slaviša Arežina (tremor021)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/TwiN/gatus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-gatus"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-alpine;monitoring}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-3}"
 | 
				
			||||||
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/gatus ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [ "${RELEASE}" != "$(cat /opt/gatus_version.txt)" ] || [ ! -f /opt/gatus_version.txt ]; then
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} LXC"
 | 
				
			||||||
 | 
					    $STD apk -U upgrade
 | 
				
			||||||
 | 
					    $STD service gatus stop
 | 
				
			||||||
 | 
					    mv /opt/gatus/config/config.yaml /opt
 | 
				
			||||||
 | 
					    rm -rf /opt/gatus/*
 | 
				
			||||||
 | 
					    temp_file=$(mktemp)
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/TwiN/gatus/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
				
			||||||
 | 
					    tar zxf "$temp_file" --strip-components=1 -C /opt/gatus
 | 
				
			||||||
 | 
					    cd /opt/gatus
 | 
				
			||||||
 | 
					    $STD go mod tidy
 | 
				
			||||||
 | 
					    CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
 | 
				
			||||||
 | 
					    setcap CAP_NET_RAW+ep gatus
 | 
				
			||||||
 | 
					    mv /opt/config.yaml config
 | 
				
			||||||
 | 
					    rm -f "$temp_file"
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/gatus_version.txt
 | 
				
			||||||
 | 
					    $STD service gatus start
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  exit 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following IP:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
 | 
				
			||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://gitea.io
 | 
					# Source: https://gitea.io
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine-Gitea"
 | 
					APP="Alpine-Gitea"
 | 
				
			||||||
var_tags="alpine;git"
 | 
					var_tags="${var_tags:-alpine;git}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="256"
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
var_disk="1"
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -20,19 +20,18 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    header_info
 | 
					  header_info
 | 
				
			||||||
    msg_info "Updating Alpine Packages"
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
    apk update
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
    apk upgrade
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
    msg_ok "Updated Alpine Packages"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating Gitea"
 | 
					  msg_info "Updating Gitea"
 | 
				
			||||||
    apk upgrade gitea
 | 
					  apk upgrade gitea
 | 
				
			||||||
    msg_ok "Updated Gitea"
 | 
					  msg_ok "Updated Gitea"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restarting Gitea"
 | 
					  msg_info "Restarting Gitea"
 | 
				
			||||||
    rc-service gitea restart
 | 
					  rc-service gitea restart
 | 
				
			||||||
    msg_ok "Restarted Gitea"
 | 
					  msg_ok "Restarted Gitea"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
@@ -42,4 +41,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://grafana.com/
 | 
					# Source: https://grafana.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine-Grafana"
 | 
					APP="Alpine-Grafana"
 | 
				
			||||||
var_tags="alpine;monitoring"
 | 
					var_tags="${var_tags:-alpine;monitoring}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="256"
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
var_disk="1"
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
				
			|||||||
    header_info
 | 
					    header_info
 | 
				
			||||||
    case $CHOICE in
 | 
					    case $CHOICE in
 | 
				
			||||||
    1)
 | 
					    1)
 | 
				
			||||||
      apk update && apk upgrade
 | 
					      $STD apk -U upgrade
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
      ;;
 | 
					      ;;
 | 
				
			||||||
    2)
 | 
					    2)
 | 
				
			||||||
@@ -62,4 +62,4 @@ 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 "${APP} should be reachable by going to the following URL.
 | 
				
			||||||
         ${BL}http://${IP}:3000${CL} \n"
 | 
					         ${BL}http://${IP}:3000${CL} \n"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://it-tools.tech/
 | 
					# Source: https://it-tools.tech/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine-IT-Tools"
 | 
					APP="Alpine-IT-Tools"
 | 
				
			||||||
var_tags="alpine;development"
 | 
					var_tags="${var_tags:-alpine;development}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="256"
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
var_disk="0.2"
 | 
					var_disk="${var_disk:-0.5}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -20,32 +20,30 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    header_info
 | 
					  header_info
 | 
				
			||||||
    check_container_storage
 | 
					 | 
				
			||||||
    check_container_resources
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [ ! -d /usr/share/nginx/html ]; then
 | 
					  if [ ! -d /usr/share/nginx/html ]; then
 | 
				
			||||||
        msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
        exit 1
 | 
					    exit 1
 | 
				
			||||||
    fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/CorentinTh/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/CorentinTh/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
 | 
				
			||||||
    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
 | 
				
			||||||
        DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip"
 | 
					    DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip"
 | 
				
			||||||
        msg_info "Updating ${APP} LXC"
 | 
					    msg_info "Updating ${APP} LXC"
 | 
				
			||||||
        curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
 | 
					    curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
 | 
				
			||||||
        mkdir -p /usr/share/nginx/html
 | 
					    mkdir -p /usr/share/nginx/html
 | 
				
			||||||
        rm -rf /usr/share/nginx/html/*
 | 
					    rm -rf /usr/share/nginx/html/*
 | 
				
			||||||
        unzip -q it-tools.zip -d /tmp/it-tools
 | 
					    $STD unzip it-tools.zip -d /tmp/it-tools
 | 
				
			||||||
        cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
 | 
					    cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
 | 
				
			||||||
        rm -rf /tmp/it-tools
 | 
					    rm -rf /tmp/it-tools
 | 
				
			||||||
        rm -f it-tools.zip
 | 
					    rm -f it-tools.zip
 | 
				
			||||||
        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 0
 | 
					  exit 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
@@ -55,4 +53,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following IP:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										58
									
								
								ct/alpine-komodo.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								ct/alpine-komodo.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: MickLesk (CanbiZ)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://komo.do
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-Komodo"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-docker,alpine}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-10}"
 | 
				
			||||||
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  [[ -d /opt/komodo ]] || {
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating ${APP}"
 | 
				
			||||||
 | 
					  COMPOSE_FILE=$(find /opt/komodo -maxdepth 1 -type f -name '*.compose.yaml' ! -name 'compose.env' | head -n1)
 | 
				
			||||||
 | 
					  if [[ -z "$COMPOSE_FILE" ]]; then
 | 
				
			||||||
 | 
					    msg_error "No valid compose file found in /opt/komodo!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  COMPOSE_BASENAME=$(basename "$COMPOSE_FILE")
 | 
				
			||||||
 | 
					  BACKUP_FILE="/opt/komodo/${COMPOSE_BASENAME}.bak_$(date +%Y%m%d_%H%M%S)"
 | 
				
			||||||
 | 
					  cp "$COMPOSE_FILE" "$BACKUP_FILE" || {
 | 
				
			||||||
 | 
					    msg_error "Failed to create backup of ${COMPOSE_BASENAME}!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  GITHUB_URL="https://raw.githubusercontent.com/moghtech/komodo/main/compose/${COMPOSE_BASENAME}"
 | 
				
			||||||
 | 
					  if ! curl -fsSL "$GITHUB_URL" -o "$COMPOSE_FILE"; then
 | 
				
			||||||
 | 
					    msg_error "Failed to download ${COMPOSE_BASENAME} from GitHub!"
 | 
				
			||||||
 | 
					    mv "$BACKUP_FILE" "$COMPOSE_FILE"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  $STD docker compose -p komodo -f "$COMPOSE_FILE" --env-file /opt/komodo/compose.env up -d
 | 
				
			||||||
 | 
					  msg_ok "Updated ${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}:9120${CL}"
 | 
				
			||||||
@@ -20,20 +20,19 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    msg_info "Updating Alpine Packages"
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
    $STD apk update
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
    $STD apk upgrade
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
    msg_ok "Updated Alpine Packages"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating MariaDB"
 | 
					  msg_info "Updating MariaDB"
 | 
				
			||||||
    $STD apk upgrade mariadb mariadb-client
 | 
					  $STD apk upgrade mariadb mariadb-client
 | 
				
			||||||
    msg_ok "Updated MariaDB"
 | 
					  msg_ok "Updated MariaDB"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restarting MariaDB"
 | 
					  msg_info "Restarting MariaDB"
 | 
				
			||||||
    $STD rc-service mariadb restart
 | 
					  $STD rc-service mariadb restart
 | 
				
			||||||
    msg_ok "Restarted MariaDB"
 | 
					  msg_ok "Restarted MariaDB"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    exit 0
 | 
					  exit 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://nextcloud.com/
 | 
					# Source: https://nextcloud.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine-Nextcloud"
 | 
					APP="Alpine-Nextcloud"
 | 
				
			||||||
var_tags="alpine;cloud"
 | 
					var_tags="${var_tags:-alpine;cloud}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,24 +20,19 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    msg_info "Updating Alpine Packages"
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
    $STD apk update
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
    $STD apk upgrade
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
    msg_ok "Updated Alpine Packages"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating Node.js and npm"
 | 
					  msg_info "Updating Node.js and npm"
 | 
				
			||||||
    $STD apk upgrade nodejs npm
 | 
					  $STD apk upgrade nodejs npm
 | 
				
			||||||
    msg_ok "Updated Node.js and npm"
 | 
					  msg_ok "Updated Node.js and npm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating Node-RED"
 | 
					  msg_info "Updating Node-RED"
 | 
				
			||||||
    $STD npm install -g --unsafe-perm node-red
 | 
					  $STD npm install -g --unsafe-perm node-red
 | 
				
			||||||
    msg_ok "Updated Node-RED"
 | 
					  msg_ok "Updated Node-RED"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restarting Node-RED"
 | 
					  exit 0
 | 
				
			||||||
    $STD rc-service nodered restart
 | 
					 | 
				
			||||||
    msg_ok "Restarted Node-RED"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    exit 0
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,8 +21,7 @@ catch_errors
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
  msg_info "Updating Alpine Packages"
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
  $STD apk update
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
  $STD apk upgrade
 | 
					 | 
				
			||||||
  msg_ok "Updated Alpine Packages"
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  msg_info "Updating PostgreSQL"
 | 
					  msg_info "Updating PostgreSQL"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,20 +20,19 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    msg_info "Updating Alpine Packages"
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
    $STD apk update
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
    $STD apk upgrade
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
    msg_ok "Updated Alpine Packages"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating Prometheus"
 | 
					  msg_info "Updating Prometheus"
 | 
				
			||||||
    $STD apk upgrade prometheus
 | 
					  $STD apk upgrade prometheus
 | 
				
			||||||
    msg_ok "Updated Prometheus"
 | 
					  msg_ok "Updated Prometheus"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restarting Prometheus"
 | 
					  msg_info "Restarting Prometheus"
 | 
				
			||||||
    $STD rc-service prometheus restart
 | 
					  $STD rc-service prometheus restart
 | 
				
			||||||
    msg_ok "Restarted Prometheus"
 | 
					  msg_ok "Restarted Prometheus"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    exit 0
 | 
					  exit 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								ct/alpine-rclone.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								ct/alpine-rclone.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: Slaviša Arežina (tremor021)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/rclone/rclone
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-rclone"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-alpine;backup}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					var_fuse="${var_fuse:-yes}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  if [ ! -d /opt/rclone ]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -s https://api.github.com/repos/rclone/rclone/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [ "${RELEASE}" != "$(cat /opt/rclone_version.txt)" ] || [ ! -f /opt/rclone_version.txt ]; then
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} LXC"
 | 
				
			||||||
 | 
					    temp_file=$(mktemp)
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/rclone/rclone/releases/download/v${RELEASE}/rclone-v${RELEASE}-linux-amd64.zip" -o "$temp_file"
 | 
				
			||||||
 | 
					    $STD unzip -o "$temp_file" '*/**' -d /opt/rclone
 | 
				
			||||||
 | 
					    rm -f "$temp_file"
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/rclone_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  exit 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following IP:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
				
			||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://redis.io/
 | 
					# Source: https://redis.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine-Redis"
 | 
					APP="Alpine-Redis"
 | 
				
			||||||
var_tags="alpine;database"
 | 
					var_tags="${var_tags:-alpine;database}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="256"
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
var_disk="1"
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										58
									
								
								ct/alpine-tinyauth.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								ct/alpine-tinyauth.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					#!/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: Slaviša Arežina (tremor021) | Co-Author: Stavros (steveiliop56)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/steveiliop56/tinyauth
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-Tinyauth"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-alpine;auth}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/tinyauth ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating packages"
 | 
				
			||||||
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
 | 
					  msg_ok "Updated packages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating Tinyauth"
 | 
				
			||||||
 | 
					  RELEASE=$(curl -s https://api.github.com/repos/steveiliop56/tinyauth/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if [ "${RELEASE}" != "$(cat /opt/tinyauth_version.txt)" ] || [ ! -f /opt/tinyauth_version.txt ]; then
 | 
				
			||||||
 | 
					    $STD service tinyauth stop
 | 
				
			||||||
 | 
					    rm -f /opt/tinyauth/tinyauth
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/steveiliop56/tinyauth/releases/download/v${RELEASE}/tinyauth-amd64" -o /opt/tinyauth/tinyauth
 | 
				
			||||||
 | 
					    chmod +x /opt/tinyauth/tinyauth
 | 
				
			||||||
 | 
					    echo "${RELEASE}" > /opt/tinyauth_version.txt
 | 
				
			||||||
 | 
					    msg_info "Restarting Tinyauth"
 | 
				
			||||||
 | 
					    $STD service tinyauth start
 | 
				
			||||||
 | 
					    msg_ok "Restarted Tinyauth"
 | 
				
			||||||
 | 
					    msg_ok "Updated Tinyauth"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
				
			||||||
							
								
								
									
										41
									
								
								ct/alpine-traefik.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								ct/alpine-traefik.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: MickLesk (CanbiZ)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://alpinelinux.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-Traefik"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-os;alpine}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Upgrading traefik from edge"
 | 
				
			||||||
 | 
					  $STD apk add traefik --repository=https://dl-cdn.alpinelinux.org/alpine/edge/community
 | 
				
			||||||
 | 
					  msg_ok "Upgraded traefik"
 | 
				
			||||||
 | 
					  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} WebUI Access (if configured) - using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/dashboard${CL}"
 | 
				
			||||||
							
								
								
									
										45
									
								
								ct/alpine-transmission.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								ct/alpine-transmission.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					#!/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: Slaviša Arežina (tremor021)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://transmissionbt.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-Transmission"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-alpine;torrent}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating Transmission"
 | 
				
			||||||
 | 
					  $STD apk upgrade transmission-daemon
 | 
				
			||||||
 | 
					  msg_ok "Updated Transmission"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Restarting Transmission"
 | 
				
			||||||
 | 
					  $STD rc-service transmission-daemon restart
 | 
				
			||||||
 | 
					  msg_ok "Restarted Transmission"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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}:9091${CL}"
 | 
				
			||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://github.com/dani-garcia/vaultwarden
 | 
					# Source: https://github.com/dani-garcia/vaultwarden
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine-Vaultwarden"
 | 
					APP="Alpine-Vaultwarden"
 | 
				
			||||||
var_tags="alpine;vault"
 | 
					var_tags="${var_tags:-alpine;vault}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="256"
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
var_disk="0.5"
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -37,14 +37,15 @@ function update_script() {
 | 
				
			|||||||
    header_info
 | 
					    header_info
 | 
				
			||||||
    case $CHOICE in
 | 
					    case $CHOICE in
 | 
				
			||||||
    1)
 | 
					    1)
 | 
				
			||||||
      apk update && apk upgrade && rc-service vaultwarden restart -q
 | 
					      $STD apk -U upgrade
 | 
				
			||||||
 | 
					      rc-service vaultwarden restart -q
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
      ;;
 | 
					      ;;
 | 
				
			||||||
    2)
 | 
					    2)
 | 
				
			||||||
      if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Setup your ADMIN_TOKEN (make it strong)" 10 58 3>&1 1>&2 2>&3); then
 | 
					      if NEWTOKEN=$(whiptail --backtitle "Proxmox VE Helper Scripts" --passwordbox "Setup your ADMIN_TOKEN (make it strong)" 10 58 3>&1 1>&2 2>&3); then
 | 
				
			||||||
        if [[ -z "$NEWTOKEN" ]]; then exit-script; fi
 | 
					        if [[ -z "$NEWTOKEN" ]]; then exit-script; fi
 | 
				
			||||||
        if ! command -v argon2 >/dev/null 2>&1; then apk add argon2 &>/dev/null; fi
 | 
					        if ! command -v argon2 >/dev/null 2>&1; then apk add argon2 &>/dev/null; fi
 | 
				
			||||||
        TOKEN=$(echo -n ${NEWTOKEN} | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1)
 | 
					        TOKEN=$(echo -n "${NEWTOKEN}" | argon2 "$(openssl rand -base64 32)" -e -id -k 19456 -t 2 -p 1)
 | 
				
			||||||
        if [[ ! -f /var/lib/vaultwarden/config.json ]]; then
 | 
					        if [[ ! -f /var/lib/vaultwarden/config.json ]]; then
 | 
				
			||||||
          sed -i "s|export ADMIN_TOKEN=.*|export ADMIN_TOKEN='${TOKEN}'|" /etc/conf.d/vaultwarden
 | 
					          sed -i "s|export ADMIN_TOKEN=.*|export ADMIN_TOKEN='${TOKEN}'|" /etc/conf.d/vaultwarden
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@@ -65,4 +66,4 @@ 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 "${APP} should be reachable by going to the following URL.
 | 
				
			||||||
         ${BL}http://${IP}:8000${CL} \n"
 | 
					         ${BL}https://${IP}:8000${CL} \n"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,8 +21,7 @@ catch_errors
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
  msg_info "Updating Alpine Packages"
 | 
					  msg_info "Updating Alpine Packages"
 | 
				
			||||||
  $STD apk update
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
  $STD apk upgrade
 | 
					 | 
				
			||||||
  msg_ok "Updated Alpine Packages"
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  msg_info "update wireguard-tools"
 | 
					  msg_info "update wireguard-tools"
 | 
				
			||||||
@@ -31,7 +30,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if [[ -d /etc/wgdashboard/src ]]; then
 | 
					  if [[ -d /etc/wgdashboard/src ]]; then
 | 
				
			||||||
    msg_info "update WGDashboard"
 | 
					    msg_info "update WGDashboard"
 | 
				
			||||||
    cd /etc/wgdashboard/src || exit
 | 
					    cd /etc/wgdashboard/src
 | 
				
			||||||
    $STD echo "y" | ./wgd.sh update
 | 
					    $STD echo "y" | ./wgd.sh update
 | 
				
			||||||
    $STD ./wgd.sh start
 | 
					    $STD ./wgd.sh start
 | 
				
			||||||
    msg_ok "WGDashboard updated"
 | 
					    msg_ok "WGDashboard updated"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.zigbee2mqtt.io/
 | 
					# Source: https://www.zigbee2mqtt.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine-Zigbee2MQTT"
 | 
					APP="Alpine-Zigbee2MQTT"
 | 
				
			||||||
var_tags="alpine;zigbee;mqtt;smarthome"
 | 
					var_tags="${var_tags:-alpine;zigbee;mqtt;smarthome}"
 | 
				
			||||||
var_disk="0.3"
 | 
					var_disk="${var_disk:-0.3}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="256"
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="0"
 | 
					var_unprivileged="${var_unprivileged:-0}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -36,7 +36,7 @@ function update_script() {
 | 
				
			|||||||
    header_info
 | 
					    header_info
 | 
				
			||||||
    case $CHOICE in
 | 
					    case $CHOICE in
 | 
				
			||||||
    1)
 | 
					    1)
 | 
				
			||||||
      apk update && apk upgrade
 | 
					      $STD apk -U upgrade
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
      ;;
 | 
					      ;;
 | 
				
			||||||
    esac
 | 
					    esac
 | 
				
			||||||
@@ -47,4 +47,4 @@ start
 | 
				
			|||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										26
									
								
								ct/alpine.sh
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								ct/alpine.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://alpinelinux.org/
 | 
					# Source: https://alpinelinux.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Alpine"
 | 
					APP="Alpine"
 | 
				
			||||||
var_tags="os;alpine"
 | 
					var_tags="${var_tags:-os;alpine}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="0.1"
 | 
					var_disk="${var_disk:-0.5}"
 | 
				
			||||||
var_os="alpine"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="3.21"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -20,13 +20,15 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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=$(
 | 
				
			||||||
    "1" "Check for Alpine Updates" ON \
 | 
					    whiptail --backtitle "Proxmox VE Helper Scripts" --title "SUPPORT" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 1 \
 | 
				
			||||||
    3>&1 1>&2 2>&3)
 | 
					      "1" "Check for Alpine Updates" ON \
 | 
				
			||||||
 | 
					      3>&1 1>&2 2>&3
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  header_info
 | 
					  header_info
 | 
				
			||||||
  if [ "$UPD" == "1" ]; then
 | 
					  if [ "$UPD" == "1" ]; then
 | 
				
			||||||
    apk update && apk upgrade
 | 
					    $STD apk -U upgrade
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -35,4 +37,4 @@ start
 | 
				
			|||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://cassandra.apache.org/_/index.html
 | 
					# Source: https://cassandra.apache.org/_/index.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Apache-Cassandra"
 | 
					APP="Apache-Cassandra"
 | 
				
			||||||
var_tags="database;NoSQL"
 | 
					var_tags="${var_tags:-database;NoSQL}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://couchdb.apache.org/
 | 
					# Source: https://couchdb.apache.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Apache-CouchDB"
 | 
					APP="Apache-CouchDB"
 | 
				
			||||||
var_tags="database"
 | 
					var_tags="${var_tags:-database}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="4096"
 | 
					var_ram="${var_ram:-4096}"
 | 
				
			||||||
var_disk="10"
 | 
					var_disk="${var_disk:-10}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://guacamole.apache.org/
 | 
					# Source: https://guacamole.apache.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Apache-Guacamole"
 | 
					APP="Apache-Guacamole"
 | 
				
			||||||
var_tags="webserver;remote"
 | 
					var_tags="${var_tags:-webserver;remote}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://github.com/apache/tika/
 | 
					# Source: https://github.com/apache/tika/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Apache-Tika"
 | 
					APP="Apache-Tika"
 | 
				
			||||||
var_tags="document"
 | 
					var_tags="${var_tags:-document}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="10"
 | 
					var_disk="${var_disk:-10}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://tomcat.apache.org/
 | 
					# Source: https://tomcat.apache.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Apache-Tomcat"
 | 
					APP="Apache-Tomcat"
 | 
				
			||||||
var_tags="webserver"
 | 
					var_tags="${var_tags:-webserver}"
 | 
				
			||||||
var_disk="5"
 | 
					var_disk="${var_disk:-5}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://wiki.debian.org/AptCacherNg
 | 
					# Source: https://wiki.debian.org/AptCacherNg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Apt-Cacher-NG"
 | 
					APP="Apt-Cacher-NG"
 | 
				
			||||||
var_tags="caching"
 | 
					var_tags="${var_tags:-caching}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://archivebox.io/
 | 
					# Source: https://archivebox.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="ArchiveBox"
 | 
					APP="ArchiveBox"
 | 
				
			||||||
var_tags="archive;bookmark"
 | 
					var_tags="${var_tags:-archive;bookmark}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="8"
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										53
									
								
								ct/argus.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								ct/argus.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: MickLesk (CanbiZ)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://release-argus.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Argus"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-watcher}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-3}"
 | 
				
			||||||
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/argus ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
				
			||||||
 | 
					  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
				
			||||||
 | 
					    msg_info "Updating $APP to ${RELEASE}"
 | 
				
			||||||
 | 
					    rm -f /opt/argus/Argus
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-amd64" -o /opt/argus/Argus
 | 
				
			||||||
 | 
					    chmod +x /opt/argus/Argus
 | 
				
			||||||
 | 
					    systemctl restart argus
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "${APP} is already up to date (${RELEASE})"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
 | 
				
			||||||
							
								
								
									
										14
									
								
								ct/aria2.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/aria2.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://aria2.github.io/
 | 
					# Source: https://aria2.github.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Aria2"
 | 
					APP="Aria2"
 | 
				
			||||||
var_tags="download-utility"
 | 
					var_tags="${var_tags:-download-utility}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="8"
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,18 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
# Copyright (c) 2021-2025 tteck
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: michelroegl-brunner
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://umbrel.com/
 | 
					# Source: https://asterisk.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Umbrel"
 | 
					APP="Asterisk"
 | 
				
			||||||
var_tags="os"
 | 
					var_tags="${var_tags:-telephone;pbx}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="8"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -23,10 +23,7 @@ function update_script() {
 | 
				
			|||||||
    header_info
 | 
					    header_info
 | 
				
			||||||
    check_container_storage
 | 
					    check_container_storage
 | 
				
			||||||
    check_container_resources
 | 
					    check_container_resources
 | 
				
			||||||
    msg_info "Updating ${APP} LXC"
 | 
					    msg_error "No Update function provided for ${APP} LXC"
 | 
				
			||||||
    $STD apt-get update
 | 
					 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					 | 
				
			||||||
    msg_ok "Updated ${APP} LXC"
 | 
					 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -35,6 +32,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! (manual reboot is required!)${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
					 | 
				
			||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.audiobookshelf.org/
 | 
					# Source: https://www.audiobookshelf.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="audiobookshelf"
 | 
					APP="audiobookshelf"
 | 
				
			||||||
var_tags="podcast;audiobook"
 | 
					var_tags="${var_tags:-podcast;audiobook}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,12 +7,12 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
APP="Authelia"
 | 
					APP="Authelia"
 | 
				
			||||||
TAGS=""
 | 
					TAGS=""
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
base_settings
 | 
					base_settings
 | 
				
			||||||
@@ -55,4 +55,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9091${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}https://YOUR_AUTHELIA_URL${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,87 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					 | 
				
			||||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
					 | 
				
			||||||
# Author: remz1337
 | 
					 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					 | 
				
			||||||
# Source: https://goauthentik.io/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
APP="Authentik"
 | 
					 | 
				
			||||||
var_tags="identity-provider"
 | 
					 | 
				
			||||||
var_disk="12"
 | 
					 | 
				
			||||||
var_cpu="6"
 | 
					 | 
				
			||||||
var_ram="8192"
 | 
					 | 
				
			||||||
var_os="debian"
 | 
					 | 
				
			||||||
var_version="12"
 | 
					 | 
				
			||||||
var_unprivileged="1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
header_info "$APP"
 | 
					 | 
				
			||||||
variables
 | 
					 | 
				
			||||||
color
 | 
					 | 
				
			||||||
catch_errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function update_script() {
 | 
					 | 
				
			||||||
  header_info
 | 
					 | 
				
			||||||
  check_container_storage
 | 
					 | 
				
			||||||
  check_container_resources
 | 
					 | 
				
			||||||
  if [[ ! -f /etc/systemd/system/authentik-server.service ]]; then
 | 
					 | 
				
			||||||
    msg_error "No ${APP} Installation Found!"
 | 
					 | 
				
			||||||
    exit
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL 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
 | 
					 | 
				
			||||||
    curl -fsSL "${RELEASE}" -o "authentik.tar.gz"
 | 
					 | 
				
			||||||
    tar -xzf authentik.tar.gz -C /opt/authentik --strip-components 1 --overwrite
 | 
					 | 
				
			||||||
    rm -rf authentik.tar.gz
 | 
					 | 
				
			||||||
    cd /opt/authentik/website
 | 
					 | 
				
			||||||
    $STD npm install
 | 
					 | 
				
			||||||
    $STD npm run build-bundled
 | 
					 | 
				
			||||||
    cd /opt/authentik/web
 | 
					 | 
				
			||||||
    $STD npm install
 | 
					 | 
				
			||||||
    $STD npm run build
 | 
					 | 
				
			||||||
    msg_ok "Built ${APP} website"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Building ${APP} server"
 | 
					 | 
				
			||||||
    cd /opt/authentik
 | 
					 | 
				
			||||||
    go mod download
 | 
					 | 
				
			||||||
    go build -o /go/authentik ./cmd/server
 | 
					 | 
				
			||||||
    go build -o /opt/authentik/authentik-server /opt/authentik/cmd/server/
 | 
					 | 
				
			||||||
    msg_ok "Built ${APP} server"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Installing Python Dependencies"
 | 
					 | 
				
			||||||
    cd /opt/authentik
 | 
					 | 
				
			||||||
    $STD poetry install --only=main --no-ansi --no-interaction --no-root
 | 
					 | 
				
			||||||
    $STD poetry export --without-hashes --without-urls -f requirements.txt --output requirements.txt
 | 
					 | 
				
			||||||
    $STD pip install --no-cache-dir -r requirements.txt
 | 
					 | 
				
			||||||
    $STD pip install .
 | 
					 | 
				
			||||||
    msg_ok "Installed Python Dependencies"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE} (Patience)"
 | 
					 | 
				
			||||||
    cp -r /opt/authentik/authentik/blueprints /opt/authentik/blueprints
 | 
					 | 
				
			||||||
    $STD bash /opt/authentik/lifecycle/ak migrate
 | 
					 | 
				
			||||||
    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}"
 | 
					 | 
				
			||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://autobrr.com/
 | 
					# Source: https://autobrr.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Autobrr"
 | 
					APP="Autobrr"
 | 
				
			||||||
var_tags="arr;"
 | 
					var_tags="${var_tags:-arr;}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="8"
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										86
									
								
								ct/babybuddy.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								ct/babybuddy.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,86 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: MickLesk (CanbiZ)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/babybuddy/babybuddy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Baby Buddy"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-baby}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-5}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/babybuddy ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/babybuddy_version.txt)" ]]; then
 | 
				
			||||||
 | 
					    setup_uv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
 | 
					    systemctl stop nginx
 | 
				
			||||||
 | 
					    systemctl stop uwsgi
 | 
				
			||||||
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning old files"
 | 
				
			||||||
 | 
					    cp babybuddy/settings/production.py /tmp/production.py.bak
 | 
				
			||||||
 | 
					    find . -mindepth 1 -maxdepth 1 ! -name '.venv' -exec rm -rf {} +
 | 
				
			||||||
 | 
					    msg_ok "Cleaned old files"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					    temp_file=$(mktemp)
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/babybuddy/babybuddy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
				
			||||||
 | 
					    cd /opt/babybuddy
 | 
				
			||||||
 | 
					    tar zxf "$temp_file" --strip-components=1 -C /opt/babybuddy
 | 
				
			||||||
 | 
					    mv /tmp/production.py.bak babybuddy/settings/production.py
 | 
				
			||||||
 | 
					    cd /opt/babybuddy
 | 
				
			||||||
 | 
					    source .venv/bin/activate
 | 
				
			||||||
 | 
					    $STD uv pip install -r requirements.txt
 | 
				
			||||||
 | 
					    $STD python manage.py migrate
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Fixing permissions"
 | 
				
			||||||
 | 
					    chown -R www-data:www-data /opt/data
 | 
				
			||||||
 | 
					    chmod 640 /opt/data/db.sqlite3
 | 
				
			||||||
 | 
					    chmod 750 /opt/data
 | 
				
			||||||
 | 
					    msg_ok "Permissions fixed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
 | 
					    systemctl start uwsgi
 | 
				
			||||||
 | 
					    systemctl start nginx
 | 
				
			||||||
 | 
					    msg_ok "Services Started"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
 | 
					    rm -f "$temp_file"
 | 
				
			||||||
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					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}"
 | 
				
			||||||
							
								
								
									
										66
									
								
								ct/backrest.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								ct/backrest.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: ksad (enirys31)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://garethgeorge.github.io/backrest/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Backrest"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-backup}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/backrest ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/garethgeorge/backrest/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
				
			||||||
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
 | 
					    systemctl stop backrest
 | 
				
			||||||
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
 | 
					    temp_file=$(mktemp)
 | 
				
			||||||
 | 
					    rm -f /opt/backrest/bin/backrest
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/garethgeorge/backrest/releases/download/v${RELEASE}/backrest_Linux_x86_64.tar.gz" -o "$temp_file"
 | 
				
			||||||
 | 
					    tar xzf $temp_file -C /opt/backrest/bin
 | 
				
			||||||
 | 
					    chmod +x /opt/backrest/bin/backrest
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
 | 
					    systemctl start backrest
 | 
				
			||||||
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
 | 
					    rm -f "$temp_file"
 | 
				
			||||||
 | 
					    msg_ok "Cleaned up"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9898${CL}"
 | 
				
			||||||
							
								
								
									
										16
									
								
								ct/baikal.sh
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								ct/baikal.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://sabre.io/baikal/
 | 
					# Source: https://sabre.io/baikal/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Baikal"
 | 
					APP="Baikal"
 | 
				
			||||||
var_tags="Dav"
 | 
					var_tags="${var_tags:-Dav}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
				
			|||||||
    cd /opt
 | 
					    cd /opt
 | 
				
			||||||
    curl -fsSL "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip" -o $(basename "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip")
 | 
					    curl -fsSL "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip" -o $(basename "https://github.com/sabre-io/baikal/releases/download/${RELEASE}/baikal-${RELEASE}.zip")
 | 
				
			||||||
    mv /opt/baikal /opt/baikal-backup
 | 
					    mv /opt/baikal /opt/baikal-backup
 | 
				
			||||||
    unzip -o -q "baikal-${RELEASE}.zip"
 | 
					    $STD unzip -o "baikal-${RELEASE}.zip"
 | 
				
			||||||
    cp -r /opt/baikal-backup/config/baikal.yaml /opt/baikal/config/
 | 
					    cp -r /opt/baikal-backup/config/baikal.yaml /opt/baikal/config/
 | 
				
			||||||
    cp -r /opt/baikal-backup/Specific/ /opt/baikal/
 | 
					    cp -r /opt/baikal-backup/Specific/ /opt/baikal/
 | 
				
			||||||
    chown -R www-data:www-data /opt/baikal/
 | 
					    chown -R www-data:www-data /opt/baikal/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://github.com/Forceu/barcodebuddy
 | 
					# Source: https://github.com/Forceu/barcodebuddy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Barcode-Buddy"
 | 
					APP="Barcode-Buddy"
 | 
				
			||||||
var_tags="grocery;household"
 | 
					var_tags="${var_tags:-grocery;household}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="3"
 | 
					var_disk="${var_disk:-3}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -38,7 +38,7 @@ function update_script() {
 | 
				
			|||||||
    cd /opt
 | 
					    cd /opt
 | 
				
			||||||
    mv /opt/barcodebuddy/ /opt/barcodebuddy-backup
 | 
					    mv /opt/barcodebuddy/ /opt/barcodebuddy-backup
 | 
				
			||||||
    curl -fsSL "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip")
 | 
					    curl -fsSL "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/Forceu/barcodebuddy/archive/refs/tags/v${RELEASE}.zip")
 | 
				
			||||||
    unzip -q "v${RELEASE}.zip"
 | 
					    $STD unzip "v${RELEASE}.zip"
 | 
				
			||||||
    mv "/opt/barcodebuddy-${RELEASE}" /opt/barcodebuddy
 | 
					    mv "/opt/barcodebuddy-${RELEASE}" /opt/barcodebuddy
 | 
				
			||||||
    cp -r /opt/barcodebuddy-backup/data/. /opt/barcodebuddy/data
 | 
					    cp -r /opt/barcodebuddy-backup/data/. /opt/barcodebuddy/data
 | 
				
			||||||
    chown -R www-data:www-data /opt/barcodebuddy/data
 | 
					    chown -R www-data:www-data /opt/barcodebuddy/data
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								ct/bazarr.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/bazarr.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.bazarr.media/
 | 
					# Source: https://www.bazarr.media/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Bazarr"
 | 
					APP="Bazarr"
 | 
				
			||||||
var_tags="arr"
 | 
					var_tags="${var_tags:-arr}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								ct/beszel.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/beszel.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://beszel.dev/
 | 
					# Source: https://beszel.dev/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Beszel"
 | 
					APP="Beszel"
 | 
				
			||||||
var_tags="monitoring"
 | 
					var_tags="${var_tags:-monitoring}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="5"
 | 
					var_disk="${var_disk:-5}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										98
									
								
								ct/bitmagnet.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								ct/bitmagnet.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,98 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: Slaviša Arežina (tremor021)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/bitmagnet/bitmagnet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Bitmagnet"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-os}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/bitmagnet ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
				
			||||||
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
 | 
					    systemctl stop bitmagnet-web
 | 
				
			||||||
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Backing up database"
 | 
				
			||||||
 | 
					    rm -f /tmp/backup.sql
 | 
				
			||||||
 | 
					    $STD sudo -u postgres pg_dump \
 | 
				
			||||||
 | 
					      --column-inserts \
 | 
				
			||||||
 | 
					      --data-only \
 | 
				
			||||||
 | 
					      --on-conflict-do-nothing \
 | 
				
			||||||
 | 
					      --rows-per-insert=1000 \
 | 
				
			||||||
 | 
					      --table=metadata_sources \
 | 
				
			||||||
 | 
					      --table=content \
 | 
				
			||||||
 | 
					      --table=content_attributes \
 | 
				
			||||||
 | 
					      --table=content_collections \
 | 
				
			||||||
 | 
					      --table=content_collections_content \
 | 
				
			||||||
 | 
					      --table=torrent_sources \
 | 
				
			||||||
 | 
					      --table=torrents \
 | 
				
			||||||
 | 
					      --table=torrent_files \
 | 
				
			||||||
 | 
					      --table=torrent_hints \
 | 
				
			||||||
 | 
					      --table=torrent_contents \
 | 
				
			||||||
 | 
					      --table=torrent_tags \
 | 
				
			||||||
 | 
					      --table=torrents_torrent_sources \
 | 
				
			||||||
 | 
					      --table=key_values \
 | 
				
			||||||
 | 
					      bitmagnet \
 | 
				
			||||||
 | 
					      >/tmp/backup.sql
 | 
				
			||||||
 | 
					    mv /tmp/backup.sql /opt/
 | 
				
			||||||
 | 
					    msg_ok "Database backed up"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					    [ -f /opt/bitmagnet/.env ] && cp /opt/bitmagnet/.env /opt/
 | 
				
			||||||
 | 
					    [ -f /opt/bitmagnet/config.yml ] && cp /opt/bitmagnet/config.yml /opt/
 | 
				
			||||||
 | 
					    rm -rf /opt/bitmagnet/*
 | 
				
			||||||
 | 
					    temp_file=$(mktemp)
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/bitmagnet-io/bitmagnet/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
				
			||||||
 | 
					    tar zxf "$temp_file" --strip-components=1 -C /opt/bitmagnet
 | 
				
			||||||
 | 
					    cd /opt/bitmagnet
 | 
				
			||||||
 | 
					    VREL=v$RELEASE
 | 
				
			||||||
 | 
					    $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
 | 
				
			||||||
 | 
					    chmod +x bitmagnet
 | 
				
			||||||
 | 
					    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
				
			||||||
 | 
					    [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated $APP to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
 | 
					    systemctl start bitmagnet-web
 | 
				
			||||||
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
 | 
					    rm -f "$temp_file"
 | 
				
			||||||
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3333${CL}"
 | 
				
			||||||
							
								
								
									
										14
									
								
								ct/blocky.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/blocky.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://0xerr0r.github.io/blocky/latest/
 | 
					# Source: https://0xerr0r.github.io/blocky/latest/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Blocky"
 | 
					APP="Blocky"
 | 
				
			||||||
var_tags="adblock"
 | 
					var_tags="${var_tags:-adblock}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,71 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					 | 
				
			||||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
					 | 
				
			||||||
# Author: Slaviša Arežina (tremor021)
 | 
					 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					 | 
				
			||||||
# Source: https://github.com/stackblitz-labs/bolt.diy/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
APP="boltdiy"
 | 
					 | 
				
			||||||
TAGS="code;ai"
 | 
					 | 
				
			||||||
var_cpu="2"
 | 
					 | 
				
			||||||
var_ram="3072"
 | 
					 | 
				
			||||||
var_disk="6"
 | 
					 | 
				
			||||||
var_os="debian"
 | 
					 | 
				
			||||||
var_version="12"
 | 
					 | 
				
			||||||
var_unprivileged="1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
header_info "$APP"
 | 
					 | 
				
			||||||
variables
 | 
					 | 
				
			||||||
color
 | 
					 | 
				
			||||||
catch_errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function update_script() {
 | 
					 | 
				
			||||||
    header_info
 | 
					 | 
				
			||||||
    check_container_storage
 | 
					 | 
				
			||||||
    check_container_resources
 | 
					 | 
				
			||||||
    if [[ ! -d /opt/bolt.diy ]]; then
 | 
					 | 
				
			||||||
        msg_error "No ${APP} Installation Found!"
 | 
					 | 
				
			||||||
        exit
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/stackblitz-labs/bolt.diy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat /opt/boltdiy_version.txt)" ]] || [[ ! -f /opt/boltdiy_version.txt ]]; then
 | 
					 | 
				
			||||||
        msg_info "Stopping $APP"
 | 
					 | 
				
			||||||
        systemctl stop boltdiy
 | 
					 | 
				
			||||||
        msg_ok "Stopped $APP"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Updating $APP to v${RELEASE}"
 | 
					 | 
				
			||||||
        temp_dir=$(mktemp -d)
 | 
					 | 
				
			||||||
        temp_file=$(mktemp)
 | 
					 | 
				
			||||||
        cd $temp_dir
 | 
					 | 
				
			||||||
curl -fsSL "https://github.com/stackblitz-labs/bolt.diy/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
					 | 
				
			||||||
        tar xzf $temp_file
 | 
					 | 
				
			||||||
        cp -rf bolt.diy-${RELEASE}/* /opt/bolt.diy
 | 
					 | 
				
			||||||
        cd /opt/bolt.diy
 | 
					 | 
				
			||||||
        $STD pnpm install
 | 
					 | 
				
			||||||
        msg_ok "Updated $APP to v${RELEASE}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Starting $APP"
 | 
					 | 
				
			||||||
        systemctl start boltdiy
 | 
					 | 
				
			||||||
        msg_ok "Started $APP"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Cleaning Up"
 | 
					 | 
				
			||||||
        rm -rf $temp_file
 | 
					 | 
				
			||||||
        rm -rf $temp_dir
 | 
					 | 
				
			||||||
        msg_ok "Cleanup Completed"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        echo "${RELEASE}" >/opt/boltdiy_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}:5173${CL}"
 | 
					 | 
				
			||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://github.com/BookStackApp/BookStack
 | 
					# Source: https://github.com/BookStackApp/BookStack
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Bookstack"
 | 
					APP="Bookstack"
 | 
				
			||||||
var_tags="organizer"
 | 
					var_tags="${var_tags:-organizer}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -36,13 +36,13 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
    mv /opt/bookstack /opt/bookstack-backup
 | 
					    mv /opt/bookstack /opt/bookstack-backup
 | 
				
			||||||
    curl -fsSL "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" -o "/opt/BookStack-${RELEASE}.zip"
 | 
					    curl -fsSL "https://github.com/BookStackApp/BookStack/archive/refs/tags/v${RELEASE}.zip" -o "/opt/BookStack-${RELEASE}.zip"
 | 
				
			||||||
    unzip -q "/opt/BookStack-${RELEASE}.zip" -d /opt
 | 
					    $STD unzip "/opt/BookStack-${RELEASE}.zip" -d /opt
 | 
				
			||||||
    mv "/opt/BookStack-${RELEASE}" /opt/bookstack
 | 
					    mv "/opt/BookStack-${RELEASE}" /opt/bookstack
 | 
				
			||||||
    cp /opt/bookstack-backup/.env /opt/bookstack/.env
 | 
					    cp /opt/bookstack-backup/.env /opt/bookstack/.env
 | 
				
			||||||
    cp -r /opt/bookstack-backup/public/uploads/* /opt/bookstack/public/uploads/ || true
 | 
					    [[ -d /opt/bookstack-backup/public/uploads ]] && cp -a /opt/bookstack-backup/public/uploads/. /opt/bookstack/public/uploads/
 | 
				
			||||||
    cp -r /opt/bookstack-backup/storage/uploads/* /opt/bookstack/storage/uploads/ || true
 | 
					    [[ -d /opt/bookstack-backup/storage/uploads ]] && cp -a /opt/bookstack-backup/storage/uploads/. /opt/bookstack/storage/uploads/
 | 
				
			||||||
    cp -r /opt/bookstack-backup/themes/* /opt/bookstack/themes/ || true
 | 
					    [[ -d /opt/bookstack-backup/themes ]] && cp -a /opt/bookstack-backup/themes/. /opt/bookstack/themes/
 | 
				
			||||||
    cd /opt/bookstack || exit
 | 
					    cd /opt/bookstack
 | 
				
			||||||
    export COMPOSER_ALLOW_SUPERUSER=1
 | 
					    export COMPOSER_ALLOW_SUPERUSER=1
 | 
				
			||||||
    $STD composer install --no-dev
 | 
					    $STD composer install --no-dev
 | 
				
			||||||
    $STD php artisan migrate --force
 | 
					    $STD php artisan migrate --force
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.bunkerweb.io/
 | 
					# Source: https://www.bunkerweb.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="BunkerWeb"
 | 
					APP="BunkerWeb"
 | 
				
			||||||
var_tags="webserver"
 | 
					var_tags="${var_tags:-webserver}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="4096"
 | 
					var_ram="${var_ram:-8192}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -55,4 +55,4 @@ description
 | 
				
			|||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/setup${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/setup${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://github.com/jordan-dalby/ByteStash
 | 
					# Source: https://github.com/jordan-dalby/ByteStash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="ByteStash"
 | 
					APP="ByteStash"
 | 
				
			||||||
var_tags="code"
 | 
					var_tags="${var_tags:-code}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								ct/caddy.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/caddy.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://caddyserver.com/
 | 
					# Source: https://caddyserver.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Caddy"
 | 
					APP="Caddy"
 | 
				
			||||||
var_tags="webserver"
 | 
					var_tags="${var_tags:-webserver}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://github.com/janeczku/calibre-web
 | 
					# Source: https://github.com/janeczku/calibre-web
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Calibre-Web"
 | 
					APP="Calibre-Web"
 | 
				
			||||||
var_tags="eBook"
 | 
					var_tags="${var_tags:-eBook}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								ct/casaos.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/casaos.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://casaos.io/
 | 
					# Source: https://casaos.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="CasaOS"
 | 
					APP="CasaOS"
 | 
				
			||||||
var_tags="cloud"
 | 
					var_tags="${var_tags:-cloud}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="8"
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://changedetection.io/
 | 
					# Source: https://changedetection.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Change Detection"
 | 
					APP="Change Detection"
 | 
				
			||||||
var_tags="monitoring;crawler"
 | 
					var_tags="${var_tags:-monitoring;crawler}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="10"
 | 
					var_disk="${var_disk:-10}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://getchannels.com/dvr-server/
 | 
					# Source: https://getchannels.com/dvr-server/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Channels"
 | 
					APP="Channels"
 | 
				
			||||||
var_tags="dvr"
 | 
					var_tags="${var_tags:-dvr}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="8"
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="0"
 | 
					var_unprivileged="${var_unprivileged:-0}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://checkmk.com/
 | 
					# Source: https://checkmk.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="checkmk"
 | 
					APP="checkmk"
 | 
				
			||||||
var_tags="monitoring"
 | 
					var_tags="${var_tags:-monitoring}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="6"
 | 
					var_disk="${var_disk:-6}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -27,7 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -v '\-rc' | sort -V | tail -n 1)
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
 | 
				
			||||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
					  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
    $STD omd stop monitoring
 | 
					    $STD omd stop monitoring
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										37
									
								
								ct/cloudflare-ddns.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								ct/cloudflare-ddns.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: edoardop13
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/favonia/cloudflare-ddns
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Cloudflare-DDNS"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-network}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-3}"
 | 
				
			||||||
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					  if [[ ! -f /etc/systemd/system/cloudflare-ddns.service ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  msg_error "There is no update function for ${APP}."
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.cloudflare.com/
 | 
					# Source: https://www.cloudflare.com/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Cloudflared"
 | 
					APP="Cloudflared"
 | 
				
			||||||
var_tags="network;cloudflare"
 | 
					var_tags="${var_tags:-network;cloudflare}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://cockpit-project.org/
 | 
					# Source: https://cockpit-project.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Cockpit"
 | 
					APP="Cockpit"
 | 
				
			||||||
var_tags="monitoring;network"
 | 
					var_tags="${var_tags:-monitoring;network}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -41,44 +41,56 @@ function update_script() {
 | 
				
			|||||||
    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)"
 | 
				
			||||||
    $STD apt-get install -y attr
 | 
					    $STD apt-get install -y \
 | 
				
			||||||
    $STD apt-get install -y nfs-kernel-server
 | 
					      attr \
 | 
				
			||||||
    $STD apt-get install -y samba
 | 
					      nfs-kernel-server \
 | 
				
			||||||
    $STD apt-get install -y samba-common-bin
 | 
					      samba \
 | 
				
			||||||
    $STD apt-get install -y winbind
 | 
					      samba-common-bin \
 | 
				
			||||||
    $STD apt-get install -y gawk
 | 
					      winbind \
 | 
				
			||||||
 | 
					      gawk
 | 
				
			||||||
    msg_ok "Installed dependencies"
 | 
					    msg_ok "Installed dependencies"
 | 
				
			||||||
    msg_info "Installing Cockpit file sharing"
 | 
					    msg_info "Installing Cockpit file sharing"
 | 
				
			||||||
    curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
 | 
					    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
				
			||||||
    $STD dpkg -i cockpit-file-sharing_*focal_all.deb
 | 
					    FILE=$(basename "$URL")
 | 
				
			||||||
    rm cockpit-file-sharing_*focal_all.deb
 | 
					    curl -fsSL "$URL" -o "$FILE"
 | 
				
			||||||
 | 
					    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
				
			||||||
 | 
					    rm -f "$FILE"
 | 
				
			||||||
    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)"
 | 
				
			||||||
    $STD apt-get install -y psmisc
 | 
					    $STD apt-get install -y \
 | 
				
			||||||
    $STD apt-get install -y samba
 | 
					      psmisc \
 | 
				
			||||||
    $STD apt-get install -y samba-common-bin
 | 
					      samba \
 | 
				
			||||||
 | 
					      samba-common-bin
 | 
				
			||||||
    msg_ok "Installed dependencies"
 | 
					    msg_ok "Installed dependencies"
 | 
				
			||||||
    msg_info "Installing Cockpit identities"
 | 
					    msg_info "Installing Cockpit identities"
 | 
				
			||||||
    curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
 | 
					    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
				
			||||||
    $STD dpkg -i cockpit-identities_*focal_all.deb
 | 
					    FILE=$(basename "$URL")
 | 
				
			||||||
    rm cockpit-identities_*focal_all.deb
 | 
					    curl -fsSL "$URL" -o "$FILE"
 | 
				
			||||||
 | 
					    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
				
			||||||
 | 
					    rm -f "$FILE"
 | 
				
			||||||
    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"
 | 
				
			||||||
    $STD apt-get install -y rsync
 | 
					    $STD apt-get install -y \
 | 
				
			||||||
    $STD apt-get install -y zip
 | 
					      rsync \
 | 
				
			||||||
 | 
					      zip
 | 
				
			||||||
    msg_ok "Installed dependencies"
 | 
					    msg_ok "Installed dependencies"
 | 
				
			||||||
    msg_info "Installing Cockpit navigator"
 | 
					    msg_info "Installing Cockpit navigator"
 | 
				
			||||||
    curl -fsSL "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)")
 | 
					    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
				
			||||||
    $STD dpkg -i cockpit-navigator_*focal_all.deb
 | 
					    FILE=$(basename "$URL")
 | 
				
			||||||
    rm cockpit-navigator_*focal_all.deb
 | 
					    curl -fsSL "$URL" -o "$FILE"
 | 
				
			||||||
 | 
					    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
				
			||||||
 | 
					    rm -f "$FILE"
 | 
				
			||||||
    msg_ok "Installed Cockpit navigator"
 | 
					    msg_ok "Installed Cockpit navigator"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.commafeed.com/#/welcome
 | 
					# Source: https://www.commafeed.com/#/welcome
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="CommaFeed"
 | 
					APP="CommaFeed"
 | 
				
			||||||
var_tags="rss-reader"
 | 
					var_tags="${var_tags:-rss-reader}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -33,9 +33,16 @@ function update_script() {
 | 
				
			|||||||
    systemctl stop commafeed
 | 
					    systemctl stop commafeed
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ! [[ $(dpkg -s rsync 2>/dev/null) ]]; then
 | 
				
			||||||
 | 
					      msg_info "Installing Dependencies"
 | 
				
			||||||
 | 
					      $STD apt-get update
 | 
				
			||||||
 | 
					      $STD apt-get install -y rsync
 | 
				
			||||||
 | 
					      msg_ok "Installed Dependencies"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
    curl -fsSL "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip" -o $(basename "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip")
 | 
					    curl -fsSL "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip" -o $(basename "https://github.com/Athou/commafeed/releases/download/${RELEASE}/commafeed-${RELEASE}-h2-jvm.zip")
 | 
				
			||||||
    unzip -q commafeed-"${RELEASE}"-h2-jvm.zip
 | 
					    $STD unzip 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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										66
									
								
								ct/configarr.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								ct/configarr.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: finkerle
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/raydak-labs/configarr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Configarr"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/configarr ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [[ "${RELEASE}" != "$(cat /opt/configarr_version.txt)" ]] || [[ ! -f /opt/configarr_version.txt ]]; then
 | 
				
			||||||
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
 | 
					    systemctl stop configarr-task.timer
 | 
				
			||||||
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating $APP to v${RELEASE}"
 | 
				
			||||||
 | 
					    mkdir -p /opt/backup/
 | 
				
			||||||
 | 
					    mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
 | 
				
			||||||
 | 
					    rm -rf /opt/configarr
 | 
				
			||||||
 | 
					    fetch_and_deploy_gh_release "raydak-labs/configarr"
 | 
				
			||||||
 | 
					    mv /opt/backup/* /opt/configarr/
 | 
				
			||||||
 | 
					    cd /opt/configarr
 | 
				
			||||||
 | 
					    $STD pnpm install
 | 
				
			||||||
 | 
					    $STD pnpm run build
 | 
				
			||||||
 | 
					    msg_ok "Updated $APP to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
 | 
					    systemctl start configarr-task.timer
 | 
				
			||||||
 | 
					    msg_ok "Started configarr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    rm -rf /opt/backup
 | 
				
			||||||
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL (no web-ui):${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8989${CL}"
 | 
				
			||||||
							
								
								
									
										14
									
								
								ct/cosmos.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/cosmos.sh
									
									
									
									
									
								
							@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://https://cosmos-cloud.io/
 | 
					# Source: https://https://cosmos-cloud.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="cosmos"
 | 
					APP="cosmos"
 | 
				
			||||||
var_tags="os,docker"
 | 
					var_tags="${var_tags:-os,docker}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="8"
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://gitlab.com/crafty-controller/crafty-4
 | 
					# Source: https://gitlab.com/crafty-controller/crafty-4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Crafty-Controller"
 | 
					APP="Crafty-Controller"
 | 
				
			||||||
var_tags="gaming"
 | 
					var_tags="${var_tags:-gaming}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="4096"
 | 
					var_ram="${var_ram:-4096}"
 | 
				
			||||||
var_disk="16"
 | 
					var_disk="${var_disk:-16}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -46,7 +46,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating Crafty-Controller to v${RELEASE}"
 | 
					    msg_info "Updating Crafty-Controller to v${RELEASE}"
 | 
				
			||||||
    curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip")
 | 
					    curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip")
 | 
				
			||||||
    unzip -q crafty-4-v${RELEASE}.zip
 | 
					    $STD unzip crafty-4-v${RELEASE}.zip
 | 
				
			||||||
    cp -a crafty-4-v${RELEASE}/. /opt/crafty-controller/crafty/crafty-4/
 | 
					    cp -a crafty-4-v${RELEASE}/. /opt/crafty-controller/crafty/crafty-4/
 | 
				
			||||||
    rm -rf crafty-4-v${RELEASE}
 | 
					    rm -rf crafty-4-v${RELEASE}
 | 
				
			||||||
    cd /opt/crafty-controller/crafty/crafty-4
 | 
					    cd /opt/crafty-controller/crafty/crafty-4
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -147,7 +147,7 @@ function select_storage() {
 | 
				
			|||||||
    local STORAGE
 | 
					    local STORAGE
 | 
				
			||||||
    while [ -z "${STORAGE:+x}" ]; do
 | 
					    while [ -z "${STORAGE:+x}" ]; do
 | 
				
			||||||
      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
 | 
					      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
 | 
				
			||||||
        "Which storage pool you would like to use for the ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \
 | 
					        "Which storage pool would you 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) || {
 | 
					        "${MENU[@]}" 3>&1 1>&2 2>&3) || {
 | 
				
			||||||
        msg_error "Menu aborted."
 | 
					        msg_error "Menu aborted."
 | 
				
			||||||
@@ -200,11 +200,11 @@ if qm status "$CTID" &>/dev/null || pct status "$CTID" &>/dev/null; then
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Get template storage
 | 
					# Get template storage
 | 
				
			||||||
TEMPLATE_STORAGE=$(select_storage template) || exit
 | 
					TEMPLATE_STORAGE=$(select_storage template)
 | 
				
			||||||
msg_ok "Using ${BL}$TEMPLATE_STORAGE${CL} ${GN}for Template Storage."
 | 
					msg_ok "Using ${BL}$TEMPLATE_STORAGE${CL} ${GN}for Template Storage."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Get container storage
 | 
					# Get container storage
 | 
				
			||||||
CONTAINER_STORAGE=$(select_storage container) || exit
 | 
					CONTAINER_STORAGE=$(select_storage container)
 | 
				
			||||||
msg_ok "Using ${BL}$CONTAINER_STORAGE${CL} ${GN}for Container Storage."
 | 
					msg_ok "Using ${BL}$CONTAINER_STORAGE${CL} ${GN}for Container Storage."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Update LXC template list
 | 
					# Update LXC template list
 | 
				
			||||||
@@ -279,4 +279,4 @@ if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[
 | 
				
			|||||||
    exit 209
 | 
					    exit 209
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
msg_ok "LXC Container ${BL}$CTID${CL} ${GN}was successfully created."
 | 
					msg_ok "LXC Container ${BL}$CTID${CL} ${GN}was successfully created."
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://cronicle.net/
 | 
					# Source: https://cronicle.net/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Cronicle"
 | 
					APP="Cronicle"
 | 
				
			||||||
var_tags="task-scheduler"
 | 
					var_tags="${var_tags:-task-scheduler}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="512"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://www.cross-seed.org
 | 
					# Source: https://www.cross-seed.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="cross-seed"
 | 
					APP="cross-seed"
 | 
				
			||||||
var_tags="arr"
 | 
					var_tags="${var_tags:-arr}"
 | 
				
			||||||
var_cpu="1"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="1024"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="2"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user