mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	Compare commits
	
		
			712 Commits
		
	
	
		
			2025-08-17
			...
			2025-09-27
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					7ddc50bfe7 | ||
| 
						 | 
					484a46beb1 | ||
| 
						 | 
					b85d1e5062 | ||
| 
						 | 
					05e41f67e1 | ||
| 
						 | 
					bfe6445c64 | ||
| 
						 | 
					ffde3a731c | ||
| 
						 | 
					d5b9da8f5f | ||
| 
						 | 
					1b8d790a14 | ||
| 
						 | 
					175b925ae4 | ||
| 
						 | 
					38a8773d2f | ||
| 
						 | 
					e7dafcbf3e | ||
| 
						 | 
					380fb1cfb7 | ||
| 
						 | 
					10cd6c3f0b | ||
| 
						 | 
					710bd7f4e7 | ||
| 
						 | 
					4d72852e53 | ||
| 
						 | 
					9ad538c2d2 | ||
| 
						 | 
					ee3872e7e1 | ||
| 
						 | 
					f6ca81833e | ||
| 
						 | 
					c41b18f083 | ||
| 
						 | 
					f983f75b30 | ||
| 
						 | 
					137dd647dd | ||
| 
						 | 
					2f5c608f45 | ||
| 
						 | 
					b8e06c05d0 | ||
| 
						 | 
					2beb89055c | ||
| 
						 | 
					308897fdc7 | ||
| 
						 | 
					5b73367c80 | ||
| 
						 | 
					5c0eefa652 | ||
| 
						 | 
					7c5c654dbe | ||
| 
						 | 
					984eeedf31 | ||
| 
						 | 
					7fd08cbe69 | ||
| 
						 | 
					285447b67f | ||
| 
						 | 
					b394cdf6e0 | ||
| 
						 | 
					ab2a6ed38e | ||
| 
						 | 
					f8e109c529 | ||
| 
						 | 
					46e4bc3a04 | ||
| 
						 | 
					d0a1f305c7 | ||
| 
						 | 
					6948e1f695 | ||
| 
						 | 
					8c860da4ed | ||
| 
						 | 
					d32e9fad59 | ||
| 
						 | 
					9096a388c7 | ||
| 
						 | 
					9f0efc27df | ||
| 
						 | 
					06ca6e2087 | ||
| 
						 | 
					8c48ea6718 | ||
| 
						 | 
					b626e705eb | ||
| 
						 | 
					f103d09c09 | ||
| 
						 | 
					82a7d252ab | ||
| 
						 | 
					48af77e928 | ||
| 
						 | 
					d24308a409 | ||
| 
						 | 
					584365fff1 | ||
| 
						 | 
					95c54dccd7 | ||
| 
						 | 
					eb28463d86 | ||
| 
						 | 
					bddde99252 | ||
| 
						 | 
					f1f8c1b279 | ||
| 
						 | 
					37a0a4add9 | ||
| 
						 | 
					02cede3f5d | ||
| 
						 | 
					42a7d57a42 | ||
| 
						 | 
					53b5f0d1fe | ||
| 
						 | 
					4a56d8d9aa | ||
| 
						 | 
					f819188a5e | ||
| 
						 | 
					4d6e3e5977 | ||
| 
						 | 
					d6fc527200 | ||
| 
						 | 
					c103c3b03d | ||
| 
						 | 
					2d290cb27f | ||
| 
						 | 
					883efd1cd2 | ||
| 
						 | 
					1f40670ea0 | ||
| 
						 | 
					cec4e2d5c1 | ||
| 
						 | 
					1fafb3f661 | ||
| 
						 | 
					b56b053e8b | ||
| 
						 | 
					21f98835dc | ||
| 
						 | 
					ab455d7748 | ||
| 
						 | 
					5382fa1dbd | ||
| 
						 | 
					6fa1938360 | ||
| 
						 | 
					2a2df5b5cc | ||
| 
						 | 
					f99d582eb5 | ||
| 
						 | 
					d3f24ae5b2 | ||
| 
						 | 
					25e89f7bac | ||
| 
						 | 
					2686753448 | ||
| 
						 | 
					19678e2534 | ||
| 
						 | 
					1ac8f90281 | ||
| 
						 | 
					7cd3e40f9c | ||
| 
						 | 
					42191bdb5a | ||
| 
						 | 
					aab1a9bce5 | ||
| 
						 | 
					208226065b | ||
| 
						 | 
					54e62749be | ||
| 
						 | 
					2a8e2e62cd | ||
| 
						 | 
					b15d7be4c3 | ||
| 
						 | 
					e208bc110b | ||
| 
						 | 
					b26ad61a33 | ||
| 
						 | 
					5beaec9514 | ||
| 
						 | 
					3a668870b7 | ||
| 
						 | 
					3266962630 | ||
| 
						 | 
					2a3f5d7b47 | ||
| 
						 | 
					fb4c3cf9e9 | ||
| 
						 | 
					e96ea4eb40 | ||
| 
						 | 
					dfbe5f03ce | ||
| 
						 | 
					9c53c70f6b | ||
| 
						 | 
					a3c7f468ef | ||
| 
						 | 
					605f7a0330 | ||
| 
						 | 
					306627378e | ||
| 
						 | 
					0e464cb192 | ||
| 
						 | 
					277f6ce7d1 | ||
| 
						 | 
					a6d6f79943 | ||
| 
						 | 
					a7ced850ab | ||
| 
						 | 
					eadca5f81f | ||
| 
						 | 
					5ab375fd89 | ||
| 
						 | 
					2dc95b6b22 | ||
| 
						 | 
					57dd3d5a44 | ||
| 
						 | 
					25ddf48190 | ||
| 
						 | 
					01b6bec1fe | ||
| 
						 | 
					d1ff8201b1 | ||
| 
						 | 
					c5c5ba1ede | ||
| 
						 | 
					e3aabd81a3 | ||
| 
						 | 
					4713941415 | ||
| 
						 | 
					adda76f587 | ||
| 
						 | 
					cf597b6a26 | ||
| 
						 | 
					20e8730a34 | ||
| 
						 | 
					9ce9de8e84 | ||
| 
						 | 
					ac3f969016 | ||
| 
						 | 
					c0597842f8 | ||
| 
						 | 
					667d354059 | ||
| 
						 | 
					d56c1e2f50 | ||
| 
						 | 
					3dfbc2d6ea | ||
| 
						 | 
					31b33d370e | ||
| 
						 | 
					d4d4c0e07a | ||
| 
						 | 
					aded4d5809 | ||
| 
						 | 
					c00308524b | ||
| 
						 | 
					fef7786714 | ||
| 
						 | 
					0dfd337a9a | ||
| 
						 | 
					d99862fa24 | ||
| 
						 | 
					ac08d385c0 | ||
| 
						 | 
					7a9de76acb | ||
| 
						 | 
					35f3f043a7 | ||
| 
						 | 
					4276df26d7 | ||
| 
						 | 
					5fec573533 | ||
| 
						 | 
					ebd269a808 | ||
| 
						 | 
					532c0a95bb | ||
| 
						 | 
					c078b11aa9 | ||
| 
						 | 
					ab8b025824 | ||
| 
						 | 
					e2044a0572 | ||
| 
						 | 
					59e65eaba3 | ||
| 
						 | 
					a2306d6b32 | ||
| 
						 | 
					3e71af1895 | ||
| 
						 | 
					8a3b41867b | ||
| 
						 | 
					b4b9efeff2 | ||
| 
						 | 
					5e2168b2d1 | ||
| 
						 | 
					c00c1deb79 | ||
| 
						 | 
					37e3739bd2 | ||
| 
						 | 
					f5eda37397 | ||
| 
						 | 
					9e42c801f1 | ||
| 
						 | 
					e4d6dfc885 | ||
| 
						 | 
					14894f84b6 | ||
| 
						 | 
					b5f70e6e77 | ||
| 
						 | 
					2919ce16f1 | ||
| 
						 | 
					38cf6b2f46 | ||
| 
						 | 
					c390fb925d | ||
| 
						 | 
					a28fdac3f0 | ||
| 
						 | 
					41b27b31dc | ||
| 
						 | 
					7ef8afe4d2 | ||
| 
						 | 
					694d9c203e | ||
| 
						 | 
					76dcc45e9f | ||
| 
						 | 
					a0952e9f69 | ||
| 
						 | 
					3bd6b6e540 | ||
| 
						 | 
					61be53cc26 | ||
| 
						 | 
					02eda516df | ||
| 
						 | 
					25213fabaa | ||
| 
						 | 
					ad8a4f63c4 | ||
| 
						 | 
					bcce0e20c1 | ||
| 
						 | 
					515c4073c4 | ||
| 
						 | 
					30e22ff661 | ||
| 
						 | 
					8265abfb20 | ||
| 
						 | 
					b40d061f3e | ||
| 
						 | 
					efe598d6ec | ||
| 
						 | 
					82caa8769e | ||
| 
						 | 
					7961023f8c | ||
| 
						 | 
					ea58fdb7e0 | ||
| 
						 | 
					238895534a | ||
| 
						 | 
					cc1c2f84ca | ||
| 
						 | 
					3aff0d9d7e | ||
| 
						 | 
					7cd332680a | ||
| 
						 | 
					382e679842 | ||
| 
						 | 
					a3b5f798de | ||
| 
						 | 
					c22630c887 | ||
| 
						 | 
					542f260f31 | ||
| 
						 | 
					a40cc130bd | ||
| 
						 | 
					7311f1b843 | ||
| 
						 | 
					acd9bb1357 | ||
| 
						 | 
					e2e2459bfd | ||
| 
						 | 
					caeba37a2e | ||
| 
						 | 
					44a8c70437 | ||
| 
						 | 
					1860f4b2ee | ||
| 
						 | 
					bf0bac1523 | ||
| 
						 | 
					b6bfe9a4b6 | ||
| 
						 | 
					634386ea50 | ||
| 
						 | 
					020c8a76c1 | ||
| 
						 | 
					8f738e2d26 | ||
| 
						 | 
					e5e7547eca | ||
| 
						 | 
					a383aa5679 | ||
| 
						 | 
					ce68253564 | ||
| 
						 | 
					65e561dcbe | ||
| 
						 | 
					dffb291a4f | ||
| 
						 | 
					f3bcb3211c | ||
| 
						 | 
					7c22fe5f46 | ||
| 
						 | 
					600e739005 | ||
| 
						 | 
					31be78878f | ||
| 
						 | 
					e47d62d575 | ||
| 
						 | 
					ec58d6c622 | ||
| 
						 | 
					bac2b6eade | ||
| 
						 | 
					bb289203c6 | ||
| 
						 | 
					fe97056d19 | ||
| 
						 | 
					65ba9192d9 | ||
| 
						 | 
					8a096b9e6e | ||
| 
						 | 
					1c6efa528b | ||
| 
						 | 
					89c3410f6f | ||
| 
						 | 
					34b1d70762 | ||
| 
						 | 
					1860847153 | ||
| 
						 | 
					58905bf94d | ||
| 
						 | 
					7d1788a079 | ||
| 
						 | 
					83e04257d9 | ||
| 
						 | 
					11c33e34d2 | ||
| 
						 | 
					52df77cab5 | ||
| 
						 | 
					17f6264a03 | ||
| 
						 | 
					9463b0b808 | ||
| 
						 | 
					eba83f3848 | ||
| 
						 | 
					e3f6ea73c3 | ||
| 
						 | 
					06247e742c | ||
| 
						 | 
					4606782d6b | ||
| 
						 | 
					a988acf2d5 | ||
| 
						 | 
					5f44007372 | ||
| 
						 | 
					8b87272e38 | ||
| 
						 | 
					ceccf08f69 | ||
| 
						 | 
					5a80cd7e02 | ||
| 
						 | 
					d617a49766 | ||
| 
						 | 
					7c0d79c115 | ||
| 
						 | 
					0d4a508543 | ||
| 
						 | 
					f979dd2277 | ||
| 
						 | 
					87de220511 | ||
| 
						 | 
					481e70b0aa | ||
| 
						 | 
					6c3a16e579 | ||
| 
						 | 
					394f91c994 | ||
| 
						 | 
					63a268d6c5 | ||
| 
						 | 
					9ee6e23a59 | ||
| 
						 | 
					eceb1cd53c | ||
| 
						 | 
					719c55655d | ||
| 
						 | 
					aeb15c7ea1 | ||
| 
						 | 
					0c7a366782 | ||
| 
						 | 
					93a3a572d4 | ||
| 
						 | 
					8b2645a529 | ||
| 
						 | 
					b72e132699 | ||
| 
						 | 
					f4df8e2ccc | ||
| 
						 | 
					f03f004226 | ||
| 
						 | 
					b13c840bda | ||
| 
						 | 
					ce90647bda | ||
| 
						 | 
					164e487090 | ||
| 
						 | 
					a4660adedd | ||
| 
						 | 
					9352eec854 | ||
| 
						 | 
					4478f8f6e0 | ||
| 
						 | 
					d69cbcd941 | ||
| 
						 | 
					affcfd06cf | ||
| 
						 | 
					b94b088c19 | ||
| 
						 | 
					5385382a88 | ||
| 
						 | 
					d06ad37a22 | ||
| 
						 | 
					72c7d4199b | ||
| 
						 | 
					2e75ced83f | ||
| 
						 | 
					9a28ce0263 | ||
| 
						 | 
					9ed2507bdc | ||
| 
						 | 
					c617870c2b | ||
| 
						 | 
					eb71d21ea3 | ||
| 
						 | 
					762452b2b3 | ||
| 
						 | 
					31cd3e3119 | ||
| 
						 | 
					c25dba9212 | ||
| 
						 | 
					52cefe4a00 | ||
| 
						 | 
					7b8fcab242 | ||
| 
						 | 
					b733e8b5ea | ||
| 
						 | 
					4a4e67a3cf | ||
| 
						 | 
					b00feea00d | ||
| 
						 | 
					c250cec418 | ||
| 
						 | 
					a0af0f5196 | ||
| 
						 | 
					2f0b6e10ab | ||
| 
						 | 
					a41364d91d | ||
| 
						 | 
					e580a5d9c1 | ||
| 
						 | 
					9d059b2a13 | ||
| 
						 | 
					6e32eebdf0 | ||
| 
						 | 
					7f3ebd4296 | ||
| 
						 | 
					0c4d55bd78 | ||
| 
						 | 
					8f05be3f6b | ||
| 
						 | 
					e06cd4b28c | ||
| 
						 | 
					b9242b3232 | ||
| 
						 | 
					63f6d772ea | ||
| 
						 | 
					652df1f370 | ||
| 
						 | 
					f4b5baf308 | ||
| 
						 | 
					cc36fd5434 | ||
| 
						 | 
					3e182978ad | ||
| 
						 | 
					e7adf1a9b5 | ||
| 
						 | 
					36fb86eaf8 | ||
| 
						 | 
					495c47224e | ||
| 
						 | 
					7af71384b4 | ||
| 
						 | 
					e318152ee3 | ||
| 
						 | 
					17dc7c90a1 | ||
| 
						 | 
					226a5bce8f | ||
| 
						 | 
					ffd2ed01b9 | ||
| 
						 | 
					3348e2fff0 | ||
| 
						 | 
					def41f66f4 | ||
| 
						 | 
					02a1a732f8 | ||
| 
						 | 
					2494af7e1c | ||
| 
						 | 
					0c4711d99f | ||
| 
						 | 
					039f73a5ed | ||
| 
						 | 
					74b58d5b10 | ||
| 
						 | 
					61044104a2 | ||
| 
						 | 
					fac612077a | ||
| 
						 | 
					135b3ff964 | ||
| 
						 | 
					393b853119 | ||
| 
						 | 
					6bb2938e34 | ||
| 
						 | 
					fbf16fd54d | ||
| 
						 | 
					d6d4fd034f | ||
| 
						 | 
					aa4999dac6 | ||
| 
						 | 
					b6c0b50e79 | ||
| 
						 | 
					0f07f1927e | ||
| 
						 | 
					4493d86e51 | ||
| 
						 | 
					fbfeeeb88f | ||
| 
						 | 
					2366111bba | ||
| 
						 | 
					5fb42b87f1 | ||
| 
						 | 
					500c35c58d | ||
| 
						 | 
					ca3446c90e | ||
| 
						 | 
					4c3d42d5d1 | ||
| 
						 | 
					299a10efe8 | ||
| 
						 | 
					7adac2a342 | ||
| 
						 | 
					eb58b10d75 | ||
| 
						 | 
					5e46d81c45 | ||
| 
						 | 
					2963926c45 | ||
| 
						 | 
					d9a0b863a8 | ||
| 
						 | 
					db6369f3c6 | ||
| 
						 | 
					d450e263f0 | ||
| 
						 | 
					462960d9bf | ||
| 
						 | 
					8ea4829e8a | ||
| 
						 | 
					c5d23dc883 | ||
| 
						 | 
					3dc973e4ac | ||
| 
						 | 
					751f488f9e | ||
| 
						 | 
					0ed4363247 | ||
| 
						 | 
					e77612c27e | ||
| 
						 | 
					59c8e214af | ||
| 
						 | 
					c790f03a6b | ||
| 
						 | 
					54d4d58b15 | ||
| 
						 | 
					889a58c00e | ||
| 
						 | 
					e9a5d7587a | ||
| 
						 | 
					6f84046741 | ||
| 
						 | 
					ff96351db8 | ||
| 
						 | 
					1b632199b3 | ||
| 
						 | 
					9fb02a93b4 | ||
| 
						 | 
					3aa56651d8 | ||
| 
						 | 
					17d4c59041 | ||
| 
						 | 
					2bfb35779b | ||
| 
						 | 
					83b93390c9 | ||
| 
						 | 
					7ce47ad414 | ||
| 
						 | 
					646e0c31f4 | ||
| 
						 | 
					0c7e200a94 | ||
| 
						 | 
					a9b02b3e9c | ||
| 
						 | 
					b62adc2c5c | ||
| 
						 | 
					3438b046e5 | ||
| 
						 | 
					cbd6d6d0f3 | ||
| 
						 | 
					cf6c429c57 | ||
| 
						 | 
					bbe71cbbb9 | ||
| 
						 | 
					9b6a736c8c | ||
| 
						 | 
					c395ccc270 | ||
| 
						 | 
					3dd72e08e9 | ||
| 
						 | 
					1d989bea73 | ||
| 
						 | 
					f881b88344 | ||
| 
						 | 
					06dbad83ef | ||
| 
						 | 
					7ff966b042 | ||
| 
						 | 
					62264f37a6 | ||
| 
						 | 
					bf05dabc4c | ||
| 
						 | 
					bc229d9738 | ||
| 
						 | 
					969b08caa8 | ||
| 
						 | 
					c1c43ed2cb | ||
| 
						 | 
					e74767d1a4 | ||
| 
						 | 
					e9e17f4f51 | ||
| 
						 | 
					2c1b15a40e | ||
| 
						 | 
					a4bfaf1646 | ||
| 
						 | 
					6fa12cc814 | ||
| 
						 | 
					d314168a37 | ||
| 
						 | 
					d6ad11c5c2 | ||
| 
						 | 
					534592b44a | ||
| 
						 | 
					d9b6b58b36 | ||
| 
						 | 
					298eb7e83d | ||
| 
						 | 
					c2dd1e413f | ||
| 
						 | 
					a4f1766408 | ||
| 
						 | 
					a24169e9b8 | ||
| 
						 | 
					45a2163e66 | ||
| 
						 | 
					2fc3e62d60 | ||
| 
						 | 
					210b846d61 | ||
| 
						 | 
					b04cfb65f7 | ||
| 
						 | 
					6a2fc4083b | ||
| 
						 | 
					f7f53943c2 | ||
| 
						 | 
					31f4d9b16c | ||
| 
						 | 
					cd4cd5eec1 | ||
| 
						 | 
					8a7eeee727 | ||
| 
						 | 
					be5d65f421 | ||
| 
						 | 
					591af3f109 | ||
| 
						 | 
					a3e0df9de1 | ||
| 
						 | 
					596699d07e | ||
| 
						 | 
					b2275b44c2 | ||
| 
						 | 
					737842fb1e | ||
| 
						 | 
					646cb2bc30 | ||
| 
						 | 
					4599bfe052 | ||
| 
						 | 
					bb85b1d4ac | ||
| 
						 | 
					57ae4a48a7 | ||
| 
						 | 
					06e8460851 | ||
| 
						 | 
					9713c95bf4 | ||
| 
						 | 
					705748bba5 | ||
| 
						 | 
					022f079821 | ||
| 
						 | 
					80d75731a8 | ||
| 
						 | 
					227721a72f | ||
| 
						 | 
					5572a7a0ab | ||
| 
						 | 
					6a69185a2d | ||
| 
						 | 
					77441b6189 | ||
| 
						 | 
					4aa337c2f2 | ||
| 
						 | 
					4bd2f6866a | ||
| 
						 | 
					377de80103 | ||
| 
						 | 
					1c62d4614e | ||
| 
						 | 
					a91f7410a4 | ||
| 
						 | 
					528c0a8de5 | ||
| 
						 | 
					988bd3ef19 | ||
| 
						 | 
					99d9664ae4 | ||
| 
						 | 
					09649eb5b1 | ||
| 
						 | 
					5c49ba784a | ||
| 
						 | 
					469f959911 | ||
| 
						 | 
					7504c4b7e9 | ||
| 
						 | 
					9a6047393d | ||
| 
						 | 
					dec2ef817a | ||
| 
						 | 
					54a9bc8841 | ||
| 
						 | 
					8def7c0f0a | ||
| 
						 | 
					13cbc2756b | ||
| 
						 | 
					933928c4ee | ||
| 
						 | 
					2beaab0d88 | ||
| 
						 | 
					560ed60745 | ||
| 
						 | 
					46febb33a9 | ||
| 
						 | 
					ddd8e0ee68 | ||
| 
						 | 
					be255263c6 | ||
| 
						 | 
					c8d969d38a | ||
| 
						 | 
					96511325ab | ||
| 
						 | 
					bc545df207 | ||
| 
						 | 
					36bf265fc6 | ||
| 
						 | 
					892ad29c60 | ||
| 
						 | 
					a5d02b5459 | ||
| 
						 | 
					3ccf9924a1 | ||
| 
						 | 
					953bbd7978 | ||
| 
						 | 
					4228cb99db | ||
| 
						 | 
					f7791fe2ff | ||
| 
						 | 
					616c736428 | ||
| 
						 | 
					ede5f35f39 | ||
| 
						 | 
					b73bfdf7fd | ||
| 
						 | 
					9305a4ca85 | ||
| 
						 | 
					54b59e24ca | ||
| 
						 | 
					d57c613535 | ||
| 
						 | 
					f02525af8a | ||
| 
						 | 
					f19659bea0 | ||
| 
						 | 
					9cfb549dca | ||
| 
						 | 
					ba09cbd9cc | ||
| 
						 | 
					bc4d09b073 | ||
| 
						 | 
					fb2d91abe7 | ||
| 
						 | 
					5146385f4c | ||
| 
						 | 
					346a8e140c | ||
| 
						 | 
					42aa8f8868 | ||
| 
						 | 
					459772162f | ||
| 
						 | 
					1d65650d28 | ||
| 
						 | 
					a2099bc195 | ||
| 
						 | 
					896545ab1b | ||
| 
						 | 
					522f427677 | ||
| 
						 | 
					5d70455d93 | ||
| 
						 | 
					01a91d8b4f | ||
| 
						 | 
					f66a60ee47 | ||
| 
						 | 
					b4e74b2a17 | ||
| 
						 | 
					644e5900d9 | ||
| 
						 | 
					3f3f536ebe | ||
| 
						 | 
					baa39d05a5 | ||
| 
						 | 
					a85bca7326 | ||
| 
						 | 
					6defba8ab3 | ||
| 
						 | 
					59f6329e85 | ||
| 
						 | 
					856c724b5d | ||
| 
						 | 
					67a20a9b4a | ||
| 
						 | 
					27cd66f48a | ||
| 
						 | 
					d25a12c87e | ||
| 
						 | 
					e24315c50b | ||
| 
						 | 
					753ed67b50 | ||
| 
						 | 
					d6e498050f | ||
| 
						 | 
					4a69a7b39f | ||
| 
						 | 
					1dcde93b4a | ||
| 
						 | 
					663c6570f4 | ||
| 
						 | 
					6a17e25871 | ||
| 
						 | 
					e609552cec | ||
| 
						 | 
					bd4b781c9e | ||
| 
						 | 
					7eb6715a1f | ||
| 
						 | 
					aa0190978f | ||
| 
						 | 
					e0f5e588e0 | ||
| 
						 | 
					3949e2e049 | ||
| 
						 | 
					ab4560b879 | ||
| 
						 | 
					b8f854e7ad | ||
| 
						 | 
					ea1c5b4561 | ||
| 
						 | 
					957eea7a0f | ||
| 
						 | 
					476fcedfe0 | ||
| 
						 | 
					d590e91597 | ||
| 
						 | 
					8c796a0870 | ||
| 
						 | 
					b57efdb78a | ||
| 
						 | 
					2cc3ce1ea1 | ||
| 
						 | 
					468defcd97 | ||
| 
						 | 
					78398309c0 | ||
| 
						 | 
					08d1d7be62 | ||
| 
						 | 
					05a4fcd471 | ||
| 
						 | 
					36acf4aaae | ||
| 
						 | 
					4182815b4c | ||
| 
						 | 
					73a0910239 | ||
| 
						 | 
					bd6626e919 | ||
| 
						 | 
					3ad6cdf85a | ||
| 
						 | 
					732bb75e9b | ||
| 
						 | 
					d372b45a95 | ||
| 
						 | 
					df564ace13 | ||
| 
						 | 
					d2b28413eb | ||
| 
						 | 
					b93a30ffb0 | ||
| 
						 | 
					a4044b1cfd | ||
| 
						 | 
					83eb2da451 | ||
| 
						 | 
					9fda9f34c5 | ||
| 
						 | 
					3715ea5946 | ||
| 
						 | 
					de2d8d0e75 | ||
