mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			785 Commits
		
	
	
		
			2025-05-01
			...
			2025-06-23
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					daad486c5e | ||
| 
						 | 
					e11fb287f1 | ||
| 
						 | 
					b889909d65 | ||
| 
						 | 
					454a272cad | ||
| 
						 | 
					7e7d610182 | ||
| 
						 | 
					7302d43e7e | ||
| 
						 | 
					3d4bcb8081 | ||
| 
						 | 
					a0f18fd0f7 | ||
| 
						 | 
					dc3113c57b | ||
| 
						 | 
					c09606db69 | ||
| 
						 | 
					7b90b0624e | ||
| 
						 | 
					342722b10a | ||
| 
						 | 
					22964f4898 | ||
| 
						 | 
					a8b3244f92 | ||
| 
						 | 
					a1aee90f72 | ||
| 
						 | 
					09dbc22728 | ||
| 
						 | 
					9559a1b3f7 | ||
| 
						 | 
					2f0bff4e42 | ||
| 
						 | 
					ea8586d4b5 | ||
| 
						 | 
					33bb4fd9e0 | ||
| 
						 | 
					5cf8765d9a | ||
| 
						 | 
					b6a98288cc | ||
| 
						 | 
					89cfb38459 | ||
| 
						 | 
					82179752ee | ||
| 
						 | 
					d495095d21 | ||
| 
						 | 
					6cc901eba6 | ||
| 
						 | 
					75b6aa9dac | ||
| 
						 | 
					aab85ab654 | ||
| 
						 | 
					5e87af5e8f | ||
| 
						 | 
					8bd6d89bff | ||
| 
						 | 
					ddf3019021 | ||
| 
						 | 
					ef871c44ff | ||
| 
						 | 
					5fcc97142f | ||
| 
						 | 
					c6cbb495d2 | ||
| 
						 | 
					cd84cf974c | ||
| 
						 | 
					a2b8a87cc4 | ||
| 
						 | 
					c684472cb4 | ||
| 
						 | 
					930e4bd556 | ||
| 
						 | 
					c6c03d4728 | ||
| 
						 | 
					e024099beb | ||
| 
						 | 
					08648aca15 | ||
| 
						 | 
					70a1cfbe28 | ||
| 
						 | 
					3d99d74685 | ||
| 
						 | 
					6cc090b693 | ||
| 
						 | 
					a8deff54d8 | ||
| 
						 | 
					e33cf652a1 | ||
| 
						 | 
					b35eadfc36 | ||
| 
						 | 
					74a073e8bd | ||
| 
						 | 
					ce9c1e63a8 | ||
| 
						 | 
					25f6245d31 | ||
| 
						 | 
					074d6fa31b | ||
| 
						 | 
					8dfacb9e7d | ||
| 
						 | 
					12a6055ea3 | ||
| 
						 | 
					637f9a1f44 | ||
| 
						 | 
					a7ed02160b | ||
| 
						 | 
					03551e23e4 | ||
| 
						 | 
					1f7d85ac60 | ||
| 
						 | 
					4e46fd739d | ||
| 
						 | 
					ea5eca83fe | ||
| 
						 | 
					b49b902d64 | ||
| 
						 | 
					f81f7fb1c0 | ||
| 
						 | 
					bcdeeaafb3 | ||
| 
						 | 
					92f631b628 | ||
| 
						 | 
					9133782289 | ||
| 
						 | 
					e343c7b5aa | ||
| 
						 | 
					3e47e39633 | ||
| 
						 | 
					43a90bf9e6 | ||
| 
						 | 
					cd45ccfb70 | ||
| 
						 | 
					b52cba817f | ||
| 
						 | 
					ac203f4e79 | ||
| 
						 | 
					b019991ee6 | ||
| 
						 | 
					6bc17a0031 | ||
| 
						 | 
					69d9394840 | ||
| 
						 | 
					ad8462bc10 | ||
| 
						 | 
					39b18ea011 | ||
| 
						 | 
					76c99518b1 | ||
| 
						 | 
					8fb0a16568 | ||
| 
						 | 
					9bbc0c90e3 | ||
| 
						 | 
					b5012c4225 | ||
| 
						 | 
					204ec64f14 | ||
| 
						 | 
					451608b445 | ||
| 
						 | 
					94ad4f2e40 | ||
| 
						 | 
					5db3d92286 | ||
| 
						 | 
					796aaaa1d4 | ||
| 
						 | 
					5042f6edb0 | ||
| 
						 | 
					0c1fad54b6 | ||
| 
						 | 
					fe1df0b344 | ||
| 
						 | 
					3ca014b757 | ||
| 
						 | 
					db7a13fced | ||
| 
						 | 
					ab1f4c1196 | ||
| 
						 | 
					14ffff4c6a | ||
| 
						 | 
					bada204f64 | ||
| 
						 | 
					1c42a2016e | ||
| 
						 | 
					0cd347d3b6 | ||
| 
						 | 
					63713c6489 | ||
| 
						 | 
					49153887dc | ||
| 
						 | 
					c46d543c43 | ||
| 
						 | 
					dbd2af91b5 | ||
| 
						 | 
					86183c638d | ||
| 
						 | 
					aec9af49a0 | ||
| 
						 | 
					791eca99b9 | ||
| 
						 | 
					4190582659 | ||
| 
						 | 
					601e1853e9 | ||
| 
						 | 
					14077eddcd | ||
| 
						 | 
					2255600c3b | ||
| 
						 | 
					badd63d4a7 | ||
| 
						 | 
					6c345af691 | ||
| 
						 | 
					2f326ffb97 | ||
| 
						 | 
					e7bb270c34 | ||
| 
						 | 
					fc4a46b72d | ||
| 
						 | 
					a402b45b17 | ||
| 
						 | 
					9ab2089d01 | ||
| 
						 | 
					0dc533cb82 | ||
| 
						 | 
					4351218f8b | ||
| 
						 | 
					3ee4ece04d | ||
| 
						 | 
					a377640d16 | ||
| 
						 | 
					bece1c574f | ||
| 
						 | 
					e9afe958b1 | ||
| 
						 | 
					93f9291d7c | ||
| 
						 | 
					8f0751442d | ||
| 
						 | 
					003422934a | ||
| 
						 | 
					c11636562c | ||
| 
						 | 
					654508eb94 | ||
| 
						 | 
					acfb9d6ea1 | ||
| 
						 | 
					0d56db2d3d | ||
| 
						 | 
					4a1ae51446 | ||
| 
						 | 
					6520b7f4d4 | ||
| 
						 | 
					48da94f77a | ||
| 
						 | 
					2ea372f034 | ||
| 
						 | 
					5773459a39 | ||
| 
						 | 
					40f083ea40 | ||
| 
						 | 
					219a7853e1 | ||
| 
						 | 
					6d1d903345 | ||
| 
						 | 
					ef9ca48477 | ||
| 
						 | 
					8ac24981a6 | ||
| 
						 | 
					7e046d830d | ||
| 
						 | 
					1691fafcc1 | ||
| 
						 | 
					4400cd2b97 | ||
| 
						 | 
					795fe72768 | ||
| 
						 | 
					6d7d15ce46 | ||
| 
						 | 
					a648b9abc4 | ||
| 
						 | 
					4057fadfe0 | ||
| 
						 | 
					9b700195e4 | ||
| 
						 | 
					906a0a0fbc | ||
| 
						 | 
					8df55a03f4 | ||
| 
						 | 
					8241ed932d | ||
| 
						 | 
					0b3c645ffb | ||
| 
						 | 
					0c17402efc | ||
| 
						 | 
					ccad7a2cd8 | ||
| 
						 | 
					15772d8802 | ||
| 
						 | 
					c7e0faa33b | ||
| 
						 | 
					13b1c684ee | ||
| 
						 | 
					5e649d7cb1 | ||
| 
						 | 
					ec8a8b1908 | ||
| 
						 | 
					d850dde4ef | ||
| 
						 | 
					fb4075ac12 | ||
| 
						 | 
					8576463522 | ||
| 
						 | 
					2a4353fa13 | ||
| 
						 | 
					d21cbf1d40 | ||
| 
						 | 
					e97c96d0bb | ||
| 
						 | 
					04dab68e17 | ||
| 
						 | 
					b001687f5c | ||
| 
						 | 
					9f26e25126 | ||
| 
						 | 
					5671d8e957 | ||
| 
						 | 
					0bf641f02c | ||
| 
						 | 
					7fc39a442b | ||
| 
						 | 
					6e1ee7d16e | ||
| 
						 | 
					5ee48aba1e | ||
| 
						 | 
					e6c21811bb | ||
| 
						 | 
					142fea21bd | ||
| 
						 | 
					df43101b4e | ||
| 
						 | 
					3044a774c2 | ||
| 
						 | 
					65e4c027b8 | ||
| 
						 | 
					dabfb57173 | ||
| 
						 | 
					63dfc2bd7b | ||
| 
						 | 
					89399ef421 | ||
| 
						 | 
					d9474c3dd6 | ||
| 
						 | 
					f5a5e4854c | ||
| 
						 | 
					632e823749 | ||
| 
						 | 
					a128f3c43d | ||
| 
						 | 
					9c90699ca2 | ||
| 
						 | 
					f6f6ca6bac | ||
| 
						 | 
					b6d0b1ae6a | ||
| 
						 | 
					93906db2d1 | ||
| 
						 | 
					4ab71ccf00 | ||
| 
						 | 
					e058badee6 | ||
| 
						 | 
					74c6df5aa6 | ||
| 
						 | 
					c2484b7c60 | ||
| 
						 | 
					b064127323 | ||
| 
						 | 
					138f90f09c | ||
| 
						 | 
					84469e2b5b | ||
| 
						 | 
					a164d259e0 | ||
| 
						 | 
					34aa360920 | ||
| 
						 | 
					f0dde5a42d | ||
| 
						 | 
					e0ccc1a0af | ||
| 
						 | 
					4fa7483d8b | ||
| 
						 | 
					cd835c6791 | ||
| 
						 | 
					abf233c94f | ||
| 
						 | 
					edd4fb3cc2 | ||
| 
						 | 
					d97620a390 | ||
| 
						 | 
					c2c5159a2d | ||
| 
						 | 
					46d9f85f5e | ||
| 
						 | 
					ba7ec5aa68 | ||
| 
						 | 
					dd4c556959 | ||
| 
						 | 
					0e63437154 | ||
| 
						 | 
					0769320146 | ||
| 
						 | 
					d6da26c640 | ||
| 
						 | 
					d9facc0e62 | ||
| 
						 | 
					31e0b5fae3 | ||
| 
						 | 
					b0bd2f4804 | ||
| 
						 | 
					3aefe199f7 | ||
| 
						 | 
					677008c779 | ||
| 
						 | 
					b8ba409e5c | ||
| 
						 | 
					7cf8300b47 | ||
| 
						 | 
					77fb5ea516 | ||
| 
						 | 
					e92dfe1b2b | ||
| 
						 | 
					61bfa16645 | ||
| 
						 | 
					84c295a10b | ||
| 
						 | 
					ed834bf424 | ||
| 
						 | 
					b1f8992933 | ||
| 
						 | 
					201f7c4651 | ||
| 
						 | 
					2574e41ee8 | ||
| 
						 | 
					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 | 
							
								
								
									
										
											BIN
										
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										4
									
								
								.github/CONTRIBUTOR_AND_GUIDES/CODE-AUDIT.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/CONTRIBUTOR_AND_GUIDES/CODE-AUDIT.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,10 +5,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
1) [adguard.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/adguard.sh): This script collects system parameters. (Also holds the function to update the application.)
 | 
					1) [adguard.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/adguard.sh): This script collects system parameters. (Also holds the function to update the application.)
 | 
				
			||||||
2) [build.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/build.func): Adds user settings and integrates collected information.
 | 
					2) [build.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/build.func): Adds user settings and integrates collected information.
 | 
				
			||||||
3) [create_lxc.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/create_lxc.sh): Constructs the LXC container.
 | 
					3) [create_lxc.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/create_lxc.sh): Constructs the LXC container.
 | 
				
			||||||
4) [adguard-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/install/adguard-install.sh): Executes functions from [install.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/install.func), and installs the application.
 | 
					4) [adguard-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/install/adguard-install.sh): Executes functions from [install.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/install.func), and installs the application.
 | 
				
			||||||