| 
						 | 
					9f6abbe572 | ||
| 
						 | 
					d90a071d88 | ||
| 
						 | 
					69dd06b107 | ||
| 
						 | 
					2be054a004 | ||
| 
						 | 
					a2fcd3992e | ||
| 
						 | 
					9a92df420e | ||
| 
						 | 
					c6864c74bc | ||
| 
						 | 
					941457b392 | ||
| 
						 | 
					e84ea56a8f | ||
| 
						 | 
					0d36d64454 | ||
| 
						 | 
					74b2407c53 | ||
| 
						 | 
					b97331282f | ||
| 
						 | 
					fed5ebd9c8 | ||
| 
						 | 
					be4a6f1a4f | ||
| 
						 | 
					b383d43d9c | ||
| 
						 | 
					54b676b529 | ||
| 
						 | 
					d465ca87f2 | ||
| 
						 | 
					e32c2b7dea | ||
| 
						 | 
					444cbc2aa1 | ||
| 
						 | 
					497622832e | ||
| 
						 | 
					f36ac8831e | ||
| 
						 | 
					66049f400c | ||
| 
						 | 
					8daa235a88 | ||
| 
						 | 
					072595c8fb | ||
| 
						 | 
					85f8e5cd73 | ||
| 
						 | 
					07fbcf57d4 | ||
| 
						 | 
					f09c5db961 | ||
| 
						 | 
					c1e93d7d79 | ||
| 
						 | 
					292e48f4b4 | ||
| 
						 | 
					1d8b8c87bd | ||
| 
						 | 
					acfcf98273 | ||
| 
						 | 
					5bb15dedae | ||
| 
						 | 
					07394b9a7d | ||
| 
						 | 
					1fce2de5c1 | ||
| 
						 | 
					88579d4be3 | ||
| 
						 | 
					e7ccf9a512 | ||
| 
						 | 
					52a9ad733d | ||
| 
						 | 
					23f65d0eb7 | ||
| 
						 | 
					aece852e10 | ||
| 
						 | 
					d7dea7cc5d | ||
| 
						 | 
					5cd24b503c | ||
| 
						 | 
					2e5db6a283 | ||
| 
						 | 
					32f6a76426 | ||
| 
						 | 
					5d526717ef | ||
| 
						 | 
					287265d554 | ||
| 
						 | 
					e72f248918 | ||
| 
						 | 
					c207d65b1b | ||
| 
						 | 
					fb1d5d5a33 | ||
| 
						 | 
					ed5dfa6eef | ||
| 
						 | 
					8314e59973 | ||
| 
						 | 
					b73c50399d | ||
| 
						 | 
					50feb0d846 | ||
| 
						 | 
					4773649706 | ||
| 
						 | 
					ebb5d8f2c4 | ||
| 
						 | 
					0555dbd93c | ||
| 
						 | 
					e63bc92368 | ||
| 
						 | 
					a74b7c4763 | ||
| 
						 | 
					73178f5ff4 | ||
| 
						 | 
					0358111f5f | ||
| 
						 | 
					7346e7b1ab | ||
| 
						 | 
					4add8e8273 | ||
| 
						 | 
					49f1f7b1e2 | ||
| 
						 | 
					e5a6a5f1c0 | ||
| 
						 | 
					19365b5083 | ||
| 
						 | 
					12d3457002 | ||
| 
						 | 
					18abecbf9b | ||
| 
						 | 
					2ead98c480 | ||
| 
						 | 
					265321b0c0 | ||
| 
						 | 
					bae22ebf82 | ||
| 
						 | 
					c80f136871 | ||
| 
						 | 
					faf4fbd0fd | ||
| 
						 | 
					41e8958ab9 | ||
| 
						 | 
					cdc546f879 | ||
| 
						 | 
					4ded6585a2 | ||
| 
						 | 
					2892b85a6f | ||
| 
						 | 
					e28ab86797 | ||
| 
						 | 
					2c3193ebb3 | ||
| 
						 | 
					96959ffdb0 | ||
| 
						 | 
					13fbf25ecd | ||
| 
						 | 
					21d2159f22 | ||
| 
						 | 
					a42ceeac98 | ||
| 
						 | 
					6e7ad44d36 | ||
| 
						 | 
					9ea852ffad | ||
| 
						 | 
					d4bd7a6fda | ||
| 
						 | 
					316f4043d4 | ||
| 
						 | 
					f799c90712 | ||
| 
						 | 
					7de8934105 | ||
| 
						 | 
					15dedc1e16 | ||
| 
						 | 
					13f46d2c58 | ||
| 
						 | 
					ff7e7a6e10 | ||
| 
						 | 
					c49519a7de | ||
| 
						 | 
					8ce4776a87 | ||
| 
						 | 
					9cda1a8680 | ||
| 
						 | 
					c9b5e27d74 | ||
| 
						 | 
					70ec048aa9 | ||
| 
						 | 
					89af0c466b | ||
| 
						 | 
					93a1710e20 | ||
| 
						 | 
					91a5c9c48f | ||
| 
						 | 
					e85353856b | ||
| 
						 | 
					bf99523a94 | ||
| 
						 | 
					c1b3321801 | ||
| 
						 | 
					beb9189c72 | ||
| 
						 | 
					186c82d156 | ||
| 
						 | 
					9d431458ca | ||
| 
						 | 
					9c86eea347 | ||
| 
						 | 
					e20af295f0 | ||
| 
						 | 
					68832d71fa | ||
| 
						 | 
					2e13483f19 | ||
| 
						 | 
					c7643ae88c | ||
| 
						 | 
					f16f7a130a | ||
| 
						 | 
					94a8fe7132 | ||
| 
						 | 
					059d297305 | ||
| 
						 | 
					2bd2a763a1 | ||
| 
						 | 
					452ba92a6f | ||
| 
						 | 
					d27a875987 | ||
| 
						 | 
					14418411f6 | ||
| 
						 | 
					f13c8ff3ce | ||
| 
						 | 
					28dc145811 | ||
| 
						 | 
					170543bb66 | ||
| 
						 | 
					c783024ef0 | ||
| 
						 | 
					19403a627b | ||
| 
						 | 
					cc08395a1d | ||
| 
						 | 
					d5093a3d9d | ||
| 
						 | 
					52c4f3e0c2 | ||
| 
						 | 
					76a4ec9e06 | ||
| 
						 | 
					bebf6f65aa | ||
| 
						 | 
					34582c4dc4 | ||
| 
						 | 
					4495878c4f | ||
| 
						 | 
					3c33e8b826 | ||
| 
						 | 
					be6cc7ddbb | ||
| 
						 | 
					615049ce5c | ||
| 
						 | 
					f9e5c46b21 | ||
| 
						 | 
					913102d66f | ||
| 
						 | 
					07628f3b76 | ||
| 
						 | 
					291d364158 | ||
| 
						 | 
					98c4a2ccae | ||
| 
						 | 
					c60098d8eb | ||
| 
						 | 
					7df1dbaf17 | ||
| 
						 | 
					304c90a1af | ||
| 
						 | 
					01fe1b1f62 | ||
| 
						 | 
					fd85e71fcf | ||
| 
						 | 
					66c03ce1b4 | ||
| 
						 | 
					067f9eb209 | ||
| 
						 | 
					cd3dbc864f | ||
| 
						 | 
					f42f06343d | ||
| 
						 | 
					e46648ecdc | ||
| 
						 | 
					206751f517 | ||
| 
						 | 
					6a06afcbb9 | ||
| 
						 | 
					bd3e93215b | ||
| 
						 | 
					94b9aa4025 | ||
| 
						 | 
					36523dfd33 | ||
| 
						 | 
					618fa65bc2 | ||
| 
						 | 
					1dd417fdaa | ||
| 
						 | 
					4480a70ceb | ||
| 
						 | 
					5d423888d9 | ||
| 
						 | 
					81876d6992 | ||
| 
						 | 
					b777d74dce | ||
| 
						 | 
					c904da6b94 | ||
| 
						 | 
					4591b58e66 | ||
| 
						 | 
					8f7cd0bff9 | ||
| 
						 | 
					60318fd77b | ||
| 
						 | 
					50c41cec72 | ||
| 
						 | 
					ef2e9803d0 | ||
| 
						 | 
					e428a05b45 | ||
| 
						 | 
					37e5f7272e | ||
| 
						 | 
					5560c4eb12 | ||
| 
						 | 
					be6e2e3cb1 | ||
| 
						 | 
					7086a15321 | ||
| 
						 | 
					23f29b14fe | ||
| 
						 | 
					9aafb65a98 | ||
| 
						 | 
					296f4577d0 | ||
| 
						 | 
					1ea1429874 | ||
| 
						 | 
					3f70f92fbb | ||
| 
						 | 
					23c6994835 | ||
| 
						 | 
					70cd362d3e | ||
| 
						 | 
					aed25098e5 | ||
| 
						 | 
					a79392149e | ||
| 
						 | 
					f32647a3d3 | ||
| 
						 | 
					bb3c77f1b6 | ||
| 
						 | 
					66a582dd09 | ||
| 
						 | 
					06eb76c5d9 | ||
| 
						 | 
					a37f921aff | ||
| 
						 | 
					5c7e221efa | ||
| 
						 | 
					7e00889967 | ||
| 
						 | 
					f1d855e331 | ||
| 
						 | 
					a33bbd603d | ||
| 
						 | 
					472ad02d44 | ||
| 
						 | 
					aed2fbc4b1 | ||
| 
						 | 
					dabb49d7eb | ||
| 
						 | 
					61b7b96780 | 
							
								
								
									
										10
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -60,13 +60,21 @@ body:
 | 
			
		||||
        - Alpine
 | 
			
		||||
        - Debian 11
 | 
			
		||||
        - Debian 12
 | 
			
		||||
        - Ubuntu 20.04
 | 
			
		||||
        - Debian 13
 | 
			
		||||
        - Ubuntu 22.04
 | 
			
		||||
        - Ubuntu 24.04
 | 
			
		||||
        - Ubuntu 24.10
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
 | 
			
		||||
  - type: input
 | 
			
		||||
    id: pve_version
 | 
			
		||||
    attributes:
 | 
			
		||||
      label: 📈 Which Proxmox version are you on?
 | 
			
		||||
      placeholder: "run pveversion in your PVE node console"
 | 
			
		||||
    validations:
 | 
			
		||||
      required: true
 | 
			
		||||
 | 
			
		||||
  - type: textarea
 | 
			
		||||
    id: issue_description
 | 
			
		||||
    attributes:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										813
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										813
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -10,8 +10,821 @@
 | 
			
		||||
> [!CAUTION]
 | 
			
		||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
 | 
			
		||||
 | 
			
		||||
## 2025-09-28
 | 
			
		||||
 | 
			
		||||