5) [adguard.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/adguard.sh) (again): To display the completion message.
 | 
					5) [adguard.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/adguard.sh) (again): To display the completion message.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The installation process uses reusable scripts: [build.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/build.func), [create_lxc.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/ct/create_lxc.sh), and [install.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/install.func), which are not specific to any particular application.
 | 
					The installation process uses reusable scripts: [build.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/build.func), [create_lxc.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/create_lxc.sh), and [install.func](https://github.com/community-scripts/ProxmoxVE/blob/main/misc/install.func), which are not specific to any particular application.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To gain a better understanding, focus on reviewing [adguard-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/install/adguard-install.sh). This script contains the commands and configurations for installing and configuring AdGuard Home within the LXC container.
 | 
					To gain a better understanding, focus on reviewing [adguard-install.sh](https://github.com/community-scripts/ProxmoxVE/blob/main/install/adguard-install.sh). This script contains the commands and configurations for installing and configuring AdGuard Home within the LXC container.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.md
									
									
									
										generated
									
									
										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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										104
									
								
								.github/CONTRIBUTOR_AND_GUIDES/ct/AppName.sh
									
									
									
										generated
									
									
										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}"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								.github/CONTRIBUTOR_AND_GUIDES/install/AppName-install.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/CONTRIBUTOR_AND_GUIDES/install/AppName-install.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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**
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										28
									
								
								.github/CONTRIBUTOR_AND_GUIDES/install/AppName-install.sh
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								.github/CONTRIBUTOR_AND_GUIDES/install/AppName-install.sh
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										61
									
								
								.github/autolabeler-config.json
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										61
									
								
								.github/autolabeler-config.json
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -2,21 +2,43 @@
 | 
				
			|||||||
  "new script": [
 | 
					  "new script": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": "added",
 | 
					      "fileStatus": "added",
 | 
				
			||||||
      "includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
 | 
					        "ct/**",
 | 
				
			||||||
 | 
					        "install/**",
 | 
				
			||||||
 | 
					        "misc/**",
 | 
				
			||||||
 | 
					        "turnkey/**",
 | 
				
			||||||
 | 
					        "vm/**"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "update script": [
 | 
					  "update script": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": "modified",
 | 
					      "fileStatus": "modified",
 | 
				
			||||||
      "includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
      "excludeGlobs": ["misc/build.func", "misc/install.func", "misc/api.func"]
 | 
					        "ct/**",
 | 
				
			||||||
 | 
					        "install/**",
 | 
				
			||||||
 | 
					        "misc/**",
 | 
				
			||||||
 | 
					        "turnkey/**",
 | 
				
			||||||
 | 
					        "vm/**"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "excludeGlobs": [
 | 
				
			||||||
 | 
					        "misc/build.func",
 | 
				
			||||||
 | 
					        "misc/install.func",
 | 
				
			||||||
 | 
					        "misc/api.func"
 | 
				
			||||||
 | 
					      ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "delete script": [
 | 
					  "delete script": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": "removed",
 | 
					      "fileStatus": "removed",
 | 
				
			||||||
      "includeGlobs": ["ct/**", "install/**", "misc/**", "turnkey/**", "vm/**"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
 | 
					        "ct/**",
 | 
				
			||||||
 | 
					        "install/**",
 | 
				
			||||||
 | 
					        "misc/**",
 | 
				
			||||||
 | 
					        "turnkey/**",
 | 
				
			||||||
 | 
					        "vm/**"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
@@ -27,7 +49,7 @@
 | 
				
			|||||||
        "*.md",
 | 
					        "*.md",
 | 
				
			||||||
        ".github/**",
 | 
					        ".github/**",
 | 
				
			||||||
        "misc/*.func",
 | 
					        "misc/*.func",
 | 
				
			||||||
        "ct/create_lxc.sh",
 | 
					        "misc/create_lxc.sh",
 | 
				
			||||||
        "api/**"
 | 
					        "api/**"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
@@ -36,46 +58,57 @@
 | 
				
			|||||||
  "core": [
 | 
					  "core": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": null,
 | 
					      "fileStatus": null,
 | 
				
			||||||
      "includeGlobs": ["misc/*.func", "ct/create_lxc.sh"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
 | 
					        "misc/*.func",
 | 
				
			||||||
 | 
					        "misc/create_lxc.sh"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "website": [
 | 
					  "website": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": null,
 | 
					      "fileStatus": null,
 | 
				
			||||||
      "includeGlobs": ["frontend/**"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
 | 
					        "frontend/**"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "api": [
 | 
					  "api": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": null,
 | 
					      "fileStatus": null,
 | 
				
			||||||
      "includeGlobs": ["api/**", "misc/api.func"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
 | 
					        "api/**",
 | 
				
			||||||
 | 
					        "misc/api.func"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "github": [
 | 
					  "github": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": null,
 | 
					      "fileStatus": null,
 | 
				
			||||||
      "includeGlobs": [".github/**"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
 | 
					        ".github/**"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
  "json": [
 | 
					  "json": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": "modified",
 | 
					      "fileStatus": "modified",
 | 
				
			||||||
      "includeGlobs": ["frontend/public/json/**"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
 | 
					        "frontend/public/json/**"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ],
 | 
					  ],
 | 
				
			||||||
 | 
					 | 
				
			||||||
  "high risk": [
 | 
					  "high risk": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": null,
 | 
					      "fileStatus": null,
 | 
				
			||||||
      "includeGlobs": [
 | 
					      "includeGlobs": [
 | 
				
			||||||
        "misc/build.func",
 | 
					        "misc/build.func",
 | 
				
			||||||
        "misc/install.func",
 | 
					        "misc/install.func",
 | 
				
			||||||
        "ct/create_lxc.sh"
 | 
					        "misc/create_lxc.sh"
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -83,7 +116,9 @@
 | 
				
			|||||||
  "documentation": [
 | 
					  "documentation": [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      "fileStatus": null,
 | 
					      "fileStatus": null,
 | 
				
			||||||
      "includeGlobs": ["*.md"],
 | 
					      "includeGlobs": [
 | 
				
			||||||
 | 
					        "*.md"
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      "excludeGlobs": []
 | 
					      "excludeGlobs": []
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										25
									
								
								.github/workflows/auto-update-app-headers.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/auto-update-app-headers.yml
									
									
									
										generated
									
									
										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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/autolabeler.yml
									
									
									
										generated
									
									
										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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								.github/workflows/changelog-pr.yml
									
									
									
										generated
									
									
										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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.github/workflows/close-discussion.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/close-discussion.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -11,6 +11,7 @@ permissions:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
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:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.github/workflows/close-ttek-issues.yaml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/close-ttek-issues.yaml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,6 +5,7 @@ on:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  close_tteck_issues:
 | 
					  close_tteck_issues:
 | 
				
			||||||
 | 
					    if: github.repository == 'community-scripts/ProxmoxVE'
 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - name: Auto-close if tteck script detected
 | 
					      - name: Auto-close if tteck script detected
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								.github/workflows/close_issue_in_dev.yaml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/close_issue_in_dev.yaml
									
									
									
										generated
									
									
										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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/crawl-versions.yaml
									
									
									
										generated
									
									
										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:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								.github/workflows/create-docker-for-runner.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/create-docker-for-runner.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/delete-json-branch.yml
									
									
									
										generated
									
									
										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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.github/workflows/frontend-cicd.yml
									
									
									
										generated
									
									
										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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/github-release.yml
									
									
									
										generated
									
									
										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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/script-test.yml
									
									
									
										generated
									
									
										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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/script_format.yml
									
									
									
										generated
									
									
										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)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								.github/workflows/scripts/app-test/pr-alpine-install.func
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/scripts/app-test/pr-alpine-install.func
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										70
									
								
								.github/workflows/scripts/generate-app-headers.sh
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										70
									
								
								.github/workflows/scripts/generate-app-headers.sh
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -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
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								.github/workflows/update-json-date.yml
									
									
									
										generated
									
									
										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."
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								.github/workflows/validate-filenames.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/validate-filenames.yml
									
									
									
										generated
									
									
										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:
 | 
				
			||||||
@@ -50,8 +51,8 @@ jobs:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
          NON_COMPLIANT_FILES=""
 | 
					          NON_COMPLIANT_FILES=""
 | 
				
			||||||
          for FILE in $CHANGED_FILES; do
 | 
					          for FILE in $CHANGED_FILES; do
 | 
				
			||||||
            # Datei "ct/create_lxc.sh" explizit überspringen
 | 
					            # Skip File "misc/create_lxc.sh"
 | 
				
			||||||
            if [[ "$FILE" == "ct/create_lxc.sh" ]]; then
 | 
					            if [[ "$FILE" == "misc/create_lxc.sh" ]]; then
 | 
				
			||||||
              continue
 | 
					              continue
 | 
				
			||||||
            fi
 | 
					            fi
 | 
				
			||||||
            BASENAME=$(echo "$(basename "${FILE%.*}")")
 | 
					            BASENAME=$(echo "$(basename "${FILE%.*}")")
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										946
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										946
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -14,6 +14,952 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
 | 
				
			|||||||
All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
 | 
					All LXC instances created using this repository come pre-installed with Midnight Commander, which is a command-line tool (`mc`) that offers a user-friendly file and directory management interface for the terminal environment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-23
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Alpine-Forgejo by @Johann3s-H [@MickLesk](https://github.com/MickLesk) ([#5396](https://github.com/community-scripts/ProxmoxVE/pull/5396))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - [core]: tools.func -> autoupdate npm to newest version on install [@MickLesk](https://github.com/MickLesk) ([#5397](https://github.com/community-scripts/ProxmoxVE/pull/5397))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - PLANKA: Fix the update procedure [@tremor021](https://github.com/tremor021) ([#5391](https://github.com/community-scripts/ProxmoxVE/pull/5391))
 | 
				
			||||||
 | 
					    - changed trilium github repo [@miggi92](https://github.com/miggi92) ([#5390](https://github.com/community-scripts/ProxmoxVE/pull/5390))
 | 
				
			||||||
 | 
					    - changedetection: fix: hermetic msedge [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5388](https://github.com/community-scripts/ProxmoxVE/pull/5388))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - MariaDB: Add information about Adminer on website [@tremor021](https://github.com/tremor021) ([#5400](https://github.com/community-scripts/ProxmoxVE/pull/5400))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - [core]: fix timing issues while template update & timezone setup at create new LXC [@MickLesk](https://github.com/MickLesk) ([#5358](https://github.com/community-scripts/ProxmoxVE/pull/5358))
 | 
				
			||||||
 | 
					- alpine: increase hdd to 1gb [@MickLesk](https://github.com/MickLesk) ([#5377](https://github.com/community-scripts/ProxmoxVE/pull/5377))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - fix: casing and naming error after #5254 [@GoetzGoerisch](https://github.com/GoetzGoerisch) ([#5380](https://github.com/community-scripts/ProxmoxVE/pull/5380))
 | 
				
			||||||
 | 
					    - fix: install_adminer > setup_adminer [@MickLesk](https://github.com/MickLesk) ([#5356](https://github.com/community-scripts/ProxmoxVE/pull/5356))
 | 
				
			||||||
 | 
					    - gitea: Update gitea.sh to stop update failures [@tystuyfzand](https://github.com/tystuyfzand) ([#5361](https://github.com/community-scripts/ProxmoxVE/pull/5361))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Immich: unpin release; use fetch & deploy function for update [@vhsdream](https://github.com/vhsdream) ([#5355](https://github.com/community-scripts/ProxmoxVE/pull/5355))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Immich: remove unneeded tmp_file [@MickLesk](https://github.com/MickLesk) ([#5332](https://github.com/community-scripts/ProxmoxVE/pull/5332))
 | 
				
			||||||
 | 
					    - Huntarr: Fix duplicate update status messages [@tremor021](https://github.com/tremor021) ([#5336](https://github.com/community-scripts/ProxmoxVE/pull/5336))
 | 
				
			||||||
 | 
					    - fix planka Tags [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5311](https://github.com/community-scripts/ProxmoxVE/pull/5311))
 | 
				
			||||||
 | 
					    - PLANKA: Better DB password generate [@tremor021](https://github.com/tremor021) ([#5313](https://github.com/community-scripts/ProxmoxVE/pull/5313))
 | 
				
			||||||
 | 
					    - Immich: Hotfix for #5299 [@vhsdream](https://github.com/vhsdream) ([#5300](https://github.com/community-scripts/ProxmoxVE/pull/5300))
 | 
				
			||||||
 | 
					    - changedetection: add msedge as Browser dependency [@Niklas04](https://github.com/Niklas04) ([#5301](https://github.com/community-scripts/ProxmoxVE/pull/5301))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - (turnkey) Add OpenLDAP as a TurnKey option [@mhaligowski](https://github.com/mhaligowski) ([#5305](https://github.com/community-scripts/ProxmoxVE/pull/5305))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - [core]: unify misc/*.func scripts with centralized logic from core.func [@MickLesk](https://github.com/MickLesk) ([#5316](https://github.com/community-scripts/ProxmoxVE/pull/5316))
 | 
				
			||||||
 | 
					    - Refactor: migrate AdventureLog update to uv and GitHub release logic [@MickLesk](https://github.com/MickLesk) ([#5318](https://github.com/community-scripts/ProxmoxVE/pull/5318))
 | 
				
			||||||
 | 
					    - Refactor: migrate Jupyter Notebook to uv-based installation with update support [@MickLesk](https://github.com/MickLesk) ([#5320](https://github.com/community-scripts/ProxmoxVE/pull/5320))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Argus: fix wrong port on website [@MickLesk](https://github.com/MickLesk) ([#5322](https://github.com/community-scripts/ProxmoxVE/pull/5322))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-19
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Ubuntu 25.04 VM [@MickLesk](https://github.com/MickLesk) ([#5284](https://github.com/community-scripts/ProxmoxVE/pull/5284))
 | 
				
			||||||
 | 
					- PLANKA ([#5277](https://github.com/community-scripts/ProxmoxVE/pull/5277))
 | 
				
			||||||
 | 
					- Wizarr ([#5273](https://github.com/community-scripts/ProxmoxVE/pull/5273))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - immich-install.sh: restore pgvector module install [@vhsdream](https://github.com/vhsdream) ([#5286](https://github.com/community-scripts/ProxmoxVE/pull/5286))
 | 
				
			||||||
 | 
					    - Immich: prepare for v1.135.0 [@vhsdream](https://github.com/vhsdream) ([#5025](https://github.com/community-scripts/ProxmoxVE/pull/5025))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - [core]: Feature - Check Quorum Status in create_lxc to prevent issues [@MickLesk](https://github.com/MickLesk) ([#5278](https://github.com/community-scripts/ProxmoxVE/pull/5278))
 | 
				
			||||||
 | 
					    - [core]: add validation and replace recursion for invalid inputs in adv. settings [@MickLesk](https://github.com/MickLesk) ([#5291](https://github.com/community-scripts/ProxmoxVE/pull/5291))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - cloudflare-ddns: fix typo in info-text [@LukaZagar](https://github.com/LukaZagar) ([#5263](https://github.com/community-scripts/ProxmoxVE/pull/5263))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - FileBrowser Quantum [@MickLesk](https://github.com/MickLesk) ([#5248](https://github.com/community-scripts/ProxmoxVE/pull/5248))
 | 
				
			||||||
 | 
					- Huntarr ([#5249](https://github.com/community-scripts/ProxmoxVE/pull/5249))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - tools.func: Standardized and Renamed Setup Functions [@MickLesk](https://github.com/MickLesk) ([#5241](https://github.com/community-scripts/ProxmoxVE/pull/5241))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Immich: fix prompt clobber issue [@vhsdream](https://github.com/vhsdream) ([#5231](https://github.com/community-scripts/ProxmoxVE/pull/5231))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Refactor all VM's to same logic & functions [@MickLesk](https://github.com/MickLesk) ([#5254](https://github.com/community-scripts/ProxmoxVE/pull/5254))
 | 
				
			||||||
 | 
					    - upgrade old Scriptcalls to new tools.func calls [@MickLesk](https://github.com/MickLesk) ([#5242](https://github.com/community-scripts/ProxmoxVE/pull/5242))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - gitea-mirror: increase build ressources  [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5235](https://github.com/community-scripts/ProxmoxVE/pull/5235))
 | 
				
			||||||
 | 
					    - Immich: ensure in proper working dir when updating [@vhsdream](https://github.com/vhsdream) ([#5227](https://github.com/community-scripts/ProxmoxVE/pull/5227))
 | 
				
			||||||
 | 
					    - Update IP-Tag [@DesertGamer](https://github.com/DesertGamer) ([#5226](https://github.com/community-scripts/ProxmoxVE/pull/5226))
 | 
				
			||||||
 | 
					    - trilium: fix update function after db changes folder [@tjcomserv](https://github.com/tjcomserv) ([#5207](https://github.com/community-scripts/ProxmoxVE/pull/5207))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - LibreTranslate: Add .env for easier configuration [@tremor021](https://github.com/tremor021) ([#5216](https://github.com/community-scripts/ProxmoxVE/pull/5216))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - IPTag: Better explanation [@MickLesk](https://github.com/MickLesk) ([#5213](https://github.com/community-scripts/ProxmoxVE/pull/5213))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Intel NIC offload Fix by @rcastley [@MickLesk](https://github.com/MickLesk) ([#5155](https://github.com/community-scripts/ProxmoxVE/pull/5155))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - [core] Move install_php() from VED to main [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5182](https://github.com/community-scripts/ProxmoxVE/pull/5182))
 | 
				
			||||||
 | 
					- Firefly: Add Data Importer to LXC [@tremor021](https://github.com/tremor021) ([#5159](https://github.com/community-scripts/ProxmoxVE/pull/5159))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Wastebin: Fix missing dependencies [@tremor021](https://github.com/tremor021) ([#5185](https://github.com/community-scripts/ProxmoxVE/pull/5185))
 | 
				
			||||||
 | 
					    - Kasm: Storing Creds Fix [@omiinaya](https://github.com/omiinaya) ([#5162](https://github.com/community-scripts/ProxmoxVE/pull/5162))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - add optional Cloud-init support to Debian VM script  [@koendiender](https://github.com/koendiender) ([#5137](https://github.com/community-scripts/ProxmoxVE/pull/5137))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Refactor: 2FAuth [@tremor021](https://github.com/tremor021) ([#5184](https://github.com/community-scripts/ProxmoxVE/pull/5184))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Refactor layout and component styles for improved responsiveness [@BramSuurdje](https://github.com/BramSuurdje) ([#5195](https://github.com/community-scripts/ProxmoxVE/pull/5195))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Refactor ScriptItem and ConfigFile components to conditionally render config file location. Update ConfigFile to accept configPath prop instead of item. [@BramSuurdje](https://github.com/BramSuurdje) ([#5197](https://github.com/community-scripts/ProxmoxVE/pull/5197))
 | 
				
			||||||
 | 
					    - Update default image asset in the public directory and update api route to only search for files that end with .json [@BramSuurdje](https://github.com/BramSuurdje) ([#5179](https://github.com/community-scripts/ProxmoxVE/pull/5179))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Update default image asset in the public directory [@BramSuurdje](https://github.com/BramSuurdje) ([#5189](https://github.com/community-scripts/ProxmoxVE/pull/5189))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - LibreTranslate ([#5154](https://github.com/community-scripts/ProxmoxVE/pull/5154))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - [core] Update install_mariadb func [@tremor021](https://github.com/tremor021) ([#5138](https://github.com/community-scripts/ProxmoxVE/pull/5138))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - flowiseai: set NodeJS to Version 20 [@MickLesk](https://github.com/MickLesk) ([#5130](https://github.com/community-scripts/ProxmoxVE/pull/5130))
 | 
				
			||||||
 | 
					    - Update dolibarr-install.sh - Get largest version number [@tjcomserv](https://github.com/tjcomserv) ([#5127](https://github.com/community-scripts/ProxmoxVE/pull/5127))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-13
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Zigbee2MQTT: Fix missing directory [@tremor021](https://github.com/tremor021) ([#5120](https://github.com/community-scripts/ProxmoxVE/pull/5120))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Umbrel OS: Fix bad disk size shown on website [@tremor021](https://github.com/tremor021) ([#5125](https://github.com/community-scripts/ProxmoxVE/pull/5125))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Manage my Damn Life ([#5100](https://github.com/community-scripts/ProxmoxVE/pull/5100))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Kasm: Increase Ressources & Hint for Fuse / Swap [@MickLesk](https://github.com/MickLesk) ([#5112](https://github.com/community-scripts/ProxmoxVE/pull/5112))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Element Synapse: switched from development to production mode and fixed update [@Frankmaaan](https://github.com/Frankmaaan) ([#5066](https://github.com/community-scripts/ProxmoxVE/pull/5066))
 | 
				
			||||||
 | 
					    - Tinyauth: Fix creation of service file [@tremor021](https://github.com/tremor021) ([#5090](https://github.com/community-scripts/ProxmoxVE/pull/5090))
 | 
				
			||||||
 | 
					    - Dolibarr: Fix typo in SQL command [@tremor021](https://github.com/tremor021) ([#5091](https://github.com/community-scripts/ProxmoxVE/pull/5091))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📡 API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - [core] Prevent API form sending Data when disabled [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5080](https://github.com/community-scripts/ProxmoxVE/pull/5080))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Immich: Update JSON [@vhsdream](https://github.com/vhsdream) ([#5085](https://github.com/community-scripts/ProxmoxVE/pull/5085))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-09
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Authelia: Fix the URL of the container [@tremor021](https://github.com/tremor021) ([#5064](https://github.com/community-scripts/ProxmoxVE/pull/5064))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - GoMFT: Remove from website temporarily [@tremor021](https://github.com/tremor021) ([#5065](https://github.com/community-scripts/ProxmoxVE/pull/5065))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-08
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Minarca ([#5058](https://github.com/community-scripts/ProxmoxVE/pull/5058))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - zot: fix missing var (Dev -> Main) [@MickLesk](https://github.com/MickLesk) ([#5056](https://github.com/community-scripts/ProxmoxVE/pull/5056))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - karakeep: Add more configuration defaults [@vhsdream](https://github.com/vhsdream) ([#5054](https://github.com/community-scripts/ProxmoxVE/pull/5054))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-07
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - alpine-it-tools fix update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#5039](https://github.com/community-scripts/ProxmoxVE/pull/5039))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Fix typo in build.func [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#5041](https://github.com/community-scripts/ProxmoxVE/pull/5041))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-06
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Zot-Registry ([#5016](https://github.com/community-scripts/ProxmoxVE/pull/5016))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - zipline: fix old upload copy from v3 to v4 [@MickLesk](https://github.com/MickLesk) ([#5015](https://github.com/community-scripts/ProxmoxVE/pull/5015))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-05
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Lyrion Music Server ([#4992](https://github.com/community-scripts/ProxmoxVE/pull/4992))
 | 
				
			||||||
 | 
					- gitea-mirror ([#4967](https://github.com/community-scripts/ProxmoxVE/pull/4967))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Zipline: Fix PostgreSQL install [@tremor021](https://github.com/tremor021) ([#4989](https://github.com/community-scripts/ProxmoxVE/pull/4989))
 | 
				
			||||||
 | 
					    - Homarr: add nodejs upgrade [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4974](https://github.com/community-scripts/ProxmoxVE/pull/4974))
 | 
				
			||||||
 | 
					    - add FUSE to rclone [@Frankmaaan](https://github.com/Frankmaaan) ([#4972](https://github.com/community-scripts/ProxmoxVE/pull/4972))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Zitadel: Upgrade Install to PSQL 17 [@MickLesk](https://github.com/MickLesk) ([#5000](https://github.com/community-scripts/ProxmoxVE/pull/5000))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Fix clean-lxcs.sh type categorization [@bitspill](https://github.com/bitspill) ([#4980](https://github.com/community-scripts/ProxmoxVE/pull/4980))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-04
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Pulse: add polkit for sudoless web updates [@rcourtman](https://github.com/rcourtman) ([#4970](https://github.com/community-scripts/ProxmoxVE/pull/4970))
 | 
				
			||||||
 | 
					- Pulse: add correct Port for URL output  [@rcourtman](https://github.com/rcourtman) ([#4951](https://github.com/community-scripts/ProxmoxVE/pull/4951))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - [refactor] Seelf [@tremor021](https://github.com/tremor021) ([#4954](https://github.com/community-scripts/ProxmoxVE/pull/4954))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-03
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Kasm: Swap fix [@omiinaya](https://github.com/omiinaya) ([#4937](https://github.com/community-scripts/ProxmoxVE/pull/4937))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - netbox: correct website URL  [@theincrediblenoone](https://github.com/theincrediblenoone) ([#4952](https://github.com/community-scripts/ProxmoxVE/pull/4952))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - PVE-Privilege-Converter [@MickLesk](https://github.com/MickLesk) ([#4906](https://github.com/community-scripts/ProxmoxVE/pull/4906))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - fix(wastebin): use tar asset [@dbeg](https://github.com/dbeg) ([#4934](https://github.com/community-scripts/ProxmoxVE/pull/4934))
 | 
				
			||||||
 | 
					    - MySQL/MariaDB: fix create user with password [@MickLesk](https://github.com/MickLesk) ([#4918](https://github.com/community-scripts/ProxmoxVE/pull/4918))
 | 
				
			||||||
 | 
					    - Fix alpine-tinyauth env configuration parsing logic [@gokussjx](https://github.com/gokussjx) ([#4901](https://github.com/community-scripts/ProxmoxVE/pull/4901))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💥 Breaking Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - make Pulse installation non-interactive [@rcourtman](https://github.com/rcourtman) ([#4848](https://github.com/community-scripts/ProxmoxVE/pull/4848))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - [core] add hw-accelerated for immich, openwebui / remove scrypted [@MickLesk](https://github.com/MickLesk) ([#4927](https://github.com/community-scripts/ProxmoxVE/pull/4927))
 | 
				
			||||||
 | 
					    - [core] tools.func: Bugfix old gpg key for mysql & little improvements [@MickLesk](https://github.com/MickLesk) ([#4916](https://github.com/community-scripts/ProxmoxVE/pull/4916))
 | 
				
			||||||
 | 
					    - [core] Varius fixes to Config file feature [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4924](https://github.com/community-scripts/ProxmoxVE/pull/4924))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Display default password even if there isn't a default username [@0risc](https://github.com/0risc) ([#4900](https://github.com/community-scripts/ProxmoxVE/pull/4900))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-06-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - immich ([#4886](https://github.com/community-scripts/ProxmoxVE/pull/4886))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - AdventureLog: add login credentials info [@tremor021](https://github.com/tremor021) ([#4887](https://github.com/community-scripts/ProxmoxVE/pull/4887))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-31
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Silverbullet: Fix Installation (wrong path) [@MickLesk](https://github.com/MickLesk) ([#4873](https://github.com/community-scripts/ProxmoxVE/pull/4873))
 | 
				
			||||||
 | 
					    - ActualBudget: fix update check (file instead of folder check) [@MickLesk](https://github.com/MickLesk) ([#4874](https://github.com/community-scripts/ProxmoxVE/pull/4874))
 | 
				
			||||||
 | 
					    - Omada Controller: Fix libssl url [@tremor021](https://github.com/tremor021) ([#4868](https://github.com/community-scripts/ProxmoxVE/pull/4868))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Revert "Update package dependencies in package.json and package-lock.json (#4845) [@BramSuurdje](https://github.com/BramSuurdje) ([#4869](https://github.com/community-scripts/ProxmoxVE/pull/4869))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 💥 Breaking Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Remove Authentik script [@tremor021](https://github.com/tremor021) ([#4867](https://github.com/community-scripts/ProxmoxVE/pull/4867))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - slskd: add space in sed command [@vhsdream](https://github.com/vhsdream) ([#4853](https://github.com/community-scripts/ProxmoxVE/pull/4853))
 | 
				
			||||||
 | 
					    - Alpine Traefik: Fix working directory and plugins [@tremor021](https://github.com/tremor021) ([#4838](https://github.com/community-scripts/ProxmoxVE/pull/4838))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Update package dependencies in package.json and package-lock.json [@enough-jainil](https://github.com/enough-jainil) ([#4845](https://github.com/community-scripts/ProxmoxVE/pull/4845))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-29
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - SearXNG fix limiter [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4834](https://github.com/community-scripts/ProxmoxVE/pull/4834))
 | 
				
			||||||
 | 
					    - Docmost: add jq before nodejs install [@MickLesk](https://github.com/MickLesk) ([#4831](https://github.com/community-scripts/ProxmoxVE/pull/4831))
 | 
				
			||||||
 | 
					    - Alpine Traefik: Fix Dashboard not beign accessible [@tremor021](https://github.com/tremor021) ([#4828](https://github.com/community-scripts/ProxmoxVE/pull/4828))
 | 
				
			||||||
 | 
					    - MySQL: Fix Wrong Command [@MickLesk](https://github.com/MickLesk) ([#4820](https://github.com/community-scripts/ProxmoxVE/pull/4820))
 | 
				
			||||||
 | 
					    - docs: fix casing of OpenWrt [@GoetzGoerisch](https://github.com/GoetzGoerisch) ([#4805](https://github.com/community-scripts/ProxmoxVE/pull/4805))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Docker-VM: set individual Hostname / Disk-Space formatting [@MickLesk](https://github.com/MickLesk) ([#4821](https://github.com/community-scripts/ProxmoxVE/pull/4821))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-28
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Umbrel-OS [@MickLesk](https://github.com/MickLesk) ([#4788](https://github.com/community-scripts/ProxmoxVE/pull/4788))
 | 
				
			||||||
 | 
					- oauth2-proxy ([#4784](https://github.com/community-scripts/ProxmoxVE/pull/4784))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Habitica: Use Node20 [@MickLesk](https://github.com/MickLesk) ([#4796](https://github.com/community-scripts/ProxmoxVE/pull/4796))
 | 
				
			||||||
 | 
					    - Alpine-Node-RED: add service to rc [@MickLesk](https://github.com/MickLesk) ([#4783](https://github.com/community-scripts/ProxmoxVE/pull/4783))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Pulse: use prebuild tarball file / remove unneeded npm actions [@MickLesk](https://github.com/MickLesk) ([#4776](https://github.com/community-scripts/ProxmoxVE/pull/4776))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💥 Breaking Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Refactor: Linkwarden + OS Upgrade [@MickLesk](https://github.com/MickLesk) ([#4756](https://github.com/community-scripts/ProxmoxVE/pull/4756))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - refactor: use binary and randomize credentials in tinyauth [@steveiliop56](https://github.com/steveiliop56) ([#4632](https://github.com/community-scripts/ProxmoxVE/pull/4632))
 | 
				
			||||||
 | 
					    - MariaDB CLI Update, Go Install Helper & Minor Cleanup [@MickLesk](https://github.com/MickLesk) ([#4793](https://github.com/community-scripts/ProxmoxVE/pull/4793))
 | 
				
			||||||
 | 
					    - Refactor: Remove redundant dependencies & unify unzip usage [@MickLesk](https://github.com/MickLesk) ([#4780](https://github.com/community-scripts/ProxmoxVE/pull/4780))
 | 
				
			||||||
 | 
					    - Refactor: Remove gpg / gnupg from script base [@MickLesk](https://github.com/MickLesk) ([#4775](https://github.com/community-scripts/ProxmoxVE/pull/4775))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - pulse: correct url in note [@xb00tt](https://github.com/xb00tt) ([#4809](https://github.com/community-scripts/ProxmoxVE/pull/4809))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-27
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Backrest ([#4766](https://github.com/community-scripts/ProxmoxVE/pull/4766))
 | 
				
			||||||
 | 
					- Pulse ([#4728](https://github.com/community-scripts/ProxmoxVE/pull/4728))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Alpine-Vaultwarden: Increase min disk requirements to 1GB [@neyzm](https://github.com/neyzm) ([#4764](https://github.com/community-scripts/ProxmoxVE/pull/4764))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - lldap: fix update-check [@MickLesk](https://github.com/MickLesk) ([#4742](https://github.com/community-scripts/ProxmoxVE/pull/4742))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Big NodeJS Update: Use Helper Function on all Install-Scripts [@MickLesk](https://github.com/MickLesk) ([#4744](https://github.com/community-scripts/ProxmoxVE/pull/4744))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - merge MariaDB to tools.func Installer [@MickLesk](https://github.com/MickLesk) ([#4753](https://github.com/community-scripts/ProxmoxVE/pull/4753))
 | 
				
			||||||
 | 
					    - merge PostgreSQL to tools.func Installer [@MickLesk](https://github.com/MickLesk) ([#4752](https://github.com/community-scripts/ProxmoxVE/pull/4752))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Increase default RAM allocation for BunkerWeb to 8192MB [@TheophileDiot](https://github.com/TheophileDiot) ([#4762](https://github.com/community-scripts/ProxmoxVE/pull/4762))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-26
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Argus ([#4717](https://github.com/community-scripts/ProxmoxVE/pull/4717))
 | 
				
			||||||
 | 
					- Kasm ([#4716](https://github.com/community-scripts/ProxmoxVE/pull/4716))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Excalidraw: increase HDD to 10GB [@MickLesk](https://github.com/MickLesk) ([#4718](https://github.com/community-scripts/ProxmoxVE/pull/4718))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - BREAKING CHANGE: Fix PocketID for v1.0.0 [@vhsdream](https://github.com/vhsdream) ([#4711](https://github.com/community-scripts/ProxmoxVE/pull/4711))
 | 
				
			||||||
 | 
					    - InspIRCd: Fix release name in release url [@tremor021](https://github.com/tremor021) ([#4720](https://github.com/community-scripts/ProxmoxVE/pull/4720))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-25
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Pelican-panel: back-up database if using sqlite [@bvdberg01](https://github.com/bvdberg01) ([#4700](https://github.com/community-scripts/ProxmoxVE/pull/4700))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Pterodactyl panel read typo [@bvdberg01](https://github.com/bvdberg01) ([#4701](https://github.com/community-scripts/ProxmoxVE/pull/4701))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-23
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - TYPO: Fix nexcloud to nextcloud (VM) [@Stoufiler](https://github.com/Stoufiler) ([#4670](https://github.com/community-scripts/ProxmoxVE/pull/4670))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Update Icons to selfhst/icons (FreePBX & Configarr) [@MickLesk](https://github.com/MickLesk) ([#4680](https://github.com/community-scripts/ProxmoxVE/pull/4680))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 💥 Breaking Changes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Remove rtsptoweb (deprecated) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4686](https://github.com/community-scripts/ProxmoxVE/pull/4686))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - FreePBX ([#4648](https://github.com/community-scripts/ProxmoxVE/pull/4648))
 | 
				
			||||||
 | 
					- cloudflare-ddns ([#4647](https://github.com/community-scripts/ProxmoxVE/pull/4647))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - slskd: fix #4649 [@vhsdream](https://github.com/vhsdream) ([#4651](https://github.com/community-scripts/ProxmoxVE/pull/4651))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Paperless-AI: Add RAG chat [@tremor021](https://github.com/tremor021) ([#4635](https://github.com/community-scripts/ProxmoxVE/pull/4635))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📂 Github
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - [gh]: Feature: Header-Generation for vm | tools | addon [@MickLesk](https://github.com/MickLesk) ([#4643](https://github.com/community-scripts/ProxmoxVE/pull/4643))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Commafeed: move to Documents category [@diemade](https://github.com/diemade) ([#4665](https://github.com/community-scripts/ProxmoxVE/pull/4665))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - configarr ([#4620](https://github.com/community-scripts/ProxmoxVE/pull/4620))
 | 
				
			||||||
 | 
					- babybuddy ([#4619](https://github.com/community-scripts/ProxmoxVE/pull/4619))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Alpine-Node-RED: Update Service File [@MickLesk](https://github.com/MickLesk) ([#4628](https://github.com/community-scripts/ProxmoxVE/pull/4628))
 | 
				
			||||||
 | 
					    - RustDesk Server: Fix update for older installs [@tremor021](https://github.com/tremor021) ([#4612](https://github.com/community-scripts/ProxmoxVE/pull/4612))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Tandoor Recipes: Capture version information when installing [@jbolla](https://github.com/jbolla) ([#4633](https://github.com/community-scripts/ProxmoxVE/pull/4633))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - [tools.func]: Update fetch_and_deploy_gh_release function [@tremor021](https://github.com/tremor021) ([#4605](https://github.com/community-scripts/ProxmoxVE/pull/4605))
 | 
				
			||||||
 | 
					- [core] New Features for Config File function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4601](https://github.com/community-scripts/ProxmoxVE/pull/4601))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Website: harmonize all Logos | use jsDelivr CDN links for icons from selfhst/icons repo [@MickLesk](https://github.com/MickLesk) ([#4603](https://github.com/community-scripts/ProxmoxVE/pull/4603))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-19
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - rclone ([#4579](https://github.com/community-scripts/ProxmoxVE/pull/4579))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - increase ressources of Homarr (3 vCPU / 6GB RAM) [@MickLesk](https://github.com/MickLesk) ([#4583](https://github.com/community-scripts/ProxmoxVE/pull/4583))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Various unrelated fixes to kimai update script [@jamezpolley](https://github.com/jamezpolley) ([#4549](https://github.com/community-scripts/ProxmoxVE/pull/4549))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - RustDesk Server: Add WebUI [@tremor021](https://github.com/tremor021) ([#4590](https://github.com/community-scripts/ProxmoxVE/pull/4590))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - tools.func - Add function to create self-signed certificates [@tremor021](https://github.com/tremor021) ([#4562](https://github.com/community-scripts/ProxmoxVE/pull/4562))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Homarr: fix the build [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4569](https://github.com/community-scripts/ProxmoxVE/pull/4569))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Fix Dashy Config Path on Frontend [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4570](https://github.com/community-scripts/ProxmoxVE/pull/4570))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - [core] Refactor Config File function [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4528](https://github.com/community-scripts/ProxmoxVE/pull/4528))
 | 
				
			||||||
 | 
					    - [core] Fix Bridge detection in Advanced Mode [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4522](https://github.com/community-scripts/ProxmoxVE/pull/4522))
 | 
				
			||||||
 | 
					    - [core] Enable SSH_KEY and SSH without password [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4523](https://github.com/community-scripts/ProxmoxVE/pull/4523))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📂 Github
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Updates to contributor docs/guide [@tremor021](https://github.com/tremor021) ([#4518](https://github.com/community-scripts/ProxmoxVE/pull/4518))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Remove bolt.diy script [@tremor021](https://github.com/tremor021) ([#4541](https://github.com/community-scripts/ProxmoxVE/pull/4541))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - bitmagnet ([#4493](https://github.com/community-scripts/ProxmoxVE/pull/4493))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - core: Add TAB3 formatting var to core [@tremor021](https://github.com/tremor021) ([#4496](https://github.com/community-scripts/ProxmoxVE/pull/4496))
 | 
				
			||||||
 | 
					- Update scripts that use "read -p" to properly indent text [@tremor021](https://github.com/tremor021) ([#4498](https://github.com/community-scripts/ProxmoxVE/pull/4498))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - tools.func: fix some things & add ruby default function [@MickLesk](https://github.com/MickLesk) ([#4507](https://github.com/community-scripts/ProxmoxVE/pull/4507))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - core: fix bridge detection for OVS  [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4495](https://github.com/community-scripts/ProxmoxVE/pull/4495))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - odoo ([#4477](https://github.com/community-scripts/ProxmoxVE/pull/4477))
 | 
				
			||||||
 | 
					- asterisk ([#4468](https://github.com/community-scripts/ProxmoxVE/pull/4468))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - fix: fetch_release_and_deploy function [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4478](https://github.com/community-scripts/ProxmoxVE/pull/4478))
 | 
				
			||||||
 | 
					- Website: re-add documenso & some little bugfixes [@MickLesk](https://github.com/MickLesk) ([#4456](https://github.com/community-scripts/ProxmoxVE/pull/4456))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Add make installation dependency to Actual Budget script [@maciejmatczak](https://github.com/maciejmatczak) ([#4485](https://github.com/community-scripts/ProxmoxVE/pull/4485))
 | 
				
			||||||
 | 
					    - Bookstack: fix copy of themes/uploads/storage [@MickLesk](https://github.com/MickLesk) ([#4457](https://github.com/community-scripts/ProxmoxVE/pull/4457))
 | 
				
			||||||
 | 
					    - Alpine-Rclone: Fix location of passwords file [@tremor021](https://github.com/tremor021) ([#4465](https://github.com/community-scripts/ProxmoxVE/pull/4465))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - monitor-all: improvements - tag based filtering [@grizmin](https://github.com/grizmin) ([#4437](https://github.com/community-scripts/ProxmoxVE/pull/4437))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📂 Github
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Add Github app for auto PR merge [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4461](https://github.com/community-scripts/ProxmoxVE/pull/4461))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-13
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - gatus ([#4443](https://github.com/community-scripts/ProxmoxVE/pull/4443))
 | 
				
			||||||
 | 
					- alpine-gatus ([#4442](https://github.com/community-scripts/ProxmoxVE/pull/4442))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - update some improvements from dev (tools.func) [@MickLesk](https://github.com/MickLesk) ([#4430](https://github.com/community-scripts/ProxmoxVE/pull/4430))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - openhab: use zulu17-jdk [@moodyblue](https://github.com/moodyblue) ([#4438](https://github.com/community-scripts/ProxmoxVE/pull/4438))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - openhab. correct some typos [@moodyblue](https://github.com/moodyblue) ([#4448](https://github.com/community-scripts/ProxmoxVE/pull/4448))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - fix: improve bridge detection in all network interface configuration files [@filippolauria](https://github.com/filippolauria) ([#4413](https://github.com/community-scripts/ProxmoxVE/pull/4413))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Jellyfin Media Server: Update configuration path [@tremor021](https://github.com/tremor021) ([#4434](https://github.com/community-scripts/ProxmoxVE/pull/4434))
 | 
				
			||||||
 | 
					    - Pingvin Share: Added explanation on how to add/edit environment variables [@tremor021](https://github.com/tremor021) ([#4432](https://github.com/community-scripts/ProxmoxVE/pull/4432))
 | 
				
			||||||
 | 
					    - pingvin.json: fix typo [@warmbo](https://github.com/warmbo) ([#4426](https://github.com/community-scripts/ProxmoxVE/pull/4426))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Alpine-Traefik [@MickLesk](https://github.com/MickLesk) ([#4412](https://github.com/community-scripts/ProxmoxVE/pull/4412))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Alpine: Use onliner for updates [@tremor021](https://github.com/tremor021) ([#4414](https://github.com/community-scripts/ProxmoxVE/pull/4414))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - homarr: fetch versions dynamically from source repo [@CrazyWolf13](https://github.com/CrazyWolf13) ([#4409](https://github.com/community-scripts/ProxmoxVE/pull/4409))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Feature: LXC-Delete (pve helper): add "all items" [@MickLesk](https://github.com/MickLesk) ([#4296](https://github.com/community-scripts/ProxmoxVE/pull/4296))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Config file Function in build.func [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4411](https://github.com/community-scripts/ProxmoxVE/pull/4411))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Navidrome - Fix config path (use /etc/ instead of /var/lib) [@quake1508](https://github.com/quake1508) ([#4406](https://github.com/community-scripts/ProxmoxVE/pull/4406))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-11
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Zammad: Enable ElasticSearch service [@tremor021](https://github.com/tremor021) ([#4391](https://github.com/community-scripts/ProxmoxVE/pull/4391))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - (fix) Documenso: fix build failures [@vhsdream](https://github.com/vhsdream) ([#4382](https://github.com/community-scripts/ProxmoxVE/pull/4382))
 | 
				
			||||||
 | 
					    - Jellyseerr: better handling of node and pnpm [@MickLesk](https://github.com/MickLesk) ([#4365](https://github.com/community-scripts/ProxmoxVE/pull/4365))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-09
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Authentik: change install to UV & increase resources to 10GB RAM [@MickLesk](https://github.com/MickLesk) ([#4364](https://github.com/community-scripts/ProxmoxVE/pull/4364))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - HomeAssistant-Core: update script for 2025.5+ [@MickLesk](https://github.com/MickLesk) ([#4363](https://github.com/community-scripts/ProxmoxVE/pull/4363))
 | 
				
			||||||
 | 
					    - Feature: autologin for Alpine [@MickLesk](https://github.com/MickLesk) ([#4344](https://github.com/community-scripts/ProxmoxVE/pull/4344))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - fix: detect all bridge types, not just vmbr prefix [@filippolauria](https://github.com/filippolauria) ([#4351](https://github.com/community-scripts/ProxmoxVE/pull/4351))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📂 Github
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Add a Repo check to all Workflows [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4339](https://github.com/community-scripts/ProxmoxVE/pull/4339))
 | 
				
			||||||
 | 
					    - Auto-Merge Automatic PR [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4343](https://github.com/community-scripts/ProxmoxVE/pull/4343))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-08
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - SearXNG: fix to resolve yaml dependency error [@Biendeo](https://github.com/Biendeo) ([#4322](https://github.com/community-scripts/ProxmoxVE/pull/4322))
 | 
				
			||||||
 | 
					    - Bugfix: Mikrotik & Pimox HAOS VM (NEXTID) [@MickLesk](https://github.com/MickLesk) ([#4313](https://github.com/community-scripts/ProxmoxVE/pull/4313))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - build.func Change the menu for Bridge Selection [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4326](https://github.com/community-scripts/ProxmoxVE/pull/4326))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - FAQ: Explanation "updatable" [@tremor021](https://github.com/tremor021) ([#4300](https://github.com/community-scripts/ProxmoxVE/pull/4300))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-07
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Alpine scripts: Set minimum disk space to 0.5GB [@tremor021](https://github.com/tremor021) ([#4288](https://github.com/community-scripts/ProxmoxVE/pull/4288))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - SuwayomiServer: Bump Java to v21, code formating [@tremor021](https://github.com/tremor021) ([#3987](https://github.com/community-scripts/ProxmoxVE/pull/3987))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Feature: get correct next VMID [@MickLesk](https://github.com/MickLesk) ([#4292](https://github.com/community-scripts/ProxmoxVE/pull/4292))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - OpenWebUI: Update docs link [@tremor021](https://github.com/tremor021) ([#4298](https://github.com/community-scripts/ProxmoxVE/pull/4298))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-06
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - alpine-transmission ([#4277](https://github.com/community-scripts/ProxmoxVE/pull/4277))
 | 
				
			||||||
 | 
					- streamlink-webui ([#4262](https://github.com/community-scripts/ProxmoxVE/pull/4262))
 | 
				
			||||||
 | 
					- Fumadocs ([#4263](https://github.com/community-scripts/ProxmoxVE/pull/4263))
 | 
				
			||||||
 | 
					- alpine-rclone ([#4265](https://github.com/community-scripts/ProxmoxVE/pull/4265))
 | 
				
			||||||
 | 
					- alpine-tinyauth ([#4264](https://github.com/community-scripts/ProxmoxVE/pull/4264))
 | 
				
			||||||
 | 
					- Re-Add: ActualBudget [@MickLesk](https://github.com/MickLesk) ([#4228](https://github.com/community-scripts/ProxmoxVE/pull/4228))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - whiptail menu - cancel button now exists the advanced menu [@MickLesk](https://github.com/MickLesk) ([#4259](https://github.com/community-scripts/ProxmoxVE/pull/4259))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-05
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Alpine-Komodo [@MickLesk](https://github.com/MickLesk) ([#4234](https://github.com/community-scripts/ProxmoxVE/pull/4234))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Docker VM: Fix variable doublequoting [@tremor021](https://github.com/tremor021) ([#4245](https://github.com/community-scripts/ProxmoxVE/pull/4245))
 | 
				
			||||||
 | 
					    - Alpine-Vaultwarden: Fix sed and better cert generation [@tremor021](https://github.com/tremor021) ([#4232](https://github.com/community-scripts/ProxmoxVE/pull/4232))
 | 
				
			||||||
 | 
					    - Apache Guacamole: Fix Version Grepping [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4229](https://github.com/community-scripts/ProxmoxVE/pull/4229))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Docker-VM: Add Disk Size choice [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#4241](https://github.com/community-scripts/ProxmoxVE/pull/4241))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Refactor: Komodo update logic [@MickLesk](https://github.com/MickLesk) ([#4231](https://github.com/community-scripts/ProxmoxVE/pull/4231))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🧰 Maintenance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 💾 Core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - tools.func: better function handling + gs as new helper [@MickLesk](https://github.com/MickLesk) ([#4238](https://github.com/community-scripts/ProxmoxVE/pull/4238))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-04
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Code Server: Update misleading name, description and icon. [@ArmainAP](https://github.com/ArmainAP) ([#4211](https://github.com/community-scripts/ProxmoxVE/pull/4211))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-03
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Vaultwarden: Enable HTTPS by default [@tremor021](https://github.com/tremor021) ([#4197](https://github.com/community-scripts/ProxmoxVE/pull/4197))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Vaultwarden: Fix access URL [@tremor021](https://github.com/tremor021) ([#4199](https://github.com/community-scripts/ProxmoxVE/pull/4199))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - SFTPGo: Switch updatable to true on website [@tremor021](https://github.com/tremor021) ([#4186](https://github.com/community-scripts/ProxmoxVE/pull/4186))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-05-02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - NetBox: Fix typo in sed command, preventing install [@tremor021](https://github.com/tremor021) ([#4179](https://github.com/community-scripts/ProxmoxVE/pull/4179))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Changed the random script button to be the same as all the other buttons [@BramSuurdje](https://github.com/BramSuurdje) ([#4183](https://github.com/community-scripts/ProxmoxVE/pull/4183))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Habitica: correct config path [@DrDonoso](https://github.com/DrDonoso) ([#4181](https://github.com/community-scripts/ProxmoxVE/pull/4181))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 2025-05-01
 | 
					## 2025-05-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 🚀 Updated Scripts
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										125
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							
							
						
						
									
										125
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							@@ -20,79 +20,60 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    header_info
 | 
					  header_info
 | 
				
			||||||
    check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
    check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # 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
 | 
				
			||||||
 | 
					  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 ~/.2fauth 2>/dev/null || cat /opt/2fauth_version.txt 2>/dev/null)" ]]; then
 | 
				
			||||||
 | 
					    msg_info "Updating $APP to ${RELEASE}"
 | 
				
			||||||
 | 
					    $STD apt-get update
 | 
				
			||||||
 | 
					    $STD apt-get -y upgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    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"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if ! dpkg -l | grep -q 'php8.3'; then
 | 
				
			||||||
 | 
					      $STD apt-get install -y \
 | 
				
			||||||
 | 
					        lsb-release \
 | 
				
			||||||
 | 
					        gnupg2
 | 
				
			||||||
 | 
					      PHP_VERSION="8.3" PHP_MODULE="common,ctype,fileinfo,fpm,mysql,cli" setup_php
 | 
				
			||||||
 | 
					      sed -i 's/php8.2/php8.3/g' /etc/nginx/conf.d/2fauth.conf
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    fetch_and_deploy_gh_release "2fauth" "Bubka/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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					    rm -rf "v${RELEASE}.zip"
 | 
				
			||||||
 | 
					    if dpkg -l | grep -q 'php8.2'; then
 | 
				
			||||||
 | 
					      $STD apt-get remove --purge -y php8.2*
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    $STD apt-get -y autoremove
 | 
				
			||||||
 | 
					    $STD apt-get -y autoclean
 | 
				
			||||||
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/2fauth_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated $APP to ${RELEASE}"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
@@ -102,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}:80${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										67
									
								
								ct/actualbudget.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								ct/actualbudget.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					#!/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://actualbudget.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Actual Budget"
 | 
				
			||||||
 | 
					var_tags="finance"
 | 
				
			||||||
 | 
					var_cpu="2"
 | 
				
			||||||
 | 
					var_ram="2048"
 | 
				
			||||||
 | 
					var_disk="4"
 | 
				
			||||||
 | 
					var_os="debian"
 | 
				
			||||||
 | 
					var_version="12"
 | 
				
			||||||
 | 
					var_unprivileged="1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -f /opt/actualbudget_version.txt ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  NODE_VERSION="22"
 | 
				
			||||||
 | 
					  setup_nodejs
 | 
				
			||||||
 | 
					  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-data/config.json ]]; then
 | 
				
			||||||
 | 
					    if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
 | 
				
			||||||
 | 
					      msg_info "Stopping ${APP}"
 | 
				
			||||||
 | 
					      systemctl stop actualbudget
 | 
				
			||||||
 | 
					      msg_ok "${APP} Stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
 | 
					      $STD npm update -g @actual-app/sync-server
 | 
				
			||||||
 | 
					      echo "${RELEASE}" >/opt/actualbudget_version.txt
 | 
				
			||||||
 | 
					      msg_ok "Updated ${APP} to ${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      msg_info "Starting ${APP}"
 | 
				
			||||||
 | 
					      systemctl start actualbudget
 | 
				
			||||||
 | 
					      msg_ok "Restarted ${APP}"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      msg_info "${APP} is already up to date"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    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
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:5006${CL}"
 | 
				
			||||||
@@ -27,43 +27,51 @@ 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/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
					  if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop adventurelog-backend
 | 
					    systemctl stop adventurelog-backend
 | 
				
			||||||
    systemctl stop adventurelog-frontend
 | 
					    systemctl stop adventurelog-frontend
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
 | 
				
			||||||
    mv /opt/adventurelog/ /opt/adventurelog-backup/
 | 
					    PYTHON_VERSION="3.12" setup_uv
 | 
				
			||||||
    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/
 | 
					    msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
    mv /opt/AdventureLog-${RELEASE} /opt/adventurelog
 | 
					    # Backend Migration
 | 
				
			||||||
 | 
					    cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
				
			||||||
 | 
					    cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mv /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
					 | 
				
			||||||
    mv /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
					 | 
				
			||||||
    cd /opt/adventurelog/backend/server
 | 
					    cd /opt/adventurelog/backend/server
 | 
				
			||||||
    $STD pip install --upgrade pip
 | 
					    if [[ ! -x .venv/bin/python ]]; then
 | 
				
			||||||
    $STD pip install -r requirements.txt
 | 
					      $STD uv venv .venv
 | 
				
			||||||
    $STD python3 manage.py collectstatic --noinput
 | 
					      $STD .venv/bin/python -m ensurepip --upgrade
 | 
				
			||||||
    $STD python3 manage.py migrate
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mv /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
 | 
					    $STD .venv/bin/python -m pip install --upgrade pip
 | 
				
			||||||
 | 
					    $STD .venv/bin/python -m pip install -r requirements.txt
 | 
				
			||||||
 | 
					    $STD .venv/bin/python -m manage collectstatic --noinput
 | 
				
			||||||
 | 
					    $STD .venv/bin/python -m manage migrate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Frontend Migration
 | 
				
			||||||
 | 
					    cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
 | 
				
			||||||
    cd /opt/adventurelog/frontend
 | 
					    cd /opt/adventurelog/frontend
 | 
				
			||||||
    $STD pnpm install
 | 
					    $STD pnpm i
 | 
				
			||||||
    $STD pnpm run build
 | 
					    $STD pnpm build
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Updated ${APP}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Services"
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
 | 
					    systemctl daemon-reexec
 | 
				
			||||||
    systemctl start adventurelog-backend
 | 
					    systemctl start adventurelog-backend
 | 
				
			||||||
    systemctl start adventurelog-frontend
 | 
					    systemctl start adventurelog-frontend
 | 
				
			||||||
    msg_ok "Started Services"
 | 
					    msg_ok "Services Started"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Cleaning Up"
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
    rm -rf /opt/v${RELEASE}.zip
 | 
					    rm -rf /opt/v${RELEASE}.zip
 | 
				
			||||||
    rm -rf /opt/adventurelog-backup
 | 
					    rm -rf /opt/adventurelog-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    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}"
 | 
				
			||||||
@@ -78,4 +86,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}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,21 +20,20 @@ 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"
 | 
				
			||||||
    $STD apk update
 | 
					  $STD apk -U upgrade
 | 
				
			||||||
    $STD apk upgrade
 | 
					  msg_ok "Updated Alpine Packages"
 | 
				
			||||||
    msg_ok "Updated Alpine Packages"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating AdGuard Home"
 | 
					  msg_info "Updating AdGuard Home"
 | 
				
			||||||
    $STD /opt/AdGuardHome/AdGuardHome --update
 | 
					  $STD /opt/AdGuardHome/AdGuardHome --update
 | 
				
			||||||
    msg_ok "Updated AdGuard Home"
 | 
					  msg_ok "Updated AdGuard Home"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restarting AdGuard Home"
 | 
					  msg_info "Restarting AdGuard Home"
 | 
				
			||||||
    $STD rc-service adguardhome restart
 | 
					  $STD rc-service adguardhome restart
 | 
				
			||||||
    msg_ok "Restarted AdGuard Home"
 | 
					  msg_ok "Restarted AdGuard Home"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    exit 0
 | 
					  exit 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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}"
 | 
				
			||||||
@@ -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"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										45
									
								
								ct/alpine-forgejo.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								ct/alpine-forgejo.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
				
			|||||||
 | 
					#!/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: Johann3s-H (An!ma)
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://forgejo.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Alpine-Forgejo"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-alpine;git}"
 | 
				
			||||||
 | 
					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 Forgejo"
 | 
				
			||||||
 | 
					  $STD apk upgrade forgejo
 | 
				
			||||||
 | 
					  msg_ok "Updated Forgejo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Restarting Forgejo"
 | 
				
			||||||
 | 
					  $STD rc-service forgejo restart
 | 
				
			||||||
 | 
					  msg_ok "Restarted Forgejo"
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  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}"
 | 
				
			||||||
							
								
								
									
										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}"
 | 
				
			||||||
@@ -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}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ APP="Alpine-IT-Tools"
 | 
				
			|||||||
var_tags="${var_tags:-alpine;development}"
 | 
					var_tags="${var_tags:-alpine;development}"
 | 
				
			||||||
var_cpu="${var_cpu:-1}"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="${var_ram:-256}"
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
var_disk="${var_disk:-0.2}"
 | 
					var_disk="${var_disk:-0.5}"
 | 
				
			||||||
var_os="${var_os:-alpine}"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="${var_version:-3.21}"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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}"
 | 
				
			||||||
							
								
								
									
										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}"
 | 
				
			||||||
@@ -9,7 +9,7 @@ APP="Alpine-Vaultwarden"
 | 
				
			|||||||
var_tags="${var_tags:-alpine;vault}"
 | 
					var_tags="${var_tags:-alpine;vault}"
 | 
				
			||||||
var_cpu="${var_cpu:-1}"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="${var_ram:-256}"
 | 
					var_ram="${var_ram:-256}"
 | 
				
			||||||
var_disk="${var_disk:-0.5}"
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
var_os="${var_os:-alpine}"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="${var_version:-3.21}"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
@@ -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"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								ct/alpine.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/alpine.sh
									
									
									
									
									
								
							@@ -9,7 +9,7 @@ APP="Alpine"
 | 
				
			|||||||
var_tags="${var_tags:-os;alpine}"
 | 
					var_tags="${var_tags:-os;alpine}"
 | 
				
			||||||
var_cpu="${var_cpu:-1}"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="${var_ram:-512}"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="${var_disk:-0.1}"
 | 
					var_disk="${var_disk:-1}"
 | 
				
			||||||
var_os="${var_os:-alpine}"
 | 
					var_os="${var_os:-alpine}"
 | 
				
			||||||
var_version="${var_version:-3.21}"
 | 
					var_version="${var_version:-3.21}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
@@ -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"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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}"
 | 
				
			||||||
@@ -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: 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="${var_tags:-os}"
 | 
					var_tags="${var_tags:-telephone;pbx}"
 | 
				
			||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-2048}"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="${var_disk:-8}"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
@@ -23,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}"
 | 
					 | 
				
			||||||
@@ -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="${var_tags:-identity-provider}"
 | 
					 | 
				
			||||||
var_disk="${var_disk:-12}"
 | 
					 | 
				
			||||||
var_cpu="${var_cpu:-6}"
 | 
					 | 
				
			||||||
var_ram="${var_ram:-8192}"
 | 
					 | 
				
			||||||
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/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}"
 | 
					 | 
				
			||||||
							
								
								
									
										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}"
 | 
				
			||||||
@@ -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/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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}"
 | 
				
			||||||
@@ -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="${var_cpu:-2}"
 | 
					 | 
				
			||||||
var_ram="${var_ram:-3072}"
 | 
					 | 
				
			||||||
var_disk="${var_disk:-6}"
 | 
					 | 
				
			||||||
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/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}"
 | 
					 | 
				
			||||||
@@ -36,12 +36,12 @@ 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
 | 
					    cd /opt/bookstack
 | 
				
			||||||
    export COMPOSER_ALLOW_SUPERUSER=1
 | 
					    export COMPOSER_ALLOW_SUPERUSER=1
 | 
				
			||||||
    $STD composer install --no-dev
 | 
					    $STD composer install --no-dev
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
APP="BunkerWeb"
 | 
					APP="BunkerWeb"
 | 
				
			||||||
var_tags="${var_tags:-webserver}"
 | 
					var_tags="${var_tags:-webserver}"
 | 
				
			||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-4096}"
 | 
					var_ram="${var_ram:-8192}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
@@ -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}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,6 +52,7 @@ function update_script() {
 | 
				
			|||||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
 | 
					    $STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
 | 
				
			||||||
    # Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
 | 
					    # Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
 | 
				
			||||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
 | 
					    $STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
 | 
				
			||||||
 | 
					    $STD /opt/browserless/node_modules/playwright-core/cli.js install --force msedge
 | 
				
			||||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit
 | 
					    $STD /opt/browserless/node_modules/playwright-core/cli.js install chromium firefox webkit
 | 
				
			||||||
    $STD npm run build --prefix /opt/browserless
 | 
					    $STD npm run build --prefix /opt/browserless
 | 
				
			||||||
    $STD npm run build:function --prefix /opt/browserless
 | 
					    $STD npm run build:function --prefix /opt/browserless
 | 
				
			||||||
@@ -74,4 +75,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}:5000${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5000${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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"
 | 
				
			||||||
@@ -42,7 +42,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    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 ~/.configarr 2>/dev/null || cat /opt/configarr_version.txt 2>/dev/null)" ]]; 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 "configarr" "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}"
 | 
				
			||||||
@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										282
									
								
								ct/create_lxc.sh
									
									
									
									
									
								
							
							
						
						
									
										282
									
								
								ct/create_lxc.sh
									
									
									
									
									
								
							@@ -1,282 +0,0 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copyright (c) 2021-2025 tteck
 | 
					 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					 | 
				
			||||||
# Co-Author: MickLesk
 | 
					 | 
				
			||||||
# License: MIT
 | 
					 | 
				
			||||||
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This sets verbose mode if the global variable is set to "yes"
 | 
					 | 
				
			||||||
# if [ "$VERBOSE" == "yes" ]; then set -x; fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This function sets color variables for formatting output in the terminal
 | 
					 | 
				
			||||||
# Colors
 | 
					 | 
				
			||||||
YW=$(echo "\033[33m")
 | 
					 | 
				
			||||||
YWB=$(echo "\033[93m")
 | 
					 | 
				
			||||||
BL=$(echo "\033[36m")
 | 
					 | 
				
			||||||
RD=$(echo "\033[01;31m")
 | 
					 | 
				
			||||||
GN=$(echo "\033[1;92m")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Formatting
 | 
					 | 
				
			||||||
CL=$(echo "\033[m")
 | 
					 | 
				
			||||||
UL=$(echo "\033[4m")
 | 
					 | 
				
			||||||
BOLD=$(echo "\033[1m")
 | 
					 | 
				
			||||||
BFR="\\r\\033[K"
 | 
					 | 
				
			||||||
HOLD=" "
 | 
					 | 
				
			||||||
TAB="  "
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Icons
 | 
					 | 
				
			||||||
CM="${TAB}✔️${TAB}${CL}"
 | 
					 | 
				
			||||||
CROSS="${TAB}✖️${TAB}${CL}"
 | 
					 | 
				
			||||||
INFO="${TAB}💡${TAB}${CL}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This sets error handling options and defines the error_handler function to handle errors
 | 
					 | 
				
			||||||
set -Eeuo pipefail
 | 
					 | 
				
			||||||
trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This function handles errors
 | 
					 | 
				
			||||||
function error_handler() {
 | 
					 | 
				
			||||||
  if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
 | 
					 | 
				
			||||||
  printf "\e[?25h"
 | 
					 | 
				
			||||||
  local exit_code="$?"
 | 
					 | 
				
			||||||
  local line_number="$1"
 | 
					 | 
				
			||||||
  local command="$2"
 | 
					 | 
				
			||||||
  local error_message="${RD}[ERROR]${CL} in line ${RD}$line_number${CL}: exit code ${RD}$exit_code${CL}: while executing command ${YW}$command${CL}"
 | 
					 | 
				
			||||||
  echo -e "\n$error_message\n"
 | 
					 | 
				
			||||||
  exit 200
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This function displays a spinner.
 | 
					 | 
				
			||||||
function spinner() {
 | 
					 | 
				
			||||||
  local frames=('⠋' '⠙' '⠹' '⠸' '⠼' '⠴' '⠦' '⠧' '⠇' '⠏')
 | 
					 | 
				
			||||||
  local spin_i=0
 | 
					 | 
				
			||||||
  local interval=0.1
 | 
					 | 
				
			||||||
  printf "\e[?25l"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  local color="${YWB}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  while true; do
 | 
					 | 
				
			||||||
    printf "\r ${color}%s${CL}" "${frames[spin_i]}"
 | 
					 | 
				
			||||||
    spin_i=$(((spin_i + 1) % ${#frames[@]}))
 | 
					 | 
				
			||||||
    sleep "$interval"
 | 
					 | 
				
			||||||
  done
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This function displays an informational message with a yellow color.
 | 
					 | 
				
			||||||
function msg_info() {
 | 
					 | 
				
			||||||
  local msg="$1"
 | 
					 | 
				
			||||||
  echo -ne "${TAB}${YW}${HOLD}${msg}${HOLD}"
 | 
					 | 
				
			||||||
  spinner &
 | 
					 | 
				
			||||||
  SPINNER_PID=$!
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function msg_warn() {
 | 
					 | 
				
			||||||
  if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
 | 
					 | 
				
			||||||
  printf "\e[?25h"
 | 
					 | 
				
			||||||
  local msg="$1"
 | 
					 | 
				
			||||||
  echo -e "${BFR}${INFO}${YWB}${msg}${CL}"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This function displays a success message with a green color.
 | 
					 | 
				
			||||||
function msg_ok() {
 | 
					 | 
				
			||||||
  if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
 | 
					 | 
				
			||||||
  printf "\e[?25h"
 | 
					 | 
				
			||||||
  local msg="$1"
 | 
					 | 
				
			||||||
  echo -e "${BFR}${CM}${GN}${msg}${CL}"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This function displays a error message with a red color.
 | 
					 | 
				
			||||||
function msg_error() {
 | 
					 | 
				
			||||||
  if [ -n "$SPINNER_PID" ] && ps -p $SPINNER_PID >/dev/null; then kill $SPINNER_PID >/dev/null; fi
 | 
					 | 
				
			||||||
  printf "\e[?25h"
 | 
					 | 
				
			||||||
  local msg="$1"
 | 
					 | 
				
			||||||
  echo -e "${BFR}${CROSS}${RD}${msg}${CL}"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This checks for the presence of valid Container Storage and Template Storage locations
 | 
					 | 
				
			||||||
msg_info "Validating Storage"
 | 
					 | 
				
			||||||
VALIDCT=$(pvesm status -content rootdir | awk 'NR>1')
 | 
					 | 
				
			||||||
if [ -z "$VALIDCT" ]; then
 | 
					 | 
				
			||||||
  msg_error "Unable to detect a valid Container Storage location."
 | 
					 | 
				
			||||||
  exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
VALIDTMP=$(pvesm status -content vztmpl | awk 'NR>1')
 | 
					 | 
				
			||||||
if [ -z "$VALIDTMP" ]; then
 | 
					 | 
				
			||||||
  msg_error "Unable to detect a valid Template Storage location."
 | 
					 | 
				
			||||||
  exit 1
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# This function is used to select the storage class and determine the corresponding storage content type and label.
 | 
					 | 
				
			||||||
function select_storage() {
 | 
					 | 
				
			||||||
  local CLASS=$1
 | 
					 | 
				
			||||||
  local CONTENT
 | 
					 | 
				
			||||||
  local CONTENT_LABEL
 | 
					 | 
				
			||||||
  case $CLASS in
 | 
					 | 
				
			||||||
  container)
 | 
					 | 
				
			||||||
    CONTENT='rootdir'
 | 
					 | 
				
			||||||
    CONTENT_LABEL='Container'
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  template)
 | 
					 | 
				
			||||||
    CONTENT='vztmpl'
 | 
					 | 
				
			||||||
    CONTENT_LABEL='Container template'
 | 
					 | 
				
			||||||
    ;;
 | 
					 | 
				
			||||||
  *) false || {
 | 
					 | 
				
			||||||
    msg_error "Invalid storage class."
 | 
					 | 
				
			||||||
    exit 201
 | 
					 | 
				
			||||||
  } ;;
 | 
					 | 
				
			||||||
  esac
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # This Queries all storage locations
 | 
					 | 
				
			||||||
  local -a MENU
 | 
					 | 
				
			||||||
  while read -r line; do
 | 
					 | 
				
			||||||
    local TAG=$(echo $line | awk '{print $1}')
 | 
					 | 
				
			||||||
    local TYPE=$(echo $line | awk '{printf "%-10s", $2}')
 | 
					 | 
				
			||||||
    local FREE=$(echo $line | numfmt --field 4-6 --from-unit=K --to=iec --format %.2f | awk '{printf( "%9sB", $6)}')
 | 
					 | 
				
			||||||
    local ITEM="Type: $TYPE Free: $FREE "
 | 
					 | 
				
			||||||
    local OFFSET=2
 | 
					 | 
				
			||||||
    if [[ $((${#ITEM} + $OFFSET)) -gt ${MSG_MAX_LENGTH:-} ]]; then
 | 
					 | 
				
			||||||
      local MSG_MAX_LENGTH=$((${#ITEM} + $OFFSET))
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    MENU+=("$TAG" "$ITEM" "OFF")
 | 
					 | 
				
			||||||
  done < <(pvesm status -content $CONTENT | awk 'NR>1')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Select storage location
 | 
					 | 
				
			||||||
  if [ $((${#MENU[@]} / 3)) -eq 1 ]; then
 | 
					 | 
				
			||||||
    printf ${MENU[0]}
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    local STORAGE
 | 
					 | 
				
			||||||
    while [ -z "${STORAGE:+x}" ]; do
 | 
					 | 
				
			||||||
      STORAGE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Storage Pools" --radiolist \
 | 
					 | 
				
			||||||
        "Which storage pool would you like to use for the ${CONTENT_LABEL,,}?\nTo make a selection, use the Spacebar.\n" \
 | 
					 | 
				
			||||||
        16 $(($MSG_MAX_LENGTH + 23)) 6 \
 | 
					 | 
				
			||||||
        "${MENU[@]}" 3>&1 1>&2 2>&3) || {
 | 
					 | 
				
			||||||
        msg_error "Menu aborted."
 | 
					 | 
				
			||||||
        exit 202
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if [ $? -ne 0 ]; then
 | 
					 | 
				
			||||||
        echo -e "${CROSS}${RD} Menu aborted by user.${CL}"
 | 
					 | 
				
			||||||
        exit 0
 | 
					 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    done
 | 
					 | 
				
			||||||
    printf "%s" "$STORAGE"
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
# Test if required variables are set
 | 
					 | 
				
			||||||
[[ "${CTID:-}" ]] || {
 | 
					 | 
				
			||||||
  msg_error "You need to set 'CTID' variable."
 | 
					 | 
				
			||||||
  exit 203
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
[[ "${PCT_OSTYPE:-}" ]] || {
 | 
					 | 
				
			||||||
  msg_error "You need to set 'PCT_OSTYPE' variable."
 | 
					 | 
				
			||||||
  exit 204
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Test if ID is valid
 | 
					 | 
				
			||||||
[ "$CTID" -ge "100" ] || {
 | 
					 | 
				
			||||||
  msg_error "ID cannot be less than 100."
 | 
					 | 
				
			||||||
  exit 205
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check for network connectivity (IPv4 & IPv6)
 | 
					 | 
				
			||||||
#function check_network() {
 | 
					 | 
				
			||||||
#  local CHECK_URLS=("8.8.8.8" "1.1.1.1" "9.9.9.9" "2606:4700:4700::1111" "2001:4860:4860::8888" "2620:fe::fe")
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#  for url in "${CHECK_URLS[@]}"; do
 | 
					 | 
				
			||||||
#    if ping -c 1 -W 2 "$url" &>/dev/null; then
 | 
					 | 
				
			||||||
#      return 0 # Success: At least one connection works
 | 
					 | 
				
			||||||
#    fi
 | 
					 | 
				
			||||||
#  done
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
#  msg_error "No network connection detected. Check your internet connection."
 | 
					 | 
				
			||||||
#  exit 101
 | 
					 | 
				
			||||||
#}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Test if ID is in use
 | 
					 | 
				
			||||||
if qm status "$CTID" &>/dev/null || pct status "$CTID" &>/dev/null; then
 | 
					 | 
				
			||||||
  echo -e "ID '$CTID' is already in use."
 | 
					 | 
				
			||||||
  unset CTID
 | 
					 | 
				
			||||||
  msg_error "Cannot use ID that is already in use."
 | 
					 | 
				
			||||||
  exit 206
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Get template storage
 | 
					 | 
				
			||||||
TEMPLATE_STORAGE=$(select_storage template)
 | 
					 | 
				
			||||||
msg_ok "Using ${BL}$TEMPLATE_STORAGE${CL} ${GN}for Template Storage."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Get container storage
 | 
					 | 
				
			||||||
CONTAINER_STORAGE=$(select_storage container)
 | 
					 | 
				
			||||||
msg_ok "Using ${BL}$CONTAINER_STORAGE${CL} ${GN}for Container Storage."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Update LXC template list
 | 
					 | 
				
			||||||
msg_info "Updating LXC Template List"
 | 
					 | 
				
			||||||
#check_network
 | 
					 | 
				
			||||||
pveam update >/dev/null
 | 
					 | 
				
			||||||
msg_ok "Updated LXC Template List"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Get LXC template string
 | 
					 | 
				
			||||||
TEMPLATE_SEARCH=${PCT_OSTYPE}-${PCT_OSVERSION:-}
 | 
					 | 
				
			||||||
mapfile -t TEMPLATES < <(pveam available -section system | sed -n "s/.*\($TEMPLATE_SEARCH.*\)/\1/p" | sort -t - -k 2 -V)
 | 
					 | 
				
			||||||
[ ${#TEMPLATES[@]} -gt 0 ] || {
 | 
					 | 
				
			||||||
  msg_error "Unable to find a template when searching for '$TEMPLATE_SEARCH'."
 | 
					 | 
				
			||||||
  exit 207
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
TEMPLATE="${TEMPLATES[-1]}"
 | 
					 | 
				
			||||||
TEMPLATE_PATH="$(pvesm path $TEMPLATE_STORAGE:vztmpl/$TEMPLATE)"
 | 
					 | 
				
			||||||
# Without NAS/Mount: TEMPLATE_PATH="/var/lib/vz/template/cache/$TEMPLATE"
 | 
					 | 
				
			||||||
# Check if template exists, if corrupt remove and redownload
 | 
					 | 
				
			||||||
if ! pveam list "$TEMPLATE_STORAGE" | grep -q "$TEMPLATE" || ! zstdcat "$TEMPLATE_PATH" | tar -tf - >/dev/null 2>&1; then
 | 
					 | 
				
			||||||
  msg_warn "Template $TEMPLATE not found in storage or seems to be corrupted. Redownloading."
 | 
					 | 
				
			||||||
  [[ -f "$TEMPLATE_PATH" ]] && rm -f "$TEMPLATE_PATH"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Download with 3 attempts
 | 
					 | 
				
			||||||
  for attempt in {1..3}; do
 | 
					 | 
				
			||||||
    msg_info "Attempt $attempt: Downloading LXC template..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if timeout 120 pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null; then
 | 
					 | 
				
			||||||
      msg_ok "Template download successful."
 | 
					 | 
				
			||||||
      break
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if [ $attempt -eq 3 ]; then
 | 
					 | 
				
			||||||
      msg_error "Three failed attempts. Aborting."
 | 
					 | 
				
			||||||
      exit 208
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sleep $((attempt * 5))
 | 
					 | 
				
			||||||
  done
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
msg_ok "LXC Template is ready to use."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Check and fix subuid/subgid
 | 
					 | 
				
			||||||
grep -q "root:100000:65536" /etc/subuid || echo "root:100000:65536" >>/etc/subuid
 | 
					 | 
				
			||||||
grep -q "root:100000:65536" /etc/subgid || echo "root:100000:65536" >>/etc/subgid
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Combine all options
 | 
					 | 
				
			||||||
PCT_OPTIONS=(${PCT_OPTIONS[@]:-${DEFAULT_PCT_OPTIONS[@]}})
 | 
					 | 
				
			||||||
[[ " ${PCT_OPTIONS[@]} " =~ " -rootfs " ]] || PCT_OPTIONS+=(-rootfs "$CONTAINER_STORAGE:${PCT_DISK_SIZE:-8}")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
msg_info "Creating LXC Container"
 | 
					 | 
				
			||||||
if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then
 | 
					 | 
				
			||||||
  msg_error "Container creation failed. Checking if template is corrupted."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if ! zstdcat "$TEMPLATE_PATH" | tar -tf - >/dev/null 2>&1; then
 | 
					 | 
				
			||||||
    msg_error "Template appears to be corrupted. Removing and re-downloading."
 | 
					 | 
				
			||||||
    rm -f "$TEMPLATE_PATH"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if ! timeout 120 pveam download "$TEMPLATE_STORAGE" "$TEMPLATE" >/dev/null; then
 | 
					 | 
				
			||||||
      msg_error "Failed to re-download template."
 | 
					 | 
				
			||||||
      exit 208
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Re-downloaded LXC Template"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if ! pct create "$CTID" "${TEMPLATE_STORAGE}:vztmpl/${TEMPLATE}" "${PCT_OPTIONS[@]}" &>/dev/null; then
 | 
					 | 
				
			||||||
      msg_error "Container creation failed after re-downloading template."
 | 
					 | 
				
			||||||
      exit 200
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_error "Container creation failed, but template is not corrupted."
 | 
					 | 
				
			||||||
    exit 209
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
msg_ok "LXC Container ${BL}$CTID${CL} ${GN}was successfully created."
 | 
					 | 
				
			||||||
@@ -20,46 +20,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
 | 
				
			||||||
    if [[ ! -d /opt/documenso ]]; then
 | 
					  if [[ ! -d /opt/documenso ]]; then
 | 
				
			||||||
        msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
        exit
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/documenso/documenso/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 documenso
 | 
					 | 
				
			||||||
        msg_ok "${APP} Stopped"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Updating ${APP} to ${RELEASE}"
 | 
					 | 
				
			||||||
        cp /opt/documenso/.env /opt/
 | 
					 | 
				
			||||||
        rm -rf /opt/documenso
 | 
					 | 
				
			||||||
        cd /opt
 | 
					 | 
				
			||||||
        curl -fsSL "https://github.com/documenso/documenso/archive/refs/tags/v${RELEASE}.zip" -o v${RELEASE}.zip
 | 
					 | 
				
			||||||
        unzip -q v${RELEASE}.zip
 | 
					 | 
				
			||||||
        mv documenso-${RELEASE} /opt/documenso
 | 
					 | 
				
			||||||
        cd /opt/documenso
 | 
					 | 
				
			||||||
        mv /opt/.env /opt/documenso/.env
 | 
					 | 
				
			||||||
        $STD npm install
 | 
					 | 
				
			||||||
        $STD npm run build:web
 | 
					 | 
				
			||||||
        $STD npm run prisma:migrate-deploy
 | 
					 | 
				
			||||||
        echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
        msg_ok "Updated ${APP}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Starting ${APP}"
 | 
					 | 
				
			||||||
        systemctl start documenso
 | 
					 | 
				
			||||||
        msg_ok "Started ${APP}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Cleaning Up"
 | 
					 | 
				
			||||||
        rm -rf /opt/v${RELEASE}.zip
 | 
					 | 
				
			||||||
        msg_ok "Cleaned"
 | 
					 | 
				
			||||||
        msg_ok "Updated Successfully"
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/documenso/documenso/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 documenso
 | 
				
			||||||
 | 
					    msg_ok "${APP} Stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
 | 
					    cp /opt/documenso/.env /opt/
 | 
				
			||||||
 | 
					    rm -rf /opt/documenso
 | 
				
			||||||
 | 
					    cd /opt
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/documenso/documenso/archive/refs/tags/v${RELEASE}.zip" -o v${RELEASE}.zip
 | 
				
			||||||
 | 
					    $STD unzip v${RELEASE}.zip
 | 
				
			||||||
 | 
					    mv documenso-${RELEASE} /opt/documenso
 | 
				
			||||||
 | 
					    cd /opt/documenso
 | 
				
			||||||
 | 
					    mv /opt/.env /opt/documenso/.env
 | 
				
			||||||
 | 
					    export TURBO_CACHE=1
 | 
				
			||||||
 | 
					    export NEXT_TELEMETRY_DISABLED=1
 | 
				
			||||||
 | 
					    export CYPRESS_INSTALL_BINARY=0
 | 
				
			||||||
 | 
					    export NODE_OPTIONS="--max-old-space-size=4096"
 | 
				
			||||||
 | 
					    $STD npm ci
 | 
				
			||||||
 | 
					    $STD turbo run build --filter=@documenso/remix
 | 
				
			||||||
 | 
					    $STD npm run prisma:migrate-deploy
 | 
				
			||||||
 | 
					    $STD turbo daemon stop
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
 | 
					    systemctl start documenso
 | 
				
			||||||
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					    rm -rf /opt/v${RELEASE}.zip
 | 
				
			||||||
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,7 +47,7 @@ function update_script() {
 | 
				
			|||||||
  $STD apt-get -y upgrade
 | 
					  $STD apt-get -y upgrade
 | 
				
			||||||
  msg_ok "Updated $APP LXC"
 | 
					  msg_ok "Updated $APP LXC"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ -f /systemd/system/synapse-admin.service ]]; then
 | 
					  if [[ -f /etc/systemd/system/synapse-admin.service ]]; then
 | 
				
			||||||
    msg_info "Updating Synapse-Admin"
 | 
					    msg_info "Updating Synapse-Admin"
 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					    RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat /opt/"${APP}"_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
					    if [[ "${RELEASE}" != "$(cat /opt/"${APP}"_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
				
			||||||
@@ -58,7 +58,16 @@ function update_script() {
 | 
				
			|||||||
      curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
					      curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
				
			||||||
      tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1
 | 
					      tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1
 | 
				
			||||||
      cd /opt/synapse-admin
 | 
					      cd /opt/synapse-admin
 | 
				
			||||||
 | 
					      $STD yarn global add serve
 | 
				
			||||||
      $STD yarn install --ignore-engines
 | 
					      $STD yarn install --ignore-engines
 | 
				
			||||||
 | 
					      $STD yarn build
 | 
				
			||||||
 | 
					      mv ./dist ../ && \
 | 
				
			||||||
 | 
					        rm -rf * && \
 | 
				
			||||||
 | 
					        mv ../dist ./
 | 
				
			||||||
 | 
					      if [[ -z $(grep "ExecStart=/usr/local/bin/serve" /etc/systemd/system/synapse-admin.service) ]]; then
 | 
				
			||||||
 | 
					        sed -i 's|^ExecStart=.*|ExecStart=/usr/local/bin/serve -s dist -l 5173|' /etc/systemd/system/synapse-admin.service
 | 
				
			||||||
 | 
					        systemctl reenable synapse-admin
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
      systemctl start synapse-admin
 | 
					      systemctl start synapse-admin
 | 
				
			||||||
      echo "${RELEASE}" >/opt/"${APP}"_version.txt
 | 
					      echo "${RELEASE}" >/opt/"${APP}"_version.txt
 | 
				
			||||||
      rm -f "$temp_file"
 | 
					      rm -f "$temp_file"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ APP="Excalidraw"
 | 
				
			|||||||
TAGS="diagrams"
 | 
					TAGS="diagrams"
 | 
				
			||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-3072}"
 | 
					var_ram="${var_ram:-3072}"
 | 
				
			||||||
var_disk="${var_disk:-6}"
 | 
					var_disk="${var_disk:-10}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
@@ -20,46 +20,46 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    header_info
 | 
					  header_info
 | 
				
			||||||
    check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
    check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [[ ! -d /opt/excalidraw ]]; then
 | 
					  if [[ ! -d /opt/excalidraw ]]; then
 | 
				
			||||||
        msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
        exit
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat /opt/excalidraw_version.txt)" ]] || [[ ! -f /opt/excalidraw_version.txt ]]; then
 | 
					 | 
				
			||||||
        msg_info "Stopping $APP"
 | 
					 | 
				
			||||||
        systemctl stop excalidraw
 | 
					 | 
				
			||||||
        msg_ok "Stopped $APP"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Updating $APP to v${RELEASE}"
 | 
					 | 
				
			||||||
        cd /tmp
 | 
					 | 
				
			||||||
        temp_file=$(mktemp)
 | 
					 | 
				
			||||||
curl -fsSL "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
					 | 
				
			||||||
        tar xzf $temp_file
 | 
					 | 
				
			||||||
        rm -rf /opt/excalidraw
 | 
					 | 
				
			||||||
        mv excalidraw-${RELEASE} /opt/excalidraw
 | 
					 | 
				
			||||||
        cd /opt/excalidraw
 | 
					 | 
				
			||||||
        $STD yarn
 | 
					 | 
				
			||||||
        msg_ok "Updated $APP to v${RELEASE}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Starting $APP"
 | 
					 | 
				
			||||||
        systemctl start excalidraw
 | 
					 | 
				
			||||||
        msg_ok "Started $APP"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        msg_info "Cleaning Up"
 | 
					 | 
				
			||||||
        rm -rf $temp_file
 | 
					 | 
				
			||||||
        msg_ok "Cleanup Completed"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        echo "${RELEASE}" >/opt/excalidraw_version.txt
 | 
					 | 
				
			||||||
        msg_ok "Update Successful"
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [[ "${RELEASE}" != "$(cat /opt/excalidraw_version.txt)" ]] || [[ ! -f /opt/excalidraw_version.txt ]]; then
 | 
				
			||||||
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
 | 
					    systemctl stop excalidraw
 | 
				
			||||||
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating $APP to v${RELEASE}"
 | 
				
			||||||
 | 
					    cd /tmp
 | 
				
			||||||
 | 
					    temp_file=$(mktemp)
 | 
				
			||||||
 | 
					    curl -fsSL "https://github.com/excalidraw/excalidraw/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
				
			||||||
 | 
					    tar xzf $temp_file
 | 
				
			||||||
 | 
					    rm -rf /opt/excalidraw
 | 
				
			||||||
 | 
					    mv excalidraw-${RELEASE} /opt/excalidraw
 | 
				
			||||||
 | 
					    cd /opt/excalidraw
 | 
				
			||||||
 | 
					    $STD yarn
 | 
				
			||||||
 | 
					    msg_ok "Updated $APP to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
 | 
					    systemctl start excalidraw
 | 
				
			||||||
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					    rm -rf $temp_file
 | 
				
			||||||
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/excalidraw_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
@@ -69,4 +69,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}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,7 +47,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Updating $APP to latest version"
 | 
					    msg_info "Updating $APP to latest version"
 | 
				
			||||||
    temp_file=$(mktemp)
 | 
					    temp_file=$(mktemp)
 | 
				
			||||||
    curl -fsSL https://fileflows.com/downloads/zip -o "$temp_file"
 | 
					    curl -fsSL https://fileflows.com/downloads/zip -o "$temp_file"
 | 
				
			||||||
    unzip -oq -d /opt/fileflows "$temp_file"
 | 
					    $STD unzip -o -d /opt/fileflows "$temp_file"
 | 
				
			||||||
    msg_ok "Updated $APP to latest version"
 | 
					    msg_ok "Updated $APP to latest version"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
#!/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 community-scripts ORG
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
# Author: quantumryuu
 | 
					# Author: quantumryuu | Co-Author: Slaviša Arežina (tremor021)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://firefly-iii.org/
 | 
					# Source: https://firefly-iii.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,8 +39,8 @@ function update_script() {
 | 
				
			|||||||
        cp /opt/fluid-calendar/.env /opt/fluid.env
 | 
					        cp /opt/fluid-calendar/.env /opt/fluid.env
 | 
				
			||||||
        rm -rf /opt/fluid-calendar
 | 
					        rm -rf /opt/fluid-calendar
 | 
				
			||||||
        tmp_file=$(mktemp)
 | 
					        tmp_file=$(mktemp)
 | 
				
			||||||
curl -fsSL "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
 | 
					        curl -fsSL "https://github.com/dotnetfactory/fluid-calendar/archive/refs/tags/v${RELEASE}.zip" -o "$tmp_file"
 | 
				
			||||||
        unzip -q $tmp_file
 | 
					        $STD unzip $tmp_file
 | 
				
			||||||
        mv ${APP}-${RELEASE}/ /opt/fluid-calendar
 | 
					        mv ${APP}-${RELEASE}/ /opt/fluid-calendar
 | 
				
			||||||
        mv /opt/fluid.env /opt/fluid-calendar/.env
 | 
					        mv /opt/fluid.env /opt/fluid-calendar/.env
 | 
				
			||||||
        cd /opt/fluid-calendar
 | 
					        cd /opt/fluid-calendar
 | 
				
			||||||
@@ -74,4 +74,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}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 -s 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: Arian Nasr (arian-nasr)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
# Source: https://github.com/deepch/RTSPtoWeb
 | 
					# Source: https://www.freepbx.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="RTSPtoWeb"
 | 
					APP="FreePBX"
 | 
				
			||||||
var_tags="${var_tags:-media}"
 | 
					var_tags="pbx;voip;telephony"
 | 
				
			||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-2048}"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-10}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
@@ -23,14 +23,12 @@ function update_script() {
 | 
				
			|||||||
    header_info
 | 
					    header_info
 | 
				
			||||||
    check_container_storage
 | 
					    check_container_storage
 | 
				
			||||||
    check_container_resources
 | 
					    check_container_resources
 | 
				
			||||||
    if [[ ! -d /var ]]; then
 | 
					
 | 
				
			||||||
 | 
					    if [[ ! -f /lib/systemd/system/freepbx.service ]]; then
 | 
				
			||||||
        msg_error "No ${APP} Installation Found!"
 | 
					        msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    msg_info "Updating $APP LXC"
 | 
					    msg_error "Currently we don't provide an update function for this ${APP}."
 | 
				
			||||||
    $STD apt-get update
 | 
					 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					 | 
				
			||||||
    msg_ok "Updated $APP LXC"
 | 
					 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -41,4 +39,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}:8083${CL}"
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}"
 | 
				
			||||||
							
								
								
									
										72
									
								
								ct/fumadocs.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								ct/fumadocs.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
				
			|||||||
 | 
					#!/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/fuma-nama/fumadoc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Fumadocs"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-documentation}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-5}"
 | 
				
			||||||
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header_info "$APP"
 | 
				
			||||||
 | 
					variables
 | 
				
			||||||
 | 
					color
 | 
				
			||||||
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function update_script() {
 | 
				
			||||||
 | 
					  header_info
 | 
				
			||||||
 | 
					  check_container_storage
 | 
				
			||||||
 | 
					  check_container_resources
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d /opt/fumadocs ]]; then
 | 
				
			||||||
 | 
					    msg_error "No installation found in /opt/fumadocs!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -f /opt/fumadocs/.projectname ]]; then
 | 
				
			||||||
 | 
					    msg_error "Project name file not found: /opt/fumadocs/.projectname!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs
 | 
				
			||||||
 | 
					  PROJECT_NAME=$(</opt/fumadocs/.projectname)
 | 
				
			||||||
 | 
					  PROJECT_DIR="/opt/fumadocs/${PROJECT_NAME}"
 | 
				
			||||||
 | 
					  SERVICE_NAME="fumadocs_${PROJECT_NAME}.service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ ! -d "$PROJECT_DIR" ]]; then
 | 
				
			||||||
 | 
					    msg_error "Project directory does not exist: $PROJECT_DIR"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Stopping service $SERVICE_NAME"
 | 
				
			||||||
 | 
					  systemctl stop "$SERVICE_NAME"
 | 
				
			||||||
 | 
					  msg_ok "Stopped service $SERVICE_NAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating dependencies using pnpm"
 | 
				
			||||||
 | 
					  cd "$PROJECT_DIR"
 | 
				
			||||||
 | 
					  $STD pnpm up --latest
 | 
				
			||||||
 | 
					  $STD pnpm build
 | 
				
			||||||
 | 
					  msg_ok "Updated dependencies using pnpm"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Starting service $SERVICE_NAME"
 | 
				
			||||||
 | 
					  systemctl start "$SERVICE_NAME"
 | 
				
			||||||
 | 
					  msg_ok "Started service $SERVICE_NAME"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  msg_ok "Fumadocs successfully updated"
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
				
			||||||
							
								
								
									
										75
									
								
								ct/gatus.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								ct/gatus.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					#!/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="gatus"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-monitoring}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
 | 
					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/gatus ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
				
			||||||
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
 | 
					    systemctl stop gatus
 | 
				
			||||||
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating $APP to v${RELEASE}"
 | 
				
			||||||
 | 
					    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
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Updated $APP to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
 | 
					    systemctl start gatus
 | 
				
			||||||
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					    rm -f "$temp_file"
 | 
				
			||||||
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at 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}:8080${CL}"
 | 
				
			||||||
							
								
								
									
										83
									
								
								ct/gitea-mirror.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								ct/gitea-mirror.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,83 @@
 | 
				
			|||||||
 | 
					#!/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: CrazyWolf13
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://github.com/arunavo4/gitea-mirror
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="gitea-mirror"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-mirror;gitea}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-6}"
 | 
				
			||||||
 | 
					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/gitea-mirror ]]; then
 | 
				
			||||||
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/arunavo4/gitea-mirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
 | 
					  if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
 | 
					    systemctl stop gitea-mirror
 | 
				
			||||||
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Backup Data"
 | 
				
			||||||
 | 
					    mkdir -p /opt/gitea-mirror-backup/data
 | 
				
			||||||
 | 
					    cp /opt/gitea-mirror/data/* /opt/gitea-mirror-backup/data/
 | 
				
			||||||
 | 
					    msg_ok "Backup Data"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Installing Bun"
 | 
				
			||||||
 | 
					    export BUN_INSTALL=/opt/bun
 | 
				
			||||||
 | 
					    curl -fsSL https://bun.sh/install | $STD bash
 | 
				
			||||||
 | 
					    ln -sf /opt/bun/bin/bun /usr/local/bin/bun
 | 
				
			||||||
 | 
					    ln -sf /opt/bun/bin/bun /usr/local/bin/bunx
 | 
				
			||||||
 | 
					    msg_ok "Installed Bun"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    rm -rf /opt/gitea-mirror
 | 
				
			||||||
 | 
					    fetch_and_deploy_gh_release "gitea-mirror" "arunavo4/gitea-mirror"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating and rebuilding ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					    cd /opt/gitea-mirror
 | 
				
			||||||
 | 
					    $STD bun run setup
 | 
				
			||||||
 | 
					    $STD bun run build
 | 
				
			||||||
 | 
					    APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
 | 
				
			||||||
 | 
					    sudo sed -i.bak "s|^Environment=npm_package_version=.*|Environment=npm_package_version=${APP_VERSION}|" /etc/systemd/system/gitea-mirror.service
 | 
				
			||||||
 | 
					    msg_ok "Updated and rebuilt ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Restoring Data"
 | 
				
			||||||
 | 
					    cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
 | 
				
			||||||
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 | 
					    msg_ok "Restored Data"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
 | 
					    systemctl daemon-reload
 | 
				
			||||||
 | 
					    systemctl start gitea-mirror
 | 
				
			||||||
 | 
					    msg_ok "Service Started"
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					start
 | 
				
			||||||
 | 
					build_container
 | 
				
			||||||
 | 
					description
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4321${CL}"
 | 
				
			||||||
@@ -29,10 +29,11 @@ function update_script() {
 | 
				
			|||||||
   fi
 | 
					   fi
 | 
				
			||||||
   RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
 | 
					   RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
 | 
				
			||||||
   msg_info "Updating $APP to ${RELEASE}"
 | 
					   msg_info "Updating $APP to ${RELEASE}"
 | 
				
			||||||
   curl -fsSL "https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64" -o $(basename "https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64")
 | 
					   FILENAME="gitea-$RELEASE-linux-amd64"
 | 
				
			||||||
 | 
					   curl -fsSL "https://github.com/go-gitea/gitea/releases/download/v$RELEASE/gitea-$RELEASE-linux-amd64" -o $FILENAME
 | 
				
			||||||
   systemctl stop gitea
 | 
					   systemctl stop gitea
 | 
				
			||||||
   rm -rf /usr/local/bin/gitea
 | 
					   rm -rf /usr/local/bin/gitea
 | 
				
			||||||
   mv gitea* /usr/local/bin/gitea
 | 
					   mv $FILENAME /usr/local/bin/gitea
 | 
				
			||||||
   chmod +x /usr/local/bin/gitea
 | 
					   chmod +x /usr/local/bin/gitea
 | 
				
			||||||
   systemctl start gitea
 | 
					   systemctl start gitea
 | 
				
			||||||
   msg_ok "Updated $APP Successfully"
 | 
					   msg_ok "Updated $APP Successfully"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								ct/go2rtc.sh
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								ct/go2rtc.sh
									
									
									
									
									
								
							@@ -6,7 +6,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://github.com/AlexxIT/go2rtc
 | 
					# Source: https://github.com/AlexxIT/go2rtc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="go2rtc"
 | 
					APP="go2rtc"
 | 
				
			||||||
var_tags="${var_tags:-recorder;video}"
 | 
					var_tags="${var_tags:-streaming;video}"
 | 
				
			||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-2048}"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
@@ -20,22 +20,22 @@ color
 | 
				
			|||||||
catch_errors
 | 
					catch_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_script() {
 | 
					function update_script() {
 | 
				
			||||||
    header_info
 | 
					  header_info
 | 
				
			||||||
    check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
    check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
    if [[ ! -d /opt/go2rtc ]]; then
 | 
					  if [[ ! -d /opt/go2rtc ]]; then
 | 
				
			||||||
        msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
        exit
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    msg_info "Updating $APP"
 | 
					 | 
				
			||||||
    systemctl stop go2rtc
 | 
					 | 
				
			||||||
    cd /opt/go2rtc
 | 
					 | 
				
			||||||
    rm go2rtc_linux_amd64
 | 
					 | 
				
			||||||
    curl -fsSL "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64" -o $(basename "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64")
 | 
					 | 
				
			||||||
    chmod +x go2rtc_linux_amd64
 | 
					 | 
				
			||||||
    systemctl start go2rtc
 | 
					 | 
				
			||||||
    msg_ok "Updated $APP"
 | 
					 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  msg_info "Updating $APP"
 | 
				
			||||||
 | 
					  systemctl stop go2rtc
 | 
				
			||||||
 | 
					  cd /opt/go2rtc
 | 
				
			||||||
 | 
					  rm go2rtc_linux_amd64
 | 
				
			||||||
 | 
					  curl -fsSL "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64" -o $(basename "https://github.com/AlexxIT/go2rtc/releases/latest/download/go2rtc_linux_amd64")
 | 
				
			||||||
 | 
					  chmod +x go2rtc_linux_amd64
 | 
				
			||||||
 | 
					  systemctl start go2rtc
 | 
				
			||||||
 | 
					  msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,7 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP} to ${RELEASE}"
 | 
				
			||||||
    cd /opt/gotify
 | 
					    cd /opt/gotify
 | 
				
			||||||
    curl -fsSL "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip" -o $(basename "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip")
 | 
					    curl -fsSL "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip" -o $(basename "https://github.com/gotify/server/releases/download/v${RELEASE}/gotify-linux-amd64.zip")
 | 
				
			||||||
    unzip -oq gotify-linux-amd64.zip
 | 
					    $STD unzip -o gotify-linux-amd64.zip
 | 
				
			||||||
    rm -rf gotify-linux-amd64.zip
 | 
					    rm -rf gotify-linux-amd64.zip
 | 
				
			||||||
    chmod +x gotify-linux-amd64
 | 
					    chmod +x gotify-linux-amd64
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,7 +39,7 @@ function update_script() {
 | 
				
			|||||||
    rm -rf grist_bak
 | 
					    rm -rf grist_bak
 | 
				
			||||||
    mv grist grist_bak
 | 
					    mv grist grist_bak
 | 
				
			||||||
    curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip")
 | 
					    curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip")
 | 
				
			||||||
    unzip -q v$RELEASE.zip
 | 
					    $STD unzip v$RELEASE.zip
 | 
				
			||||||
    mv grist-core-${RELEASE} grist
 | 
					    mv grist-core-${RELEASE} grist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    mkdir -p grist/docs
 | 
					    mkdir -p grist/docs
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								ct/headers/actualbudget
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/actualbudget
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___        __              __   ____            __           __ 
 | 
				
			||||||
 | 
					   /   | _____/ /___  ______ _/ /  / __ )__  ______/ /___ ____  / /_
 | 
				
			||||||
 | 
					  / /| |/ ___/ __/ / / / __ `/ /  / __  / / / / __  / __ `/ _ \/ __/
 | 
				
			||||||
 | 
					 / ___ / /__/ /_/ /_/ / /_/ / /  / /_/ / /_/ / /_/ / /_/ /  __/ /_  
 | 
				
			||||||
 | 
					/_/  |_\___/\__/\__,_/\__,_/_/  /_____/\__,_/\__,_/\__, /\___/\__/  
 | 
				
			||||||
 | 
					                                                  /____/            
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-bitmagnet
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-bitmagnet
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___    __      _                  __    _ __                                   __ 
 | 
				
			||||||
 | 
					   /   |  / /___  (_)___  ___        / /_  (_) /_____ ___  ____ _____ _____  ___  / /_
 | 
				
			||||||
 | 
					  / /| | / / __ \/ / __ \/ _ \______/ __ \/ / __/ __ `__ \/ __ `/ __ `/ __ \/ _ \/ __/
 | 
				
			||||||
 | 
					 / ___ |/ / /_/ / / / / /  __/_____/ /_/ / / /_/ / / / / / /_/ / /_/ / / / /  __/ /_  
 | 
				
			||||||
 | 
					/_/  |_/_/ .___/_/_/ /_/\___/     /_.___/_/\__/_/ /_/ /_/\__,_/\__, /_/ /_/\___/\__/  
 | 
				
			||||||
 | 
					        /_/                                                   /____/                  
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-forgejo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-forgejo
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___    __      _                  ______                        _     
 | 
				
			||||||
 | 
					   /   |  / /___  (_)___  ___        / ____/___  _________ ____    (_)___ 
 | 
				
			||||||
 | 
					  / /| | / / __ \/ / __ \/ _ \______/ /_  / __ \/ ___/ __ `/ _ \  / / __ \
 | 
				
			||||||
 | 
					 / ___ |/ / /_/ / / / / /  __/_____/ __/ / /_/ / /  / /_/ /  __/ / / /_/ /
 | 
				
			||||||
 | 
					/_/  |_/_/ .___/_/_/ /_/\___/     /_/    \____/_/   \__, /\___/_/ /\____/ 
 | 
				
			||||||
 | 
					        /_/                                        /____/    /___/        
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-gatus
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-gatus
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___    __      _                              __            
 | 
				
			||||||
 | 
					   /   |  / /___  (_)___  ___        ____ _____ _/ /___  _______
 | 
				
			||||||
 | 
					  / /| | / / __ \/ / __ \/ _ \______/ __ `/ __ `/ __/ / / / ___/
 | 
				
			||||||
 | 
					 / ___ |/ / /_/ / / / / /  __/_____/ /_/ / /_/ / /_/ /_/ (__  ) 
 | 
				
			||||||
 | 
					/_/  |_/_/ .___/_/_/ /_/\___/      \__, /\__,_/\__/\__,_/____/  
 | 
				
			||||||
 | 
					        /_/                       /____/                        
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-komodo
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-komodo
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___    __      _                  __ __                          __    
 | 
				
			||||||
 | 
					   /   |  / /___  (_)___  ___        / //_/___  ____ ___  ____  ____/ /___ 
 | 
				
			||||||
 | 
					  / /| | / / __ \/ / __ \/ _ \______/ ,< / __ \/ __ `__ \/ __ \/ __  / __ \
 | 
				
			||||||
 | 
					 / ___ |/ / /_/ / / / / /  __/_____/ /| / /_/ / / / / / / /_/ / /_/ / /_/ /
 | 
				
			||||||
 | 
					/_/  |_/_/ .___/_/_/ /_/\___/     /_/ |_\____/_/ /_/ /_/\____/\__,_/\____/ 
 | 
				
			||||||
 | 
					        /_/                                                                
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-rclone
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-rclone
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___    __      _                            __               
 | 
				
			||||||
 | 
					   /   |  / /___  (_)___  ___        __________/ /___  ____  ___ 
 | 
				
			||||||
 | 
					  / /| | / / __ \/ / __ \/ _ \______/ ___/ ___/ / __ \/ __ \/ _ \
 | 
				
			||||||
 | 
					 / ___ |/ / /_/ / / / / /  __/_____/ /  / /__/ / /_/ / / / /  __/
 | 
				
			||||||
 | 
					/_/  |_/_/ .___/_/_/ /_/\___/     /_/   \___/_/\____/_/ /_/\___/ 
 | 
				
			||||||
 | 
					        /_/                                                      
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-tinyauth
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-tinyauth
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___    __      _                _______                         __  __  
 | 
				
			||||||
 | 
					   /   |  / /___  (_)___  ___      /_  __(_)___  __  ______ ___  __/ /_/ /_ 
 | 
				
			||||||
 | 
					  / /| | / / __ \/ / __ \/ _ \______/ / / / __ \/ / / / __ `/ / / / __/ __ \
 | 
				
			||||||
 | 
					 / ___ |/ / /_/ / / / / /  __/_____/ / / / / / / /_/ / /_/ / /_/ / /_/ / / /
 | 
				
			||||||
 | 
					/_/  |_/_/ .___/_/_/ /_/\___/     /_/ /_/_/ /_/\__, /\__,_/\__,_/\__/_/ /_/ 
 | 
				
			||||||
 | 
					        /_/                                   /____/                        
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-traefik
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-traefik
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___    __      _                ______                _____ __  
 | 
				
			||||||
 | 
					   /   |  / /___  (_)___  ___      /_  __/________ ____  / __(_) /__
 | 
				
			||||||
 | 
					  / /| | / / __ \/ / __ \/ _ \______/ / / ___/ __ `/ _ \/ /_/ / //_/
 | 
				
			||||||
 | 
					 / ___ |/ / /_/ / / / / /  __/_____/ / / /  / /_/ /  __/ __/ / ,<   
 | 
				
			||||||
 | 
					/_/  |_/_/ .___/_/_/ /_/\___/     /_/ /_/   \__,_/\___/_/ /_/_/|_|  
 | 
				
			||||||
 | 
					        /_/                                                         
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-transmission
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-transmission
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___    __      _                ______                                _           _           
 | 
				
			||||||
 | 
					   /   |  / /___  (_)___  ___      /_  __/________ _____  _________ ___  (_)_________(_)___  ____ 
 | 
				
			||||||
 | 
					  / /| | / / __ \/ / __ \/ _ \______/ / / ___/ __ `/ __ \/ ___/ __ `__ \/ / ___/ ___/ / __ \/ __ \
 | 
				
			||||||
 | 
					 / ___ |/ / /_/ / / / / /  __/_____/ / / /  / /_/ / / / (__  ) / / / / / (__  |__  ) / /_/ / / / /
 | 
				
			||||||
 | 
					/_/  |_/_/ .___/_/_/ /_/\___/     /_/ /_/   \__,_/_/ /_/____/_/ /_/ /_/_/____/____/_/\____/_/ /_/ 
 | 
				
			||||||
 | 
					        /_/                                                                                       
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/argus
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/argus
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___                         
 | 
				
			||||||
 | 
					   /   |  _________ ___  _______
 | 
				
			||||||
 | 
					  / /| | / ___/ __ `/ / / / ___/
 | 
				
			||||||
 | 
					 / ___ |/ /  / /_/ / /_/ (__  ) 
 | 
				
			||||||
 | 
					/_/  |_/_/   \__, /\__,_/____/  
 | 
				
			||||||
 | 
					            /____/              
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/asterisk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/asterisk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ___         __            _      __  
 | 
				
			||||||
 | 
					   /   |  _____/ /____  _____(_)____/ /__
 | 
				
			||||||
 | 
					  / /| | / ___/ __/ _ \/ ___/ / ___/ //_/
 | 
				
			||||||
 | 
					 / ___ |(__  ) /_/  __/ /  / (__  ) ,<   
 | 
				
			||||||
 | 
					/_/  |_/____/\__/\___/_/  /_/____/_/|_|  
 | 
				
			||||||
 | 
					                                         
 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
    ___         __  __               __  _ __  
 | 
					 | 
				
			||||||
   /   | __  __/ /_/ /_  ___  ____  / /_(_) /__
 | 
					 | 
				
			||||||
  / /| |/ / / / __/ __ \/ _ \/ __ \/ __/ / //_/
 | 
					 | 
				
			||||||
 / ___ / /_/ / /_/ / / /  __/ / / / /_/ / ,<   
 | 
					 | 
				
			||||||
/_/  |_\__,_/\__/_/ /_/\___/_/ /_/\__/_/_/|_|  
 | 
					 | 
				
			||||||
                                               
 | 
					 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/babybuddy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/babybuddy
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ____        __             ____            __    __     
 | 
				
			||||||
 | 
					   / __ )____ _/ /_  __  __   / __ )__  ______/ /___/ /_  __
 | 
				
			||||||
 | 
					  / __  / __ `/ __ \/ / / /  / __  / / / / __  / __  / / / /
 | 
				
			||||||
 | 
					 / /_/ / /_/ / /_/ / /_/ /  / /_/ / /_/ / /_/ / /_/ / /_/ / 
 | 
				
			||||||
 | 
					/_____/\__,_/_.___/\__, /  /_____/\__,_/\__,_/\__,_/\__, /  
 | 
				
			||||||
 | 
					                  /____/                           /____/   
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/backrest
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/backrest
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ____             __                  __ 
 | 
				
			||||||
 | 
					   / __ )____ ______/ /__________  _____/ /_
 | 
				
			||||||
 | 
					  / __  / __ `/ ___/ //_/ ___/ _ \/ ___/ __/
 | 
				
			||||||
 | 
					 / /_/ / /_/ / /__/ ,< / /  /  __(__  ) /_  
 | 
				
			||||||
 | 
					/_____/\__,_/\___/_/|_/_/   \___/____/\__/  
 | 
				
			||||||
 | 
					                                            
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/bitmagnet
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/bitmagnet
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ____  _ __                                   __ 
 | 
				
			||||||
 | 
					   / __ )(_) /_____ ___  ____ _____ _____  ___  / /_
 | 
				
			||||||
 | 
					  / __  / / __/ __ `__ \/ __ `/ __ `/ __ \/ _ \/ __/
 | 
				
			||||||
 | 
					 / /_/ / / /_/ / / / / / /_/ / /_/ / / / /  __/ /_  
 | 
				
			||||||
 | 
					/_____/_/\__/_/ /_/ /_/\__,_/\__, /_/ /_/\___/\__/  
 | 
				
			||||||
 | 
					                            /____/                  
 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
    __          ____      ___      
 | 
					 | 
				
			||||||
   / /_  ____  / / /_____/ (_)_  __
 | 
					 | 
				
			||||||
  / __ \/ __ \/ / __/ __  / / / / /
 | 
					 | 
				
			||||||
 / /_/ / /_/ / / /_/ /_/ / / /_/ / 
 | 
					 | 
				
			||||||
/_.___/\____/_/\__/\__,_/_/\__, /  
 | 
					 | 
				
			||||||
                          /____/   
 | 
					 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/cloudflare-ddns
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/cloudflare-ddns
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					   ________                ________                      ____  ____  _   _______
 | 
				
			||||||
 | 
					  / ____/ /___  __  ______/ / __/ /___ _________        / __ \/ __ \/ | / / ___/
 | 
				
			||||||
 | 
					 / /   / / __ \/ / / / __  / /_/ / __ `/ ___/ _ \______/ / / / / / /  |/ /\__ \ 
 | 
				
			||||||
 | 
					/ /___/ / /_/ / /_/ / /_/ / __/ / /_/ / /  /  __/_____/ /_/ / /_/ / /|  /___/ / 
 | 
				
			||||||
 | 
					\____/_/\____/\__,_/\__,_/_/ /_/\__,_/_/   \___/     /_____/_____/_/ |_//____/  
 | 
				
			||||||
 | 
					                                                                                
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/configarr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/configarr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					   ______            _____                      
 | 
				
			||||||
 | 
					  / ____/___  ____  / __(_)___ _____ ___________
 | 
				
			||||||
 | 
					 / /   / __ \/ __ \/ /_/ / __ `/ __ `/ ___/ ___/
 | 
				
			||||||
 | 
					/ /___/ /_/ / / / / __/ / /_/ / /_/ / /  / /    
 | 
				
			||||||
 | 
					\____/\____/_/ /_/_/ /_/\__, /\__,_/_/  /_/     
 | 
				
			||||||
 | 
					                       /____/                   
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/freepbx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/freepbx
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ______               ____  ____ _  __
 | 
				
			||||||
 | 
					   / ____/_______  ___  / __ \/ __ ) |/ /
 | 
				
			||||||
 | 
					  / /_  / ___/ _ \/ _ \/ /_/ / __  |   / 
 | 
				
			||||||
 | 
					 / __/ / /  /  __/  __/ ____/ /_/ /   |  
 | 
				
			||||||
 | 
					/_/   /_/   \___/\___/_/   /_____/_/|_|  
 | 
				
			||||||
 | 
					                                         
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user