## 2025-09-27
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - GoAway: Make admin password aquisition more reliable [@tremor021](https://github.com/tremor021) ([#7946](https://github.com/community-scripts/ProxmoxVE/pull/7946))
 | 
			
		||||
    - MeTube: Various fixes [@vhsdream](https://github.com/vhsdream) ([#7936](https://github.com/community-scripts/ProxmoxVE/pull/7936))
 | 
			
		||||
    - Oddo: Fix typo in update procedure [@tremor021](https://github.com/tremor021) ([#7941](https://github.com/community-scripts/ProxmoxVE/pull/7941))
 | 
			
		||||
 | 
			
		||||
## 2025-09-26
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Odoo: Fix missing dependencies [@tremor021](https://github.com/tremor021) ([#7931](https://github.com/community-scripts/ProxmoxVE/pull/7931))
 | 
			
		||||
    - OpenWebUI: Update NODE_OPTIONS to increase memory limit [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7919](https://github.com/community-scripts/ProxmoxVE/pull/7919))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Clarify descriptions of update scripts [@tremor021](https://github.com/tremor021) ([#7929](https://github.com/community-scripts/ProxmoxVE/pull/7929))
 | 
			
		||||
 | 
			
		||||
## 2025-09-25
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - GoAway ([#7900](https://github.com/community-scripts/ProxmoxVE/pull/7900))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - ntfy: bump to debian 13 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7895](https://github.com/community-scripts/ProxmoxVE/pull/7895))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - feat: add menu icons to website [@BramSuurdje](https://github.com/BramSuurdje) ([#7894](https://github.com/community-scripts/ProxmoxVE/pull/7894))
 | 
			
		||||
 | 
			
		||||
## 2025-09-24
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Add Script: Joplin Server ([#7879](https://github.com/community-scripts/ProxmoxVE/pull/7879))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Monica: Fix dependencies [@tremor021](https://github.com/tremor021) ([#7877](https://github.com/community-scripts/ProxmoxVE/pull/7877))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Update name in lxc-delete.json to 'PVE LXC Deletion' [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7872](https://github.com/community-scripts/ProxmoxVE/pull/7872))
 | 
			
		||||
 | 
			
		||||
## 2025-09-23
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - UpSnap ([#7825](https://github.com/community-scripts/ProxmoxVE/pull/7825))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - tools.func: Check for /usr/local/bin in PATH during yq setup [@vhsdream](https://github.com/vhsdream) ([#7856](https://github.com/community-scripts/ProxmoxVE/pull/7856))
 | 
			
		||||
    - BookLore: increase RAM [@vhsdream](https://github.com/vhsdream) ([#7855](https://github.com/community-scripts/ProxmoxVE/pull/7855))
 | 
			
		||||
    - Bump Immich to v1.143.1 [@vhsdream](https://github.com/vhsdream) ([#7864](https://github.com/community-scripts/ProxmoxVE/pull/7864))
 | 
			
		||||
    - zabbix: Remove not exist admin credentials from output [@MickLesk](https://github.com/MickLesk) ([#7849](https://github.com/community-scripts/ProxmoxVE/pull/7849))
 | 
			
		||||
    - Suppress wrong errors from uv shell integration in setup_uv [@MickLesk](https://github.com/MickLesk) ([#7822](https://github.com/community-scripts/ProxmoxVE/pull/7822))
 | 
			
		||||
    - Refactor Caddyfile configuration for headscale-admin [@MickLesk](https://github.com/MickLesk) ([#7821](https://github.com/community-scripts/ProxmoxVE/pull/7821))
 | 
			
		||||
    - Improve subscription element removal (mobile) in post-pve script [@MickLesk](https://github.com/MickLesk) ([#7814](https://github.com/community-scripts/ProxmoxVE/pull/7814))
 | 
			
		||||
    - Blocky: Fix release fetching [@tremor021](https://github.com/tremor021) ([#7807](https://github.com/community-scripts/ProxmoxVE/pull/7807))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Improve globaleaks install ensuring install can proceed without user … [@evilaliv3](https://github.com/evilaliv3) ([#7860](https://github.com/community-scripts/ProxmoxVE/pull/7860))
 | 
			
		||||
    - Manage My Damn Life: use NodeJS 22 [@vhsdream](https://github.com/vhsdream) ([#7861](https://github.com/community-scripts/ProxmoxVE/pull/7861))
 | 
			
		||||
    - VM: Increase pv & xz functions (HA OS / Umbrel OS) [@MickLesk](https://github.com/MickLesk) ([#7838](https://github.com/community-scripts/ProxmoxVE/pull/7838))
 | 
			
		||||
    - Tandoor: update for newer dependencies (psql) + bump nodejs to 22 [@MickLesk](https://github.com/MickLesk) ([#7826](https://github.com/community-scripts/ProxmoxVE/pull/7826))
 | 
			
		||||
    - Update Monica and Outline to use Node.js 22 [@MickLesk](https://github.com/MickLesk) ([#7833](https://github.com/community-scripts/ProxmoxVE/pull/7833))
 | 
			
		||||
    - Update Zabbix install for Debian 13 and agent selection [@MickLesk](https://github.com/MickLesk) ([#7819](https://github.com/community-scripts/ProxmoxVE/pull/7819))
 | 
			
		||||
    - tracktor: bump to debian 13 | feature bump [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7818](https://github.com/community-scripts/ProxmoxVE/pull/7818))
 | 
			
		||||
    - LiteLLM: Bump to Debian 13 & add deps [@MickLesk](https://github.com/MickLesk) ([#7815](https://github.com/community-scripts/ProxmoxVE/pull/7815))
 | 
			
		||||
    - Immich: bump to v1.143.0 [@vhsdream](https://github.com/vhsdream) ([#7801](https://github.com/community-scripts/ProxmoxVE/pull/7801))
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
  - #### 📂 Github
 | 
			
		||||
 | 
			
		||||
    - gh: remove ai autolabel test [@MickLesk](https://github.com/MickLesk) ([#7817](https://github.com/community-scripts/ProxmoxVE/pull/7817))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - OpenWebUI: Add information about Ollama [@tremor021](https://github.com/tremor021) ([#7843](https://github.com/community-scripts/ProxmoxVE/pull/7843))
 | 
			
		||||
    - cosmos: add info note for configuration file [@MickLesk](https://github.com/MickLesk) ([#7824](https://github.com/community-scripts/ProxmoxVE/pull/7824))
 | 
			
		||||
    - ElementSynapse: add note for Bridge Install Methods [@MickLesk](https://github.com/MickLesk) ([#7820](https://github.com/community-scripts/ProxmoxVE/pull/7820))
 | 
			
		||||
 | 
			
		||||
## 2025-09-22
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - [core]: Update detection of current running subshell [@tremor021](https://github.com/tremor021) ([#7796](https://github.com/community-scripts/ProxmoxVE/pull/7796))
 | 
			
		||||
    - Paymenter: Installation and update fixes [@tremor021](https://github.com/tremor021) ([#7792](https://github.com/community-scripts/ProxmoxVE/pull/7792))
 | 
			
		||||
 | 
			
		||||
## 2025-09-21
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - fix openwebui update and installer [@HeedfulCrayon](https://github.com/HeedfulCrayon) ([#7788](https://github.com/community-scripts/ProxmoxVE/pull/7788))
 | 
			
		||||
    - tracktor: add: cleanup before upgrade [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7782](https://github.com/community-scripts/ProxmoxVE/pull/7782))
 | 
			
		||||
    - Fix regex to extract MySQL version correctly [@MickLesk](https://github.com/MickLesk) ([#7774](https://github.com/community-scripts/ProxmoxVE/pull/7774))
 | 
			
		||||
    - Update Ollama Installer in OpenWebUI to resume downloads if interrupted [@HeedfulCrayon](https://github.com/HeedfulCrayon) ([#7779](https://github.com/community-scripts/ProxmoxVE/pull/7779))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Implement clean install option in tools.func (fetch_and_deploy_gh_release) [@MickLesk](https://github.com/MickLesk) ([#7785](https://github.com/community-scripts/ProxmoxVE/pull/7785))
 | 
			
		||||
    - caddy: modify disk size and implement xCaddy update [@MickLesk](https://github.com/MickLesk) ([#7775](https://github.com/community-scripts/ProxmoxVE/pull/7775))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Harmonize  and shorten JSON Names for PVE/PBS/PMG [@MickLesk](https://github.com/MickLesk) ([#7773](https://github.com/community-scripts/ProxmoxVE/pull/7773))
 | 
			
		||||
 | 
			
		||||
## 2025-09-20
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - checkmk.sh Update: Revert old Pr  [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7765](https://github.com/community-scripts/ProxmoxVE/pull/7765))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Wazuh: Increase HDD size [@tremor021](https://github.com/tremor021) ([#7759](https://github.com/community-scripts/ProxmoxVE/pull/7759))
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
  - #### 📂 Github
 | 
			
		||||
 | 
			
		||||
    - Add Debian 13 in bug report template [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7757](https://github.com/community-scripts/ProxmoxVE/pull/7757))
 | 
			
		||||
 | 
			
		||||
## 2025-09-19
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Tunarr ([#7735](https://github.com/community-scripts/ProxmoxVE/pull/7735))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - SigNoz: Fix wrong URL for Zookeeper [@tremor021](https://github.com/tremor021) ([#7742](https://github.com/community-scripts/ProxmoxVE/pull/7742))
 | 
			
		||||
 | 
			
		||||
## 2025-09-18
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Alpine-Caddy [@tremor021](https://github.com/tremor021) ([#7711](https://github.com/community-scripts/ProxmoxVE/pull/7711))
 | 
			
		||||
- pve-tool: execute.sh by @jeroenzwart [@MickLesk](https://github.com/MickLesk) ([#7708](https://github.com/community-scripts/ProxmoxVE/pull/7708))
 | 
			
		||||
- GlobaLeaks ([#7707](https://github.com/community-scripts/ProxmoxVE/pull/7707))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Delay chmod after updating beszel [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7725](https://github.com/community-scripts/ProxmoxVE/pull/7725))
 | 
			
		||||
    - Remove redundant globaleaks configuration [@evilaliv3](https://github.com/evilaliv3) ([#7723](https://github.com/community-scripts/ProxmoxVE/pull/7723))
 | 
			
		||||
    - Gatus: check for GO path before update [@vhsdream](https://github.com/vhsdream) ([#7705](https://github.com/community-scripts/ProxmoxVE/pull/7705))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Cloudflared: Bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#7719](https://github.com/community-scripts/ProxmoxVE/pull/7719))
 | 
			
		||||
    - AdGuard Home: Bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#7720](https://github.com/community-scripts/ProxmoxVE/pull/7720))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Immich: Debian Trixie [@vhsdream](https://github.com/vhsdream) ([#7728](https://github.com/community-scripts/ProxmoxVE/pull/7728))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Add Warning for Containerized Home Assistant [@ZaxLofful](https://github.com/ZaxLofful) ([#7704](https://github.com/community-scripts/ProxmoxVE/pull/7704))
 | 
			
		||||
 | 
			
		||||
## 2025-09-17
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - beszel: fix: binary permission after upgrade [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7697](https://github.com/community-scripts/ProxmoxVE/pull/7697))
 | 
			
		||||
    - RabbitMQ: Update repositories [@tremor021](https://github.com/tremor021) ([#7689](https://github.com/community-scripts/ProxmoxVE/pull/7689))
 | 
			
		||||
    - Komodo: Add docker compose pull for actually updating docker container [@hanneshier](https://github.com/hanneshier) ([#7682](https://github.com/community-scripts/ProxmoxVE/pull/7682))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Debian-LXC: Bump to Debian 13 Trixie [@MickLesk](https://github.com/MickLesk) ([#7683](https://github.com/community-scripts/ProxmoxVE/pull/7683))
 | 
			
		||||
    - Bump Immich to v1.142.1 [@vhsdream](https://github.com/vhsdream) ([#7675](https://github.com/community-scripts/ProxmoxVE/pull/7675))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: Grist [@tremor021](https://github.com/tremor021) ([#7681](https://github.com/community-scripts/ProxmoxVE/pull/7681))
 | 
			
		||||
 | 
			
		||||
### 🧰 Maintenance
 | 
			
		||||
 | 
			
		||||
  - #### 📂 Github
 | 
			
		||||
 | 
			
		||||
    - Improve: SECURITY.md for clarity and detail + Adding PVE9 as supported [@MickLesk](https://github.com/MickLesk) ([#7690](https://github.com/community-scripts/ProxmoxVE/pull/7690))
 | 
			
		||||
 | 
			
		||||
## 2025-09-16
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Improve OpenWrt VM boot and readiness check [@MickLesk](https://github.com/MickLesk) ([#7669](https://github.com/community-scripts/ProxmoxVE/pull/7669))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - hortusfox: fix update check [@MickLesk](https://github.com/MickLesk) ([#7667](https://github.com/community-scripts/ProxmoxVE/pull/7667))
 | 
			
		||||
 | 
			
		||||
## 2025-09-15
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - SigNoz ([#7648](https://github.com/community-scripts/ProxmoxVE/pull/7648))
 | 
			
		||||
- Scraparr ([#7644](https://github.com/community-scripts/ProxmoxVE/pull/7644))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - vm: move pv installation into ensure_pv function [@MickLesk](https://github.com/MickLesk) ([#7642](https://github.com/community-scripts/ProxmoxVE/pull/7642))
 | 
			
		||||
    - Cloudflare-DDNS: Fix the IP6_PROVIDER variable [@hugodantas](https://github.com/hugodantas) ([#7660](https://github.com/community-scripts/ProxmoxVE/pull/7660))
 | 
			
		||||
    - Wikijs: Bump Node.js version to 22 [@MickLesk](https://github.com/MickLesk) ([#7643](https://github.com/community-scripts/ProxmoxVE/pull/7643))
 | 
			
		||||
 | 
			
		||||
## 2025-09-14
 | 
			
		||||
 | 
			
		||||
## 2025-09-13
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Palmr: hotfix #7622 [@vhsdream](https://github.com/vhsdream) ([#7625](https://github.com/community-scripts/ProxmoxVE/pull/7625))
 | 
			
		||||
    - ollama: fix: ccurl continue on interrupts [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7620](https://github.com/community-scripts/ProxmoxVE/pull/7620))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - pdm: refactor for beta version [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7619](https://github.com/community-scripts/ProxmoxVE/pull/7619))
 | 
			
		||||
    - Immich: bump to v1.142.0 [@vhsdream](https://github.com/vhsdream) ([#7594](https://github.com/community-scripts/ProxmoxVE/pull/7594))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - fix: tagline grammar [@jonathanwuki](https://github.com/jonathanwuki) ([#7621](https://github.com/community-scripts/ProxmoxVE/pull/7621))
 | 
			
		||||
- fix: grammar/capitalization for links and taglines [@jonathanwuki](https://github.com/jonathanwuki) ([#7609](https://github.com/community-scripts/ProxmoxVE/pull/7609))
 | 
			
		||||
 | 
			
		||||
## 2025-09-12
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Stylus ([#7588](https://github.com/community-scripts/ProxmoxVE/pull/7588))
 | 
			
		||||
- UHF ([#7589](https://github.com/community-scripts/ProxmoxVE/pull/7589))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Tweak: post-pve-install: create folder if Not exist  [@JVKeller](https://github.com/JVKeller) ([#7598](https://github.com/community-scripts/ProxmoxVE/pull/7598))
 | 
			
		||||
    - Update openwebui.sh [@webmogul1](https://github.com/webmogul1) ([#7582](https://github.com/community-scripts/ProxmoxVE/pull/7582))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - [core]: add fallback if mariadb upstream unreachable [@MickLesk](https://github.com/MickLesk) ([#7599](https://github.com/community-scripts/ProxmoxVE/pull/7599))
 | 
			
		||||
    - ESPHome: Increase default disk size [@tremor021](https://github.com/tremor021) ([#7600](https://github.com/community-scripts/ProxmoxVE/pull/7600))
 | 
			
		||||
 | 
			
		||||
## 2025-09-11
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - telegraf ([#7576](https://github.com/community-scripts/ProxmoxVE/pull/7576))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - [core] Sort tools.func functions alphabeticaly [@tremor021](https://github.com/tremor021) ([#7569](https://github.com/community-scripts/ProxmoxVE/pull/7569))
 | 
			
		||||
- mobile subscription nag fix [@dvino](https://github.com/dvino) ([#7567](https://github.com/community-scripts/ProxmoxVE/pull/7567))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - alpine-install: switch to using GitHub to fetch tools when using GitHub [@burritosoftware](https://github.com/burritosoftware) ([#7566](https://github.com/community-scripts/ProxmoxVE/pull/7566))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Add margin-bottom to Most Viewed Scripts header to unifi UI [@BramSuurdje](https://github.com/BramSuurdje) ([#7572](https://github.com/community-scripts/ProxmoxVE/pull/7572))
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Fix frontend url [@r1cebank](https://github.com/r1cebank) ([#7578](https://github.com/community-scripts/ProxmoxVE/pull/7578))
 | 
			
		||||
 | 
			
		||||
## 2025-09-10
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Autocaliweb ([#7515](https://github.com/community-scripts/ProxmoxVE/pull/7515))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Palmr: fix #7556 [@vhsdream](https://github.com/vhsdream) ([#7558](https://github.com/community-scripts/ProxmoxVE/pull/7558))
 | 
			
		||||
    - Wizarr: Fix DB migrations [@vhsdream](https://github.com/vhsdream) ([#7552](https://github.com/community-scripts/ProxmoxVE/pull/7552))
 | 
			
		||||
    - fix: pmg - split no-nag script into separate config files [@MickLesk](https://github.com/MickLesk) ([#7540](https://github.com/community-scripts/ProxmoxVE/pull/7540))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Update Palmr to Support new v3.2.1 [@vhsdream](https://github.com/vhsdream) ([#7526](https://github.com/community-scripts/ProxmoxVE/pull/7526))
 | 
			
		||||
    - add external installer warnings and user confirmation in several LXC's [@MickLesk](https://github.com/MickLesk) ([#7539](https://github.com/community-scripts/ProxmoxVE/pull/7539))
 | 
			
		||||
    - Booklore: Add Bookdrop location to .env [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7533](https://github.com/community-scripts/ProxmoxVE/pull/7533))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: audiobookshelf [@MickLesk](https://github.com/MickLesk) ([#7538](https://github.com/community-scripts/ProxmoxVE/pull/7538))
 | 
			
		||||
    - Refactor: Blocky [@MickLesk](https://github.com/MickLesk) ([#7537](https://github.com/community-scripts/ProxmoxVE/pull/7537))
 | 
			
		||||
    - Improve npmplus credential retrieval and messaging [@MickLesk](https://github.com/MickLesk) ([#7532](https://github.com/community-scripts/ProxmoxVE/pull/7532))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 💥 Breaking Changes
 | 
			
		||||
 | 
			
		||||
    - Remove Pingvin Share [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7553](https://github.com/community-scripts/ProxmoxVE/pull/7553))
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - set updateable to true for several lxc JSON-configs [@MickLesk](https://github.com/MickLesk) ([#7534](https://github.com/community-scripts/ProxmoxVE/pull/7534))
 | 
			
		||||
 | 
			
		||||
## 2025-09-09
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Tududi: v0.81 [@vhsdream](https://github.com/vhsdream) ([#7517](https://github.com/community-scripts/ProxmoxVE/pull/7517))
 | 
			
		||||
    - WGDashboard: Revert back to old update method [@tremor021](https://github.com/tremor021) ([#7500](https://github.com/community-scripts/ProxmoxVE/pull/7500))
 | 
			
		||||
    - AdventureLog: remove folder during update process [@MickLesk](https://github.com/MickLesk) ([#7507](https://github.com/community-scripts/ProxmoxVE/pull/7507))
 | 
			
		||||
    - PLANKA: Fix backup and restore commands [@tremor021](https://github.com/tremor021) ([#7505](https://github.com/community-scripts/ProxmoxVE/pull/7505))
 | 
			
		||||
    - Recyclarr: Suppress config creation output [@tremor021](https://github.com/tremor021) ([#7502](https://github.com/community-scripts/ProxmoxVE/pull/7502))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Pulse: standardise install/update with Pulse repo script [@vhsdream](https://github.com/vhsdream) ([#7519](https://github.com/community-scripts/ProxmoxVE/pull/7519))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Refactor GitHubStarsButton to wrap in Link component for external navigation [@BramSuurdje](https://github.com/BramSuurdje) ([#7492](https://github.com/community-scripts/ProxmoxVE/pull/7492))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Bump vite from 7.0.0 to 7.1.5 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#7522](https://github.com/community-scripts/ProxmoxVE/pull/7522))
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - swizzin: Change category from nvr to media [@MickLesk](https://github.com/MickLesk) ([#7511](https://github.com/community-scripts/ProxmoxVE/pull/7511))
 | 
			
		||||
 | 
			
		||||
## 2025-09-08
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - CT's: fix missing variable declaration (actualBudget, openziti, umlautadaptarr) [@MickLesk](https://github.com/MickLesk) ([#7483](https://github.com/community-scripts/ProxmoxVE/pull/7483))
 | 
			
		||||
    - karakeep: fix service file [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7482](https://github.com/community-scripts/ProxmoxVE/pull/7482))
 | 
			
		||||
    - Update searxng-install.sh [@sebguy](https://github.com/sebguy) ([#7469](https://github.com/community-scripts/ProxmoxVE/pull/7469))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Immich: bump to version 1.141.1 [@vhsdream](https://github.com/vhsdream) ([#7418](https://github.com/community-scripts/ProxmoxVE/pull/7418))
 | 
			
		||||
    - [core]: switch all base_settings to variables [@MickLesk](https://github.com/MickLesk) ([#7479](https://github.com/community-scripts/ProxmoxVE/pull/7479))
 | 
			
		||||
 | 
			
		||||
  - #### 💥 Breaking Changes
 | 
			
		||||
 | 
			
		||||
    - RustDesk Server: Update the credentials info [@tremor021](https://github.com/tremor021) ([#7473](https://github.com/community-scripts/ProxmoxVE/pull/7473))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Format numerical values in DataFetcher component for better readability [@BramSuurdje](https://github.com/BramSuurdje) ([#7477](https://github.com/community-scripts/ProxmoxVE/pull/7477))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - feat: enhance github stars button to be better looking and more compact [@BramSuurdje](https://github.com/BramSuurdje) ([#7464](https://github.com/community-scripts/ProxmoxVE/pull/7464))
 | 
			
		||||
 | 
			
		||||
## 2025-09-07
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Update ExecStart path for karakeep service [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7460](https://github.com/community-scripts/ProxmoxVE/pull/7460))
 | 
			
		||||
 | 
			
		||||
## 2025-09-06
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Resilio Sync ([#7442](https://github.com/community-scripts/ProxmoxVE/pull/7442))
 | 
			
		||||
- leantime ([#7414](https://github.com/community-scripts/ProxmoxVE/pull/7414))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - use debian source for direct installation of MQTT [@EtlamGit](https://github.com/EtlamGit) ([#7423](https://github.com/community-scripts/ProxmoxVE/pull/7423))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - feat: added mobile ui subscription nag removal [@ivan-penchev](https://github.com/ivan-penchev) ([#7164](https://github.com/community-scripts/ProxmoxVE/pull/7164))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - MediaManager Configuration Path [@austinpilz](https://github.com/austinpilz) ([#7408](https://github.com/community-scripts/ProxmoxVE/pull/7408))
 | 
			
		||||
    - Paperless-NGX: Remove default credentials from json [@tremor021](https://github.com/tremor021) ([#7403](https://github.com/community-scripts/ProxmoxVE/pull/7403))
 | 
			
		||||
 | 
			
		||||
## 2025-09-05
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Tududi: Pin version to 0.80 [@vhsdream](https://github.com/vhsdream) ([#7420](https://github.com/community-scripts/ProxmoxVE/pull/7420))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - AdventureLog: Update dependencies [@tremor021](https://github.com/tremor021) ([#7404](https://github.com/community-scripts/ProxmoxVE/pull/7404))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state [@BramSuurdje](https://github.com/BramSuurdje) ([#7405](https://github.com/community-scripts/ProxmoxVE/pull/7405))
 | 
			
		||||
 | 
			
		||||
## 2025-09-04
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - fix: Syntax error in Immich scripts [@henworth](https://github.com/henworth) ([#7398](https://github.com/community-scripts/ProxmoxVE/pull/7398))
 | 
			
		||||
    - Netdata: Fix pve_check for 8 [@MickLesk](https://github.com/MickLesk) ([#7392](https://github.com/community-scripts/ProxmoxVE/pull/7392))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Immich: pin compiled photo library revisions [@vhsdream](https://github.com/vhsdream) ([#7395](https://github.com/community-scripts/ProxmoxVE/pull/7395))
 | 
			
		||||
 | 
			
		||||
## 2025-09-03
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Element-Synapse: Increase HDD size [@tremor021](https://github.com/tremor021) ([#7384](https://github.com/community-scripts/ProxmoxVE/pull/7384))
 | 
			
		||||
    - Wizarr: fix uv lock issue; use correct output suppression [@vhsdream](https://github.com/vhsdream) ([#7378](https://github.com/community-scripts/ProxmoxVE/pull/7378))
 | 
			
		||||
    - Netbox: Fix missing directory [@tremor021](https://github.com/tremor021) ([#7374](https://github.com/community-scripts/ProxmoxVE/pull/7374))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Enhanced IP-Tag installation script with interactive configuration, improved VM IP detection, and better visual indicators [@DesertGamer](https://github.com/DesertGamer) ([#7366](https://github.com/community-scripts/ProxmoxVE/pull/7366))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Fix navigation [@BramSuurdje](https://github.com/BramSuurdje) ([#7376](https://github.com/community-scripts/ProxmoxVE/pull/7376))
 | 
			
		||||
 | 
			
		||||
## 2025-09-02
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Increase default disk size for Apt-Cacher-NG [@MickLesk](https://github.com/MickLesk) ([#7352](https://github.com/community-scripts/ProxmoxVE/pull/7352))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Snipe-IT: Fix Nginx configuration [@tremor021](https://github.com/tremor021) ([#7358](https://github.com/community-scripts/ProxmoxVE/pull/7358))
 | 
			
		||||
    - booklore: remove folder before update [@MickLesk](https://github.com/MickLesk) ([#7351](https://github.com/community-scripts/ProxmoxVE/pull/7351))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Immich: bump version to 1.140.1 [@vhsdream](https://github.com/vhsdream) ([#7349](https://github.com/community-scripts/ProxmoxVE/pull/7349))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - pbs: increase note on website for ipv6 [@MickLesk](https://github.com/MickLesk) ([#7339](https://github.com/community-scripts/ProxmoxVE/pull/7339))
 | 
			
		||||
 | 
			
		||||
## 2025-09-01
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Update configarr.sh to mv backep up .env correctly [@finkerle](https://github.com/finkerle) ([#7323](https://github.com/community-scripts/ProxmoxVE/pull/7323))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Refactor + Feature Bump: HomeAssistant OS [@MickLesk](https://github.com/MickLesk) ([#7336](https://github.com/community-scripts/ProxmoxVE/pull/7336))
 | 
			
		||||
    - UmbrelOS: Refactor / use q35 / better import [@MickLesk](https://github.com/MickLesk) ([#7329](https://github.com/community-scripts/ProxmoxVE/pull/7329))
 | 
			
		||||
    - Harmonize GH Release Check (excl. Pre-Releases & Migrate old "_version.txt" [@MickLesk](https://github.com/MickLesk) ([#7328](https://github.com/community-scripts/ProxmoxVE/pull/7328))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - Bump next from 15.2.4 to 15.5.2 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#7309](https://github.com/community-scripts/ProxmoxVE/pull/7309))
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - booklore: add note for start-up in frontend [@MickLesk](https://github.com/MickLesk) ([#7331](https://github.com/community-scripts/ProxmoxVE/pull/7331))
 | 
			
		||||
 | 
			
		||||
## 2025-08-31
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - n8n: Increase disk size [@tremor021](https://github.com/tremor021) ([#7320](https://github.com/community-scripts/ProxmoxVE/pull/7320))
 | 
			
		||||
 | 
			
		||||
## 2025-08-30
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Immich: bump version to 1.140.0 [@vhsdream](https://github.com/vhsdream) ([#7275](https://github.com/community-scripts/ProxmoxVE/pull/7275))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor gitea-mirror env-file [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7240](https://github.com/community-scripts/ProxmoxVE/pull/7240))
 | 
			
		||||
 | 
			
		||||
## 2025-08-29
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - fix version check for pocket-id migration [@MickLesk](https://github.com/MickLesk) ([#7298](https://github.com/community-scripts/ProxmoxVE/pull/7298))
 | 
			
		||||
    - fix: remove file creation at release fetching and version checking logic [@MickLesk](https://github.com/MickLesk) ([#7299](https://github.com/community-scripts/ProxmoxVE/pull/7299))
 | 
			
		||||
    - Zitadel: Fix initial setup [@tremor021](https://github.com/tremor021) ([#7284](https://github.com/community-scripts/ProxmoxVE/pull/7284))
 | 
			
		||||
    - post-pbs: increase enterprise recognition [@MickLesk](https://github.com/MickLesk) ([#7280](https://github.com/community-scripts/ProxmoxVE/pull/7280))
 | 
			
		||||
    - Fix typo where install mode was changed instead of pinned version [@Brandsma](https://github.com/Brandsma) ([#7277](https://github.com/community-scripts/ProxmoxVE/pull/7277))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - [core]: feature - check_for_gh_release - version pinning [@MickLesk](https://github.com/MickLesk) ([#7279](https://github.com/community-scripts/ProxmoxVE/pull/7279))
 | 
			
		||||
    - [feat]: migrate all update_scripts to new version helper (gh) [@MickLesk](https://github.com/MickLesk) ([#7262](https://github.com/community-scripts/ProxmoxVE/pull/7262))
 | 
			
		||||
 | 
			
		||||
## 2025-08-28
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - MediaManager ([#7238](https://github.com/community-scripts/ProxmoxVE/pull/7238))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - MMDL: add build-essential as dep [@vhsdream](https://github.com/vhsdream) ([#7266](https://github.com/community-scripts/ProxmoxVE/pull/7266))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - add support for multiple ip addresses in monitor-all.sh [@moshekv](https://github.com/moshekv) ([#7244](https://github.com/community-scripts/ProxmoxVE/pull/7244))
 | 
			
		||||
    - [core]: feature - check_for_gh_release as update-handler [@MickLesk](https://github.com/MickLesk) ([#7254](https://github.com/community-scripts/ProxmoxVE/pull/7254))
 | 
			
		||||
 | 
			
		||||
  - #### 💥 Breaking Changes
 | 
			
		||||
 | 
			
		||||
    - Flaresolverr: Pin to 3.3.25 (Python Issue) [@MickLesk](https://github.com/MickLesk) ([#7248](https://github.com/community-scripts/ProxmoxVE/pull/7248))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - Keycloak: Update website [@tremor021](https://github.com/tremor021) ([#7256](https://github.com/community-scripts/ProxmoxVE/pull/7256))
 | 
			
		||||
 | 
			
		||||
## 2025-08-27
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - searxng: improve installation [@MickLesk](https://github.com/MickLesk) ([#7233](https://github.com/community-scripts/ProxmoxVE/pull/7233))
 | 
			
		||||
    - Homebox: Fix Update Script [@MickLesk](https://github.com/MickLesk) ([#7232](https://github.com/community-scripts/ProxmoxVE/pull/7232))
 | 
			
		||||
 | 
			
		||||
## 2025-08-26
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - tracktor ([#7190](https://github.com/community-scripts/ProxmoxVE/pull/7190))
 | 
			
		||||
- PBS: Upgrade Script for v4 [@MickLesk](https://github.com/MickLesk) ([#7214](https://github.com/community-scripts/ProxmoxVE/pull/7214))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Refactor: Post-PBS-Script [@MickLesk](https://github.com/MickLesk) ([#7213](https://github.com/community-scripts/ProxmoxVE/pull/7213))
 | 
			
		||||
    - Refactor: Post-PMG-Script [@MickLesk](https://github.com/MickLesk) ([#7212](https://github.com/community-scripts/ProxmoxVE/pull/7212))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - [website] Update documentation URLs [@tremor021](https://github.com/tremor021) ([#7201](https://github.com/community-scripts/ProxmoxVE/pull/7201))
 | 
			
		||||
 | 
			
		||||
## 2025-08-25
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Alpine-RustDesk Server [@tremor021](https://github.com/tremor021) ([#7191](https://github.com/community-scripts/ProxmoxVE/pull/7191))
 | 
			
		||||
- Alpine-Redlib ([#7178](https://github.com/community-scripts/ProxmoxVE/pull/7178))
 | 
			
		||||
- healthchecks ([#7177](https://github.com/community-scripts/ProxmoxVE/pull/7177))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - FileBrowser Quantum: safer update (tmp download + atomic replace + arch autodetect) [@CommanderPaladin](https://github.com/CommanderPaladin) ([#7174](https://github.com/community-scripts/ProxmoxVE/pull/7174))
 | 
			
		||||
    - Immich: bump to v1.139.4 [@vhsdream](https://github.com/vhsdream) ([#7138](https://github.com/community-scripts/ProxmoxVE/pull/7138))
 | 
			
		||||
    - Komodo: Fix compose.env path [@tremor021](https://github.com/tremor021) ([#7202](https://github.com/community-scripts/ProxmoxVE/pull/7202))
 | 
			
		||||
    - Komodo: Fix update procedure and missing env var [@tremor021](https://github.com/tremor021) ([#7198](https://github.com/community-scripts/ProxmoxVE/pull/7198))
 | 
			
		||||
    - SnipeIT: Update nginx config to v8.3 [@tremor021](https://github.com/tremor021) ([#7171](https://github.com/community-scripts/ProxmoxVE/pull/7171))
 | 
			
		||||
    - Lidarr: Fix RELEASE variable fetching [@tremor021](https://github.com/tremor021) ([#7162](https://github.com/community-scripts/ProxmoxVE/pull/7162))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Komodo: Generate admin users password [@tremor021](https://github.com/tremor021) ([#7193](https://github.com/community-scripts/ProxmoxVE/pull/7193))
 | 
			
		||||
    - [core]: uv uses now "update-shell" command [@MickLesk](https://github.com/MickLesk) ([#7172](https://github.com/community-scripts/ProxmoxVE/pull/7172))
 | 
			
		||||
    - [core]: tools.func - better verbose for postgresql [@MickLesk](https://github.com/MickLesk) ([#7173](https://github.com/community-scripts/ProxmoxVE/pull/7173))
 | 
			
		||||
    - n8n: Force update to NodeJS v22 [@tremor021](https://github.com/tremor021) ([#7176](https://github.com/community-scripts/ProxmoxVE/pull/7176))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - 2FAuth: Fix website and docs URLs [@tremor021](https://github.com/tremor021) ([#7199](https://github.com/community-scripts/ProxmoxVE/pull/7199))
 | 
			
		||||
 | 
			
		||||
## 2025-08-24
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Kasm: Fix install log parsing [@tremor021](https://github.com/tremor021) ([#7140](https://github.com/community-scripts/ProxmoxVE/pull/7140))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - BookLore: Fix Nginx config [@tremor021](https://github.com/tremor021) ([#7155](https://github.com/community-scripts/ProxmoxVE/pull/7155))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Syncthing: Switch to v2 stable repository [@tremor021](https://github.com/tremor021) ([#7150](https://github.com/community-scripts/ProxmoxVE/pull/7150))
 | 
			
		||||
 | 
			
		||||
## 2025-08-23
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - qBittorrent: Fix file names [@tremor021](https://github.com/tremor021) ([#7136](https://github.com/community-scripts/ProxmoxVE/pull/7136))
 | 
			
		||||
    - Tandoor: Fix env path [@tremor021](https://github.com/tremor021) ([#7130](https://github.com/community-scripts/ProxmoxVE/pull/7130))
 | 
			
		||||
 | 
			
		||||
  - #### 💥 Breaking Changes
 | 
			
		||||
 | 
			
		||||
    - Immich: v1.139.2 [@vhsdream](https://github.com/vhsdream) ([#7116](https://github.com/community-scripts/ProxmoxVE/pull/7116))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: Pf2eTools [@tremor021](https://github.com/tremor021) ([#7096](https://github.com/community-scripts/ProxmoxVE/pull/7096))
 | 
			
		||||
    - Refactor: Prowlarr [@tremor021](https://github.com/tremor021) ([#7091](https://github.com/community-scripts/ProxmoxVE/pull/7091))
 | 
			
		||||
    - Refactor: Radarr [@tremor021](https://github.com/tremor021) ([#7088](https://github.com/community-scripts/ProxmoxVE/pull/7088))
 | 
			
		||||
    - Refactor: Snipe-IT [@tremor021](https://github.com/tremor021) ([#7081](https://github.com/community-scripts/ProxmoxVE/pull/7081))
 | 
			
		||||
 | 
			
		||||
## 2025-08-22
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - Refactor: Prometheus [@tremor021](https://github.com/tremor021) ([#7093](https://github.com/community-scripts/ProxmoxVE/pull/7093))
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - paperless: nltk fix [@MickLesk](https://github.com/MickLesk) ([#7098](https://github.com/community-scripts/ProxmoxVE/pull/7098))
 | 
			
		||||
    - Tududi Fix: use correct tag parsing for release during update check [@vhsdream](https://github.com/vhsdream) ([#7072](https://github.com/community-scripts/ProxmoxVE/pull/7072))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: phpIPAM [@tremor021](https://github.com/tremor021) ([#7095](https://github.com/community-scripts/ProxmoxVE/pull/7095))
 | 
			
		||||
    - Refactor: Prometheus Paperless NGX Exporter [@tremor021](https://github.com/tremor021) ([#7092](https://github.com/community-scripts/ProxmoxVE/pull/7092))
 | 
			
		||||
    - Refactor: PS5-MQTT [@tremor021](https://github.com/tremor021) ([#7090](https://github.com/community-scripts/ProxmoxVE/pull/7090))
 | 
			
		||||
    - Refactor: qBittorrent [@tremor021](https://github.com/tremor021) ([#7089](https://github.com/community-scripts/ProxmoxVE/pull/7089))
 | 
			
		||||
    - Refactor: RDTClient [@tremor021](https://github.com/tremor021) ([#7086](https://github.com/community-scripts/ProxmoxVE/pull/7086))
 | 
			
		||||
    - Refactor: Recyclarr [@tremor021](https://github.com/tremor021) ([#7085](https://github.com/community-scripts/ProxmoxVE/pull/7085))
 | 
			
		||||
    - Refactor: RevealJS [@tremor021](https://github.com/tremor021) ([#7084](https://github.com/community-scripts/ProxmoxVE/pull/7084))
 | 
			
		||||
    - Refactor: Rclone [@tremor021](https://github.com/tremor021) ([#7087](https://github.com/community-scripts/ProxmoxVE/pull/7087))
 | 
			
		||||
    - Refactor: Semaphore [@tremor021](https://github.com/tremor021) ([#7083](https://github.com/community-scripts/ProxmoxVE/pull/7083))
 | 
			
		||||
    - Refactor: Silverbullet [@tremor021](https://github.com/tremor021) ([#7082](https://github.com/community-scripts/ProxmoxVE/pull/7082))
 | 
			
		||||
    - Refactor: Plant-it [@tremor021](https://github.com/tremor021) ([#7094](https://github.com/community-scripts/ProxmoxVE/pull/7094))
 | 
			
		||||
    - Refactor: TasmoAdmin [@tremor021](https://github.com/tremor021) ([#7080](https://github.com/community-scripts/ProxmoxVE/pull/7080))
 | 
			
		||||
 | 
			
		||||
## 2025-08-21
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - LiteLLM ([#7052](https://github.com/community-scripts/ProxmoxVE/pull/7052))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - tianji: add uv deps [@MickLesk](https://github.com/MickLesk) ([#7066](https://github.com/community-scripts/ProxmoxVE/pull/7066))
 | 
			
		||||
    - Zitadel: installer for v4 [@MickLesk](https://github.com/MickLesk) ([#7058](https://github.com/community-scripts/ProxmoxVE/pull/7058))
 | 
			
		||||
    - Paperless-NGX: create direction for nltk [@MickLesk](https://github.com/MickLesk) ([#7064](https://github.com/community-scripts/ProxmoxVE/pull/7064))
 | 
			
		||||
    - Immich: hotfix - revert 7035 [@vhsdream](https://github.com/vhsdream) ([#7054](https://github.com/community-scripts/ProxmoxVE/pull/7054))
 | 
			
		||||
    - duplicati: fix release pattern [@MickLesk](https://github.com/MickLesk) ([#7049](https://github.com/community-scripts/ProxmoxVE/pull/7049))
 | 
			
		||||
    - technitiumdns: fix unbound variable [@MickLesk](https://github.com/MickLesk) ([#7047](https://github.com/community-scripts/ProxmoxVE/pull/7047))
 | 
			
		||||
    - [core]: improve binary globbing for gh releases [@MickLesk](https://github.com/MickLesk) ([#7044](https://github.com/community-scripts/ProxmoxVE/pull/7044))
 | 
			
		||||
 | 
			
		||||
## 2025-08-20
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Post-Install, change pve-test for trixie [@MickLesk](https://github.com/MickLesk) ([#7031](https://github.com/community-scripts/ProxmoxVE/pull/7031))
 | 
			
		||||
    - Immich: fix small issue with immich-admin "start" script [@vhsdream](https://github.com/vhsdream) ([#7035](https://github.com/community-scripts/ProxmoxVE/pull/7035))
 | 
			
		||||
    - WasteBin: Small fixes [@tremor021](https://github.com/tremor021) ([#7018](https://github.com/community-scripts/ProxmoxVE/pull/7018))
 | 
			
		||||
    - Komga: Fix update [@tremor021](https://github.com/tremor021) ([#7027](https://github.com/community-scripts/ProxmoxVE/pull/7027))
 | 
			
		||||
    - Barcode Buddy: Fix missing dependency [@tremor021](https://github.com/tremor021) ([#7020](https://github.com/community-scripts/ProxmoxVE/pull/7020))
 | 
			
		||||
    - PBS: ifupdown2 reload [@MickLesk](https://github.com/MickLesk) ([#7013](https://github.com/community-scripts/ProxmoxVE/pull/7013))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Feature: Netdata support PVE9 (Debian 13 Trixie) [@MickLesk](https://github.com/MickLesk) ([#7012](https://github.com/community-scripts/ProxmoxVE/pull/7012))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: RustDesk Server [@tremor021](https://github.com/tremor021) ([#7008](https://github.com/community-scripts/ProxmoxVE/pull/7008))
 | 
			
		||||
    - ghost: fix: verbose [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7023](https://github.com/community-scripts/ProxmoxVE/pull/7023))
 | 
			
		||||
    - Refactor: Paperless-ngx [@MickLesk](https://github.com/MickLesk) ([#6938](https://github.com/community-scripts/ProxmoxVE/pull/6938))
 | 
			
		||||
 | 
			
		||||
## 2025-08-19
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - Debian 13 VM [@MickLesk](https://github.com/MickLesk) ([#6970](https://github.com/community-scripts/ProxmoxVE/pull/6970))
 | 
			
		||||
- Swizzin ([#6962](https://github.com/community-scripts/ProxmoxVE/pull/6962))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - [core]: create_lxc - fix offline issue with alpine packages [@MickLesk](https://github.com/MickLesk) ([#6994](https://github.com/community-scripts/ProxmoxVE/pull/6994))
 | 
			
		||||
    - OpenObserve: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6961](https://github.com/community-scripts/ProxmoxVE/pull/6961))
 | 
			
		||||
    - Update hev-socks5-server-install.sh [@iAzamat2](https://github.com/iAzamat2) ([#6953](https://github.com/community-scripts/ProxmoxVE/pull/6953))
 | 
			
		||||
 | 
			
		||||
  - #### ✨ New Features
 | 
			
		||||
 | 
			
		||||
    - Refactor: Glances (+ Feature Bump) [@MickLesk](https://github.com/MickLesk) ([#6976](https://github.com/community-scripts/ProxmoxVE/pull/6976))
 | 
			
		||||
    - [core]: add new features to create_lxc [@MickLesk](https://github.com/MickLesk) ([#6979](https://github.com/community-scripts/ProxmoxVE/pull/6979))
 | 
			
		||||
    - [core]: extend setup_uv to work with alpine [@MickLesk](https://github.com/MickLesk) ([#6978](https://github.com/community-scripts/ProxmoxVE/pull/6978))
 | 
			
		||||
    - Immich: Bump version to 1.138.1 [@vhsdream](https://github.com/vhsdream) ([#6984](https://github.com/community-scripts/ProxmoxVE/pull/6984))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: Tdarr [@MickLesk](https://github.com/MickLesk) ([#6969](https://github.com/community-scripts/ProxmoxVE/pull/6969))
 | 
			
		||||
    - Refactor: The Lounge [@tremor021](https://github.com/tremor021) ([#6958](https://github.com/community-scripts/ProxmoxVE/pull/6958))
 | 
			
		||||
    - Refactor: TeddyCloud [@tremor021](https://github.com/tremor021) ([#6963](https://github.com/community-scripts/ProxmoxVE/pull/6963))
 | 
			
		||||
    - Refactor: Technitium DNS [@tremor021](https://github.com/tremor021) ([#6968](https://github.com/community-scripts/ProxmoxVE/pull/6968))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - [web]: update logos from reactive-resume & slskd [@MickLesk](https://github.com/MickLesk) ([#6990](https://github.com/community-scripts/ProxmoxVE/pull/6990))
 | 
			
		||||
 | 
			
		||||
## 2025-08-18
 | 
			
		||||
 | 
			
		||||
### 🆕 New Scripts
 | 
			
		||||
 | 
			
		||||
  - CopyParty [@MickLesk](https://github.com/MickLesk) ([#6929](https://github.com/community-scripts/ProxmoxVE/pull/6929))
 | 
			
		||||
- Twingate-Connector ([#6921](https://github.com/community-scripts/ProxmoxVE/pull/6921))
 | 
			
		||||
 | 
			
		||||
### 🚀 Updated Scripts
 | 
			
		||||
 | 
			
		||||
  - #### 🐞 Bug Fixes
 | 
			
		||||
 | 
			
		||||
    - Keycloak: fix update function [@MickLesk](https://github.com/MickLesk) ([#6943](https://github.com/community-scripts/ProxmoxVE/pull/6943))
 | 
			
		||||
    - Immich: add message to indicate image-processing library update check [@vhsdream](https://github.com/vhsdream) ([#6935](https://github.com/community-scripts/ProxmoxVE/pull/6935))
 | 
			
		||||
    - fix(uptimekuma): unbound env variable [@vidonnus](https://github.com/vidonnus) ([#6922](https://github.com/community-scripts/ProxmoxVE/pull/6922))
 | 
			
		||||
 | 
			
		||||
  - #### 🔧 Refactor
 | 
			
		||||
 | 
			
		||||
    - Refactor: Traefik [@tremor021](https://github.com/tremor021) ([#6940](https://github.com/community-scripts/ProxmoxVE/pull/6940))
 | 
			
		||||
    - Refactor: Traccar [@tremor021](https://github.com/tremor021) ([#6942](https://github.com/community-scripts/ProxmoxVE/pull/6942))
 | 
			
		||||
    - Refactor: Umami [@tremor021](https://github.com/tremor021) ([#6939](https://github.com/community-scripts/ProxmoxVE/pull/6939))
 | 
			
		||||
    - Refactor: GoMFT [@tremor021](https://github.com/tremor021) ([#6916](https://github.com/community-scripts/ProxmoxVE/pull/6916))
 | 
			
		||||
 | 
			
		||||
### 🌐 Website
 | 
			
		||||
 | 
			
		||||
  - #### 📝 Script Information
 | 
			
		||||
 | 
			
		||||
    - OpenWRT: add info for VLAN-aware in frontend [@MickLesk](https://github.com/MickLesk) ([#6944](https://github.com/community-scripts/ProxmoxVE/pull/6944))
 | 
			
		||||
 | 
			
		||||
## 2025-08-17
 | 
			
		||||
 | 
			
		||||
## 2025-08-16
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										54
									
								
								SECURITY.md
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								SECURITY.md
									
									
									
									
									
								
							@@ -1,24 +1,64 @@
 | 
			
		||||
# Security Policy
 | 
			
		||||
 | 
			
		||||
## Supported Versions
 | 
			
		||||
This project currently supports the following versions of Proxmox VE:
 | 
			
		||||
 | 
			
		||||
This project currently supports the following versions of Proxmox VE (PVE):
 | 
			
		||||
 | 
			
		||||
| Version | Supported          |
 | 
			
		||||
| ------- | ------------------ |
 | 
			
		||||
| 9.0.x   | :white_check_mark: |
 | 
			
		||||
| 8.4.x   | :white_check_mark: |
 | 
			
		||||
| 8.3.x   | :white_check_mark: |
 | 
			
		||||
| 8.2.x   | :white_check_mark: |
 | 
			
		||||
| 8.1.x   | :white_check_mark: |
 | 
			
		||||
| 8.0.x   | Limited support* ❕| 
 | 
			
		||||
| 8.0.x   | Limited support* ❕ |
 | 
			
		||||
| < 8.0   | :x:                |
 | 
			
		||||
 | 
			
		||||
*Version 8.0.x has limited support. Security updates may not be provided for all issues in this version.
 | 
			
		||||
*Version 8.0.x has limited support. Security updates may not be provided for all issues affecting this version.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## Reporting a Vulnerability
 | 
			
		||||
 | 
			
		||||
Security vulnerabilities shouldn’t be reported publicly to prevent potential exploitation. Instead, please report any vulnerabilities privately by reaching out directly to us. You can either join our [Discord server](https://discord.gg/jsYVk5JBxq) and send a direct message to a maintainer or contact us via email at contact@community-scripts.org. Be sure to include a detailed description of the vulnerability and the steps to reproduce it. Thank you for helping us keep our project secure!
 | 
			
		||||
Security vulnerabilities must not be reported publicly to avoid potential exploitation.  
 | 
			
		||||
Instead, please report them privately via one of the following channels:
 | 
			
		||||
 | 
			
		||||
Once a vulnerability has been reported, the project maintainers will review it and acknowledge the report within 7 business days. We will then work to address the vulnerability and provide a fix as soon as possible. Depending on the severity of the issue, a patch may be released immediately or included in the next scheduled update.
 | 
			
		||||
- **Discord**: Join our [Discord server](https://discord.gg/jsYVk5JBxq) and send a direct message to a maintainer.  
 | 
			
		||||
- **Email**: Write to us at **contact@community-scripts.org** with the subject line:  
 | 
			
		||||
  `Vulnerability Report - <Project/Script Name>`.
 | 
			
		||||
 | 
			
		||||
Please note that not all reported vulnerabilities may be accepted. The project maintainers reserve the right to decline a vulnerability report if it is deemed to be a low-risk issue or if it conflicts with the project's design or architecture. In such cases, we will provide an explanation for the decision.
 | 
			
		||||
When reporting a vulnerability, please provide:
 | 
			
		||||
 | 
			
		||||
If you have any questions or concerns about this security policy, please don't hesitate to contact the project maintainers.
 | 
			
		||||
- A clear description of the issue  
 | 
			
		||||
- Steps to reproduce the vulnerability  
 | 
			
		||||
- Affected versions or environments  
 | 
			
		||||
- (Optional) Suggested fixes or workarounds  
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## Response Process
 | 
			
		||||
 | 
			
		||||
1. **Acknowledgment**  
 | 
			
		||||
   - We will review and acknowledge your report within **7 business days**.
 | 
			
		||||
 | 
			
		||||
2. **Assessment**  
 | 
			
		||||
   - The maintainers will verify the issue and classify its severity.  
 | 
			
		||||
   - Depending on impact, a patch may be released immediately or scheduled for the next update.
 | 
			
		||||
 | 
			
		||||
3. **Resolution**  
 | 
			
		||||
   - Critical security fixes will be prioritized.  
 | 
			
		||||
   - Non-critical issues may be deferred or declined with an explanation.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## Disclaimer
 | 
			
		||||
 | 
			
		||||
Not all reported issues will be treated as vulnerabilities.  
 | 
			
		||||
Reports may be declined if they are deemed:  
 | 
			
		||||
- Low-risk  
 | 
			
		||||
- Out of project scope  
 | 
			
		||||
- Conflicting with intended design or architecture  
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
If you have any questions or concerns about this security policy, please reach out to the maintainers through the contact options above.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							@@ -28,12 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if ! command -v jq &>/dev/null; then
 | 
			
		||||
    $STD apt-get install -y jq
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.2fauth 2>/dev/null)" ]] || [[ ! -f ~/.2fauth ]]; then
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
  if check_for_gh_release "2fauth" "Bubka/2FAuth"; then
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
 | 
			
		||||
@@ -64,18 +59,13 @@ function update_script() {
 | 
			
		||||
    $STD systemctl restart nginx
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf "v${RELEASE}.zip"
 | 
			
		||||
    if dpkg -l | grep -q 'php8.2'; then
 | 
			
		||||
      $STD apt-get remove --purge -y php8.2*
 | 
			
		||||
    fi
 | 
			
		||||
    $STD apt-get -y autoremove
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
    echo "${RELEASE}" >/opt/2fauth_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# 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"
 | 
			
		||||
var_tags="${var_tags:-finance}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,15 +20,15 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /opt/AdGuardHome ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_error "Adguard Home should be updated via the user interface."
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/AdGuardHome ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_error "Adguard Home can only be updated via the user interface."
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -38,4 +38,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,11 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
 | 
			
		||||
  if ! command -v memcached >/dev/null 2>&1; then
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get install -y memcached libmemcached-tools
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "adventurelog" "seanmorley15/adventurelog"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop adventurelog-backend
 | 
			
		||||
    systemctl stop adventurelog-frontend
 | 
			
		||||
@@ -37,12 +39,13 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Backup Old Installation"
 | 
			
		||||
    cp -r /opt/adventurelog /opt/adventurelog-backup
 | 
			
		||||
    rm -rf /opt/adventurelog
 | 
			
		||||
    msg_ok "Backup done"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
 | 
			
		||||
    PYTHON_VERSION="3.12" setup_uv
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
			
		||||
    cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
			
		||||
    cd /opt/adventurelog/backend/server
 | 
			
		||||
@@ -54,7 +57,7 @@ function update_script() {
 | 
			
		||||
    $STD .venv/bin/python -m pip install -r requirements.txt
 | 
			
		||||
    $STD .venv/bin/python -m manage collectstatic --noinput
 | 
			
		||||
    $STD .venv/bin/python -m manage migrate
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
 | 
			
		||||
    cd /opt/adventurelog/frontend
 | 
			
		||||
    $STD pnpm i
 | 
			
		||||
@@ -70,10 +73,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -rf /opt/adventurelog-backup
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								ct/alpine-caddy.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								ct/alpine-caddy.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
#!/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: cobalt (cobaltgit)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://caddyserver.com/
 | 
			
		||||
 | 
			
		||||
APP="Alpine-Caddy"
 | 
			
		||||
var_tags="${var_tags:-webserver}"
 | 
			
		||||
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.22}"
 | 
			
		||||
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 /etc/caddy ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apk -U upgrade
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
 | 
			
		||||
  msg_info "Restarting Caddy"
 | 
			
		||||
  rc-service caddy restart
 | 
			
		||||
  msg_ok "Restarted Caddy"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
			
		||||
							
								
								
									
										56
									
								
								ct/alpine-redlib.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								ct/alpine-redlib.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: andrej-kocijan (Andrej Kocijan)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/redlib-org/redlib
 | 
			
		||||
 | 
			
		||||
APP="Alpine-Redlib"
 | 
			
		||||
var_tags="${var_tags:-alpine;frontend}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-1}"
 | 
			
		||||
var_os="${var_os:-alpine}"
 | 
			
		||||
var_version="${var_version:-3.22}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/redlib ]]; then
 | 
			
		||||
      msg_error "No ${APP} Installation Found!"
 | 
			
		||||
      exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Alpine Packages"
 | 
			
		||||
  $STD apk -U upgrade
 | 
			
		||||
  msg_ok "Updated Alpine Packages"
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping ${APP} Service"
 | 
			
		||||
  $STD rc-service redlib stop
 | 
			
		||||
  msg_ok "Stopped ${APP} Service"
 | 
			
		||||
 | 
			
		||||
  fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting ${APP} Service"
 | 
			
		||||
  $STD rc-service redlib start
 | 
			
		||||
  msg_ok "Started ${APP} Service"
 | 
			
		||||
 | 
			
		||||
  msg_ok "Update Successful"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5252${CL}"
 | 
			
		||||
							
								
								
									
										74
									
								
								ct/alpine-rustdeskserver.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								ct/alpine-rustdeskserver.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/rustdesk/rustdesk-server
 | 
			
		||||
 | 
			
		||||
APP="Alpine-RustDeskServer"
 | 
			
		||||
var_tags="${var_tags:-alpine;monitoring}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-3}"
 | 
			
		||||
var_os="${var_os:-alpine}"
 | 
			
		||||
var_version="${var_version:-3.22}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  if [[ ! -d /opt/rustdesk-server ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [ "${RELEASE}" != "$(cat ~/.rustdesk-server 2>/dev/null)" ] || [ ! -f ~/.rustdesk-server ]; then
 | 
			
		||||
    msg_info "Updating RustDesk Server to v${RELEASE}"
 | 
			
		||||
    $STD apk -U upgrade
 | 
			
		||||
    $STD service rustdesk-server-hbbs stop
 | 
			
		||||
    $STD service rustdesk-server-hbbr stop
 | 
			
		||||
    temp_file1=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
 | 
			
		||||
    $STD unzip "$temp_file1"
 | 
			
		||||
    cp -r amd64/* /opt/rustdesk-server/
 | 
			
		||||
    echo "${RELEASE}" >~/.rustdesk-server
 | 
			
		||||
    $STD service rustdesk-server-hbbs start
 | 
			
		||||
    $STD service rustdesk-server-hbbr start
 | 
			
		||||
    rm -rf amd64
 | 
			
		||||
    rm -f $temp_file1
 | 
			
		||||
    msg_ok "Updated RustDesk Server successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  if [ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ] || [ ! -f ~/.rustdesk-api ]; then
 | 
			
		||||
    msg_info "Updating RustDesk API to v${APIRELEASE}"
 | 
			
		||||
    $STD service rustdesk-api stop
 | 
			
		||||
    temp_file2=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-amd64.tar.gz" -o "$temp_file2"
 | 
			
		||||
    $STD tar zxvf "$temp_file2"
 | 
			
		||||
    cp -r release/* /opt/rustdesk-api
 | 
			
		||||
    echo "${APIRELEASE}" >~/.rustdesk-api
 | 
			
		||||
    $STD service rustdesk-api start
 | 
			
		||||
    rm -rf release
 | 
			
		||||
    rm -f $temp_file2
 | 
			
		||||
    msg_ok "Updated RustDesk API"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. RustDesk API is already at v${APIRELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:21114${CL}"
 | 
			
		||||
@@ -9,7 +9,7 @@ APP="Apt-Cacher-NG"
 | 
			
		||||
var_tags="${var_tags:-caching}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -20,18 +20,18 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /var ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating $APP LXC"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated $APP LXC"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /var ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -41,4 +41,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								ct/argus.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/argus.sh
									
									
									
									
									
								
							@@ -27,9 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.Argus 2>/dev/null)" ]] || [[ ! -f ~/.Argus ]]; then
 | 
			
		||||
  if check_for_gh_release "argus" "release-argus/Argus"; then
 | 
			
		||||
    msg_info "Stopping service"
 | 
			
		||||
    systemctl stop argus
 | 
			
		||||
    msg_ok "Service stopped"
 | 
			
		||||
@@ -39,11 +37,9 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting service"
 | 
			
		||||
    systemctl start argus
 | 
			
		||||
    msg_ok "Service started"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "${APP} is already up to date (${RELEASE})"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ APP="audiobookshelf"
 | 
			
		||||
var_tags="${var_tags:-podcast;audiobook}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_disk="${var_disk:-5}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -20,15 +20,19 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    echo "This application receives updates through the APT package manager."
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /etc/default/audiobookshelf ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -38,4 +42,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -29,8 +29,8 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/authelia/authelia/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(/usr/bin/authelia -v | awk '{print substr($3, 2, length($2)) }')" ]]; then
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "authelia" "authelia/authelia"; then
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
 | 
			
		||||
@@ -40,14 +40,10 @@ function update_script() {
 | 
			
		||||
    $STD apt-get -y autoremove
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    msg_ok "Cleanup Completed"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 
 | 
			
		||||
@@ -20,30 +20,26 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /root/.config/autobrr/config.toml ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /root/.config/autobrr/config.toml ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/autobrr/autobrr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat ~/.autobrr 2>/dev/null)" ]] || [[ ! -f ~/.autobrr ]]; then
 | 
			
		||||
      msg_info "Stopping ${APP} LXC"
 | 
			
		||||
      systemctl stop autobrr
 | 
			
		||||
      msg_ok "Stopped ${APP} LXC"
 | 
			
		||||
  if check_for_gh_release "autobrr" "autobrr/autobrr"; then
 | 
			
		||||
    msg_info "Stopping ${APP} LXC"
 | 
			
		||||
    systemctl stop autobrr
 | 
			
		||||
    msg_ok "Stopped ${APP} LXC"
 | 
			
		||||
 | 
			
		||||
      fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
 | 
			
		||||
    fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
 | 
			
		||||
 | 
			
		||||
      msg_info "Starting ${APP} LXC"
 | 
			
		||||
      systemctl start autobrr
 | 
			
		||||
      msg_ok "Started ${APP} LXC"
 | 
			
		||||
      
 | 
			
		||||
      msg_ok "Updated Successfully"
 | 
			
		||||
    else
 | 
			
		||||
      msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Starting ${APP} LXC"
 | 
			
		||||
    systemctl start autobrr
 | 
			
		||||
    msg_ok "Started ${APP} LXC"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										83
									
								
								ct/autocaliweb.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								ct/autocaliweb.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: vhsdream
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/gelbphoenix/autocaliweb
 | 
			
		||||
 | 
			
		||||
APP="Autocaliweb"
 | 
			
		||||
var_tags="${var_tags:-ebooks}"
 | 
			
		||||
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/autocaliweb ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  setup_uv
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/gelbphoenix/autocaliweb/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
 | 
			
		||||
  if check_for_gh_release "autocaliweb" "gelbphoenix/autocaliweb"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop autocaliweb metadata-change-detector acw-ingest-service acw-auto-zipper
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
    INSTALL_DIR="/opt/autocaliweb"
 | 
			
		||||
    export VIRTUAL_ENV="${INSTALL_DIR}/venv"
 | 
			
		||||
    $STD tar -cf ~/autocaliweb_bkp.tar "$INSTALL_DIR"/{metadata_change_logs,dirs.json,.env,scripts/ingest_watcher.sh,scripts/auto_zipper_wrapper.sh,scripts/metadata_change_detector_wrapper.sh}
 | 
			
		||||
    fetch_and_deploy_gh_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd "$INSTALL_DIR"
 | 
			
		||||
    if [[ ! -d "$VIRTUAL_ENV" ]]; then
 | 
			
		||||
      $STD uv venv "$VIRTUAL_ENV"
 | 
			
		||||
    fi
 | 
			
		||||
    $STD uv sync --all-extras --active
 | 
			
		||||
    cd "$INSTALL_DIR"/koreader/plugins
 | 
			
		||||
    PLUGIN_DIGEST="$(find acwsync.koplugin -type f -name "*.lua" -o -name "*.json" | sort | xargs sha256sum | sha256sum | cut -d' ' -f1)"
 | 
			
		||||
    echo "Plugin files digest: $PLUGIN_DIGEST" >acwsync.koplugin/${PLUGIN_DIGEST}.digest
 | 
			
		||||
    echo "Build date: $(date)" >>acwsync.koplugin/${PLUGIN_DIGEST}.digest
 | 
			
		||||
    echo "Files included:" >>acwsync.koplugin/${PLUGIN_DIGEST}.digest
 | 
			
		||||
    $STD zip -r koplugin.zip acwsync.koplugin/
 | 
			
		||||
    cp -r koplugin.zip "$INSTALL_DIR"/cps/static
 | 
			
		||||
    mkdir -p "$INSTALL_DIR"/metadata_temp
 | 
			
		||||
    $STD tar -xf ~/autocaliweb_bkp.tar --directory /
 | 
			
		||||
    KEPUB_VERSION="$(/usr/bin/kepubify --version)"
 | 
			
		||||
    CALIBRE_RELEASE="$(curl -s https://api.github.com/repos/kovidgoyal/calibre/releases/latest | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4)"
 | 
			
		||||
    echo "${KEPUB_VERSION#v}" >"$INSTALL_DIR"/KEPUBIFY_RELEASE
 | 
			
		||||
    echo "${CALIBRE_RELEASE#v}" >/"$INSTALL_DIR"/CALIBRE_RELEASE
 | 
			
		||||
    sed 's/^/v/' ~/.autocaliweb >"$INSTALL_DIR"/ACW_RELEASE
 | 
			
		||||
    chown -R acw:acw "$INSTALL_DIR"
 | 
			
		||||
    rm ~/autocaliweb_bkp.tar
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start autocaliweb metadata-change-detector acw-ingest-service acw-auto-zipper
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8083${CL}"
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/babybuddy/babybuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.babybuddy 2>/dev/null)" ]] || [[ ! -f ~/.babybuddy ]]; then
 | 
			
		||||
  if check_for_gh_release "babybuddy" "babybuddy/babybuddy"; then
 | 
			
		||||
    setup_uv
 | 
			
		||||
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
@@ -44,13 +43,13 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/babybuddy
 | 
			
		||||
    mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
 | 
			
		||||
    source .venv/bin/activate
 | 
			
		||||
    $STD uv pip install -r requirements.txt
 | 
			
		||||
    $STD python manage.py migrate
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Fixing permissions"
 | 
			
		||||
    chown -R www-data:www-data /opt/data
 | 
			
		||||
@@ -62,14 +61,10 @@ function update_script() {
 | 
			
		||||
    systemctl start uwsgi
 | 
			
		||||
    systemctl start nginx
 | 
			
		||||
    msg_ok "Services Started"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.baikal 2>/dev/null)" ]] || [[ ! -f ~/.baikal ]]; then
 | 
			
		||||
  if check_for_gh_release "baikal" "sabre-io/Baikal"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop apache2
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
@@ -58,8 +57,6 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/baikal-backup
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -29,11 +29,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE_MEILISEARCH=$(curl -fsSL https://api.github.com/repos/meilisearch/meilisearch/releases/latest | jq -r '.tag_name | sub("^v"; "")')
 | 
			
		||||
  RELEASE_BARASSISTANT=$(curl -fsSL https://api.github.com/repos/karlomikus/bar-assistant/releases/latest | jq -r '.tag_name | sub("^v"; "")')
 | 
			
		||||
  RELEASE_SALTRIM=$(curl -fsSL https://api.github.com/repos/karlomikus/vue-salt-rim/releases/latest | jq -r '.tag_name | sub("^v"; "")')
 | 
			
		||||
 | 
			
		||||
  if [[ "${RELEASE_BARASSISTANT}" != "$(cat ~/.bar-assistant 2>/dev/null)" ]] || [[ ! -f ~/.bar-assistant ]]; then
 | 
			
		||||
  if check_for_gh_release "bar-assistant" "karlomikus/bar-assistant"; then
 | 
			
		||||
    msg_info "Stopping nginx"
 | 
			
		||||
    systemctl stop nginx
 | 
			
		||||
    msg_ok "Stopped nginx"
 | 
			
		||||
@@ -45,7 +41,7 @@ function update_script() {
 | 
			
		||||
    fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
 | 
			
		||||
    setup_composer
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE_BARASSISTANT}"
 | 
			
		||||
    msg_info "Updating Bar-Assistant"
 | 
			
		||||
    cp -r /opt/bar-assistant-backup/.env /opt/bar-assistant/.env
 | 
			
		||||
    cp -r /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
 | 
			
		||||
    cd /opt/bar-assistant
 | 
			
		||||
@@ -58,7 +54,7 @@ function update_script() {
 | 
			
		||||
    $STD php artisan route:cache
 | 
			
		||||
    $STD php artisan event:cache
 | 
			
		||||
    chown -R www-data:www-data /opt/bar-assistant
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE_BARASSISTANT}"
 | 
			
		||||
    msg_ok "Updated Bar-Assistant"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting nginx"
 | 
			
		||||
    systemctl start nginx
 | 
			
		||||
@@ -67,11 +63,9 @@ function update_script() {
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/bar-assistant-backup
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE_BARASSISTANT}"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [[ "${RELEASE_SALTRIM}" != "$(cat ~/.vue-salt-rim 2>/dev/null)" ]] || [[ ! -f ~/.vue-salt-rim ]]; then
 | 
			
		||||
  if check_for_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim"; then
 | 
			
		||||
    msg_info "Backing up Vue Salt Rim"
 | 
			
		||||
    mv /opt/vue-salt-rim /opt/vue-salt-rim-backup
 | 
			
		||||
    msg_ok "Backed up Vue Salt Rim"
 | 
			
		||||
@@ -82,12 +76,12 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "vue-salt-rim" "karlomikus/vue-salt-rim" "tarball" "latest" "/opt/vue-salt-rim"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating Salt Rim to ${RELEASE_SALTRIM}"
 | 
			
		||||
    msg_info "Updating Vue Salt Rim"
 | 
			
		||||
    cp /opt/vue-salt-rim-backup/public/config.js /opt/vue-salt-rim/public/config.js
 | 
			
		||||
    cd /opt/vue-salt-rim
 | 
			
		||||
    $STD npm install
 | 
			
		||||
    $STD npm run build
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE_SALTRIM}"
 | 
			
		||||
    msg_ok "Updated Vue Salt Rim"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting nginx"
 | 
			
		||||
    systemctl start nginx
 | 
			
		||||
@@ -96,12 +90,9 @@ function update_script() {
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/vue-salt-rim-backup
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. Salt Rim is already at ${RELEASE_SALTRIM}"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [[ "${RELEASE_MEILISEARCH}" != "$(cat ~/.meilisearch 2>/dev/null)" ]] || [[ ! -f ~/.meilisearch ]]; then
 | 
			
		||||
  if check_for_gh_release "meilisearch" "meilisearch/meilisearch"; then
 | 
			
		||||
    msg_info "Stopping Meilisearch"
 | 
			
		||||
    systemctl stop meilisearch
 | 
			
		||||
    msg_ok "Stopped Meilisearch"
 | 
			
		||||
@@ -111,10 +102,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Meilisearch"
 | 
			
		||||
    systemctl start meilisearch
 | 
			
		||||
    msg_ok "Started Meilisearch"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Meilisearch"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. Meilisearch is already at ${RELEASE_MEILISEARCH}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,8 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/barcodebuddy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.barcodebuddy 2>/dev/null)" ]] || [[ ! -f ~/.barcodebuddy ]]; then
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "barcodebuddy" "Forceu/barcodebuddy"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop apache2
 | 
			
		||||
    systemctl stop barcodebuddy
 | 
			
		||||
@@ -55,8 +55,6 @@ function update_script() {
 | 
			
		||||
    rm -r /opt/barcodebuddy-backup
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								ct/bazarr.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/bazarr.sh
									
									
									
									
									
								
							@@ -27,14 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if ! command -v jq &>/dev/null; then
 | 
			
		||||
    $STD apt-get install -y jq
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/morpheus65535/bazarr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.bazarr 2>/dev/null)" ]] || [[ ! -f ~/.bazarr ]]; then
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "bazarr" "morpheus65535/bazarr"; then
 | 
			
		||||
    PYTHON_VERSION="3.13" setup_uv
 | 
			
		||||
    fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
 | 
			
		||||
 | 
			
		||||
@@ -44,10 +37,7 @@ function update_script() {
 | 
			
		||||
    sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
 | 
			
		||||
    $STD uv pip install -r /opt/bazarr/requirements.txt --system
 | 
			
		||||
    msg_ok "Setup Bazarr"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -33,6 +33,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    $STD /opt/beszel/beszel update
 | 
			
		||||
    sleep 2 && chmod +x /opt/beszel/beszel
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
@@ -49,4 +50,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.bitmagnet 2>/dev/null)" ]] || [[ ! -f ~/.bitmagnet ]]; then
 | 
			
		||||
  if check_for_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop bitmagnet-web
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
@@ -63,22 +62,19 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/bitmagnet
 | 
			
		||||
    fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/bitmagnet
 | 
			
		||||
    VREL=v$RELEASE
 | 
			
		||||
    VREL=v$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
    $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
 | 
			
		||||
    chmod +x bitmagnet
 | 
			
		||||
    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
			
		||||
    [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /opt/bitmagnet/
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start bitmagnet-web
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								ct/blocky.sh
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								ct/blocky.sh
									
									
									
									
									
								
							@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: tteck (tteckster)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://0xerr0r.github.io/blocky/latest/
 | 
			
		||||
# Source: https://0xerr0r.github.io/blocky
 | 
			
		||||
 | 
			
		||||
APP="Blocky"
 | 
			
		||||
var_tags="${var_tags:-adblock}"
 | 
			
		||||
@@ -20,18 +20,38 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -d /var ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_info "Updating $APP LXC"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated $APP LXC"
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/blocky ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "blocky" "0xERR0R/blocky"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop blocky
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Backup Config"
 | 
			
		||||
    mv /opt/blocky/config.yml /opt/config.yml
 | 
			
		||||
    msg_ok "Backed Up Config"
 | 
			
		||||
 | 
			
		||||
    msg_info "Removing Old Version"
 | 
			
		||||
    rm -rf /opt/blocky
 | 
			
		||||
    msg_ok "Removed Old Version"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_x86_64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restore Config"
 | 
			
		||||
    mv /opt/config.yml /opt/blocky/config.yml
 | 
			
		||||
    msg_ok "Restored Config"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start blocky
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -41,4 +61,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
			
		||||
APP="BookLore"
 | 
			
		||||
var_tags="${var_tags:-books;library}"
 | 
			
		||||
var_cpu="${var_cpu:-3}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_ram="${var_ram:-3072}"
 | 
			
		||||
var_disk="${var_disk:-7}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
@@ -28,13 +28,15 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/booklore-app/BookLore/releases/latest | yq '.tag_name' | sed 's/^v//')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.booklore 2>/dev/null)" ]] || [[ ! -f ~/.booklore ]]; then
 | 
			
		||||
  if check_for_gh_release "booklore" "booklore-app/BookLore"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop booklore
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "backup old install"
 | 
			
		||||
    mv /opt/booklore /opt/booklore_bak
 | 
			
		||||
    msg_ok "backup done"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "booklore" "booklore-app/BookLore"
 | 
			
		||||
 | 
			
		||||
    msg_info "Building Frontend"
 | 
			
		||||
@@ -60,11 +62,9 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start booklore
 | 
			
		||||
    systemctl reload nginx
 | 
			
		||||
    rm -rf /opt/booklore_bak
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.bookstack 2>/dev/null)" ]] || [[ ! -f ~/.bookstack ]]; then
 | 
			
		||||
  if check_for_gh_release "bookstack" "BookStackApp/BookStack"; then
 | 
			
		||||
    msg_info "Stopping Apache2"
 | 
			
		||||
    systemctl stop apache2
 | 
			
		||||
    msg_ok "Services Stopped"
 | 
			
		||||
@@ -58,7 +57,6 @@ function update_script() {
 | 
			
		||||
    chmod -R 755 /opt/bookstack /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads /opt/bookstack/storage
 | 
			
		||||
    chmod -R 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
 | 
			
		||||
    chmod -R 640 /opt/bookstack/.env
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Configured BookStack"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Apache2"
 | 
			
		||||
@@ -69,12 +67,9 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/bookstack-backup
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/jordan-dalby/ByteStash/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.bytestash 2>/dev/null)" ]] || [[ ! -f ~/.bytestash ]]; then
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "bytestash" "jordan-dalby/ByteStash"; then
 | 
			
		||||
    read -rp "${TAB3}Did you make a backup via application WebUI? (y/n): " backuped
 | 
			
		||||
    if [[ "$backuped" =~ ^[Yy]$ ]]; then
 | 
			
		||||
      msg_info "Stopping Services"
 | 
			
		||||
@@ -57,10 +55,7 @@ function update_script() {
 | 
			
		||||
      exit
 | 
			
		||||
    fi
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								ct/caddy.sh
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								ct/caddy.sh
									
									
									
									
									
								
							@@ -9,7 +9,7 @@ APP="Caddy"
 | 
			
		||||
var_tags="${var_tags:-webserver}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_disk="${var_disk:-6}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
@@ -31,6 +31,19 @@ function update_script() {
 | 
			
		||||
   $STD apt-get update
 | 
			
		||||
   $STD apt-get -y upgrade
 | 
			
		||||
   msg_ok "Updated $APP LXC"
 | 
			
		||||
 | 
			
		||||
    if command -v xcaddy >/dev/null 2>&1; then
 | 
			
		||||
      install_go
 | 
			
		||||
      msg_info "Updating xCaddy"
 | 
			
		||||
      cd /opt
 | 
			
		||||
      RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
 | 
			
		||||
      VERSION="${RELEASE#v}"
 | 
			
		||||
      curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${VERSION}_linux_amd64.deb" -o "xcaddy_${VERSION}_linux_amd64.deb"
 | 
			
		||||
      $STD dpkg -i "xcaddy_${VERSION}_linux_amd64.deb"
 | 
			
		||||
      rm -f "xcaddy_${VERSION}_linux_amd64.deb"
 | 
			
		||||
      $STD xcaddy build
 | 
			
		||||
      msg_ok "Updated xCaddy"
 | 
			
		||||
   fi
 | 
			
		||||
   exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -41,4 +54,4 @@ description
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,23 +27,21 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
   
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    $STD omd stop monitoring
 | 
			
		||||
    $STD omd cp monitoring monitoringbackup
 | 
			
		||||
curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb" -o "/opt/checkmk.deb"
 | 
			
		||||
    $STD apt-get install -y /opt/checkmk.deb
 | 
			
		||||
    $STD omd --force -V ${RELEASE}.cre update --conflict=install monitoring
 | 
			
		||||
    $STD omd start monitoring
 | 
			
		||||
    $STD omd -f rm monitoringbackup
 | 
			
		||||
    $STD omd cleanup
 | 
			
		||||
    rm -rf /opt/checkmk.deb
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
  $STD omd stop monitoring
 | 
			
		||||
  $STD omd cp monitoring monitoringbackup
 | 
			
		||||
  curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb" -o "/opt/checkmk.deb"
 | 
			
		||||
  $STD apt-get install -y /opt/checkmk.deb
 | 
			
		||||
  $STD omd --force -V ${RELEASE}.cre update --conflict=install monitoring
 | 
			
		||||
  $STD omd start monitoring
 | 
			
		||||
  $STD omd -f rm monitoringbackup
 | 
			
		||||
  $STD omd cleanup
 | 
			
		||||
  rm -rf /opt/checkmk.deb
 | 
			
		||||
  msg_ok "Updated ${APP}"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -20,32 +20,27 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/Cleanuparr/Cleanuparr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat ~/.Cleanuparr 2>/dev/null)" ]] || [[ ! -f ~/.Cleanuparr ]]; then
 | 
			
		||||
        msg_info "Stopping ${APP}"
 | 
			
		||||
        systemctl stop cleanuparr
 | 
			
		||||
        msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
        fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
 | 
			
		||||
 | 
			
		||||
        msg_info "Starting ${APP}"
 | 
			
		||||
        systemctl start cleanuparr
 | 
			
		||||
        msg_ok "Started ${APP}"
 | 
			
		||||
        msg_ok "Updated Successfully"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
}
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "cleanuparr" "Cleanuparr/Cleanuparr"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop cleanuparr
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start cleanuparr
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -20,18 +20,18 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
   header_info
 | 
			
		||||
   check_container_storage
 | 
			
		||||
   check_container_resources
 | 
			
		||||
   if [[ ! -d /var ]]; then
 | 
			
		||||
      msg_error "No ${APP} Installation Found!"
 | 
			
		||||
      exit
 | 
			
		||||
   fi
 | 
			
		||||
   msg_info "Updating $APP LXC"
 | 
			
		||||
   $STD apt-get update
 | 
			
		||||
   $STD apt-get -y upgrade
 | 
			
		||||
   msg_ok "Updated $APP LXC"
 | 
			
		||||
   exit
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /etc/systemd/system/cloudflared.service ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
@@ -39,4 +39,4 @@ build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
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}"
 | 
			
		||||
 
 | 
			
		||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/cloudreve/cloudreve/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.cloudreve 2>/dev/null)" ]] || [[ ! -f ~/.cloudreve ]]; then
 | 
			
		||||
  if check_for_gh_release "cloudreve" "cloudreve/cloudreve"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop cloudreve
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
@@ -40,10 +38,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start cloudreve
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.commafeed 2>/dev/null)" ]] || [[ ! -f ~/.commafeed ]]; then
 | 
			
		||||
  if check_for_gh_release "commafeed" "Athou/commafeed"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop commafeed
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
@@ -59,8 +58,6 @@ function update_script() {
 | 
			
		||||
    systemctl start commafeed
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,31 +27,28 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.configarr 2>/dev/null || cat /opt/configarr_version.txt 2>/dev/null)" ]]; then
 | 
			
		||||
  if check_for_gh_release "configarr" "raydak-labs/configarr"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop configarr-task.timer
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    mkdir -p /opt/backup/
 | 
			
		||||
    mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
 | 
			
		||||
    rm -rf /opt/configarr
 | 
			
		||||
    fetch_and_deploy_gh_release "configarr" "raydak-labs/configarr"
 | 
			
		||||
    mv /opt/backup/* /opt/configarr/
 | 
			
		||||
    mv /opt/backup/{config.yml,secrets.yml,.env} "/opt/configarr/"
 | 
			
		||||
    cd /opt/configarr
 | 
			
		||||
    $STD pnpm install
 | 
			
		||||
    $STD pnpm run build
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start configarr-task.timer
 | 
			
		||||
    msg_ok "Started configarr"
 | 
			
		||||
 | 
			
		||||
    rm -rf /opt/backup
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/C4illin/ConvertX/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.convertx 2>/dev/null)" ]] || [[ ! -f ~/.convertx ]]; then
 | 
			
		||||
  if check_for_gh_release "ConvertX" "C4illin/ConvertX"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop convertx
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
@@ -41,25 +40,21 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    if [[ -d /opt/data ]]; then
 | 
			
		||||
      mv /opt/data /opt/convertx/data
 | 
			
		||||
    fi
 | 
			
		||||
    cd /opt/convertx
 | 
			
		||||
    $STD bun install
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start convertx
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 
 | 
			
		||||
@@ -33,52 +33,42 @@ function update_script() {
 | 
			
		||||
      msg_error "No ${APP} Installation Found!"
 | 
			
		||||
      exit
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
 | 
			
		||||
      if ! command -v npm >/dev/null 2>&1; then
 | 
			
		||||
        echo "Installing NPM..."
 | 
			
		||||
        $STD apt-get install -y npm
 | 
			
		||||
        echo "Installed NPM..."
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
    NODE_VERSION="22" setup_nodejs
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    $STD /opt/cronicle/bin/control.sh upgrade
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if [ "$UPD" == "2" ]; then
 | 
			
		||||
    if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
 | 
			
		||||
      if ! command -v npm >/dev/null 2>&1; then
 | 
			
		||||
        echo "Installing NPM..."
 | 
			
		||||
        $STD apt-get install -y npm
 | 
			
		||||
        echo "Installed NPM..."
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
    LATEST=$(curl -fsSL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
			
		||||
    IP=$(hostname -I | awk '{print $1}')
 | 
			
		||||
    msg_info "Installing Dependencies"
 | 
			
		||||
    $STD apt-get install -y \
 | 
			
		||||
      git \
 | 
			
		||||
      build-essential \
 | 
			
		||||
      ca-certificates \
 | 
			
		||||
      gnupg2
 | 
			
		||||
    msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
    NODE_VERSION="22" setup_nodejs
 | 
			
		||||
    fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
 | 
			
		||||
    if check_for_gh_release "cronicle" "jhuckaby/Cronicle"; then
 | 
			
		||||
      IP=$(hostname -I | awk '{print $1}')
 | 
			
		||||
      msg_info "Installing Dependencies"
 | 
			
		||||
      $STD apt-get install -y \
 | 
			
		||||
        git \
 | 
			
		||||
        build-essential \
 | 
			
		||||
        ca-certificates \
 | 
			
		||||
        gnupg2
 | 
			
		||||
      msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
    msg_info "Configuring Cronicle Worker"
 | 
			
		||||
    cd /opt/cronicle
 | 
			
		||||
    $STD npm install
 | 
			
		||||
    $STD node bin/build.js dist
 | 
			
		||||
    sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
 | 
			
		||||
    $STD /opt/cronicle/bin/control.sh start
 | 
			
		||||
    $STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
 | 
			
		||||
    chmod 775 /etc/init.d/cronicled
 | 
			
		||||
    $STD update-rc.d cronicled defaults
 | 
			
		||||
    msg_ok "Installed Cronicle Worker"
 | 
			
		||||
    
 | 
			
		||||
    echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
 | 
			
		||||
    exit
 | 
			
		||||
      NODE_VERSION="22" setup_nodejs
 | 
			
		||||
      fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
 | 
			
		||||
 | 
			
		||||
      msg_info "Configuring Cronicle Worker"
 | 
			
		||||
      cd /opt/cronicle
 | 
			
		||||
      $STD npm install
 | 
			
		||||
      $STD node bin/build.js dist
 | 
			
		||||
      sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
 | 
			
		||||
      $STD /opt/cronicle/bin/control.sh start
 | 
			
		||||
      $STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
 | 
			
		||||
      chmod 775 /etc/init.d/cronicled
 | 
			
		||||
      $STD update-rc.d cronicled defaults
 | 
			
		||||
      msg_ok "Installed Cronicle Worker"
 | 
			
		||||
 | 
			
		||||
      echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
 | 
			
		||||
      exit
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/cryptpad/cryptpad/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.cryptpad 2>/dev/null)" ]] || [[ ! -f ~/.cryptpad ]]; then
 | 
			
		||||
  if check_for_gh_release "cryptpad" "cryptpad/cryptpad"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop cryptpad
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
@@ -40,12 +39,12 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    cd /opt/cryptpad
 | 
			
		||||
    $STD npm ci
 | 
			
		||||
    $STD npm run install:components
 | 
			
		||||
    $STD npm run build
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring configuration"
 | 
			
		||||
    mv /opt/config.js /opt/cryptpad/config/
 | 
			
		||||
@@ -54,10 +53,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start cryptpad
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								ct/dashy.sh
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ct/dashy.sh
									
									
									
									
									
								
							@@ -27,9 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Lissy93/dashy/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.dashy 2>/dev/null)" ]] || [[ ! -f ~/.dashy ]]; then
 | 
			
		||||
  if check_for_gh_release "dashy" "Lissy93/dashy"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop dashy
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
@@ -46,11 +44,11 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/dashy
 | 
			
		||||
    fetch_and_deploy_gh_release "dashy" "Lissy93/dashy"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/dashy
 | 
			
		||||
    npm install
 | 
			
		||||
    npm run build
 | 
			
		||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring conf.yml"
 | 
			
		||||
    cd ~
 | 
			
		||||
@@ -64,10 +62,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Dashy"
 | 
			
		||||
    systemctl start dashy
 | 
			
		||||
    msg_ok "Started Dashy"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-512}"
 | 
			
		||||
var_disk="${var_disk:-2}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -28,8 +28,8 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -30,8 +30,8 @@ function update_script() {
 | 
			
		||||
    NODE_VERSION="22" NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/docmost/docmost/main/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
 | 
			
		||||
  fi
 | 
			
		||||
  export NODE_OPTIONS="--max_old_space_size=4096"
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/docmost/docmost/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.docmost 2>/dev/null)" ]] || [[ ! -f ~/.docmost ]]; then
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "docmost" "docmost/docmost"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop docmost
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
@@ -44,7 +44,7 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "docmost" "docmost/docmost"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/docmost
 | 
			
		||||
    mv /opt/.env /opt/docmost/.env
 | 
			
		||||
    mv /opt/data /opt/docmost/data
 | 
			
		||||
@@ -55,10 +55,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start docmost
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -20,31 +20,27 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
    header_info
 | 
			
		||||
    check_container_storage
 | 
			
		||||
    check_container_resources
 | 
			
		||||
    if [[ ! -f /usr/bin/duplicati-server ]]; then
 | 
			
		||||
        msg_error "No ${APP} Installation Found!"
 | 
			
		||||
        exit
 | 
			
		||||
    fi
 | 
			
		||||
    
 | 
			
		||||
    RELEASE=$(curl -fsSL https://api.github.com/repos/duplicati/duplicati/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
 | 
			
		||||
    if [[ "${RELEASE}" != "$(cat ~/.duplicati)" ]] || [[ ! -f ~/.duplicati ]]; then
 | 
			
		||||
        msg_info "Stopping $APP"
 | 
			
		||||
        systemctl stop duplicati
 | 
			
		||||
        msg_ok "Stopped $APP"
 | 
			
		||||
        
 | 
			
		||||
        fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "linux-x64-gui.deb"
 | 
			
		||||
 | 
			
		||||
        msg_info "Starting $APP"
 | 
			
		||||
        systemctl start duplicati
 | 
			
		||||
        msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
        msg_ok "Update Successful"
 | 
			
		||||
    else
 | 
			
		||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /usr/bin/duplicati-server ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "duplicati" "duplicati/duplicati"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop duplicati
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-x64-gui.deb"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start duplicati
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ APP="Element Synapse"
 | 
			
		||||
var_tags="${var_tags:-server}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_disk="${var_disk:-8}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.emby 2>/dev/null)" ]] || [[ ! -f ~/.emby ]]; then
 | 
			
		||||
  if check_for_gh_release "emby" "MediaBrowser/Emby.Releases"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop emby-server
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start emby-server
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -26,10 +26,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\Kv\K[^"]+' | head -n1)
 | 
			
		||||
  RELEASE_FFMPEG=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV-ffmpeg/releases | grep -oP '"tag_name": "\K[^"]+' | head -n 1)
 | 
			
		||||
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.ersatztv 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv ]]; then
 | 
			
		||||
  if check_for_gh_release "ersatztv" "ErsatzTV/ErsatzTV"; then
 | 
			
		||||
    msg_info "Stopping ErsatzTV"
 | 
			
		||||
    systemctl stop ersatzTV
 | 
			
		||||
    msg_ok "Stopped ErsatzTV"
 | 
			
		||||
@@ -41,11 +38,9 @@ function update_script() {
 | 
			
		||||
    msg_ok "Started ErsatzTV"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if [[ "${RELEASE_FFMPEG}" != "$(cat ~/.ersatztv-ffmpeg 2>/dev/null)" ]] || [[ ! -f ~/.ersatztv-ffmpeg ]]; then
 | 
			
		||||
  if check_for_gh_release "ersatztv-ffmpeg" "ErsatzTV/ErsatzTV-ffmpeg"; then
 | 
			
		||||
    msg_info "Stopping ErsatzTV"
 | 
			
		||||
    systemctl stop ersatzTV
 | 
			
		||||
    msg_ok "Stopped ErsatzTV"
 | 
			
		||||
@@ -62,10 +57,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting ErsatzTV"
 | 
			
		||||
    systemctl start ersatzTV
 | 
			
		||||
    msg_ok "Started ErsatzTV"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ErsatzTV-ffmpeg is already at ${RELEASE_FFMPEG}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ APP="ESPHome"
 | 
			
		||||
var_tags="${var_tags:-automation}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.excalidraw 2>/dev/null)" ]] || [[ ! -f ~/.excalidraw ]]; then
 | 
			
		||||
  if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop excalidraw
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
@@ -37,18 +36,15 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/excalidraw
 | 
			
		||||
    fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    cd /opt/excalidraw
 | 
			
		||||
    $STD yarn
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start excalidraw
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.firefly 2>/dev/null)" ]] || [[ ! -f ~/.firefly ]]; then
 | 
			
		||||
  if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
 | 
			
		||||
    msg_info "Stopping Apache2"
 | 
			
		||||
    systemctl stop apache2
 | 
			
		||||
    msg_ok "Stopped Apache2"
 | 
			
		||||
@@ -42,11 +41,11 @@ function update_script() {
 | 
			
		||||
    fetch_and_deploy_gh_release "firefly" "firefly-iii/firefly-iii" "prebuild" "latest" "/opt/firefly" "FireflyIII-*.zip"
 | 
			
		||||
    setup_composer
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    rm -rf /opt/firefly/storage
 | 
			
		||||
    cp /opt/.env /opt/firefly/.env
 | 
			
		||||
    cp -r /opt/storage /opt/firefly/storage
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    chown -R www-data:www-data /opt/firefly
 | 
			
		||||
    find /opt/firefly/storage -type d -exec chmod 775 {} \;
 | 
			
		||||
    find /opt/firefly/storage -type f -exec chmod 664 {} \;
 | 
			
		||||
@@ -58,15 +57,12 @@ function update_script() {
 | 
			
		||||
    $STD php artisan view:clear
 | 
			
		||||
    $STD php artisan firefly-iii:upgrade-database
 | 
			
		||||
    $STD php artisan firefly-iii:laravel-passport-keys
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Apache2"
 | 
			
		||||
    systemctl start apache2
 | 
			
		||||
    msg_ok "Started Apache2"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,20 +28,17 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/FlareSolverr/FlareSolverr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.flaresolverr 2>/dev/null)" ]] || [[ ! -f ~/.flaresolverr ]]; then
 | 
			
		||||
  if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.5"; then
 | 
			
		||||
    msg_info "Stopping service"
 | 
			
		||||
    systemctl stop flaresolverr
 | 
			
		||||
    msg_ok "Stopped service"
 | 
			
		||||
 | 
			
		||||
    rm -rf /opt/flaresolverr
 | 
			
		||||
    fetch_and_deploy_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "prebuild" "latest" "/opt/flaresolverr" "flaresolverr_linux_x64.tar.gz"
 | 
			
		||||
    fetch_and_deploy_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "prebuild" "v3.3.25" "/opt/flaresolverr" "flaresolverr_linux_x64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting service"
 | 
			
		||||
    systemctl start flaresolverr
 | 
			
		||||
    msg_ok "Started service"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/dotnetfactory/fluid-calendar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.fluid-calendar 2>/dev/null)" ]] || [[ ! -f ~/.fluid-calendar ]]; then
 | 
			
		||||
  if check_for_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop fluid-calendar
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
@@ -38,7 +37,7 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/fluid-calendar
 | 
			
		||||
    fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    mv /opt/fluid.env /opt/fluid-calendar/.env
 | 
			
		||||
    cd /opt/fluid-calendar
 | 
			
		||||
    export NEXT_TELEMETRY_DISABLED=1
 | 
			
		||||
@@ -46,15 +45,12 @@ function update_script() {
 | 
			
		||||
    $STD npm run prisma:generate
 | 
			
		||||
    $STD npx prisma migrate deploy
 | 
			
		||||
    $STD npm run build:os
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start fluid-calendar
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								ct/gatus.sh
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								ct/gatus.sh
									
									
									
									
									
								
							@@ -28,33 +28,32 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/TwiN/gatus/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.gatus 2>/dev/null)" ]] || [[ ! -f ~/.gatus ]]; then
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "gatus" "TwiN/gatus"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop gatus
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    if [[ :$PATH: != *":/usr/local/bin:"* ]]; then
 | 
			
		||||
      echo 'export PATH="/usr/local/bin:$PATH"' >>~/.bashrc
 | 
			
		||||
      source ~/.bashrc
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    mv /opt/gatus/config/config.yaml /opt
 | 
			
		||||
    rm -rf /opt/gatus
 | 
			
		||||
    fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    cd /opt/gatus
 | 
			
		||||
    $STD go mod tidy
 | 
			
		||||
    CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
 | 
			
		||||
    setcap CAP_NET_RAW+ep gatus
 | 
			
		||||
    mv /opt/config.yaml config
 | 
			
		||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start gatus
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -32,25 +32,54 @@ function update_script() {
 | 
			
		||||
  APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4)
 | 
			
		||||
  if [[ $APP_VERSION =~ ^2\. ]]; then
 | 
			
		||||
    if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️  VERSION 2.x DETECTED" --yesno \
 | 
			
		||||
      "WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno
 | 
			
		||||
    then
 | 
			
		||||
      "WARNING: Version $APP_VERSION detected!\n\nUpdating from version 2.x will CLEAR ALL CONFIGURATION.\n\nThis includes:\n• API tokens\n• User settings\n• Repository configurations\n• All custom settings\n\nDo you want to continue with the update process?" 15 70 --defaultno; then
 | 
			
		||||
      exit 0
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️  FINAL CONFIRMATION" --yesno \
 | 
			
		||||
        "FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno 
 | 
			
		||||
    then
 | 
			
		||||
        whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
 | 
			
		||||
        exit 0
 | 
			
		||||
      "FINAL WARNING: This update WILL clear all configuration!\n\nBEFORE PROCEEDING, please:\n\n• Copy API tokens to a safe location\n• Backup any custom configurations\n• Note down repository settings\n\nThis action CANNOT be undone!" 18 70 --defaultno; then
 | 
			
		||||
      whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
 | 
			
		||||
      exit 0
 | 
			
		||||
    fi
 | 
			
		||||
    whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \
 | 
			
		||||
        "Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
 | 
			
		||||
      "Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
 | 
			
		||||
    rm -rf /opt/gitea-mirror
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/RayLabsHQ/gitea-mirror/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
 | 
			
		||||
 | 
			
		||||
  if [[ ! -f /opt/gitea-mirror.env ]]; then
 | 
			
		||||
      msg_info "Detected old Enviroment, updating files"
 | 
			
		||||
      APP_SECRET=$(openssl rand -base64 32)
 | 
			
		||||
      HOST_IP=$(hostname -I | awk '{print $1}')
 | 
			
		||||
      cat <<EOF >/opt/gitea-mirror.env
 | 
			
		||||
# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md
 | 
			
		||||
NODE_ENV=production
 | 
			
		||||
HOST=0.0.0.0
 | 
			
		||||
PORT=4321
 | 
			
		||||
DATABASE_URL=sqlite://data/gitea-mirror.db
 | 
			
		||||
BETTER_AUTH_URL=http://${HOST_IP}:4321
 | 
			
		||||
BETTER_AUTH_SECRET=${APP_SECRET}
 | 
			
		||||
npm_package_version=${APP_VERSION}
 | 
			
		||||
EOF
 | 
			
		||||
    rm /etc/systemd/system/gitea-mirror.service
 | 
			
		||||
    cat <<EOF >/etc/systemd/system/gitea-mirror.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Gitea Mirror
 | 
			
		||||
After=network.target
 | 
			
		||||
[Service]
 | 
			
		||||
Type=simple
 | 
			
		||||
WorkingDirectory=/opt/gitea-mirror
 | 
			
		||||
ExecStart=/usr/local/bin/bun dist/server/entry.mjs
 | 
			
		||||
Restart=on-failure
 | 
			
		||||
RestartSec=10
 | 
			
		||||
EnvironmentFile=/opt/gitea-mirror.env
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
    systemctl daemon-reload
 | 
			
		||||
    msg_ok "Old Enviroment fixed"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop gitea-mirror
 | 
			
		||||
    msg_ok "Services Stopped"
 | 
			
		||||
@@ -70,25 +99,23 @@ function update_script() {
 | 
			
		||||
    rm -rf /opt/gitea-mirror
 | 
			
		||||
    fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating and rebuilding ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_info "Updating and rebuilding ${APP}"
 | 
			
		||||
    cd /opt/gitea-mirror
 | 
			
		||||
    $STD bun run setup
 | 
			
		||||
    $STD bun run build
 | 
			
		||||
    APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
 | 
			
		||||
    sudo sed -i.bak "s|^Environment=npm_package_version=.*|Environment=npm_package_version=${APP_VERSION}|" /etc/systemd/system/gitea-mirror.service
 | 
			
		||||
    msg_ok "Updated and rebuilt ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    sudo sed -i.bak "s|^npm_package_version=.*|npm_package_version=${APP_VERSION}|" /opt/gitea-mirror.env
 | 
			
		||||
    msg_ok "Updated and rebuilt ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring Data"
 | 
			
		||||
    cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Restored Data"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl daemon-reload
 | 
			
		||||
    systemctl start gitea-mirror
 | 
			
		||||
    msg_ok "Service Started"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    msg_ok "Update Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.gitea 2>/dev/null)" ]] || [[ ! -f ~/.gitea ]]; then
 | 
			
		||||
  if check_for_gh_release "gitea" "go-gitea/gitea"; then
 | 
			
		||||
    msg_info "Stopping service"
 | 
			
		||||
    systemctl stop gitea
 | 
			
		||||
    msg_ok "Service stopped"
 | 
			
		||||
@@ -41,10 +40,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting service"
 | 
			
		||||
    systemctl start gitea
 | 
			
		||||
    msg_ok "Started service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/glanceapp/glance/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.glance 2>/dev/null)" ]] || [[ ! -f ~/.glance ]]; then
 | 
			
		||||
  if check_for_gh_release "glance" "glanceapp/glance"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop glance
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
@@ -40,10 +39,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start glance
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								ct/globaleaks.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								ct/globaleaks.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 communtiy-scripts ORG
 | 
			
		||||
# Author: Giovanni Pellerano (evilaliv3)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/globaleaks/globaleaks-whistleblowing-software
 | 
			
		||||
 | 
			
		||||
APP="GlobaLeaks"
 | 
			
		||||
var_tags="${var_tags:-whistleblowing-software}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -f /usr/sbin/globaleaks ]]; then
 | 
			
		||||
    msg_error "No ${APP} installation found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating $APP LXC"
 | 
			
		||||
  $STD apt update
 | 
			
		||||
  $STD apt -y upgrade
 | 
			
		||||
  msg_ok "Updated $APP LXC"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN} ${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}${CL}"
 | 
			
		||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/AlexxIT/go2rtc/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.go2rtc 2>/dev/null)" ]] || [[ ! -f ~/.go2rtc ]]; then
 | 
			
		||||
  if check_for_gh_release "go2rtc" "AlexxIT/go2rtc"; then
 | 
			
		||||
    msg_info "Stopping service"
 | 
			
		||||
    systemctl stop go2rtc
 | 
			
		||||
    msg_ok "Stopped service"
 | 
			
		||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting service"
 | 
			
		||||
    systemctl start go2rtc
 | 
			
		||||
    msg_ok "Started service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										54
									
								
								ct/goaway.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								ct/goaway.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
#!/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/pommee/goaway
 | 
			
		||||
 | 
			
		||||
APP="GoAway"
 | 
			
		||||
var_tags="${var_tags:-network}"
 | 
			
		||||
var_cpu="${var_cpu:-1}"
 | 
			
		||||
var_ram="${var_ram:-1024}"
 | 
			
		||||
var_disk="${var_disk:-4}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
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/goaway ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "goaway" "pommee/goaway"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop goaway
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "goaway" "pommee/goaway" "prebuild" "latest" "/opt/goaway" "goaway_*_linux_amd64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start goaway
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"
 | 
			
		||||
							
								
								
									
										24
									
								
								ct/gokapi.sh
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								ct/gokapi.sh
									
									
									
									
									
								
							@@ -20,19 +20,14 @@ color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
   header_info
 | 
			
		||||
   check_container_storage
 | 
			
		||||
   check_container_resources
 | 
			
		||||
   if [[ ! -d /opt/gokapi ]]; then
 | 
			
		||||
      msg_error "No ${APP} Installation Found!"
 | 
			
		||||
      exit
 | 
			
		||||
   fi
 | 
			
		||||
   if [[ -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
      mv /opt/${APP}_version ~/.gokapi
 | 
			
		||||
   fi
 | 
			
		||||
 | 
			
		||||
   RELEASE=$(curl -fsSL https://api.github.com/repos/Forceu/Gokapi/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
   if [[ "${RELEASE}" != "$(cat ~/.gokapi 2>/dev/null)" ]] || [[ ! -f ~/.gokapi ]]; then
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/gokapi ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "gokapi" "Forceu/Gokapi"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop gokapi
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
@@ -42,10 +37,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start gokapi
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										78
									
								
								ct/gomft.sh
									
									
									
									
									
								
							
							
						
						
									
										78
									
								
								ct/gomft.sh
									
									
									
									
									
								
							@@ -28,91 +28,17 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if ! dpkg -l | grep -q "^ii.*build-essential"; then
 | 
			
		||||
    $STD apt-get install -y build-essential
 | 
			
		||||
  fi
 | 
			
		||||
  if [[ ! -f "/usr/bin/node" ]]; then
 | 
			
		||||
    mkdir -p /etc/apt/keyrings
 | 
			
		||||
    curl -fsSL "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
 | 
			
		||||
    echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get install -y nodejs
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL "https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest" | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
 | 
			
		||||
  if check_for_gh_release "gomft" "StarFleetCPTN/GoMFT"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop gomft
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
    if ! command -v git >/dev/null 2>&1; then
 | 
			
		||||
      $STD apt-get install -y git
 | 
			
		||||
    fi
 | 
			
		||||
    rm -f /opt/gomft/gomft
 | 
			
		||||
    temp_file=$(mktemp)
 | 
			
		||||
    curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
 | 
			
		||||
    tar -xzf "$temp_file"
 | 
			
		||||
    cp -rf "GoMFT-${RELEASE}"/* /opt/gomft/
 | 
			
		||||
    cd /opt/gomft
 | 
			
		||||
    $STD npm install
 | 
			
		||||
    $STD npm run build
 | 
			
		||||
    TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)"
 | 
			
		||||
    $STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION}
 | 
			
		||||
    # dirty hack to fix templ
 | 
			
		||||
    cat <<'EOF' >/opt/gomft/components/file_metadata/search/file_metadata_search_content.templ
 | 
			
		||||
package search
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
    "context"
 | 
			
		||||
    "github.com/starfleetcptn/gomft/components/file_metadata"
 | 
			
		||||
    "github.com/starfleetcptn/gomft/components/file_metadata/list"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
templ FileMetadataSearchContent(ctx context.Context, data file_metadata.FileMetadataSearchData) {
 | 
			
		||||
    <!-- Search Results -->
 | 
			
		||||
    <div id="search-results">
 | 
			
		||||
        if len(data.Files) > 0 {
 | 
			
		||||
            @list.FileMetadataListPartial(ctx, file_metadata.FileMetadataListData{
 | 
			
		||||
                Files:      data.Files,
 | 
			
		||||
                Page:       data.Page,
 | 
			
		||||
                Limit:      data.Limit,
 | 
			
		||||
                TotalCount: data.TotalCount,
 | 
			
		||||
                TotalPages: data.TotalPages,
 | 
			
		||||
                Filter:     data.Filter,
 | 
			
		||||
                SortBy:     data.SortBy,
 | 
			
		||||
                SortDir:    data.SortDir,
 | 
			
		||||
            }, "/files/search/partial", "#search-results-container")
 | 
			
		||||
        } else {
 | 
			
		||||
            <div class="p-6 text-center text-gray-500 dark:text-gray-400">
 | 
			
		||||
                <svg class="mx-auto mb-4 w-12 h-12 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
 | 
			
		||||
                    <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
 | 
			
		||||
                </svg>
 | 
			
		||||
                <p>No files found matching your search criteria.</p>
 | 
			
		||||
            </div>
 | 
			
		||||
        }
 | 
			
		||||
    </div>
 | 
			
		||||
}
 | 
			
		||||
EOF
 | 
			
		||||
    $STD "$HOME"/go/bin/templ generate
 | 
			
		||||
    export CGO_ENABLED=1
 | 
			
		||||
    export GOOS=linux
 | 
			
		||||
    $STD go build -o gomft
 | 
			
		||||
    chmod +x /opt/gomft/gomft
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning Up"
 | 
			
		||||
    rm -f "$temp_file"
 | 
			
		||||
    rm -rf "$HOME/GoMFT-v.${RELEASE}/"
 | 
			
		||||
    msg_ok "Cleanup Complete"
 | 
			
		||||
    fetch_and_deploy_gh_release "gomft" "StarFleetCPTN/GoMFT" "singlefile" "latest" "/opt/gomft" "gomft*linux-amd64"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start gomft
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/gotify/server/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.gotify 2>/dev/null)" ]] || [[ ! -f ~/.gotify ]]; then
 | 
			
		||||
  if check_for_gh_release "gotify" "gotify/server"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop gotify
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
@@ -40,10 +38,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start gotify
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								ct/grist.sh
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								ct/grist.sh
									
									
									
									
									
								
							@@ -1,5 +1,8 @@
 | 
			
		||||
#!/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: cfurrow | Co-Author: Slaviša Arežina (tremor021)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://github.com/gristlabs/grist-core
 | 
			
		||||
 | 
			
		||||
APP="Grist"
 | 
			
		||||
@@ -26,57 +29,34 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/gristlabs/grist-core/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "grist" "gristlabs/grist-core"; then
 | 
			
		||||
    msg_info "Stopping ${APP} Service"
 | 
			
		||||
    systemctl stop grist
 | 
			
		||||
    msg_ok "Stopped ${APP} Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    cd /opt
 | 
			
		||||
    rm -rf grist_bak
 | 
			
		||||
    msg_info "Creating backup"
 | 
			
		||||
    rm -rf /opt/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")
 | 
			
		||||
    $STD unzip v$RELEASE.zip
 | 
			
		||||
    mv grist-core-${RELEASE} grist
 | 
			
		||||
    msg_ok "Backup created"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    mkdir -p grist/docs
 | 
			
		||||
 | 
			
		||||
    cp -n grist_bak/.env grist/.env || true
 | 
			
		||||
    cp -r grist_bak/docs/* grist/docs/ || true
 | 
			
		||||
    cp grist_bak/grist-sessions.db grist/grist-sessions.db || true
 | 
			
		||||
    cp grist_bak/landing.db grist/landing.db || true
 | 
			
		||||
 | 
			
		||||
    cd grist
 | 
			
		||||
    msg_info "Installing Dependencies"
 | 
			
		||||
    cp -n /opt/grist_bak/.env /opt/grist/.env
 | 
			
		||||
    cp -r /opt/grist_bak/docs/* /opt/grist/docs/
 | 
			
		||||
    cp /opt/grist_bak/grist-sessions.db /opt/grist/grist-sessions.db
 | 
			
		||||
    cp /opt/grist_bak/landing.db /opt/grist/landing.db
 | 
			
		||||
    $STD yarn install
 | 
			
		||||
    msg_ok "Installed Dependencies"
 | 
			
		||||
 | 
			
		||||
    msg_info "Building"
 | 
			
		||||
    $STD yarn run build:prod
 | 
			
		||||
    msg_ok "Done building"
 | 
			
		||||
 | 
			
		||||
    msg_info "Installing Python"
 | 
			
		||||
    $STD yarn run install:python
 | 
			
		||||
    msg_ok "Installed Python"
 | 
			
		||||
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP} Service"
 | 
			
		||||
    systemctl start grist
 | 
			
		||||
    msg_ok "Started ${APP} Service"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf /opt/v$RELEASE.zip
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully!\n"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,19 +27,14 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
  php_ver=$(php -v | head -n 1 | awk '{print $2}')
 | 
			
		||||
  if [[ ! $php_ver == "8.3"* ]]; then
 | 
			
		||||
    PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/grocy/grocy/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.grocy 2>/dev/null)" ]] || [[ ! -f ~/.grocy ]]; then
 | 
			
		||||
  if check_for_gh_release "grocy" "grocy/grocy"; then
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    bash /var/www/html/update.sh
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -29,9 +29,7 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha" setup_nodejs
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/HabitRPG/habitica/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.habitica 2>/dev/null)" ]] || [[ ! -f ~/.habitica ]]; then
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "habitica" "HabitRPG/habitica"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop habitica-mongodb
 | 
			
		||||
    systemctl stop habitica
 | 
			
		||||
@@ -48,13 +46,13 @@ function update_script() {
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    cd /opt/habitica
 | 
			
		||||
    $STD npm i
 | 
			
		||||
    $STD npm run postinstall
 | 
			
		||||
    $STD npm run client:build
 | 
			
		||||
    $STD gulp build:prod
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Restoring configuration"
 | 
			
		||||
    if [[ -f ~/config.json ]]; then
 | 
			
		||||
@@ -69,10 +67,7 @@ function update_script() {
 | 
			
		||||
    systemctl start habitica
 | 
			
		||||
    systemctl start habitica-client
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/alpine-caddy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-caddy
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ___    __      _                  ______          __    __     
 | 
			
		||||
   /   |  / /___  (_)___  ___        / ____/___ _____/ /___/ /_  __
 | 
			
		||||
  / /| | / / __ \/ / __ \/ _ \______/ /   / __ `/ __  / __  / / / /
 | 
			
		||||
 / ___ |/ / /_/ / / / / /  __/_____/ /___/ /_/ / /_/ / /_/ / /_/ / 
 | 
			
		||||
/_/  |_/_/ .___/_/_/ /_/\___/      \____/\__,_/\__,_/\__,_/\__, /  
 | 
			
		||||
        /_/                                               /____/   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/alpine-redlib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-redlib
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ___    __      _                  ____           _____ __  
 | 
			
		||||
   /   |  / /___  (_)___  ___        / __ \___  ____/ / (_) /_ 
 | 
			
		||||
  / /| | / / __ \/ / __ \/ _ \______/ /_/ / _ \/ __  / / / __ \
 | 
			
		||||
 / ___ |/ / /_/ / / / / /  __/_____/ _, _/  __/ /_/ / / / /_/ /
 | 
			
		||||
/_/  |_/_/ .___/_/_/ /_/\___/     /_/ |_|\___/\__,_/_/_/_.___/ 
 | 
			
		||||
        /_/                                                    
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/alpine-rustdeskserver
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-rustdeskserver
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ___    __      _                  ____             __  ____            __   _____                          
 | 
			
		||||
   /   |  / /___  (_)___  ___        / __ \__  _______/ /_/ __ \___  _____/ /__/ ___/___  ______   _____  _____
 | 
			
		||||
  / /| | / / __ \/ / __ \/ _ \______/ /_/ / / / / ___/ __/ / / / _ \/ ___/ //_/\__ \/ _ \/ ___/ | / / _ \/ ___/
 | 
			
		||||
 / ___ |/ / /_/ / / / / /  __/_____/ _, _/ /_/ (__  ) /_/ /_/ /  __(__  ) ,<  ___/ /  __/ /   | |/ /  __/ /    
 | 
			
		||||
/_/  |_/_/ .___/_/_/ /_/\___/     /_/ |_|\__,_/____/\__/_____/\___/____/_/|_|/____/\___/_/    |___/\___/_/     
 | 
			
		||||
        /_/                                                                                                    
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/autocaliweb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/autocaliweb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ___         __                   ___               __  
 | 
			
		||||
   /   | __  __/ /_____  _________ _/ (_)      _____  / /_ 
 | 
			
		||||
  / /| |/ / / / __/ __ \/ ___/ __ `/ / / | /| / / _ \/ __ \
 | 
			
		||||
 / ___ / /_/ / /_/ /_/ / /__/ /_/ / / /| |/ |/ /  __/ /_/ /
 | 
			
		||||
/_/  |_\__,_/\__/\____/\___/\__,_/_/_/ |__/|__/\___/_.___/ 
 | 
			
		||||
                                                           
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/globaleaks
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/globaleaks
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   ________      __          __               __       
 | 
			
		||||
  / ____/ /___  / /_  ____ _/ /   ___  ____ _/ /_______
 | 
			
		||||
 / / __/ / __ \/ __ \/ __ `/ /   / _ \/ __ `/ //_/ ___/
 | 
			
		||||
/ /_/ / / /_/ / /_/ / /_/ / /___/  __/ /_/ / ,< (__  ) 
 | 
			
		||||
\____/_/\____/_.___/\__,_/_____/\___/\__,_/_/|_/____/  
 | 
			
		||||
                                                       
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/goaway
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/goaway
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   ______      ___                      
 | 
			
		||||
  / ____/___  /   |_      ______ ___  __
 | 
			
		||||
 / / __/ __ \/ /| | | /| / / __ `/ / / /
 | 
			
		||||
/ /_/ / /_/ / ___ | |/ |/ / /_/ / /_/ / 
 | 
			
		||||
\____/\____/_/  |_|__/|__/\__,_/\__, /  
 | 
			
		||||
                               /____/   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/healthchecks
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/healthchecks
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    __               ____  __         __              __       
 | 
			
		||||
   / /_  ___  ____ _/ / /_/ /_  _____/ /_  ___  _____/ /_______
 | 
			
		||||
  / __ \/ _ \/ __ `/ / __/ __ \/ ___/ __ \/ _ \/ ___/ //_/ ___/
 | 
			
		||||
 / / / /  __/ /_/ / / /_/ / / / /__/ / / /  __/ /__/ ,< (__  ) 
 | 
			
		||||
/_/ /_/\___/\__,_/_/\__/_/ /_/\___/_/ /_/\___/\___/_/|_/____/  
 | 
			
		||||
                                                               
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
    __  __                     __         
 | 
			
		||||
   / / / /___  ____ __________/ /__  _____
 | 
			
		||||
  / /_/ / __ \/ __ `/ ___/ __  / _ \/ ___/
 | 
			
		||||
 / __  / /_/ / /_/ / /  / /_/ /  __/ /    
 | 
			
		||||
/_/ /_/\____/\__,_/_/   \__,_/\___/_/     
 | 
			
		||||
                                          
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/joplin-server
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/joplin-server
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
       __            ___            _____                          
 | 
			
		||||
      / /___  ____  / (_)___       / ___/___  ______   _____  _____
 | 
			
		||||
 __  / / __ \/ __ \/ / / __ \______\__ \/ _ \/ ___/ | / / _ \/ ___/
 | 
			
		||||
/ /_/ / /_/ / /_/ / / / / / /_____/__/ /  __/ /   | |/ /  __/ /    
 | 
			
		||||
\____/\____/ .___/_/_/_/ /_/     /____/\___/_/    |___/\___/_/     
 | 
			
		||||
          /_/                                                      
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/leantime
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/leantime
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    __                     __  _              
 | 
			
		||||
   / /   ___  ____ _____  / /_(_)___ ___  ___ 
 | 
			
		||||
  / /   / _ \/ __ `/ __ \/ __/ / __ `__ \/ _ \
 | 
			
		||||
 / /___/  __/ /_/ / / / / /_/ / / / / / /  __/
 | 
			
		||||
/_____/\___/\__,_/_/ /_/\__/_/_/ /_/ /_/\___/ 
 | 
			
		||||
                                              
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/litellm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/litellm
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    __    _ __       __    __    __  ___
 | 
			
		||||
   / /   (_) /____  / /   / /   /  |/  /
 | 
			
		||||
  / /   / / __/ _ \/ /   / /   / /|_/ / 
 | 
			
		||||
 / /___/ / /_/  __/ /___/ /___/ /  / /  
 | 
			
		||||
/_____/_/\__/\___/_____/_____/_/  /_/   
 | 
			
		||||
                                        
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/mediamanager
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/mediamanager
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    __  ___         ___       __  ___                                 
 | 
			
		||||
   /  |/  /__  ____/ (_)___ _/  |/  /___ _____  ____ _____ ____  _____
 | 
			
		||||
  / /|_/ / _ \/ __  / / __ `/ /|_/ / __ `/ __ \/ __ `/ __ `/ _ \/ ___/
 | 
			
		||||
 / /  / /  __/ /_/ / / /_/ / /  / / /_/ / / / / /_/ / /_/ /  __/ /    
 | 
			
		||||
/_/  /_/\___/\__,_/_/\__,_/_/  /_/\__,_/_/ /_/\__,_/\__, /\___/_/     
 | 
			
		||||
                                                   /____/             
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
    ____  _                   _     
 | 
			
		||||
   / __ \(_)___  ____ __   __(_)___ 
 | 
			
		||||
  / /_/ / / __ \/ __ `/ | / / / __ \
 | 
			
		||||
 / ____/ / / / / /_/ /| |/ / / / / /
 | 
			
		||||
/_/   /_/_/ /_/\__, / |___/_/_/ /_/ 
 | 
			
		||||
              /____/                
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/resiliosync
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/resiliosync
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
    ____            _ ___          _____                 
 | 
			
		||||
   / __ \___  _____(_) (_)___     / ___/__  ______  _____
 | 
			
		||||
  / /_/ / _ \/ ___/ / / / __ \    \__ \/ / / / __ \/ ___/
 | 
			
		||||
 / _, _/  __(__  ) / / / /_/ /   ___/ / /_/ / / / / /__  
 | 
			
		||||
/_/ |_|\___/____/_/_/_/\____/   /____/\__, /_/ /_/\___/  
 | 
			
		||||
                                     /____/              
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/scraparr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/scraparr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   _____                                      
 | 
			
		||||
  / ___/______________ _____  ____ ___________
 | 
			
		||||
  \__ \/ ___/ ___/ __ `/ __ \/ __ `/ ___/ ___/
 | 
			
		||||
 ___/ / /__/ /  / /_/ / /_/ / /_/ / /  / /    
 | 
			
		||||
/____/\___/_/   \__,_/ .___/\__,_/_/  /_/     
 | 
			
		||||
                    /_/                       
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/signoz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/signoz
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   _____ _       _   __         
 | 
			
		||||
  / ___/(_)___ _/ | / /___  ____
 | 
			
		||||
  \__ \/ / __ `/  |/ / __ \/_  /
 | 
			
		||||
 ___/ / / /_/ / /|  / /_/ / / /_
 | 
			
		||||
/____/_/\__, /_/ |_/\____/ /___/
 | 
			
		||||
       /____/                   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/stylus
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/stylus
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   _____ __        __          
 | 
			
		||||
  / ___// /___  __/ /_  _______
 | 
			
		||||
  \__ \/ __/ / / / / / / / ___/
 | 
			
		||||
 ___/ / /_/ /_/ / / /_/ (__  ) 
 | 
			
		||||
/____/\__/\__, /_/\__,_/____/  
 | 
			
		||||
         /____/                
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/swizzin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/swizzin
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   _____         _           _     
 | 
			
		||||
  / ___/      __(_)_______  (_)___ 
 | 
			
		||||
  \__ \ | /| / / /_  /_  / / / __ \
 | 
			
		||||
 ___/ / |/ |/ / / / /_/ /_/ / / / /
 | 
			
		||||
/____/|__/|__/_/ /___/___/_/_/ /_/ 
 | 
			
		||||
                                   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/telegraf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/telegraf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   __       __                      ____
 | 
			
		||||
  / /____  / /__  ____ __________ _/ __/
 | 
			
		||||
 / __/ _ \/ / _ \/ __ `/ ___/ __ `/ /_  
 | 
			
		||||
/ /_/  __/ /  __/ /_/ / /  / /_/ / __/  
 | 
			
		||||
\__/\___/_/\___/\__, /_/   \__,_/_/     
 | 
			
		||||
               /____/                   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/tracktor
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/tracktor
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   __                  __   __            
 | 
			
		||||
  / /__________ ______/ /__/ /_____  _____
 | 
			
		||||
 / __/ ___/ __ `/ ___/ //_/ __/ __ \/ ___/
 | 
			
		||||
/ /_/ /  / /_/ / /__/ ,< / /_/ /_/ / /    
 | 
			
		||||
\__/_/   \__,_/\___/_/|_|\__/\____/_/     
 | 
			
		||||
                                          
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/tunarr
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/tunarr
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
  ______                           
 | 
			
		||||
 /_  __/_  ______  ____ ___________
 | 
			
		||||
  / / / / / / __ \/ __ `/ ___/ ___/
 | 
			
		||||
 / / / /_/ / / / / /_/ / /  / /    
 | 
			
		||||
/_/  \__,_/_/ /_/\__,_/_/  /_/     
 | 
			
		||||
                                   
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/twingate-connector
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/twingate-connector
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
  ______         _                   __             ______                            __            
 | 
			
		||||
 /_  __/      __(_)___  ____ _____ _/ /____        / ____/___  ____  ____  ___  _____/ /_____  _____
 | 
			
		||||
  / / | | /| / / / __ \/ __ `/ __ `/ __/ _ \______/ /   / __ \/ __ \/ __ \/ _ \/ ___/ __/ __ \/ ___/
 | 
			
		||||
 / /  | |/ |/ / / / / / /_/ / /_/ / /_/  __/_____/ /___/ /_/ / / / / / / /  __/ /__/ /_/ /_/ / /    
 | 
			
		||||
/_/   |__/|__/_/_/ /_/\__, /\__,_/\__/\___/      \____/\____/_/ /_/_/ /_/\___/\___/\__/\____/_/     
 | 
			
		||||
                     /____/                                                                         
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/uhf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/uhf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   __  ____  ________
 | 
			
		||||
  / / / / / / / ____/
 | 
			
		||||
 / / / / /_/ / /_    
 | 
			
		||||
/ /_/ / __  / __/    
 | 
			
		||||
\____/_/ /_/_/       
 | 
			
		||||
                     
 | 
			
		||||
							
								
								
									
										6
									
								
								ct/headers/upsnap
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/upsnap
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
   __  __     _____                 
 | 
			
		||||
  / / / /___ / ___/____  ____ _____ 
 | 
			
		||||
 / / / / __ \\__ \/ __ \/ __ `/ __ \
 | 
			
		||||
/ /_/ / /_/ /__/ / / / / /_/ / /_/ /
 | 
			
		||||
\____/ .___/____/_/ /_/\__,_/ .___/ 
 | 
			
		||||
    /_/                    /_/      
 | 
			
		||||
@@ -31,8 +31,7 @@ function update_script() {
 | 
			
		||||
    mv /opt/"${APP}_version.txt" ~/.headscale
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/juanfont/headscale/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.headscale 2>/dev/null)" ]] || [[ ! -f ~/.headscale ]]; then
 | 
			
		||||
  if check_for_gh_release "headscale" "juanfont/headscale"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop headscale
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
@@ -41,12 +40,9 @@ function update_script() {
 | 
			
		||||
    fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    # Temporary fix until headscale project resolves service getting disabled on updates.
 | 
			
		||||
    systemctl enable -q --now headscale
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
@@ -57,3 +53,5 @@ 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}Headscale API: ${IP}/api (no Frontend) | headscale-admin: http://${IP}/admin/${CL}"
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										65
									
								
								ct/healthchecks.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								ct/healthchecks.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 community-scripts ORG
 | 
			
		||||
# Author: MickLesk (CanbiZ)
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://healthchecks.io/
 | 
			
		||||
 | 
			
		||||
APP="healthchecks"
 | 
			
		||||
var_tags="${var_tags:-monitoring}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-2048}"
 | 
			
		||||
var_disk="${var_disk:-5}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
 | 
			
		||||
  if [[ ! -d /opt/healthchecks ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "healthchecks" "healthchecks/healthchecks"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop healthchecks
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
 | 
			
		||||
    setup_uv
 | 
			
		||||
    fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    cd /opt/healthchecks
 | 
			
		||||
    mkdir -p /opt/healthchecks/static-collected/
 | 
			
		||||
    $STD uv pip install wheel gunicorn -r requirements.txt --system
 | 
			
		||||
    $STD uv run -- python manage.py makemigrations
 | 
			
		||||
    $STD uv run -- python manage.py migrate --noinput
 | 
			
		||||
    $STD uv run -- python manage.py collectstatic --noinput
 | 
			
		||||
    $STD uv run -- python manage.py compress
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start healthchecks
 | 
			
		||||
    systemctl restart caddy
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}${CL}"
 | 
			
		||||
@@ -1,85 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
			
		||||
# Copyright (c) 2021-2025 tteck
 | 
			
		||||
# Author: MickLesk (Canbiz) & vhsdream
 | 
			
		||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
			
		||||
# Source: https://hoarder.app/
 | 
			
		||||
 | 
			
		||||
APP="Hoarder"
 | 
			
		||||
var_tags="${var_tags:-bookmark}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-10}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
variables
 | 
			
		||||
color
 | 
			
		||||
catch_errors
 | 
			
		||||
 | 
			
		||||
function update_script() {
 | 
			
		||||
  header_info
 | 
			
		||||
  check_container_storage
 | 
			
		||||
  check_container_resources
 | 
			
		||||
  if [[ ! -d /opt/hoarder ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/hoarder-app/hoarder/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  PREV_RELEASE=$(cat /opt/${APP}_version.txt)
 | 
			
		||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "${PREV_RELEASE}" ]]; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop hoarder-web hoarder-workers hoarder-browser
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
    if [[ $(corepack -v) < "0.31.0" ]]; then
 | 
			
		||||
      $STD npm install -g corepack@0.31.0
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
 | 
			
		||||
      $STD apt-get install -y graphicsmagick ghostscript
 | 
			
		||||
    fi
 | 
			
		||||
    cd /opt
 | 
			
		||||
    if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
 | 
			
		||||
      mkdir -p /etc/hoarder
 | 
			
		||||
      mv /opt/hoarder/.env /etc/hoarder/hoarder.env
 | 
			
		||||
    fi
 | 
			
		||||
    rm -rf /opt/hoarder
 | 
			
		||||
    curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
 | 
			
		||||
    $STD unzip v"${RELEASE}".zip
 | 
			
		||||
    mv karakeep-"${RELEASE}" /opt/hoarder
 | 
			
		||||
    cd /opt/hoarder/apps/web
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    $STD pnpm exec next build --experimental-build-mode compile
 | 
			
		||||
    cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
 | 
			
		||||
    cd /opt/hoarder/apps/workers
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    export DATA_DIR=/opt/hoarder_data
 | 
			
		||||
    cd /opt/hoarder/packages/db
 | 
			
		||||
    $STD pnpm migrate
 | 
			
		||||
    sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start hoarder-browser hoarder-workers hoarder-web
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -R /opt/v"${RELEASE}".zip
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required.  ${APP} is already at ${RELEASE}."
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
 | 
			
		||||
@@ -81,9 +81,8 @@ EOF
 | 
			
		||||
    msg_ok "Updated Services"
 | 
			
		||||
    systemctl daemon-reload
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/homarr-labs/homarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "homarr" "homarr-labs/homarr"; then
 | 
			
		||||
    msg_info "Stopping Services (Patience)"
 | 
			
		||||
    systemctl stop homarr
 | 
			
		||||
    msg_ok "Services Stopped"
 | 
			
		||||
@@ -98,7 +97,6 @@ EOF
 | 
			
		||||
    $STD apt upgrade nodejs -y
 | 
			
		||||
    msg_ok "Updated Nodejs"
 | 
			
		||||
 | 
			
		||||
    $STD command -v jq || $STD apt-get update && $STD apt-get install -y jq
 | 
			
		||||
    NODE_VERSION=$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.engines.node | split(">=")[1] | split(".")[0]')
 | 
			
		||||
    NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
 | 
			
		||||
    setup_nodejs
 | 
			
		||||
@@ -106,7 +104,7 @@ EOF
 | 
			
		||||
    rm -rf /opt/homarr
 | 
			
		||||
    fetch_and_deploy_gh_release "homarr" "homarr-labs/homarr"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating and rebuilding ${APP} to v${RELEASE} (Patience)"
 | 
			
		||||
    msg_info "Updating and rebuilding ${APP} (Patience)"
 | 
			
		||||
    rm /opt/run_homarr.sh
 | 
			
		||||
    cat <<'EOF' >/opt/run_homarr.sh
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
@@ -153,7 +151,6 @@ EOF
 | 
			
		||||
 | 
			
		||||
    mkdir /opt/homarr/build
 | 
			
		||||
    cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node
 | 
			
		||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
@@ -164,8 +161,6 @@ EOF
 | 
			
		||||
    if [[ "$choice" =~ ^[Yy]$ ]]; then
 | 
			
		||||
      reboot
 | 
			
		||||
    fi
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,18 +27,20 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if [[ -x /opt/homebox ]]; then
 | 
			
		||||
    sed -i 's|/opt\b|/opt/homebox|g' /etc/systemd/system/homebox.service
 | 
			
		||||
    sed -i 's|^ExecStart=/opt/homebox$|ExecStart=/opt/homebox/homebox|' /etc/systemd/system/homebox.service
 | 
			
		||||
    sed -i 's|WorkingDirectory=/opt$|WorkingDirectory=/opt/homebox|' /etc/systemd/system/homebox.service
 | 
			
		||||
    sed -i 's|ExecStart=/opt/homebox$|ExecStart=/opt/homebox/homebox|' /etc/systemd/system/homebox.service
 | 
			
		||||
    sed -i 's|EnvironmentFile=/opt/.env$|EnvironmentFile=/opt/homebox/.env|' /etc/systemd/system/homebox.service
 | 
			
		||||
    systemctl daemon-reload
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/sysadminsmedia/homebox/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.homebox 2>/dev/null)" ]] || [[ ! -f ~/.homebox ]]; then
 | 
			
		||||
  if check_for_gh_release "homebox" "sysadminsmedia/homebox"; then
 | 
			
		||||
    msg_info "Stopping ${APP}"
 | 
			
		||||
    systemctl stop homebox
 | 
			
		||||
    msg_ok "${APP} Stopped"
 | 
			
		||||
 | 
			
		||||
    [ -x /opt/homebox ] && rm -f /opt/homebox
 | 
			
		||||
    if [ -f /opt/homebox ] && [ -x /opt/homebox ]; then
 | 
			
		||||
      rm -f /opt/homebox
 | 
			
		||||
    fi
 | 
			
		||||
    fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_x86_64.tar.gz"
 | 
			
		||||
    chmod +x /opt/homebox/homebox
 | 
			
		||||
    [ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
 | 
			
		||||
@@ -47,10 +49,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting ${APP}"
 | 
			
		||||
    systemctl start homebox
 | 
			
		||||
    msg_ok "Started ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/danielbrendel/hortusfox-web/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
			
		||||
  if [[ ! -f ~/.hortusfox ]] || [[ "${RELEASE}" != "$(cat ~/.hortusfox)" ]]; then
 | 
			
		||||
  if check_for_gh_release "hortusfox" "danielbrendel/hortusfox-web"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop apache2
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
@@ -58,8 +57,6 @@ function update_script() {
 | 
			
		||||
    rm -r /opt/hortusfox-backup
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -30,26 +30,24 @@ function update_script() {
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  setup_uv
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/plexguide/Huntarr.io/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}')
 | 
			
		||||
  if [[ -f ~/.huntarr && "${RELEASE}" == "$(cat ~/.huntarr)" ]]; then
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    exit
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "huntarr" "plexguide/Huntarr.io"; then
 | 
			
		||||
    msg_info "Stopping huntarr"
 | 
			
		||||
    systemctl stop huntarr
 | 
			
		||||
    msg_ok "Stopped huntarr"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
 | 
			
		||||
 | 
			
		||||
    msg_info "Configuring $APP"
 | 
			
		||||
    cd /opt/huntarr
 | 
			
		||||
    $STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
 | 
			
		||||
    msg_ok "Configured $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start huntarr
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping huntarr service"
 | 
			
		||||
  systemctl stop huntarr
 | 
			
		||||
  msg_ok "Stopped huntarr service"
 | 
			
		||||
 | 
			
		||||
  fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
 | 
			
		||||
  msg_info "Configuring $APP"
 | 
			
		||||
  cd /opt/huntarr
 | 
			
		||||
  $STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
 | 
			
		||||
  msg_ok "Configured $APP"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting $APP"
 | 
			
		||||
  systemctl start huntarr
 | 
			
		||||
  msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
  msg_ok "Updated $APP to v${RELEASE}"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										266
									
								
								ct/immich.sh
									
									
									
									
									
								
							
							
						
						
									
										266
									
								
								ct/immich.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_disk="${var_disk:-20}"
 | 
			
		||||
var_cpu="${var_cpu:-4}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_os="${var_os:-debian}"
 | 
			
		||||
var_version="${var_version:-12}"
 | 
			
		||||
var_version="${var_version:-13}"
 | 
			
		||||
var_unprivileged="${var_unprivileged:-1}"
 | 
			
		||||
 | 
			
		||||
header_info "$APP"
 | 
			
		||||
@@ -27,8 +27,21 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if [[ -f /etc/apt/sources.list.d/immich.list ]]; then
 | 
			
		||||
    msg_error "Wrong Debian version detected!"
 | 
			
		||||
    msg_error "You must upgrade your LXC to Debian Trixie before updating."
 | 
			
		||||
    msg_error "Please visit https://github.com/community-scripts/ProxmoxVE/discussions/7726 for details."
 | 
			
		||||
    echo "${TAB3}  If you have upgraded your LXC to Trixie and you still see this message, please open an Issue in the Community-Scripts repo."
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  setup_uv
 | 
			
		||||
  PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
 | 
			
		||||
  NODE_VERSION="22" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
 | 
			
		||||
 | 
			
		||||
  if dpkg -l | grep -q "libmimalloc2.0"; then
 | 
			
		||||
    $STD apt-get update && $STD apt-get install -y libmimalloc3
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  STAGING_DIR=/opt/staging
 | 
			
		||||
  BASE_DIR=${STAGING_DIR}/base-images
 | 
			
		||||
@@ -43,8 +56,10 @@ function update_script() {
 | 
			
		||||
      for url in "${INTEL_URLS[@]}"; do
 | 
			
		||||
        curl -fsSLO "$url"
 | 
			
		||||
      done
 | 
			
		||||
      $STD apt-mark unhold libigdgmm12
 | 
			
		||||
      $STD apt install -y ./*.deb
 | 
			
		||||
      rm ./*.deb
 | 
			
		||||
      $STD apt-mark hold libigdgmm12
 | 
			
		||||
      msg_ok "Intel iGPU dependencies updated"
 | 
			
		||||
    fi
 | 
			
		||||
    rm ~/Dockerfile
 | 
			
		||||
@@ -52,147 +67,132 @@ function update_script() {
 | 
			
		||||
  if [[ -f ~/.immich_library_revisions ]]; then
 | 
			
		||||
    libraries=("libjxl" "libheif" "libraw" "imagemagick" "libvips")
 | 
			
		||||
    cd "$BASE_DIR"
 | 
			
		||||
    msg_info "Checking for updates to custom image-processing libraries"
 | 
			
		||||
    $STD git pull
 | 
			
		||||
    for library in "${libraries[@]}"; do
 | 
			
		||||
      compile_"$library"
 | 
			
		||||
    done
 | 
			
		||||
    msg_ok "Image-processing libraries updated"
 | 
			
		||||
    msg_ok "Image-processing libraries up to date"
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE="1.138.0"
 | 
			
		||||
  #RELEASE=$(curl -fsSL https://api.github.com/repos/immich-app/immich/releases?per_page=1 | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping ${APP} services"
 | 
			
		||||
  systemctl stop immich-web
 | 
			
		||||
  systemctl stop immich-ml
 | 
			
		||||
  msg_ok "Stopped ${APP}"
 | 
			
		||||
  INSTALL_DIR="/opt/${APP}"
 | 
			
		||||
  UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
 | 
			
		||||
  SRC_DIR="${INSTALL_DIR}/source"
 | 
			
		||||
  APP_DIR="${INSTALL_DIR}/app"
 | 
			
		||||
  ML_DIR="${APP_DIR}/machine-learning"
 | 
			
		||||
  GEO_DIR="${INSTALL_DIR}/geodata"
 | 
			
		||||
  VCHORD_RELEASE="0.4.3"
 | 
			
		||||
  # VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
 | 
			
		||||
  RELEASE="1.143.1"
 | 
			
		||||
  if check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop immich-web
 | 
			
		||||
    systemctl stop immich-ml
 | 
			
		||||
    msg_ok "Stopped ${APP}"
 | 
			
		||||
    INSTALL_DIR="/opt/${APP}"
 | 
			
		||||
    UPLOAD_DIR="$(sed -n '/^IMMICH_MEDIA_LOCATION/s/[^=]*=//p' /opt/immich/.env)"
 | 
			
		||||
    SRC_DIR="${INSTALL_DIR}/source"
 | 
			
		||||
    APP_DIR="${INSTALL_DIR}/app"
 | 
			
		||||
    ML_DIR="${APP_DIR}/machine-learning"
 | 
			
		||||
    GEO_DIR="${INSTALL_DIR}/geodata"
 | 
			
		||||
    VCHORD_RELEASE="0.4.3"
 | 
			
		||||
    # VCHORD_RELEASE="$(curl -fsSL https://api.github.com/repos/tensorchord/vectorchord/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')"
 | 
			
		||||
 | 
			
		||||
  if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
 | 
			
		||||
    msg_info "Updating VectorChord"
 | 
			
		||||
    if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
 | 
			
		||||
      $STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
 | 
			
		||||
      chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
 | 
			
		||||
      $STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
 | 
			
		||||
        sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
 | 
			
		||||
          -e "/vchordrq.prewarm_dim/d" |
 | 
			
		||||
        sudo -u postgres psql
 | 
			
		||||
    if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
 | 
			
		||||
      msg_info "Updating VectorChord"
 | 
			
		||||
      curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
 | 
			
		||||
      $STD apt install -y ./vchord.deb
 | 
			
		||||
      $STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
 | 
			
		||||
      systemctl restart postgresql
 | 
			
		||||
      echo "$VCHORD_RELEASE" >~/.vchord_version
 | 
			
		||||
      rm ./vchord.deb
 | 
			
		||||
      msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
 | 
			
		||||
    fi
 | 
			
		||||
    curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
 | 
			
		||||
    $STD apt install -y ./vchord.deb
 | 
			
		||||
    $STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
 | 
			
		||||
    systemctl restart postgresql
 | 
			
		||||
    if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
 | 
			
		||||
      $STD sudo -u postgres psql -d immich -c "REINDEX INDEX face_index;"
 | 
			
		||||
      $STD sudo -u postgres psql -d immich -c "REINDEX INDEX clip_index;"
 | 
			
		||||
    fi
 | 
			
		||||
    echo "$VCHORD_RELEASE" >~/.vchord_version
 | 
			
		||||
    rm ./vchord.deb
 | 
			
		||||
    msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
 | 
			
		||||
  if grep -qs "set -a" "$APP_DIR"/bin/start.sh; then
 | 
			
		||||
    cp "$APP_DIR"/bin/start.sh "$INSTALL_DIR"
 | 
			
		||||
  else
 | 
			
		||||
    cat <<EOF >"$INSTALL_DIR"/start.sh
 | 
			
		||||
    cp "$ML_DIR"/ml_start.sh "$INSTALL_DIR"
 | 
			
		||||
    if grep -qs "set -a" "$APP_DIR"/bin/start.sh; then
 | 
			
		||||
      cp "$APP_DIR"/bin/start.sh "$INSTALL_DIR"
 | 
			
		||||
    else
 | 
			
		||||
      cat <<EOF >"$INSTALL_DIR"/start.sh
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -a
 | 
			
		||||
. "$INSTALL_DIR"/.env
 | 
			
		||||
. ${INSTALL_DIR}/.env
 | 
			
		||||
set +a
 | 
			
		||||
 | 
			
		||||
/usr/bin/node "$APP_DIR"/dist/main.js "\$@"
 | 
			
		||||
/usr/bin/node ${APP_DIR}/dist/main.js "\$@"
 | 
			
		||||
EOF
 | 
			
		||||
    chmod +x "$INSTALL_DIR"/start.sh
 | 
			
		||||
      chmod +x "$INSTALL_DIR"/start.sh
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    (
 | 
			
		||||
      shopt -s dotglob
 | 
			
		||||
      rm -rf "${APP_DIR:?}"/*
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    rm -rf "$SRC_DIR"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP} web and microservices"
 | 
			
		||||
    cd "$SRC_DIR"/server
 | 
			
		||||
    export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
 | 
			
		||||
    export CI=1
 | 
			
		||||
    corepack enable
 | 
			
		||||
 | 
			
		||||
    # server build
 | 
			
		||||
    export SHARP_IGNORE_GLOBAL_LIBVIPS=true
 | 
			
		||||
    $STD pnpm --filter immich --frozen-lockfile build
 | 
			
		||||
    unset SHARP_IGNORE_GLOBAL_LIBVIPS
 | 
			
		||||
    export SHARP_FORCE_GLOBAL_LIBVIPS=true
 | 
			
		||||
    $STD pnpm --filter immich --frozen-lockfile --prod --no-optional deploy "$APP_DIR"
 | 
			
		||||
    cp "$APP_DIR"/package.json "$APP_DIR"/bin
 | 
			
		||||
    sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
 | 
			
		||||
 | 
			
		||||
    # openapi & web build
 | 
			
		||||
    cd "$SRC_DIR"
 | 
			
		||||
    echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
 | 
			
		||||
    $STD pnpm --filter @immich/sdk --filter immich-web --frozen-lockfile --force install
 | 
			
		||||
    $STD pnpm --filter @immich/sdk --filter immich-web build
 | 
			
		||||
    cp -a web/build "$APP_DIR"/www
 | 
			
		||||
    cp LICENSE "$APP_DIR"
 | 
			
		||||
 | 
			
		||||
    # cli build
 | 
			
		||||
    $STD pnpm --filter @immich/sdk --filter @immich/cli --frozen-lockfile install
 | 
			
		||||
    $STD pnpm --filter @immich/sdk --filter @immich/cli build
 | 
			
		||||
    $STD pnpm --filter @immich/cli --prod --no-optional deploy "$APP_DIR"/cli
 | 
			
		||||
    cd "$APP_DIR"
 | 
			
		||||
    mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
 | 
			
		||||
    msg_ok "Updated ${APP} web and microservices"
 | 
			
		||||
 | 
			
		||||
    cd "$SRC_DIR"/machine-learning
 | 
			
		||||
    mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
 | 
			
		||||
    export VIRTUAL_ENV="${ML_DIR}"/ml-venv
 | 
			
		||||
    if [[ -f ~/.openvino ]]; then
 | 
			
		||||
      msg_info "Updating HW-accelerated machine-learning"
 | 
			
		||||
      $STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra openvino --active -n -p python3.11 --managed-python
 | 
			
		||||
      patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
 | 
			
		||||
      msg_ok "Updated HW-accelerated machine-learning"
 | 
			
		||||
    else
 | 
			
		||||
      msg_info "Updating machine-learning"
 | 
			
		||||
      $STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra cpu --active -n -p python3.11 --managed-python
 | 
			
		||||
      msg_ok "Updated machine-learning"
 | 
			
		||||
    fi
 | 
			
		||||
    cd "$SRC_DIR"
 | 
			
		||||
    cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
 | 
			
		||||
    mv "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
 | 
			
		||||
    if [[ -f ~/.openvino ]]; then
 | 
			
		||||
      sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
 | 
			
		||||
    fi
 | 
			
		||||
    ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
 | 
			
		||||
    cd "$APP_DIR"
 | 
			
		||||
    grep -rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
 | 
			
		||||
    grep -rlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
 | 
			
		||||
    sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
 | 
			
		||||
    ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
 | 
			
		||||
    ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
 | 
			
		||||
    ln -s "$GEO_DIR" "$APP_DIR"
 | 
			
		||||
 | 
			
		||||
    chown -R immich:immich "$INSTALL_DIR"
 | 
			
		||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    $STD apt-get -y autoremove
 | 
			
		||||
    $STD apt-get -y autoclean
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    systemctl restart immich-ml immich-web
 | 
			
		||||
  fi
 | 
			
		||||
  rm -rf "${APP_DIR:?}"/*
 | 
			
		||||
  mkdir -p "$ML_DIR"
 | 
			
		||||
  rm -rf "$SRC_DIR"
 | 
			
		||||
 | 
			
		||||
  fetch_and_deploy_gh_release "immich" "immich-app/immich" "tarball" "v${RELEASE}" "$SRC_DIR"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP} web and microservices"
 | 
			
		||||
  cd "$SRC_DIR"/server
 | 
			
		||||
  if [[ "$RELEASE" == "1.135.1" ]]; then
 | 
			
		||||
    rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
 | 
			
		||||
  fi
 | 
			
		||||
  $STD npm install -g node-gyp node-pre-gyp
 | 
			
		||||
  $STD npm ci
 | 
			
		||||
  $STD npm run build
 | 
			
		||||
  $STD npm prune --omit=dev --omit=optional
 | 
			
		||||
  cp -a {bin,dist,node_modules,resources,package*.json} "$APP_DIR"/
 | 
			
		||||
  cp package.json "$APP_DIR"/bin
 | 
			
		||||
  mv "$INSTALL_DIR"/start.sh "$APP_DIR"/bin
 | 
			
		||||
  sed -i 's|^start|./start|' "$APP_DIR"/bin/immich-admin
 | 
			
		||||
  cd "$SRC_DIR"/open-api/typescript-sdk
 | 
			
		||||
  $STD npm ci
 | 
			
		||||
  $STD npm run build
 | 
			
		||||
  cd "$SRC_DIR"/web
 | 
			
		||||
  $STD npm ci
 | 
			
		||||
  $STD npm run build
 | 
			
		||||
  cd "$SRC_DIR"
 | 
			
		||||
  cp -a web/build "$APP_DIR"/www
 | 
			
		||||
  cp LICENSE "$APP_DIR"
 | 
			
		||||
  cd "$APP_DIR"
 | 
			
		||||
  export SHARP_FORCE_GLOBAL_LIBVIPS=true
 | 
			
		||||
  $STD npm install sharp
 | 
			
		||||
  rm -rf "$APP_DIR"/node_modules/@img/sharp-{libvips*,linuxmusl-x64}
 | 
			
		||||
  msg_ok "Updated ${APP} web and microservices"
 | 
			
		||||
 | 
			
		||||
  cd "$SRC_DIR"/machine-learning
 | 
			
		||||
  export VIRTUAL_ENV="${ML_DIR}"/ml-venv
 | 
			
		||||
  $STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
 | 
			
		||||
  if [[ -f ~/.openvino ]]; then
 | 
			
		||||
    msg_info "Updating HW-accelerated machine-learning"
 | 
			
		||||
    /usr/local/bin/uv -q sync --extra openvino --no-cache --active
 | 
			
		||||
    patchelf --clear-execstack "${VIRTUAL_ENV}/lib/python3.11/site-packages/onnxruntime/capi/onnxruntime_pybind11_state.cpython-311-x86_64-linux-gnu.so"
 | 
			
		||||
    msg_ok "Updated HW-accelerated machine-learning"
 | 
			
		||||
  else
 | 
			
		||||
    msg_info "Updating machine-learning"
 | 
			
		||||
    /usr/local/bin/uv -q sync --extra cpu --no-cache --active
 | 
			
		||||
    msg_ok "Updated machine-learning"
 | 
			
		||||
  fi
 | 
			
		||||
  cd "$SRC_DIR"
 | 
			
		||||
  cp -a machine-learning/{ann,immich_ml} "$ML_DIR"
 | 
			
		||||
  mv "$INSTALL_DIR"/ml_start.sh "$ML_DIR"
 | 
			
		||||
  if [[ -f ~/.openvino ]]; then
 | 
			
		||||
    sed -i "/intra_op/s/int = 0/int = os.cpu_count() or 0/" "$ML_DIR"/immich_ml/config.py
 | 
			
		||||
  fi
 | 
			
		||||
  ln -sf "$APP_DIR"/resources "$INSTALL_DIR"
 | 
			
		||||
  cd "$APP_DIR"
 | 
			
		||||
  grep -rl /usr/src | xargs -n1 sed -i "s|\/usr/src|$INSTALL_DIR|g"
 | 
			
		||||
  grep -rlE "'/build'" | xargs -n1 sed -i "s|'/build'|'$APP_DIR'|g"
 | 
			
		||||
  sed -i "s@\"/cache\"@\"$INSTALL_DIR/cache\"@g" "$ML_DIR"/immich_ml/config.py
 | 
			
		||||
  ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$APP_DIR"/upload
 | 
			
		||||
  ln -s "${UPLOAD_DIR:-/opt/immich/upload}" "$ML_DIR"/upload
 | 
			
		||||
  ln -s "$GEO_DIR" "$APP_DIR"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating Immich CLI"
 | 
			
		||||
  $STD npm i -g @immich/cli
 | 
			
		||||
  msg_ok "Updated Immich CLI"
 | 
			
		||||
 | 
			
		||||
  chown -R immich:immich "$INSTALL_DIR"
 | 
			
		||||
  if [[ ! -f ~/.debian_version.bak ]]; then
 | 
			
		||||
    cp /etc/debian_version ~/.debian_version.bak
 | 
			
		||||
    sed -i 's/.*/13.0/' /etc/debian_version
 | 
			
		||||
  fi
 | 
			
		||||
  msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
  msg_info "Cleaning up"
 | 
			
		||||
  $STD apt-get -y autoremove
 | 
			
		||||
  $STD apt-get -y autoclean
 | 
			
		||||
  msg_ok "Cleaned"
 | 
			
		||||
  systemctl restart immich-ml immich-web
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -201,7 +201,7 @@ function compile_libjxl() {
 | 
			
		||||
  JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
 | 
			
		||||
  JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
 | 
			
		||||
  : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
 | 
			
		||||
  if [[ "${update:-}" ]] || [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
 | 
			
		||||
  if [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
 | 
			
		||||
    msg_info "Recompiling libjxl"
 | 
			
		||||
    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
			
		||||
    $STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
 | 
			
		||||
@@ -278,9 +278,8 @@ function compile_libheif() {
 | 
			
		||||
 | 
			
		||||
function compile_libraw() {
 | 
			
		||||
  SOURCE=${SOURCE_DIR}/libraw
 | 
			
		||||
  local update
 | 
			
		||||
  : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
 | 
			
		||||
  if [[ "${update:-}" ]] || [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
 | 
			
		||||
  if [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
 | 
			
		||||
    msg_info "Recompiling libraw"
 | 
			
		||||
    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
			
		||||
    $STD git clone https://github.com/libraw/libraw.git "$SOURCE"
 | 
			
		||||
@@ -301,13 +300,14 @@ function compile_libraw() {
 | 
			
		||||
function compile_imagemagick() {
 | 
			
		||||
  SOURCE=$SOURCE_DIR/imagemagick
 | 
			
		||||
  : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
 | 
			
		||||
  if [[ "${update:-}" ]] || [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
 | 
			
		||||
  if [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]] ||
 | 
			
		||||
    ! grep -q 'DMAGICK_LIBRAW' /usr/local/lib/ImageMagick-7*/config-Q16HDRI/configure.xml; then
 | 
			
		||||
    msg_info "Recompiling ImageMagick"
 | 
			
		||||
    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
			
		||||
    $STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
 | 
			
		||||
    cd "$SOURCE"
 | 
			
		||||
    $STD git reset --hard "$IMAGEMAGICK_REVISION"
 | 
			
		||||
    $STD ./configure --with-modules
 | 
			
		||||
    $STD ./configure --with-modules CPPFLAGS="-DMAGICK_LIBRAW_VERSION_TAIL=202502"
 | 
			
		||||
    $STD make -j"$(nproc)"
 | 
			
		||||
    $STD make install
 | 
			
		||||
    ldconfig /usr/local/lib
 | 
			
		||||
@@ -321,7 +321,7 @@ function compile_imagemagick() {
 | 
			
		||||
function compile_libvips() {
 | 
			
		||||
  SOURCE=$SOURCE_DIR/libvips
 | 
			
		||||
  : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
 | 
			
		||||
  if [[ "${update:-}" ]] || [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
 | 
			
		||||
  if [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
 | 
			
		||||
    msg_info "Recompiling libvips"
 | 
			
		||||
    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
			
		||||
    $STD git clone https://github.com/libvips/libvips.git "$SOURCE"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/inspircd/inspircd/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.inspircd 2>/dev/null)" ]] || [[ ! -f ~/.inspircd ]]; then
 | 
			
		||||
  if check_for_gh_release "inspircd" "inspircd/inspircd"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop inspircd
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
@@ -39,10 +37,7 @@ function update_script() {
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start inspircd
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -34,13 +34,18 @@ function update_script() {
 | 
			
		||||
DisableRootWarning=true
 | 
			
		||||
EOF
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "Jackett" "Jackett/Jackett"; then
 | 
			
		||||
    msg_info "Stopping Service"
 | 
			
		||||
    systemctl stop jackett
 | 
			
		||||
    msg_ok "Stopped Service"
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/Jackett/Jackett/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat ~/.jackett 2>/dev/null)" ]] || [[ ! -f ~/.jackett ]]; then
 | 
			
		||||
    rm -rf /opt/Jackett
 | 
			
		||||
    fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz" 
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Service"
 | 
			
		||||
    systemctl start jackett
 | 
			
		||||
    msg_ok "Started Service"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										62
									
								
								ct/joplin-server.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								ct/joplin-server.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://joplinapp.org/
 | 
			
		||||
 | 
			
		||||
APP="Joplin-Server"
 | 
			
		||||
var_tags="${var_tags:-notes}"
 | 
			
		||||
var_cpu="${var_cpu:-2}"
 | 
			
		||||
var_ram="${var_ram:-4096}"
 | 
			
		||||
var_disk="${var_disk:-20}"
 | 
			
		||||
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/joplin-server ]]; then
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "joplin-server" "laurent22/joplin"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop joplin-server
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "joplin-server" "laurent22/joplin" "tarball" "latest"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt/joplin-server
 | 
			
		||||
    sed -i "/onenote-converter/d" packages/lib/package.json
 | 
			
		||||
    $STD yarn config set --home enableTelemetry 0
 | 
			
		||||
    export BUILD_SEQUENCIAL=1
 | 
			
		||||
    $STD yarn install --inline-builds
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start joplin-server
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start
 | 
			
		||||
build_container
 | 
			
		||||
description
 | 
			
		||||
 | 
			
		||||
msg_ok "Completed Successfully!\n"
 | 
			
		||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
			
		||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
			
		||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:22300${CL}"
 | 
			
		||||
@@ -28,10 +28,10 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  RELEASE=$(curl -s https://api.github.com/repos/Casvt/Kapowarr/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
			
		||||
  if [[ "${RELEASE}" != "$(cat $HOME/.kapowarr)" ]] || [[ ! -f $HOME/.kapowarr ]]; then
 | 
			
		||||
    setup_uv 
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
  setup_uv
 | 
			
		||||
 | 
			
		||||
  if check_for_gh_release "kapowarr" "Casvt/Kapowarr"; then
 | 
			
		||||
    msg_info "Stopping $APP"
 | 
			
		||||
    systemctl stop kapowarr
 | 
			
		||||
    msg_ok "Stopped $APP"
 | 
			
		||||
@@ -41,17 +41,15 @@ function update_script() {
 | 
			
		||||
    msg_ok "Backup Created"
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "kapowarr" "Casvt/Kapowarr"
 | 
			
		||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating $APP"
 | 
			
		||||
    mv /opt/db /opt/kapowarr
 | 
			
		||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
			
		||||
    msg_ok "Updated $APP"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting $APP"
 | 
			
		||||
    systemctl start kapowarr
 | 
			
		||||
    msg_ok "Started $APP"
 | 
			
		||||
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  else
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										135
									
								
								ct/karakeep.sh
									
									
									
									
									
								
							
							
						
						
									
										135
									
								
								ct/karakeep.sh
									
									
									
									
									
								
							@@ -28,73 +28,76 @@ function update_script() {
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
			
		||||
  if [[ -f ~/.karakeep && "$RELEASE" == "$(cat ~/.karakeep)" ]]; then
 | 
			
		||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
			
		||||
    exit
 | 
			
		||||
  if check_for_gh_release "karakeep" "karakeep-app/karakeep"; then
 | 
			
		||||
    msg_info "Stopping Services"
 | 
			
		||||
    systemctl stop karakeep-web karakeep-workers karakeep-browser
 | 
			
		||||
    msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating yt-dlp"
 | 
			
		||||
    $STD yt-dlp --update-to nightly
 | 
			
		||||
    msg_ok "Updated yt-dlp"
 | 
			
		||||
 | 
			
		||||
    msg_info "Prepare update"
 | 
			
		||||
    if [[ -f /opt/${APP}_version.txt && "$(cat /opt/${APP}_version.txt)" < "0.23.0" ]]; then
 | 
			
		||||
      $STD apt-get install -y graphicsmagick ghostscript
 | 
			
		||||
    fi
 | 
			
		||||
    if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
 | 
			
		||||
      mkdir -p /etc/karakeep
 | 
			
		||||
      mv /opt/karakeep/.env /etc/karakeep/karakeep.env
 | 
			
		||||
    fi
 | 
			
		||||
    rm -rf /opt/karakeep
 | 
			
		||||
    msg_ok "Update prepared"
 | 
			
		||||
 | 
			
		||||
    if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
 | 
			
		||||
      sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
 | 
			
		||||
      systemctl daemon-reload
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if grep -q '^ExecStart=/usr/bin/node\s\+dist/index\.mjs$' /etc/systemd/system/karakeep-workers.service; then
 | 
			
		||||
      sed -i -E 's#^(ExecStart=/usr/bin/node\s+dist/)index\.mjs$#\1index.js#' /etc/systemd/system/karakeep-workers.service
 | 
			
		||||
      systemctl daemon-reload
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
 | 
			
		||||
    if command -v corepack >/dev/null; then
 | 
			
		||||
      $STD corepack disable
 | 
			
		||||
    fi
 | 
			
		||||
    MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
 | 
			
		||||
    NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
 | 
			
		||||
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    corepack enable
 | 
			
		||||
    export PUPPETEER_SKIP_DOWNLOAD="true"
 | 
			
		||||
    export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
 | 
			
		||||
    export NEXT_TELEMETRY_DISABLED=1
 | 
			
		||||
    export CI="true"
 | 
			
		||||
    cd /opt/karakeep/apps/web
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    $STD pnpm build
 | 
			
		||||
    cd /opt/karakeep/apps/workers
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    $STD pnpm build
 | 
			
		||||
    cd /opt/karakeep/apps/cli
 | 
			
		||||
    $STD pnpm install --frozen-lockfile
 | 
			
		||||
    $STD pnpm build
 | 
			
		||||
    DATA_DIR="$(sed -n '/^DATA_DIR/p' /etc/karakeep/karakeep.env | awk -F= '{print $2}' | tr -d '="=')"
 | 
			
		||||
    export DATA_DIR="${DATA_DIR:-/opt/karakeep_data}"
 | 
			
		||||
    cd /opt/karakeep/packages/db
 | 
			
		||||
    $STD pnpm migrate
 | 
			
		||||
    $STD pnpm store prune
 | 
			
		||||
    sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${CHECK_UPDATE_RELEASE}/" /etc/karakeep/karakeep.env
 | 
			
		||||
    msg_ok "Updated ${APP}"
 | 
			
		||||
 | 
			
		||||
    msg_info "Starting Services"
 | 
			
		||||
    systemctl start karakeep-browser karakeep-workers karakeep-web
 | 
			
		||||
    msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    $STD apt-get autoremove -y
 | 
			
		||||
    $STD apt-get autoclean -y
 | 
			
		||||
    msg_ok "Cleaned"
 | 
			
		||||
    msg_ok "Updated Successfully"
 | 
			
		||||
  fi
 | 
			
		||||
  msg_info "Stopping Services"
 | 
			
		||||
  systemctl stop karakeep-web karakeep-workers karakeep-browser
 | 
			
		||||
  msg_ok "Stopped Services"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating yt-dlp"
 | 
			
		||||
  $STD yt-dlp --update-to nightly
 | 
			
		||||
  msg_ok "Updated yt-dlp"
 | 
			
		||||
 | 
			
		||||
  msg_info "Prepare update"
 | 
			
		||||
  if [[ -f /opt/${APP}_version.txt && "$(cat /opt/${APP}_version.txt)" < "0.23.0" ]]; then
 | 
			
		||||
    $STD apt-get install -y graphicsmagick ghostscript
 | 
			
		||||
  fi
 | 
			
		||||
  if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
 | 
			
		||||
    mkdir -p /etc/karakeep
 | 
			
		||||
    mv /opt/karakeep/.env /etc/karakeep/karakeep.env
 | 
			
		||||
  fi
 | 
			
		||||
  rm -rf /opt/karakeep
 | 
			
		||||
  msg_ok "Update prepared"
 | 
			
		||||
 | 
			
		||||
  if grep -q "start:prod" /etc/systemd/system/karakeep-workers.service; then
 | 
			
		||||
    sed -i 's|^ExecStart=.*$|ExecStart=/usr/bin/node dist/index.mjs|' /etc/systemd/system/karakeep-workers.service
 | 
			
		||||
    systemctl daemon-reload
 | 
			
		||||
  fi
 | 
			
		||||
  fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep"
 | 
			
		||||
  if command -v corepack >/dev/null; then
 | 
			
		||||
    $STD corepack disable
 | 
			
		||||
  fi
 | 
			
		||||
  MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
 | 
			
		||||
  NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP} to v${RELEASE}"
 | 
			
		||||
  corepack enable
 | 
			
		||||
  export PUPPETEER_SKIP_DOWNLOAD="true"
 | 
			
		||||
  export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
 | 
			
		||||
  export NEXT_TELEMETRY_DISABLED=1
 | 
			
		||||
  export CI="true"
 | 
			
		||||
  cd /opt/karakeep/apps/web
 | 
			
		||||
  $STD pnpm install --frozen-lockfile
 | 
			
		||||
  $STD pnpm build
 | 
			
		||||
  cd /opt/karakeep/apps/workers
 | 
			
		||||
  $STD pnpm install --frozen-lockfile
 | 
			
		||||
  $STD pnpm build
 | 
			
		||||
  cd /opt/karakeep/apps/cli
 | 
			
		||||
  $STD pnpm install --frozen-lockfile
 | 
			
		||||
  $STD pnpm build
 | 
			
		||||
  DATA_DIR="$(sed -n '/^DATA_DIR/p' /etc/karakeep/karakeep.env | awk -F= '{print $2}' | tr -d '="=')"
 | 
			
		||||
  export DATA_DIR="${DATA_DIR:-/opt/karakeep_data}"
 | 
			
		||||
  cd /opt/karakeep/packages/db
 | 
			
		||||
  $STD pnpm migrate
 | 
			
		||||
  $STD pnpm store prune
 | 
			
		||||
  sed -i "s/^SERVER_VERSION=.*$/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
 | 
			
		||||
  msg_ok "Updated ${APP} to v${RELEASE}"
 | 
			
		||||
 | 
			
		||||
  msg_info "Starting Services"
 | 
			
		||||
  systemctl start karakeep-browser karakeep-workers karakeep-web
 | 
			
		||||
  msg_ok "Started Services"
 | 
			
		||||
 | 
			
		||||
  msg_info "Cleaning up"
 | 
			
		||||
  $STD apt-get autoremove -y
 | 
			
		||||
  $STD apt-get autoclean -y
 | 
			
		||||
  msg_ok "Cleaned"
 | 
			
		||||
  msg_ok "Updated Successfully"
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -27,35 +27,39 @@ function update_script() {
 | 
			
		||||
    msg_error "No ${APP} Installation Found!"
 | 
			
		||||
    exit
 | 
			
		||||
  fi
 | 
			
		||||
  if check_for_gh_release "keycloak" "keycloak/keycloak"; then
 | 
			
		||||
    msg_info "Stopping Keycloak"
 | 
			
		||||
    systemctl stop keycloak
 | 
			
		||||
    msg_ok "Stopped Keycloak"
 | 
			
		||||
 | 
			
		||||
  msg_info "Stopping Keycloak"
 | 
			
		||||
  systemctl stop keycloak
 | 
			
		||||
  msg_ok "Stopped Keycloak"
 | 
			
		||||
    msg_info "Updating packages"
 | 
			
		||||
    $STD apt-get update
 | 
			
		||||
    $STD apt-get -y upgrade
 | 
			
		||||
    msg_ok "Updated packages"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating packages"
 | 
			
		||||
  $STD apt-get update
 | 
			
		||||
  $STD apt-get -y upgrade
 | 
			
		||||
  msg_ok "Updated packages"
 | 
			
		||||
    msg_info "Backup old Keycloak"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    mv keycloak keycloak.old
 | 
			
		||||
    msg_ok "Backup done"
 | 
			
		||||
 | 
			
		||||
  msg_info "Backup old Keycloak"
 | 
			
		||||
  cd /opt
 | 
			
		||||
  mv keycloak keycloak.old
 | 
			
		||||
  tar -czf keycloak_conf_backup.tar.gz keycloak.old/conf
 | 
			
		||||
  msg_ok "Backup done"
 | 
			
		||||
    fetch_and_deploy_gh_release "keycloak_app" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
 | 
			
		||||
 | 
			
		||||
  fetch_and_deploy_gh_release "keycloak" "keycloak/keycloak" "prebuild" "latest" "/opt/keycloak" "keycloak-*.tar.gz"
 | 
			
		||||
    msg_info "Updating ${APP}"
 | 
			
		||||
    cd /opt
 | 
			
		||||
    cp -a keycloak.old/conf/. keycloak/conf/
 | 
			
		||||
    cp -a keycloak.old/providers/. keycloak/providers/ 2>/dev/null || true
 | 
			
		||||
    cp -a keycloak.old/themes/. keycloak/themes/ 2>/dev/null || true
 | 
			
		||||
    msg_ok "Updated ${APP} LXC"
 | 
			
		||||
 | 
			
		||||
  msg_info "Updating ${APP}"
 | 
			
		||||
  cd /opt
 | 
			
		||||
  mv keycloak_conf_backup.tar.gz keycloak/conf
 | 
			
		||||
  cp -r keycloak.old/providers keycloak
 | 
			
		||||
  cp -r keycloak.old/themes keycloak
 | 
			
		||||
  rm -rf keycloak.old
 | 
			
		||||
  msg_ok "Updated ${APP} LXC"
 | 
			
		||||
    msg_info "Restarting Keycloak"
 | 
			
		||||
    systemctl restart keycloak
 | 
			
		||||
    msg_ok "Restarted Keycloak"
 | 
			
		||||
 | 
			
		||||
  msg_info "Restarting Keycloak"
 | 
			
		||||
  systemctl restart keycloak
 | 
			
		||||
  msg_ok "Restarted Keycloak"
 | 
			
		||||
    msg_info "Cleaning up"
 | 
			
		||||
    rm -rf keycloak.old
 | 
			
		||||
    msg_ok "Cleanup complete"
 | 
			
		||||
    msg_ok "Update Successful"
 | 
			
		||||
  fi
 | 
			
		||||
  exit
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user