mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 10:22:50 +00:00 
			
		
		
		
	Compare commits
	
		
			621 Commits
		
	
	
		
			2025-08-25
			...
			tailwind-4
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					d5f8d0af2c | ||
| 
						 | 
					4b9809dd70 | ||
| 
						 | 
					a475eff11e | ||
| 
						 | 
					7245af7208 | ||
| 
						 | 
					c3a75d8a5d | ||
| 
						 | 
					3b81c36e75 | ||
| 
						 | 
					588cebad26 | ||
| 
						 | 
					830b2d9e37 | ||
| 
						 | 
					2092c5bdce | ||
| 
						 | 
					e87dc5dbbc | ||
| 
						 | 
					479ce977e6 | ||
| 
						 | 
					a2057d4302 | ||
| 
						 | 
					bbe509c334 | ||
| 
						 | 
					563a69e68b | ||
| 
						 | 
					7ab2bcbb40 | ||
| 
						 | 
					57031bdaad | ||
| 
						 | 
					833a369f61 | ||
| 
						 | 
					8f8eb7aba5 | ||
| 
						 | 
					942ff02d37 | ||
| 
						 | 
					3e1753b3c7 | ||
| 
						 | 
					6863c774fa | ||
| 
						 | 
					965b8cb33e | ||
| 
						 | 
					0768456b2c | ||
| 
						 | 
					9f531ef4a7 | ||
| 
						 | 
					6491ec3f09 | ||
| 
						 | 
					9b5fa050c7 | ||
| 
						 | 
					efb8e0f2f3 | ||
| 
						 | 
					07eda340ea | ||
| 
						 | 
					1a37c759c3 | ||
| 
						 | 
					e39dd5ffa3 | ||
| 
						 | 
					aded2cbd56 | ||
| 
						 | 
					2c791b9e41 | ||
| 
						 | 
					d1786241ec | ||
| 
						 | 
					73cf6c66e3 | ||
| 
						 | 
					efc9153926 | ||
| 
						 | 
					1f4b446788 | ||
| 
						 | 
					aeafbb1047 | ||
| 
						 | 
					938609d5eb | ||
| 
						 | 
					ae6ca4de23 | ||
| 
						 | 
					dfdf8c0ddb | ||
| 
						 | 
					4136f5e7e3 | ||
| 
						 | 
					51302d516e | ||
| 
						 | 
					ab995bd493 | ||
| 
						 | 
					ac12051057 | ||
| 
						 | 
					c3cca616a4 | ||
| 
						 | 
					b1bca924b9 | ||
| 
						 | 
					1909e35e62 | ||
| 
						 | 
					237349ef47 | ||
| 
						 | 
					e4cf50dfcd | ||
| 
						 | 
					0c30d8e3e7 | ||
| 
						 | 
					92999b4db3 | ||
| 
						 | 
					4a02986de1 | ||
| 
						 | 
					d06299685f | ||
| 
						 | 
					71f71fbca9 | ||
| 
						 | 
					938fb6dc58 | ||
| 
						 | 
					03d36a6c10 | ||
| 
						 | 
					8e25b70a25 | ||
| 
						 | 
					1840cce15f | ||
| 
						 | 
					1d0ac4ca10 | ||
| 
						 | 
					deb85bd264 | ||
| 
						 | 
					348f8863a8 | ||
| 
						 | 
					74b332b7ec | ||
| 
						 | 
					2fe3ee667b | ||
| 
						 | 
					48e3b66342 | ||
| 
						 | 
					e93dccb0d5 | ||
| 
						 | 
					168e7b7c2b | ||
| 
						 | 
					3f54d0d7f4 | ||
| 
						 | 
					9477677385 | ||
| 
						 | 
					e58d1dc3d2 | ||
| 
						 | 
					2a765f58f0 | ||
| 
						 | 
					8dfb632a4d | ||
| 
						 | 
					42ae2a4cdc | ||
| 
						 | 
					36e41aca22 | ||
| 
						 | 
					6b1141f9de | ||
| 
						 | 
					97f891d53b | ||
| 
						 | 
					0c63e64662 | ||
| 
						 | 
					d83a378af4 | ||
| 
						 | 
					6820bdcade | ||
| 
						 | 
					8ff82d0c3c | ||
| 
						 | 
					9e39c6cd2b | ||
| 
						 | 
					0bea24888e | ||
| 
						 | 
					70d2be62e9 | ||
| 
						 | 
					fe30e06a48 | ||
| 
						 | 
					193a2ea2df | ||
| 
						 | 
					ffbe0feee1 | ||
| 
						 | 
					107865b06d | ||
| 
						 | 
					0d33b38e29 | ||
| 
						 | 
					11ae7450c7 | ||
| 
						 | 
					598bfd291f | ||
| 
						 | 
					1a38df4c12 | ||
| 
						 | 
					cfc85c1b79 | ||
| 
						 | 
					e7d41fecdc | ||
| 
						 | 
					34ef80ac87 | ||
| 
						 | 
					b18d45631f | ||
| 
						 | 
					efe1e1edb5 | ||
| 
						 | 
					4567505c55 | ||
| 
						 | 
					42c87ba0d4 | ||
| 
						 | 
					b52c252553 | ||
| 
						 | 
					be5ac7153e | ||
| 
						 | 
					07f2849722 | ||
| 
						 | 
					760299283a | ||
| 
						 | 
					0bd2dd7a65 | ||
| 
						 | 
					6591c30e66 | ||
| 
						 | 
					780e5c114c | ||
| 
						 | 
					ba10ec721b | ||
| 
						 | 
					f66dc834bd | ||
| 
						 | 
					be36fc6a94 | ||
| 
						 | 
					65ada6e6f3 | ||
| 
						 | 
					853eb40bba | ||
| 
						 | 
					ace6265895 | ||
| 
						 | 
					639d4f2d53 | ||
| 
						 | 
					d7e77e232c | ||
| 
						 | 
					b850d3f79e | ||
| 
						 | 
					72e5ac5c80 | ||
| 
						 | 
					587579b3a1 | ||
| 
						 | 
					9b4e996d93 | ||
| 
						 | 
					e6f317ede9 | ||
| 
						 | 
					3e4420e357 | ||
| 
						 | 
					38f7e81d8b | ||
| 
						 | 
					8f5d50a9fa | ||
| 
						 | 
					32048cff2d | ||
| 
						 | 
					5775f7cf33 | ||
| 
						 | 
					4d7c004810 | ||
| 
						 | 
					d74131fe6f | ||
| 
						 | 
					87b30f67fa | ||
| 
						 | 
					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 | 
							
								
								
									
										10
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/ISSUE_TEMPLATE/bug_report.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -60,13 +60,21 @@ body:
 | 
				
			|||||||
        - Alpine
 | 
					        - Alpine
 | 
				
			||||||
        - Debian 11
 | 
					        - Debian 11
 | 
				
			||||||
        - Debian 12
 | 
					        - Debian 12
 | 
				
			||||||
        - Ubuntu 20.04
 | 
					        - Debian 13
 | 
				
			||||||
        - Ubuntu 22.04
 | 
					        - Ubuntu 22.04
 | 
				
			||||||
        - Ubuntu 24.04
 | 
					        - Ubuntu 24.04
 | 
				
			||||||
        - Ubuntu 24.10
 | 
					        - Ubuntu 24.10
 | 
				
			||||||
    validations:
 | 
					    validations:
 | 
				
			||||||
      required: true
 | 
					      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
 | 
					  - type: textarea
 | 
				
			||||||
    id: issue_description
 | 
					    id: issue_description
 | 
				
			||||||
    attributes:
 | 
					    attributes:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										755
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										755
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -10,8 +10,763 @@
 | 
				
			|||||||
> [!CAUTION]
 | 
					> [!CAUTION]
 | 
				
			||||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
 | 
					Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-10-06
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - GLPI: Revert fix for v11 [@tremor021](https://github.com/tremor021) ([#8148](https://github.com/community-scripts/ProxmoxVE/pull/8148))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Node-Red: bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8141](https://github.com/community-scripts/ProxmoxVE/pull/8141))
 | 
				
			||||||
 | 
					    - NocoDB: bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8140](https://github.com/community-scripts/ProxmoxVE/pull/8140))
 | 
				
			||||||
 | 
					    - Navidrome: bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#8139](https://github.com/community-scripts/ProxmoxVE/pull/8139))
 | 
				
			||||||
 | 
					    - pve-scripts-local: add update function [@MickLesk](https://github.com/MickLesk) ([#8138](https://github.com/community-scripts/ProxmoxVE/pull/8138))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-10-05
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - ActualBudget: bump to debian 13 [@MickLesk](https://github.com/MickLesk) ([#8124](https://github.com/community-scripts/ProxmoxVE/pull/8124))
 | 
				
			||||||
 | 
					    - 2fauth: bump to debian 13 [@MickLesk](https://github.com/MickLesk) ([#8123](https://github.com/community-scripts/ProxmoxVE/pull/8123))
 | 
				
			||||||
 | 
					    - AdventureLog: bump to debian 13 [@MickLesk](https://github.com/MickLesk) ([#8125](https://github.com/community-scripts/ProxmoxVE/pull/8125))
 | 
				
			||||||
 | 
					    - Update cockpit to Debian 13 [@burgerga](https://github.com/burgerga) ([#8119](https://github.com/community-scripts/ProxmoxVE/pull/8119))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-10-04
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - immich: guard /dev/dri permissions so CPU-only installs don’t fail [@mlongwell](https://github.com/mlongwell) ([#8094](https://github.com/community-scripts/ProxmoxVE/pull/8094))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - PosgreSQL: Add version choice [@tremor021](https://github.com/tremor021) ([#8103](https://github.com/community-scripts/ProxmoxVE/pull/8103))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-10-03
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - pve-scripts-local ([#8083](https://github.com/community-scripts/ProxmoxVE/pull/8083))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - GLPI: Pin version to v10.0.20 [@tremor021](https://github.com/tremor021) ([#8092](https://github.com/community-scripts/ProxmoxVE/pull/8092))
 | 
				
			||||||
 | 
					    - GLPI: Fix database setup [@tremor021](https://github.com/tremor021) ([#8074](https://github.com/community-scripts/ProxmoxVE/pull/8074))
 | 
				
			||||||
 | 
					    - Overseerr: Increase resources [@tremor021](https://github.com/tremor021) ([#8086](https://github.com/community-scripts/ProxmoxVE/pull/8086))
 | 
				
			||||||
 | 
					    - FIX: post-pve-install.sh just quitting [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#8070](https://github.com/community-scripts/ProxmoxVE/pull/8070))
 | 
				
			||||||
 | 
					    - fix: ensure /etc/pulse exists before chown in update script [@rcourtman](https://github.com/rcourtman) ([#8068](https://github.com/community-scripts/ProxmoxVE/pull/8068))
 | 
				
			||||||
 | 
					    - grist: remove unneeded var [@MickLesk](https://github.com/MickLesk) ([#8060](https://github.com/community-scripts/ProxmoxVE/pull/8060))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Immich: bump version to 2.0.1 [@vhsdream](https://github.com/vhsdream) ([#8090](https://github.com/community-scripts/ProxmoxVE/pull/8090))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Adjust navbar layout for large screen [@BramSuurdje](https://github.com/BramSuurdje) ([#8087](https://github.com/community-scripts/ProxmoxVE/pull/8087))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-10-02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - EMQX: removal logic in emqx update [@MickLesk](https://github.com/MickLesk) ([#8050](https://github.com/community-scripts/ProxmoxVE/pull/8050))
 | 
				
			||||||
 | 
					    - fix FlareSolverr version check to v3.3.25 [@MickLesk](https://github.com/MickLesk) ([#8051](https://github.com/community-scripts/ProxmoxVE/pull/8051))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-10-01
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - New Script: PhpMyAdmin (Addon) [@MickLesk](https://github.com/MickLesk) ([#8030](https://github.com/community-scripts/ProxmoxVE/pull/8030))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - openwrt: Add conditional logic for EFI disk allocation [@MickLesk](https://github.com/MickLesk) ([#8024](https://github.com/community-scripts/ProxmoxVE/pull/8024))
 | 
				
			||||||
 | 
					    - Plant-IT: Pin version to v0.10.0 [@tremor021](https://github.com/tremor021) ([#8023](https://github.com/community-scripts/ProxmoxVE/pull/8023))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Immich: bump version to 2.0.0 stable [@vhsdream](https://github.com/vhsdream) ([#8041](https://github.com/community-scripts/ProxmoxVE/pull/8041))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🔧 Refactor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Immich: bump version to 1.144.1 [@vhsdream](https://github.com/vhsdream) ([#7994](https://github.com/community-scripts/ProxmoxVE/pull/7994))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-09-30
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - caddy: fix typo for setup_go [@MickLesk](https://github.com/MickLesk) ([#8017](https://github.com/community-scripts/ProxmoxVE/pull/8017))
 | 
				
			||||||
 | 
					    - Changedetection: Fix Browserless installation and update process [@h-stoyanov](https://github.com/h-stoyanov) ([#8011](https://github.com/community-scripts/ProxmoxVE/pull/8011))
 | 
				
			||||||
 | 
					    - n8n: Update procedure workaround [@tremor021](https://github.com/tremor021) ([#8004](https://github.com/community-scripts/ProxmoxVE/pull/8004))
 | 
				
			||||||
 | 
					    - Changedetection: Bump nodejs to 24 [@MickLesk](https://github.com/MickLesk) ([#8002](https://github.com/community-scripts/ProxmoxVE/pull/8002))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Bump Guacamole to Debian 13 [@burgerga](https://github.com/burgerga) ([#8010](https://github.com/community-scripts/ProxmoxVE/pull/8010))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-09-29
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - Ghostfolio ([#7982](https://github.com/community-scripts/ProxmoxVE/pull/7982))
 | 
				
			||||||
 | 
					- Warracker ([#7977](https://github.com/community-scripts/ProxmoxVE/pull/7977))
 | 
				
			||||||
 | 
					- MyIP ([#7974](https://github.com/community-scripts/ProxmoxVE/pull/7974))
 | 
				
			||||||
 | 
					- Verdaccio ([#7967](https://github.com/community-scripts/ProxmoxVE/pull/7967))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🌐 Website
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - fix sidebar loading issues and navbar on mobile [@BramSuurdje](https://github.com/BramSuurdje) ([#7991](https://github.com/community-scripts/ProxmoxVE/pull/7991))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### ✨ New Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Improve mobile ui: added a hamburger navigation to the mobile view. [@BramSuurdje](https://github.com/BramSuurdje) ([#7987](https://github.com/community-scripts/ProxmoxVE/pull/7987))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 📝 Script Information
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Remove Frigate from Website [@MickLesk](https://github.com/MickLesk) ([#7972](https://github.com/community-scripts/ProxmoxVE/pull/7972))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 2025-09-28
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 🚀 Updated Scripts
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  - #### 🐞 Bug Fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - Metube: remove uv flags [@vhsdream](https://github.com/vhsdream) ([#7962](https://github.com/community-scripts/ProxmoxVE/pull/7962))
 | 
				
			||||||
 | 
					    - freshrss: fix for broken permissions after update [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7953](https://github.com/community-scripts/ProxmoxVE/pull/7953))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 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
 | 
					## 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
 | 
					## 2025-08-25
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 🆕 New Scripts
 | 
					### 🆕 New Scripts
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								SECURITY.md
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								SECURITY.md
									
									
									
									
									
								
							@@ -1,8 +1,12 @@
 | 
				
			|||||||
 | 
					# Security Policy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Supported Versions
 | 
					## 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          |
 | 
					| Version | Supported          |
 | 
				
			||||||
| ------- | ------------------ |
 | 
					| ------- | ------------------ |
 | 
				
			||||||
 | 
					| 9.0.x   | :white_check_mark: |
 | 
				
			||||||
| 8.4.x   | :white_check_mark: |
 | 
					| 8.4.x   | :white_check_mark: |
 | 
				
			||||||
| 8.3.x   | :white_check_mark: |
 | 
					| 8.3.x   | :white_check_mark: |
 | 
				
			||||||
| 8.2.x   | :white_check_mark: |
 | 
					| 8.2.x   | :white_check_mark: |
 | 
				
			||||||
@@ -10,15 +14,51 @@ This project currently supports the following versions of Proxmox VE:
 | 
				
			|||||||
| 8.0.x   | Limited support* ❕ |
 | 
					| 8.0.x   | Limited support* ❕ |
 | 
				
			||||||
| < 8.0   | :x:                |
 | 
					| < 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
 | 
					## 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.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										27
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								ct/2fauth.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
				
			|||||||
var_ram="${var_ram:-512}"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="${var_disk:-2}"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
@@ -28,14 +28,9 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if ! command -v jq &>/dev/null; then
 | 
					  if check_for_gh_release "2fauth" "Bubka/2FAuth"; then
 | 
				
			||||||
    $STD apt-get install -y jq
 | 
					    $STD apt update
 | 
				
			||||||
  fi
 | 
					    $STD apt -y upgrade
 | 
				
			||||||
  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}"
 | 
					 | 
				
			||||||
    $STD apt-get update
 | 
					 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Creating Backup"
 | 
					    msg_info "Creating Backup"
 | 
				
			||||||
    mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
					    mv "/opt/2fauth" "/opt/2fauth-backup"
 | 
				
			||||||
@@ -64,18 +59,14 @@ function update_script() {
 | 
				
			|||||||
    $STD systemctl restart nginx
 | 
					    $STD systemctl restart nginx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Cleaning Up"
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
    rm -rf "v${RELEASE}.zip"
 | 
					 | 
				
			||||||
    if dpkg -l | grep -q 'php8.2'; then
 | 
					    if dpkg -l | grep -q 'php8.2'; then
 | 
				
			||||||
      $STD apt-get remove --purge -y php8.2*
 | 
					      $STD apt remove --purge -y php8.2*
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    $STD apt-get -y autoremove
 | 
					    $STD apt -y autoremove
 | 
				
			||||||
    $STD apt-get -y autoclean
 | 
					    $STD apt -y autoclean
 | 
				
			||||||
 | 
					    $STD apt -y clean
 | 
				
			||||||
    msg_ok "Cleanup Completed"
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    echo "${RELEASE}" >/opt/2fauth_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,13 +6,13 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Source: https://actualbudget.org/
 | 
					# Source: https://actualbudget.org/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Actual Budget"
 | 
					APP="Actual Budget"
 | 
				
			||||||
var_tags="finance"
 | 
					var_tags="${var_tags:-finance}"
 | 
				
			||||||
var_cpu="2"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="2048"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="4"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="debian"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="12"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="1"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
variables
 | 
					variables
 | 
				
			||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  NODE_VERSION="22"
 | 
					  NODE_VERSION="22" setup_nodejs
 | 
				
			||||||
  setup_nodejs
 | 
					 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
				
			||||||
  if [[ -f /opt/actualbudget-data/config.json ]]; then
 | 
					  if [[ -f /opt/actualbudget-data/config.json ]]; then
 | 
				
			||||||
    if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
 | 
					    if [[ ! -f /opt/actualbudget_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/actualbudget_version.txt)" ]]; then
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
				
			|||||||
var_ram="${var_ram:-512}"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="${var_disk:-2}"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
@@ -27,7 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
    msg_error "Adguard Home should be updated via the user interface."
 | 
					  msg_error "Adguard Home can only be updated via the user interface."
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ var_disk="${var_disk:-7}"
 | 
				
			|||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-2048}"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
@@ -27,9 +27,11 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if ! command -v memcached >/dev/null 2>&1; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/seanmorley15/AdventureLog/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					    $STD apt update
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
 | 
					    $STD apt install -y memcached libmemcached-tools
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "adventurelog" "seanmorley15/adventurelog"; then
 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop adventurelog-backend
 | 
					    systemctl stop adventurelog-backend
 | 
				
			||||||
    systemctl stop adventurelog-frontend
 | 
					    systemctl stop adventurelog-frontend
 | 
				
			||||||
@@ -37,15 +39,16 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    msg_info "Backup Old Installation"
 | 
					    msg_info "Backup Old Installation"
 | 
				
			||||||
    cp -r /opt/adventurelog /opt/adventurelog-backup
 | 
					    cp -r /opt/adventurelog /opt/adventurelog-backup
 | 
				
			||||||
 | 
					    rm -rf /opt/adventurelog
 | 
				
			||||||
    msg_ok "Backup done"
 | 
					    msg_ok "Backup done"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
 | 
					    fetch_and_deploy_gh_release "adventurelog" "seanmorley15/adventurelog"
 | 
				
			||||||
    PYTHON_VERSION="3.12" setup_uv
 | 
					    PYTHON_VERSION="3.13" 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 /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
 | 
				
			||||||
    cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
					    cp -r /opt/adventurelog-backup/backend/server/media /opt/adventurelog/backend/server/media
 | 
				
			||||||
    cd /opt/adventurelog/backend/server
 | 
					    cd /opt/adventurelog/backend/server || exit
 | 
				
			||||||
    if [[ ! -x .venv/bin/python ]]; then
 | 
					    if [[ ! -x .venv/bin/python ]]; then
 | 
				
			||||||
      $STD uv venv .venv
 | 
					      $STD uv venv .venv
 | 
				
			||||||
      $STD .venv/bin/python -m ensurepip --upgrade
 | 
					      $STD .venv/bin/python -m ensurepip --upgrade
 | 
				
			||||||
@@ -56,7 +59,7 @@ function update_script() {
 | 
				
			|||||||
    $STD .venv/bin/python -m manage migrate
 | 
					    $STD .venv/bin/python -m manage migrate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
 | 
					    cp /opt/adventurelog-backup/frontend/.env /opt/adventurelog/frontend/.env
 | 
				
			||||||
    cd /opt/adventurelog/frontend
 | 
					    cd /opt/adventurelog/frontend || exit
 | 
				
			||||||
    $STD pnpm i
 | 
					    $STD pnpm i
 | 
				
			||||||
    $STD pnpm build
 | 
					    $STD pnpm build
 | 
				
			||||||
    msg_ok "Updated ${APP}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
@@ -70,10 +73,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning Up"
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
    rm -rf /opt/adventurelog-backup
 | 
					    rm -rf /opt/adventurelog-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  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}"
 | 
				
			||||||
@@ -11,7 +11,7 @@ var_disk="${var_disk:-4}"
 | 
				
			|||||||
var_cpu="${var_cpu:-1}"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="${var_ram:-2048}"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ APP="Apt-Cacher-NG"
 | 
				
			|||||||
var_tags="${var_tags:-caching}"
 | 
					var_tags="${var_tags:-caching}"
 | 
				
			||||||
var_cpu="${var_cpu:-1}"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="${var_ram:-512}"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="${var_disk:-2}"
 | 
					var_disk="${var_disk:-10}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								ct/argus.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/argus.sh
									
									
									
									
									
								
							@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "argus" "release-argus/Argus"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop argus
 | 
					    systemctl stop argus
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
@@ -39,11 +37,9 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start argus
 | 
					    systemctl start argus
 | 
				
			||||||
    msg_ok "Service started"
 | 
					    msg_ok "Service started"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "${APP} is already up to date (${RELEASE})"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ APP="audiobookshelf"
 | 
				
			|||||||
var_tags="${var_tags:-podcast;audiobook}"
 | 
					var_tags="${var_tags:-podcast;audiobook}"
 | 
				
			||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-2048}"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-5}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
@@ -23,11 +23,15 @@ function update_script() {
 | 
				
			|||||||
  header_info
 | 
					  header_info
 | 
				
			||||||
  check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
  check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
    if [[ ! -f /etc/apt/trusted.gpg.d/audiobookshelf-ppa.asc ]]; then
 | 
					  if [[ ! -f /etc/default/audiobookshelf ]]; then
 | 
				
			||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
    echo "This application receives updates through the APT package manager."
 | 
					
 | 
				
			||||||
 | 
					  msg_info "Updating $APP LXC"
 | 
				
			||||||
 | 
					  $STD apt-get update
 | 
				
			||||||
 | 
					  $STD apt-get -y upgrade
 | 
				
			||||||
 | 
					  msg_ok "Updated $APP LXC"
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,8 +29,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/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 update
 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					    $STD apt-get -y upgrade
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -40,14 +40,10 @@ function update_script() {
 | 
				
			|||||||
    $STD apt-get -y autoremove
 | 
					    $STD apt-get -y autoremove
 | 
				
			||||||
    $STD apt-get -y autoclean
 | 
					    $STD apt-get -y autoclean
 | 
				
			||||||
    msg_ok "Cleanup Completed"
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  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 check_for_gh_release "autobrr" "autobrr/autobrr"; then
 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat ~/.autobrr 2>/dev/null)" ]] || [[ ! -f ~/.autobrr ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP} LXC"
 | 
					    msg_info "Stopping ${APP} LXC"
 | 
				
			||||||
    systemctl stop autobrr
 | 
					    systemctl stop autobrr
 | 
				
			||||||
    msg_ok "Stopped ${APP} LXC"
 | 
					    msg_ok "Stopped ${APP} LXC"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP} LXC"
 | 
					    msg_info "Starting ${APP} LXC"
 | 
				
			||||||
    systemctl start autobrr
 | 
					    systemctl start autobrr
 | 
				
			||||||
    msg_ok "Started ${APP} LXC"
 | 
					    msg_ok "Started ${APP} LXC"
 | 
				
			||||||
      
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  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
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  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 check_for_gh_release "babybuddy" "babybuddy/babybuddy"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.babybuddy 2>/dev/null)" ]] || [[ ! -f ~/.babybuddy ]]; then
 | 
					 | 
				
			||||||
    setup_uv
 | 
					    setup_uv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Stopping Services"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
@@ -44,13 +43,13 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy"
 | 
					    fetch_and_deploy_gh_release "babybuddy" "babybuddy/babybuddy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/babybuddy
 | 
					    cd /opt/babybuddy
 | 
				
			||||||
    mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
 | 
					    mv /tmp/production.py.bak /opt/babybuddy/babybuddy/settings/production.py
 | 
				
			||||||
    source .venv/bin/activate
 | 
					    source .venv/bin/activate
 | 
				
			||||||
    $STD uv pip install -r requirements.txt
 | 
					    $STD uv pip install -r requirements.txt
 | 
				
			||||||
    $STD python manage.py migrate
 | 
					    $STD python manage.py migrate
 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Fixing permissions"
 | 
					    msg_info "Fixing permissions"
 | 
				
			||||||
    chown -R www-data:www-data /opt/data
 | 
					    chown -R www-data:www-data /opt/data
 | 
				
			||||||
@@ -62,14 +61,10 @@ function update_script() {
 | 
				
			|||||||
    systemctl start uwsgi
 | 
					    systemctl start uwsgi
 | 
				
			||||||
    systemctl start nginx
 | 
					    systemctl start nginx
 | 
				
			||||||
    msg_ok "Services Started"
 | 
					    msg_ok "Services Started"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/sabre-io/Baikal/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  if check_for_gh_release "baikal" "sabre-io/Baikal"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.baikal 2>/dev/null)" ]] || [[ ! -f ~/.baikal ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -58,8 +57,6 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/baikal-backup
 | 
					    rm -rf /opt/baikal-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,11 +29,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE_MEILISEARCH=$(curl -fsSL https://api.github.com/repos/meilisearch/meilisearch/releases/latest | jq -r '.tag_name | sub("^v"; "")')
 | 
					  if check_for_gh_release "bar-assistant" "karlomikus/bar-assistant"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Stopping nginx"
 | 
					    msg_info "Stopping nginx"
 | 
				
			||||||
    systemctl stop nginx
 | 
					    systemctl stop nginx
 | 
				
			||||||
    msg_ok "Stopped 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"
 | 
					    fetch_and_deploy_gh_release "bar-assistant" "karlomikus/bar-assistant" "tarball" "latest" "/opt/bar-assistant"
 | 
				
			||||||
    setup_composer
 | 
					    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/.env /opt/bar-assistant/.env
 | 
				
			||||||
    cp -r /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
 | 
					    cp -r /opt/bar-assistant-backup/storage/bar-assistant /opt/bar-assistant/storage/bar-assistant
 | 
				
			||||||
    cd /opt/bar-assistant
 | 
					    cd /opt/bar-assistant
 | 
				
			||||||
@@ -58,7 +54,7 @@ function update_script() {
 | 
				
			|||||||
    $STD php artisan route:cache
 | 
					    $STD php artisan route:cache
 | 
				
			||||||
    $STD php artisan event:cache
 | 
					    $STD php artisan event:cache
 | 
				
			||||||
    chown -R www-data:www-data /opt/bar-assistant
 | 
					    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"
 | 
					    msg_info "Starting nginx"
 | 
				
			||||||
    systemctl start nginx
 | 
					    systemctl start nginx
 | 
				
			||||||
@@ -67,11 +63,9 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -rf /opt/bar-assistant-backup
 | 
					    rm -rf /opt/bar-assistant-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE_BARASSISTANT}"
 | 
					 | 
				
			||||||
  fi
 | 
					  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"
 | 
					    msg_info "Backing up Vue Salt Rim"
 | 
				
			||||||
    mv /opt/vue-salt-rim /opt/vue-salt-rim-backup
 | 
					    mv /opt/vue-salt-rim /opt/vue-salt-rim-backup
 | 
				
			||||||
    msg_ok "Backed up Vue Salt Rim"
 | 
					    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"
 | 
					    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
 | 
					    cp /opt/vue-salt-rim-backup/public/config.js /opt/vue-salt-rim/public/config.js
 | 
				
			||||||
    cd /opt/vue-salt-rim
 | 
					    cd /opt/vue-salt-rim
 | 
				
			||||||
    $STD npm install
 | 
					    $STD npm install
 | 
				
			||||||
    $STD npm run build
 | 
					    $STD npm run build
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE_SALTRIM}"
 | 
					    msg_ok "Updated Vue Salt Rim"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting nginx"
 | 
					    msg_info "Starting nginx"
 | 
				
			||||||
    systemctl start nginx
 | 
					    systemctl start nginx
 | 
				
			||||||
@@ -96,12 +90,9 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    rm -rf /opt/vue-salt-rim-backup
 | 
					    rm -rf /opt/vue-salt-rim-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. Salt Rim is already at ${RELEASE_SALTRIM}"
 | 
					 | 
				
			||||||
  fi
 | 
					  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"
 | 
					    msg_info "Stopping Meilisearch"
 | 
				
			||||||
    systemctl stop meilisearch
 | 
					    systemctl stop meilisearch
 | 
				
			||||||
    msg_ok "Stopped Meilisearch"
 | 
					    msg_ok "Stopped Meilisearch"
 | 
				
			||||||
@@ -111,10 +102,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Meilisearch"
 | 
					    msg_info "Starting Meilisearch"
 | 
				
			||||||
    systemctl start meilisearch
 | 
					    systemctl start meilisearch
 | 
				
			||||||
    msg_ok "Started Meilisearch"
 | 
					    msg_ok "Started Meilisearch"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Updated Meilisearch"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. Meilisearch is already at ${RELEASE_MEILISEARCH}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/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"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    systemctl stop barcodebuddy
 | 
					    systemctl stop barcodebuddy
 | 
				
			||||||
@@ -55,8 +55,6 @@ function update_script() {
 | 
				
			|||||||
    rm -r /opt/barcodebuddy-backup
 | 
					    rm -r /opt/barcodebuddy-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								ct/bazarr.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ct/bazarr.sh
									
									
									
									
									
								
							@@ -27,14 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "bazarr" "morpheus65535/bazarr"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PYTHON_VERSION="3.13" setup_uv
 | 
					    PYTHON_VERSION="3.13" setup_uv
 | 
				
			||||||
    fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
 | 
					    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
 | 
					    sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
 | 
				
			||||||
    $STD uv pip install -r /opt/bazarr/requirements.txt --system
 | 
					    $STD uv pip install -r /opt/bazarr/requirements.txt --system
 | 
				
			||||||
    msg_ok "Setup Bazarr"
 | 
					    msg_ok "Setup Bazarr"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,6 +33,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    $STD /opt/beszel/beszel update
 | 
					    $STD /opt/beszel/beszel update
 | 
				
			||||||
 | 
					    sleep 2 && chmod +x /opt/beszel/beszel
 | 
				
			||||||
    msg_ok "Updated $APP"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.bitmagnet 2>/dev/null)" ]] || [[ ! -f ~/.bitmagnet ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop bitmagnet-web
 | 
					    systemctl stop bitmagnet-web
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -63,22 +62,19 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/bitmagnet
 | 
					    rm -rf /opt/bitmagnet
 | 
				
			||||||
    fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"
 | 
					    fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/bitmagnet
 | 
					    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"
 | 
					    $STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL"
 | 
				
			||||||
    chmod +x bitmagnet
 | 
					    chmod +x bitmagnet
 | 
				
			||||||
    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
					    [ -f "/opt/.env" ] && cp "/opt/.env" /opt/bitmagnet/
 | 
				
			||||||
    [ -f "/opt/config.yml" ] && cp "/opt/config.yml" /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"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start bitmagnet-web
 | 
					    systemctl start bitmagnet-web
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										32
									
								
								ct/blocky.sh
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								ct/blocky.sh
									
									
									
									
									
								
							@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
# Copyright (c) 2021-2025 tteck
 | 
					# Copyright (c) 2021-2025 tteck
 | 
				
			||||||
# Author: tteck (tteckster)
 | 
					# Author: tteck (tteckster)
 | 
				
			||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
					# 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"
 | 
					APP="Blocky"
 | 
				
			||||||
var_tags="${var_tags:-adblock}"
 | 
					var_tags="${var_tags:-adblock}"
 | 
				
			||||||
@@ -23,14 +23,34 @@ function update_script() {
 | 
				
			|||||||
  header_info
 | 
					  header_info
 | 
				
			||||||
  check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
  check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
    if [[ ! -d /var ]]; then
 | 
					  if [[ ! -d /opt/blocky ]]; then
 | 
				
			||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
    msg_info "Updating $APP LXC"
 | 
					  if check_for_gh_release "blocky" "0xERR0R/blocky"; then
 | 
				
			||||||
    $STD apt-get update
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					    systemctl stop blocky
 | 
				
			||||||
    msg_ok "Updated $APP LXC"
 | 
					    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
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,7 +8,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
 | 
				
			|||||||
APP="BookLore"
 | 
					APP="BookLore"
 | 
				
			||||||
var_tags="${var_tags:-books;library}"
 | 
					var_tags="${var_tags:-books;library}"
 | 
				
			||||||
var_cpu="${var_cpu:-3}"
 | 
					var_cpu="${var_cpu:-3}"
 | 
				
			||||||
var_ram="${var_ram:-2048}"
 | 
					var_ram="${var_ram:-3072}"
 | 
				
			||||||
var_disk="${var_disk:-7}"
 | 
					var_disk="${var_disk:-7}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
@@ -28,13 +28,15 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "booklore" "booklore-app/BookLore"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop booklore
 | 
					    systemctl stop booklore
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    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"
 | 
					    fetch_and_deploy_gh_release "booklore" "booklore-app/BookLore"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Building Frontend"
 | 
					    msg_info "Building Frontend"
 | 
				
			||||||
@@ -60,11 +62,9 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start booklore
 | 
					    systemctl start booklore
 | 
				
			||||||
    systemctl reload nginx
 | 
					    systemctl reload nginx
 | 
				
			||||||
 | 
					    rm -rf /opt/booklore_bak
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/BookStackApp/BookStack/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "bookstack" "BookStackApp/BookStack"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.bookstack 2>/dev/null)" ]] || [[ ! -f ~/.bookstack ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Apache2"
 | 
					    msg_info "Stopping Apache2"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    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 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 775 /opt/bookstack/storage /opt/bookstack/bootstrap/cache /opt/bookstack/public/uploads
 | 
				
			||||||
    chmod -R 640 /opt/bookstack/.env
 | 
					    chmod -R 640 /opt/bookstack/.env
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Configured BookStack"
 | 
					    msg_ok "Configured BookStack"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Apache2"
 | 
					    msg_info "Starting Apache2"
 | 
				
			||||||
@@ -69,12 +67,9 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/bookstack-backup
 | 
					    rm -rf /opt/bookstack-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/jordan-dalby/ByteStash/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "bytestash" "jordan-dalby/ByteStash"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.bytestash 2>/dev/null)" ]] || [[ ! -f ~/.bytestash ]]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    read -rp "${TAB3}Did you make a backup via application WebUI? (y/n): " backuped
 | 
					    read -rp "${TAB3}Did you make a backup via application WebUI? (y/n): " backuped
 | 
				
			||||||
    if [[ "$backuped" =~ ^[Yy]$ ]]; then
 | 
					    if [[ "$backuped" =~ ^[Yy]$ ]]; then
 | 
				
			||||||
      msg_info "Stopping Services"
 | 
					      msg_info "Stopping Services"
 | 
				
			||||||
@@ -57,10 +55,7 @@ function update_script() {
 | 
				
			|||||||
      exit
 | 
					      exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								ct/caddy.sh
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								ct/caddy.sh
									
									
									
									
									
								
							@@ -9,7 +9,7 @@ APP="Caddy"
 | 
				
			|||||||
var_tags="${var_tags:-webserver}"
 | 
					var_tags="${var_tags:-webserver}"
 | 
				
			||||||
var_cpu="${var_cpu:-1}"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="${var_ram:-512}"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-6}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
@@ -31,6 +31,19 @@ function update_script() {
 | 
				
			|||||||
   $STD apt-get update
 | 
					   $STD apt-get update
 | 
				
			||||||
   $STD apt-get -y upgrade
 | 
					   $STD apt-get -y upgrade
 | 
				
			||||||
   msg_ok "Updated $APP LXC"
 | 
					   msg_ok "Updated $APP LXC"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if command -v xcaddy >/dev/null 2>&1; then
 | 
				
			||||||
 | 
					      setup_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
 | 
					   exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,8 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Updated Dependencies"
 | 
					    msg_ok "Updated Dependencies"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  NODE_VERSION="24" setup_nodejs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  msg_info "Updating ${APP}"
 | 
					  msg_info "Updating ${APP}"
 | 
				
			||||||
  $STD pip3 install changedetection.io --upgrade
 | 
					  $STD pip3 install changedetection.io --upgrade
 | 
				
			||||||
  msg_ok "Updated ${APP}"
 | 
					  msg_ok "Updated ${APP}"
 | 
				
			||||||
@@ -49,6 +51,7 @@ function update_script() {
 | 
				
			|||||||
    $STD git -C /opt/browserless/ fetch --all
 | 
					    $STD git -C /opt/browserless/ fetch --all
 | 
				
			||||||
    $STD git -C /opt/browserless/ reset --hard origin/main
 | 
					    $STD git -C /opt/browserless/ reset --hard origin/main
 | 
				
			||||||
    $STD npm update --prefix /opt/browserless
 | 
					    $STD npm update --prefix /opt/browserless
 | 
				
			||||||
 | 
					    $STD npm ci --include=optional --include=dev --prefix /opt/browserless
 | 
				
			||||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
 | 
					    $STD /opt/browserless/node_modules/playwright-core/cli.js install --with-deps
 | 
				
			||||||
    # Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
 | 
					    # Update Chrome separately, as it has to be done with the force option. Otherwise the installation of other browsers will not be done if Chrome is already installed.
 | 
				
			||||||
    $STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
 | 
					    $STD /opt/browserless/node_modules/playwright-core/cli.js install --force chrome
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,8 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
 | 
					  RELEASE=$(curl -fsSL https://api.github.com/repos/checkmk/checkmk/tags | grep "name" | awk '{print substr($2, 3, length($2)-4) }' | tr ' ' '\n' | grep -Ev 'rc|b' | sort -V | tail -n 1)
 | 
				
			||||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
					 | 
				
			||||||
  msg_info "Updating ${APP} to v${RELEASE}"
 | 
					  msg_info "Updating ${APP} to v${RELEASE}"
 | 
				
			||||||
  $STD omd stop monitoring
 | 
					  $STD omd stop monitoring
 | 
				
			||||||
  $STD omd cp monitoring monitoringbackup
 | 
					  $STD omd cp monitoring monitoringbackup
 | 
				
			||||||
@@ -39,10 +39,8 @@ curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEA
 | 
				
			|||||||
  $STD omd -f rm monitoringbackup
 | 
					  $STD omd -f rm monitoringbackup
 | 
				
			||||||
  $STD omd cleanup
 | 
					  $STD omd cleanup
 | 
				
			||||||
  rm -rf /opt/checkmk.deb
 | 
					  rm -rf /opt/checkmk.deb
 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					  msg_ok "Updated ${APP}"
 | 
				
			||||||
  else
 | 
					  msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "cleanuparr" "Cleanuparr/Cleanuparr"; then
 | 
				
			||||||
    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}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop cleanuparr
 | 
					    systemctl stop cleanuparr
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -40,12 +38,9 @@ function update_script() {
 | 
				
			|||||||
    systemctl start cleanuparr
 | 
					    systemctl start cleanuparr
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
				
			|||||||
var_ram="${var_ram:-512}"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="${var_disk:-2}"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
@@ -23,13 +23,13 @@ function update_script() {
 | 
				
			|||||||
  header_info
 | 
					  header_info
 | 
				
			||||||
  check_container_storage
 | 
					  check_container_storage
 | 
				
			||||||
  check_container_resources
 | 
					  check_container_resources
 | 
				
			||||||
   if [[ ! -d /var ]]; then
 | 
					  if [[ ! -f /etc/systemd/system/cloudflared.service ]]; then
 | 
				
			||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  msg_info "Updating $APP LXC"
 | 
					  msg_info "Updating $APP LXC"
 | 
				
			||||||
   $STD apt-get update
 | 
					  $STD apt update
 | 
				
			||||||
   $STD apt-get -y upgrade
 | 
					  $STD apt -y upgrade
 | 
				
			||||||
  msg_ok "Updated $APP LXC"
 | 
					  msg_ok "Updated $APP LXC"
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "cloudreve" "cloudreve/cloudreve"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop cloudreve
 | 
					    systemctl stop cloudreve
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -40,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start cloudreve
 | 
					    systemctl start cloudreve
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}"
 | 
				
			|||||||
var_ram="${var_ram:-1024}"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-4}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
@@ -36,15 +36,15 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if [ "$UPD" == "1" ]; then
 | 
					  if [ "$UPD" == "1" ]; then
 | 
				
			||||||
    msg_info "Updating ${APP} LXC"
 | 
					    msg_info "Updating ${APP} LXC"
 | 
				
			||||||
    $STD apt-get update
 | 
					    $STD apt update
 | 
				
			||||||
    $STD apt-get -y upgrade
 | 
					    $STD apt -y upgrade
 | 
				
			||||||
    msg_ok "Updated ${APP} LXC"
 | 
					    msg_ok "Updated ${APP} LXC"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [ "$UPD" == "2" ]; then
 | 
					  if [ "$UPD" == "2" ]; then
 | 
				
			||||||
    msg_info "Installing dependencies (patience)"
 | 
					    msg_info "Installing dependencies (patience)"
 | 
				
			||||||
    $STD apt-get install -y \
 | 
					    $STD apt install -y \
 | 
				
			||||||
      attr \
 | 
					      attr \
 | 
				
			||||||
      nfs-kernel-server \
 | 
					      nfs-kernel-server \
 | 
				
			||||||
      samba \
 | 
					      samba \
 | 
				
			||||||
@@ -56,7 +56,7 @@ function update_script() {
 | 
				
			|||||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
					    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-file-sharing/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
				
			||||||
    FILE=$(basename "$URL")
 | 
					    FILE=$(basename "$URL")
 | 
				
			||||||
    curl -fsSL "$URL" -o "$FILE"
 | 
					    curl -fsSL "$URL" -o "$FILE"
 | 
				
			||||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
					    $STD dpkg -i "$FILE" || $STD apt install -f -y
 | 
				
			||||||
    rm -f "$FILE"
 | 
					    rm -f "$FILE"
 | 
				
			||||||
    msg_ok "Installed Cockpit file sharing"
 | 
					    msg_ok "Installed Cockpit file sharing"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
@@ -64,7 +64,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if [ "$UPD" == "3" ]; then
 | 
					  if [ "$UPD" == "3" ]; then
 | 
				
			||||||
    msg_info "Installing dependencies (patience)"
 | 
					    msg_info "Installing dependencies (patience)"
 | 
				
			||||||
    $STD apt-get install -y \
 | 
					    $STD apt install -y \
 | 
				
			||||||
      psmisc \
 | 
					      psmisc \
 | 
				
			||||||
      samba \
 | 
					      samba \
 | 
				
			||||||
      samba-common-bin
 | 
					      samba-common-bin
 | 
				
			||||||
@@ -73,7 +73,7 @@ function update_script() {
 | 
				
			|||||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
					    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-identities/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
				
			||||||
    FILE=$(basename "$URL")
 | 
					    FILE=$(basename "$URL")
 | 
				
			||||||
    curl -fsSL "$URL" -o "$FILE"
 | 
					    curl -fsSL "$URL" -o "$FILE"
 | 
				
			||||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
					    $STD dpkg -i "$FILE" || $STD apt install -f -y
 | 
				
			||||||
    rm -f "$FILE"
 | 
					    rm -f "$FILE"
 | 
				
			||||||
    msg_ok "Installed Cockpit identities"
 | 
					    msg_ok "Installed Cockpit identities"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
@@ -81,7 +81,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  if [ "$UPD" == "4" ]; then
 | 
					  if [ "$UPD" == "4" ]; then
 | 
				
			||||||
    msg_info "Installing dependencies"
 | 
					    msg_info "Installing dependencies"
 | 
				
			||||||
    $STD apt-get install -y \
 | 
					    $STD apt install -y \
 | 
				
			||||||
      rsync \
 | 
					      rsync \
 | 
				
			||||||
      zip
 | 
					      zip
 | 
				
			||||||
    msg_ok "Installed dependencies"
 | 
					    msg_ok "Installed dependencies"
 | 
				
			||||||
@@ -89,7 +89,7 @@ function update_script() {
 | 
				
			|||||||
    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
					    URL=$(curl -fsSL https://api.github.com/repos/45Drives/cockpit-navigator/releases/latest | grep download | grep focal_all.deb | cut -d\" -f4)
 | 
				
			||||||
    FILE=$(basename "$URL")
 | 
					    FILE=$(basename "$URL")
 | 
				
			||||||
    curl -fsSL "$URL" -o "$FILE"
 | 
					    curl -fsSL "$URL" -o "$FILE"
 | 
				
			||||||
    $STD dpkg -i "$FILE" || $STD apt-get install -f -y
 | 
					    $STD dpkg -i "$FILE" || $STD apt install -f -y
 | 
				
			||||||
    rm -f "$FILE"
 | 
					    rm -f "$FILE"
 | 
				
			||||||
    msg_ok "Installed Cockpit navigator"
 | 
					    msg_ok "Installed Cockpit navigator"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/Athou/commafeed/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
					  if check_for_gh_release "commafeed" "Athou/commafeed"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.commafeed 2>/dev/null)" ]] || [[ ! -f ~/.commafeed ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop commafeed
 | 
					    systemctl stop commafeed
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -59,8 +58,6 @@ function update_script() {
 | 
				
			|||||||
    systemctl start commafeed
 | 
					    systemctl start commafeed
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,31 +27,28 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/raydak-labs/configarr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "configarr" "raydak-labs/configarr"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.configarr 2>/dev/null || cat /opt/configarr_version.txt 2>/dev/null)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop configarr-task.timer
 | 
					    systemctl stop configarr-task.timer
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    mkdir -p /opt/backup/
 | 
					    mkdir -p /opt/backup/
 | 
				
			||||||
    mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
 | 
					    mv /opt/configarr/{config.yml,secrets.yml,.env} "/opt/backup/"
 | 
				
			||||||
    rm -rf /opt/configarr
 | 
					    rm -rf /opt/configarr
 | 
				
			||||||
    fetch_and_deploy_gh_release "configarr" "raydak-labs/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
 | 
					    cd /opt/configarr
 | 
				
			||||||
    $STD pnpm install
 | 
					    $STD pnpm install
 | 
				
			||||||
    $STD pnpm run build
 | 
					    $STD pnpm run build
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start configarr-task.timer
 | 
					    systemctl start configarr-task.timer
 | 
				
			||||||
    msg_ok "Started configarr"
 | 
					    msg_ok "Started configarr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rm -rf /opt/backup
 | 
					    rm -rf /opt/backup
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/C4illin/ConvertX/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  if check_for_gh_release "ConvertX" "C4illin/ConvertX"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.convertx 2>/dev/null)" ]] || [[ ! -f ~/.convertx ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop convertx
 | 
					    systemctl stop convertx
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -41,25 +40,21 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "ConvertX" "C4illin/ConvertX" "tarball" "latest" "/opt/convertx"
 | 
					    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
 | 
					    if [[ -d /opt/data ]]; then
 | 
				
			||||||
      mv /opt/data /opt/convertx/data
 | 
					      mv /opt/data /opt/convertx/data
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    cd /opt/convertx
 | 
					    cd /opt/convertx
 | 
				
			||||||
    $STD bun install
 | 
					    $STD bun install
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start convertx
 | 
					    systemctl start convertx
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
build_container
 | 
					build_container
 | 
				
			||||||
description
 | 
					description
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,27 +33,16 @@ function update_script() {
 | 
				
			|||||||
      msg_error "No ${APP} Installation Found!"
 | 
					      msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
 | 
					    NODE_VERSION="22" setup_nodejs
 | 
				
			||||||
      if ! command -v npm >/dev/null 2>&1; then
 | 
					
 | 
				
			||||||
        echo "Installing NPM..."
 | 
					 | 
				
			||||||
        $STD apt-get install -y npm
 | 
					 | 
				
			||||||
        echo "Installed NPM..."
 | 
					 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
    msg_info "Updating ${APP}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    $STD /opt/cronicle/bin/control.sh upgrade
 | 
					    $STD /opt/cronicle/bin/control.sh upgrade
 | 
				
			||||||
    msg_ok "Updated ${APP}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if [ "$UPD" == "2" ]; then
 | 
					  if [ "$UPD" == "2" ]; then
 | 
				
			||||||
    if [[ "$(node -v | cut -d 'v' -f 2)" == "18."* ]]; then
 | 
					    NODE_VERSION="22" setup_nodejs
 | 
				
			||||||
      if ! command -v npm >/dev/null 2>&1; then
 | 
					    if check_for_gh_release "cronicle" "jhuckaby/Cronicle"; 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}')
 | 
					      IP=$(hostname -I | awk '{print $1}')
 | 
				
			||||||
      msg_info "Installing Dependencies"
 | 
					      msg_info "Installing Dependencies"
 | 
				
			||||||
      $STD apt-get install -y \
 | 
					      $STD apt-get install -y \
 | 
				
			||||||
@@ -80,6 +69,7 @@ function update_script() {
 | 
				
			|||||||
      echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
 | 
					      echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
 | 
				
			||||||
      exit
 | 
					      exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/cryptpad/cryptpad/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
 | 
					  if check_for_gh_release "cryptpad" "cryptpad/cryptpad"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.cryptpad 2>/dev/null)" ]] || [[ ! -f ~/.cryptpad ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop cryptpad
 | 
					    systemctl stop cryptpad
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -40,12 +39,12 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad"
 | 
					    fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to ${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/cryptpad
 | 
					    cd /opt/cryptpad
 | 
				
			||||||
    $STD npm ci
 | 
					    $STD npm ci
 | 
				
			||||||
    $STD npm run install:components
 | 
					    $STD npm run install:components
 | 
				
			||||||
    $STD npm run build
 | 
					    $STD npm run build
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restoring configuration"
 | 
					    msg_info "Restoring configuration"
 | 
				
			||||||
    mv /opt/config.js /opt/cryptpad/config/
 | 
					    mv /opt/config.js /opt/cryptpad/config/
 | 
				
			||||||
@@ -54,10 +53,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start cryptpad
 | 
					    systemctl start cryptpad
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								ct/dashy.sh
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ct/dashy.sh
									
									
									
									
									
								
							@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "dashy" "Lissy93/dashy"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop dashy
 | 
					    systemctl stop dashy
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -46,11 +44,11 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/dashy
 | 
					    rm -rf /opt/dashy
 | 
				
			||||||
    fetch_and_deploy_gh_release "dashy" "Lissy93/dashy"
 | 
					    fetch_and_deploy_gh_release "dashy" "Lissy93/dashy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to ${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/dashy
 | 
					    cd /opt/dashy
 | 
				
			||||||
    npm install
 | 
					    npm install
 | 
				
			||||||
    npm run build
 | 
					    npm run build
 | 
				
			||||||
    msg_ok "Updated ${APP} to ${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restoring conf.yml"
 | 
					    msg_info "Restoring conf.yml"
 | 
				
			||||||
    cd ~
 | 
					    cd ~
 | 
				
			||||||
@@ -64,10 +62,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Dashy"
 | 
					    msg_info "Starting Dashy"
 | 
				
			||||||
    systemctl start dashy
 | 
					    systemctl start dashy
 | 
				
			||||||
    msg_ok "Started Dashy"
 | 
					    msg_ok "Started Dashy"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}"
 | 
				
			|||||||
var_ram="${var_ram:-512}"
 | 
					var_ram="${var_ram:-512}"
 | 
				
			||||||
var_disk="${var_disk:-2}"
 | 
					var_disk="${var_disk:-2}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
@@ -28,8 +28,8 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  msg_info "Updating $APP LXC"
 | 
					  msg_info "Updating $APP LXC"
 | 
				
			||||||
  $STD apt-get update
 | 
					  $STD apt update
 | 
				
			||||||
  $STD apt-get -y upgrade
 | 
					  $STD apt -y upgrade
 | 
				
			||||||
  msg_ok "Updated $APP LXC"
 | 
					  msg_ok "Updated $APP LXC"
 | 
				
			||||||
  exit
 | 
					  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
 | 
					    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
 | 
					  fi
 | 
				
			||||||
  export NODE_OPTIONS="--max_old_space_size=4096"
 | 
					  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}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop docmost
 | 
					    systemctl stop docmost
 | 
				
			||||||
    msg_ok "${APP} Stopped"
 | 
					    msg_ok "${APP} Stopped"
 | 
				
			||||||
@@ -44,7 +44,7 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "docmost" "docmost/docmost"
 | 
					    fetch_and_deploy_gh_release "docmost" "docmost/docmost"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    cd /opt/docmost
 | 
					    cd /opt/docmost
 | 
				
			||||||
    mv /opt/.env /opt/docmost/.env
 | 
					    mv /opt/.env /opt/docmost/.env
 | 
				
			||||||
    mv /opt/data /opt/docmost/data
 | 
					    mv /opt/data /opt/docmost/data
 | 
				
			||||||
@@ -55,10 +55,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start docmost
 | 
					    systemctl start docmost
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  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 check_for_gh_release "duplicati" "duplicati/duplicati"; then
 | 
				
			||||||
    if [[ "${RELEASE}" != "$(cat ~/.duplicati)" ]] || [[ ! -f ~/.duplicati ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop duplicati
 | 
					    systemctl stop duplicati
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start duplicati
 | 
					    systemctl start duplicati
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ APP="Element Synapse"
 | 
				
			|||||||
var_tags="${var_tags:-server}"
 | 
					var_tags="${var_tags:-server}"
 | 
				
			||||||
var_cpu="${var_cpu:-1}"
 | 
					var_cpu="${var_cpu:-1}"
 | 
				
			||||||
var_ram="${var_ram:-2048}"
 | 
					var_ram="${var_ram:-2048}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
 | 
					  if check_for_gh_release "emby" "MediaBrowser/Emby.Releases"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.emby 2>/dev/null)" ]] || [[ ! -f ~/.emby ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop emby-server
 | 
					    systemctl stop emby-server
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start emby-server
 | 
					    systemctl start emby-server
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,7 +31,13 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Stopped EMQX"
 | 
					    msg_ok "Stopped EMQX"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Removing old EMQX"
 | 
					    msg_info "Removing old EMQX"
 | 
				
			||||||
 | 
					    if dpkg -l | grep -q "^ii\s\+emqx\s"; then
 | 
				
			||||||
      $STD apt-get remove --purge -y emqx
 | 
					      $STD apt-get remove --purge -y emqx
 | 
				
			||||||
 | 
					    elif dpkg -l | grep -q "^ii\s\+emqx-enterprise\s"; then
 | 
				
			||||||
 | 
					      $STD apt-get remove --purge -y emqx-enterprise
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      msg_ok "No old EMQX package found"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
    msg_ok "Removed old EMQX"
 | 
					    msg_ok "Removed old EMQX"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Downloading EMQX v${RELEASE}"
 | 
					    msg_info "Downloading EMQX v${RELEASE}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,10 +26,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/ErsatzTV/ErsatzTV/releases | grep -oP '"tag_name": "\Kv\K[^"]+' | head -n1)
 | 
					  if check_for_gh_release "ersatztv" "ErsatzTV/ErsatzTV"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Stopping ErsatzTV"
 | 
					    msg_info "Stopping ErsatzTV"
 | 
				
			||||||
    systemctl stop ersatzTV
 | 
					    systemctl stop ersatzTV
 | 
				
			||||||
    msg_ok "Stopped ErsatzTV"
 | 
					    msg_ok "Stopped ErsatzTV"
 | 
				
			||||||
@@ -41,11 +38,9 @@ function update_script() {
 | 
				
			|||||||
    msg_ok "Started ErsatzTV"
 | 
					    msg_ok "Started ErsatzTV"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  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"
 | 
					    msg_info "Stopping ErsatzTV"
 | 
				
			||||||
    systemctl stop ersatzTV
 | 
					    systemctl stop ersatzTV
 | 
				
			||||||
    msg_ok "Stopped ErsatzTV"
 | 
					    msg_ok "Stopped ErsatzTV"
 | 
				
			||||||
@@ -62,10 +57,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ErsatzTV"
 | 
					    msg_info "Starting ErsatzTV"
 | 
				
			||||||
    systemctl start ersatzTV
 | 
					    systemctl start ersatzTV
 | 
				
			||||||
    msg_ok "Started ErsatzTV"
 | 
					    msg_ok "Started ErsatzTV"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ErsatzTV-ffmpeg is already at ${RELEASE_FFMPEG}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ APP="ESPHome"
 | 
				
			|||||||
var_tags="${var_tags:-automation}"
 | 
					var_tags="${var_tags:-automation}"
 | 
				
			||||||
var_cpu="${var_cpu:-2}"
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
var_ram="${var_ram:-1024}"
 | 
					var_ram="${var_ram:-1024}"
 | 
				
			||||||
var_disk="${var_disk:-4}"
 | 
					var_disk="${var_disk:-10}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-12}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/excalidraw/excalidraw/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.excalidraw 2>/dev/null)" ]] || [[ ! -f ~/.excalidraw ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop excalidraw
 | 
					    systemctl stop excalidraw
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -37,18 +36,15 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/excalidraw
 | 
					    rm -rf /opt/excalidraw
 | 
				
			||||||
    fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
 | 
					    fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/excalidraw
 | 
					    cd /opt/excalidraw
 | 
				
			||||||
    $STD yarn
 | 
					    $STD yarn
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start excalidraw
 | 
					    systemctl start excalidraw
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/firefly-iii/firefly-iii/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
 | 
					  if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.firefly 2>/dev/null)" ]] || [[ ! -f ~/.firefly ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Apache2"
 | 
					    msg_info "Stopping Apache2"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Apache2"
 | 
					    msg_ok "Stopped Apache2"
 | 
				
			||||||
@@ -42,7 +41,7 @@ function update_script() {
 | 
				
			|||||||
    fetch_and_deploy_gh_release "firefly" "firefly-iii/firefly-iii" "prebuild" "latest" "/opt/firefly" "FireflyIII-*.zip"
 | 
					    fetch_and_deploy_gh_release "firefly" "firefly-iii/firefly-iii" "prebuild" "latest" "/opt/firefly" "FireflyIII-*.zip"
 | 
				
			||||||
    setup_composer
 | 
					    setup_composer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    rm -rf /opt/firefly/storage
 | 
					    rm -rf /opt/firefly/storage
 | 
				
			||||||
    cp /opt/.env /opt/firefly/.env
 | 
					    cp /opt/.env /opt/firefly/.env
 | 
				
			||||||
    cp -r /opt/storage /opt/firefly/storage
 | 
					    cp -r /opt/storage /opt/firefly/storage
 | 
				
			||||||
@@ -58,15 +57,12 @@ function update_script() {
 | 
				
			|||||||
    $STD php artisan view:clear
 | 
					    $STD php artisan view:clear
 | 
				
			||||||
    $STD php artisan firefly-iii:upgrade-database
 | 
					    $STD php artisan firefly-iii:upgrade-database
 | 
				
			||||||
    $STD php artisan firefly-iii:laravel-passport-keys
 | 
					    $STD php artisan firefly-iii:laravel-passport-keys
 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Apache2"
 | 
					    msg_info "Starting Apache2"
 | 
				
			||||||
    systemctl start apache2
 | 
					    systemctl start apache2
 | 
				
			||||||
    msg_ok "Started Apache2"
 | 
					    msg_ok "Started Apache2"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,20 +28,17 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/FlareSolverr/FlareSolverr/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
 | 
					  if check_for_gh_release "flaresolverr" "FlareSolverr/FlareSolverr" "3.3.25"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.flaresolverr 2>/dev/null)" ]] || [[ ! -f ~/.flaresolverr ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop flaresolverr
 | 
					    systemctl stop flaresolverr
 | 
				
			||||||
    msg_ok "Stopped service"
 | 
					    msg_ok "Stopped service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rm -rf /opt/flaresolverr
 | 
					    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"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start flaresolverr
 | 
					    systemctl start flaresolverr
 | 
				
			||||||
    msg_ok "Started service"
 | 
					    msg_ok "Started service"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/dotnetfactory/fluid-calendar/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.fluid-calendar 2>/dev/null)" ]] || [[ ! -f ~/.fluid-calendar ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop fluid-calendar
 | 
					    systemctl stop fluid-calendar
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -38,7 +37,7 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/fluid-calendar
 | 
					    rm -rf /opt/fluid-calendar
 | 
				
			||||||
    fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/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
 | 
					    mv /opt/fluid.env /opt/fluid-calendar/.env
 | 
				
			||||||
    cd /opt/fluid-calendar
 | 
					    cd /opt/fluid-calendar
 | 
				
			||||||
    export NEXT_TELEMETRY_DISABLED=1
 | 
					    export NEXT_TELEMETRY_DISABLED=1
 | 
				
			||||||
@@ -46,15 +45,12 @@ function update_script() {
 | 
				
			|||||||
    $STD npm run prisma:generate
 | 
					    $STD npm run prisma:generate
 | 
				
			||||||
    $STD npx prisma migrate deploy
 | 
					    $STD npx prisma migrate deploy
 | 
				
			||||||
    $STD npm run build:os
 | 
					    $STD npm run build:os
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start fluid-calendar
 | 
					    systemctl start fluid-calendar
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,16 @@ function update_script() {
 | 
				
			|||||||
        msg_error "No ${APP} Installation Found!"
 | 
					        msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if [ ! -x /opt/freshrss/cli/sensitive-log.sh ]; then
 | 
				
			||||||
 | 
					        msg_info "Fixing wrong permissions"
 | 
				
			||||||
 | 
					        chmod +x /opt/freshrss/cli/sensitive-log.sh
 | 
				
			||||||
 | 
					        systemctl restart apache2
 | 
				
			||||||
 | 
					        msg_ok "Fixed wrong permissions"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
        msg_error "FreshRSS should be updated via the user interface."
 | 
					        msg_error "FreshRSS should be updated via the user interface."
 | 
				
			||||||
        exit
 | 
					        exit
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
start
 | 
					start
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								ct/gatus.sh
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								ct/gatus.sh
									
									
									
									
									
								
							@@ -28,33 +28,32 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  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 check_for_gh_release "gatus" "TwiN/gatus"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.gatus 2>/dev/null)" ]] || [[ ! -f ~/.gatus ]]; then
 | 
					 | 
				
			||||||
    msg_info "Updating $APP"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop gatus
 | 
					    systemctl stop gatus
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    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
 | 
					    mv /opt/gatus/config/config.yaml /opt
 | 
				
			||||||
    rm -rf /opt/gatus
 | 
					    rm -rf /opt/gatus
 | 
				
			||||||
    fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
 | 
					    fetch_and_deploy_gh_release "gatus" "TwiN/gatus"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/gatus
 | 
					    cd /opt/gatus
 | 
				
			||||||
    $STD go mod tidy
 | 
					    $STD go mod tidy
 | 
				
			||||||
    CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
 | 
					    CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gatus .
 | 
				
			||||||
    setcap CAP_NET_RAW+ep gatus
 | 
					    setcap CAP_NET_RAW+ep gatus
 | 
				
			||||||
    mv /opt/config.yaml config
 | 
					    mv /opt/config.yaml config
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start gatus
 | 
					    systemctl start gatus
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										75
									
								
								ct/ghostfolio.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								ct/ghostfolio.sh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,75 @@
 | 
				
			|||||||
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# Author: lucasfell
 | 
				
			||||||
 | 
					# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
 | 
				
			||||||
 | 
					# Source: https://ghostfol.io/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					APP="Ghostfolio"
 | 
				
			||||||
 | 
					var_tags="${var_tags:-finance;investment}"
 | 
				
			||||||
 | 
					var_cpu="${var_cpu:-2}"
 | 
				
			||||||
 | 
					var_ram="${var_ram:-4096}"
 | 
				
			||||||
 | 
					var_disk="${var_disk:-8}"
 | 
				
			||||||
 | 
					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 [[ ! -f /opt/ghostfolio/dist/apps/api/main.js ]]; then
 | 
				
			||||||
 | 
					        msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
 | 
					        exit
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if check_for_gh_release "ghostfolio" "ghostfolio/ghostfolio"; then
 | 
				
			||||||
 | 
					      msg_info "Stopping Service"
 | 
				
			||||||
 | 
					      systemctl stop ghostfolio
 | 
				
			||||||
 | 
					      msg_ok "Stopped Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      msg_info "Creating Backup"
 | 
				
			||||||
 | 
					      tar -czf "/opt/ghostfolio_backup_$(date +%F).tar.gz" \
 | 
				
			||||||
 | 
					        -C /opt \
 | 
				
			||||||
 | 
					        --exclude="ghostfolio/node_modules" \
 | 
				
			||||||
 | 
					        --exclude="ghostfolio/dist" \
 | 
				
			||||||
 | 
					        ghostfolio
 | 
				
			||||||
 | 
					      mv /opt/ghostfolio/.env /opt/env.backup
 | 
				
			||||||
 | 
					      msg_ok "Backup Created"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ghostfolio" "ghostfolio/ghostfolio" "tarball" "latest" "/opt/ghostfolio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      msg_info "Updating Ghostfolio"
 | 
				
			||||||
 | 
					      mv /opt/env.backup /opt/ghostfolio/.env
 | 
				
			||||||
 | 
					      cd /opt/ghostfolio
 | 
				
			||||||
 | 
					      $STD npm ci
 | 
				
			||||||
 | 
					      $STD npm run build:production
 | 
				
			||||||
 | 
					      $STD npx prisma migrate deploy
 | 
				
			||||||
 | 
					      msg_ok "Updated Ghostfolio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
 | 
					    systemctl start ghostfolio
 | 
				
			||||||
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Cleaning Up"
 | 
				
			||||||
 | 
					    $STD npm cache clean --force
 | 
				
			||||||
 | 
					    msg_ok "Cleanup Completed"
 | 
				
			||||||
 | 
					    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}:3333${CL}"
 | 
				
			||||||
@@ -32,14 +32,12 @@ function update_script() {
 | 
				
			|||||||
  APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4)
 | 
					  APP_VERSION=$(grep -o '"version": *"[^"]*"' /opt/gitea-mirror/package.json | cut -d'"' -f4)
 | 
				
			||||||
  if [[ $APP_VERSION =~ ^2\. ]]; then
 | 
					  if [[ $APP_VERSION =~ ^2\. ]]; then
 | 
				
			||||||
    if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️  VERSION 2.x DETECTED" --yesno \
 | 
					    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
 | 
					      "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
 | 
				
			||||||
    then
 | 
					 | 
				
			||||||
      exit 0
 | 
					      exit 0
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ! whiptail --backtitle "Gitea Mirror Update" --title "⚠️  FINAL CONFIRMATION" --yesno \
 | 
					    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 
 | 
					      "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
 | 
				
			||||||
    then
 | 
					 | 
				
			||||||
      whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
 | 
					      whiptail --backtitle "Gitea Mirror Update" --title "Update Cancelled" --msgbox "Update process cancelled. Please backup your configuration before proceeding." 8 60
 | 
				
			||||||
      exit 0
 | 
					      exit 0
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -48,9 +46,40 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/gitea-mirror
 | 
					    rm -rf /opt/gitea-mirror
 | 
				
			||||||
  fi
 | 
					  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 [[ ! -f /opt/gitea-mirror.env ]]; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; 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"
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    systemctl stop gitea-mirror
 | 
					    systemctl stop gitea-mirror
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
@@ -70,25 +99,23 @@ function update_script() {
 | 
				
			|||||||
    rm -rf /opt/gitea-mirror
 | 
					    rm -rf /opt/gitea-mirror
 | 
				
			||||||
    fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/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
 | 
					    cd /opt/gitea-mirror
 | 
				
			||||||
    $STD bun run setup
 | 
					    $STD bun run setup
 | 
				
			||||||
    $STD bun run build
 | 
					    $STD bun run build
 | 
				
			||||||
    APP_VERSION=$(grep -o '"version": *"[^"]*"' package.json | cut -d'"' -f4)
 | 
					    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"
 | 
					    msg_info "Restoring Data"
 | 
				
			||||||
    cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
 | 
					    cp /opt/gitea-mirror-backup/data/* /opt/gitea-mirror/data
 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
    msg_ok "Restored Data"
 | 
					    msg_ok "Restored Data"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl daemon-reload
 | 
					 | 
				
			||||||
    systemctl start gitea-mirror
 | 
					    systemctl start gitea-mirror
 | 
				
			||||||
    msg_ok "Service Started"
 | 
					    msg_ok "Service Started"
 | 
				
			||||||
  else
 | 
					    msg_ok "Update Successfully"
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://github.com/go-gitea/gitea/releases/latest | grep "title>Release" | cut -d " " -f 4 | sed 's/^v//')
 | 
					  if check_for_gh_release "gitea" "go-gitea/gitea"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.gitea 2>/dev/null)" ]] || [[ ! -f ~/.gitea ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop gitea
 | 
					    systemctl stop gitea
 | 
				
			||||||
    msg_ok "Service stopped"
 | 
					    msg_ok "Service stopped"
 | 
				
			||||||
@@ -41,10 +40,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start gitea
 | 
					    systemctl start gitea
 | 
				
			||||||
    msg_ok "Started service"
 | 
					    msg_ok "Started service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/glanceapp/glance/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
 | 
					  if check_for_gh_release "glance" "glanceapp/glance"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.glance 2>/dev/null)" ]] || [[ ! -f ~/.glance ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop glance
 | 
					    systemctl stop glance
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -40,10 +39,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start glance
 | 
					    systemctl start glance
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  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
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  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 check_for_gh_release "go2rtc" "AlexxIT/go2rtc"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.go2rtc 2>/dev/null)" ]] || [[ ! -f ~/.go2rtc ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping service"
 | 
					    msg_info "Stopping service"
 | 
				
			||||||
    systemctl stop go2rtc
 | 
					    systemctl stop go2rtc
 | 
				
			||||||
    msg_ok "Stopped service"
 | 
					    msg_ok "Stopped service"
 | 
				
			||||||
@@ -39,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting service"
 | 
					    msg_info "Starting service"
 | 
				
			||||||
    systemctl start go2rtc
 | 
					    systemctl start go2rtc
 | 
				
			||||||
    msg_ok "Started service"
 | 
					    msg_ok "Started service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  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}"
 | 
				
			||||||
							
								
								
									
										10
									
								
								ct/gokapi.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ct/gokapi.sh
									
									
									
									
									
								
							@@ -27,12 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
   if [[ -f /opt/${APP}_version.txt ]]; then
 | 
					  if check_for_gh_release "gokapi" "Forceu/Gokapi"; 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
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop gokapi
 | 
					    systemctl stop gokapi
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -42,10 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start gokapi
 | 
					    systemctl start gokapi
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					  if check_for_gh_release "gomft" "StarFleetCPTN/GoMFT"; then
 | 
				
			||||||
  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 ~/.gomft)" ]] || [[ ! -f ~/.gomft ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop gomft
 | 
					    systemctl stop gomft
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -40,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start gomft
 | 
					    systemctl start gomft
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "gotify" "gotify/server"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop gotify
 | 
					    systemctl stop gotify
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -40,10 +38,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start gotify
 | 
					    systemctl start gotify
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								ct/grist.sh
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								ct/grist.sh
									
									
									
									
									
								
							@@ -1,5 +1,8 @@
 | 
				
			|||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
					source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
 | 
				
			||||||
 | 
					# Copyright (c) 2021-2025 community-scripts ORG
 | 
				
			||||||
 | 
					# 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
 | 
					# Source: https://github.com/gristlabs/grist-core
 | 
				
			||||||
 | 
					
 | 
				
			||||||
APP="Grist"
 | 
					APP="Grist"
 | 
				
			||||||
@@ -26,57 +29,34 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  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 check_for_gh_release "grist" "gristlabs/grist-core"; then
 | 
				
			||||||
  if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP} Service"
 | 
					    msg_info "Stopping ${APP} Service"
 | 
				
			||||||
    systemctl stop grist
 | 
					    systemctl stop grist
 | 
				
			||||||
    msg_ok "Stopped ${APP} Service"
 | 
					    msg_ok "Stopped ${APP} Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} to v${RELEASE}"
 | 
					    msg_info "Creating backup"
 | 
				
			||||||
 | 
					    rm -rf /opt/grist_bak
 | 
				
			||||||
    cd /opt
 | 
					 | 
				
			||||||
    rm -rf grist_bak
 | 
					 | 
				
			||||||
    mv grist grist_bak
 | 
					    mv grist grist_bak
 | 
				
			||||||
    curl -fsSL "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/gristlabs/grist-core/archive/refs/tags/v${RELEASE}.zip")
 | 
					    msg_ok "Backup created"
 | 
				
			||||||
    $STD unzip v$RELEASE.zip
 | 
					 | 
				
			||||||
    mv grist-core-${RELEASE} grist
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    mkdir -p grist/docs
 | 
					    mkdir -p grist/docs
 | 
				
			||||||
 | 
					    cp -n /opt/grist_bak/.env /opt/grist/.env
 | 
				
			||||||
    cp -n grist_bak/.env grist/.env || true
 | 
					    cp -r /opt/grist_bak/docs/* /opt/grist/docs/
 | 
				
			||||||
    cp -r grist_bak/docs/* grist/docs/ || true
 | 
					    cp /opt/grist_bak/grist-sessions.db /opt/grist/grist-sessions.db
 | 
				
			||||||
    cp grist_bak/grist-sessions.db grist/grist-sessions.db || true
 | 
					    cp /opt/grist_bak/landing.db /opt/grist/landing.db
 | 
				
			||||||
    cp grist_bak/landing.db grist/landing.db || true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cd grist
 | 
					 | 
				
			||||||
    msg_info "Installing Dependencies"
 | 
					 | 
				
			||||||
    $STD yarn install
 | 
					    $STD yarn install
 | 
				
			||||||
    msg_ok "Installed Dependencies"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Building"
 | 
					 | 
				
			||||||
    $STD yarn run build:prod
 | 
					    $STD yarn run build:prod
 | 
				
			||||||
    msg_ok "Done building"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Installing Python"
 | 
					 | 
				
			||||||
    $STD yarn run install:python
 | 
					    $STD yarn run install:python
 | 
				
			||||||
    msg_ok "Installed Python"
 | 
					    msg_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo "${RELEASE}" >/opt/${APP}_version.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP} Service"
 | 
					    msg_info "Starting ${APP} Service"
 | 
				
			||||||
    systemctl start grist
 | 
					    systemctl start grist
 | 
				
			||||||
    msg_ok "Started ${APP} Service"
 | 
					    msg_ok "Started ${APP} Service"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Cleaning up"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
    rm -rf /opt/v$RELEASE.zip
 | 
					 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully!\n"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,19 +27,14 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  php_ver=$(php -v | head -n 1 | awk '{print $2}')
 | 
					  php_ver=$(php -v | head -n 1 | awk '{print $2}')
 | 
				
			||||||
  if [[ ! $php_ver == "8.3"* ]]; then
 | 
					  if [[ ! $php_ver == "8.3"* ]]; then
 | 
				
			||||||
    PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php
 | 
					    PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  
 | 
					  if check_for_gh_release "grocy" "grocy/grocy"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Updating ${APP}"
 | 
					    msg_info "Updating ${APP}"
 | 
				
			||||||
    bash /var/www/html/update.sh
 | 
					    bash /var/www/html/update.sh
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,9 +29,7 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  NODE_VERSION="20" NODE_MODULE="gulp-cli,mocha" setup_nodejs
 | 
					  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 check_for_gh_release "habitica" "HabitRPG/habitica"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.habitica 2>/dev/null)" ]] || [[ ! -f ~/.habitica ]]; then
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop habitica-mongodb
 | 
					    systemctl stop habitica-mongodb
 | 
				
			||||||
    systemctl stop habitica
 | 
					    systemctl stop habitica
 | 
				
			||||||
@@ -48,13 +46,13 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "habitica" "HabitRPG/habitica" "tarball" "latest" "/opt/habitica"
 | 
					    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
 | 
					    cd /opt/habitica
 | 
				
			||||||
    $STD npm i
 | 
					    $STD npm i
 | 
				
			||||||
    $STD npm run postinstall
 | 
					    $STD npm run postinstall
 | 
				
			||||||
    $STD npm run client:build
 | 
					    $STD npm run client:build
 | 
				
			||||||
    $STD gulp build:prod
 | 
					    $STD gulp build:prod
 | 
				
			||||||
    msg_ok "Updated $APP to ${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Restoring configuration"
 | 
					    msg_info "Restoring configuration"
 | 
				
			||||||
    if [[ -f ~/config.json ]]; then
 | 
					    if [[ -f ~/config.json ]]; then
 | 
				
			||||||
@@ -69,10 +67,7 @@ function update_script() {
 | 
				
			|||||||
    systemctl start habitica
 | 
					    systemctl start habitica
 | 
				
			||||||
    systemctl start habitica-client
 | 
					    systemctl start habitica-client
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								ct/headers/alpine-caddy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/alpine-caddy
									
									
									
									
									
										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/ghostfolio
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/ghostfolio
									
									
									
									
									
										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 @@
 | 
				
			|||||||
 | 
					   ______      ___                      
 | 
				
			||||||
 | 
					  / ____/___  /   |_      ______ ___  __
 | 
				
			||||||
 | 
					 / / __/ __ \/ /| | | /| / / __ `/ / / /
 | 
				
			||||||
 | 
					/ /_/ / /_/ / ___ | |/ |/ / /_/ / /_/ / 
 | 
				
			||||||
 | 
					\____/\____/_/  |_|__/|__/\__,_/\__, /  
 | 
				
			||||||
 | 
					                               /____/   
 | 
				
			||||||
@@ -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/mediamanager
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/mediamanager
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    __  ___         ___       __  ___                                 
 | 
				
			||||||
 | 
					   /  |/  /__  ____/ (_)___ _/  |/  /___ _____  ____ _____ ____  _____
 | 
				
			||||||
 | 
					  / /|_/ / _ \/ __  / / __ `/ /|_/ / __ `/ __ \/ __ `/ __ `/ _ \/ ___/
 | 
				
			||||||
 | 
					 / /  / /  __/ /_/ / / /_/ / /  / / /_/ / / / / /_/ / /_/ /  __/ /    
 | 
				
			||||||
 | 
					/_/  /_/\___/\__,_/_/\__,_/_/  /_/\__,_/_/ /_/\__,_/\__, /\___/_/     
 | 
				
			||||||
 | 
					                                                   /____/             
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/myip
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/myip
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    __  ___      ________ 
 | 
				
			||||||
 | 
					   /  |/  /_  __/  _/ __ \
 | 
				
			||||||
 | 
					  / /|_/ / / / // // /_/ /
 | 
				
			||||||
 | 
					 / /  / / /_/ // // ____/ 
 | 
				
			||||||
 | 
					/_/  /_/\__, /___/_/      
 | 
				
			||||||
 | 
					       /____/             
 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
    ____       __  _     
 | 
					 | 
				
			||||||
   / __ \___  / /_(_)___ 
 | 
					 | 
				
			||||||
  / /_/ / _ \/ __/ / __ \
 | 
					 | 
				
			||||||
 / ____/  __/ /_/ / /_/ /
 | 
					 | 
				
			||||||
/_/    \___/\__/_/\____/ 
 | 
					 | 
				
			||||||
                         
 | 
					 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
    ____  _                   _     
 | 
					 | 
				
			||||||
   / __ \(_)___  ____ __   __(_)___ 
 | 
					 | 
				
			||||||
  / /_/ / / __ \/ __ `/ | / / / __ \
 | 
					 | 
				
			||||||
 / ____/ / / / / /_/ /| |/ / / / / /
 | 
					 | 
				
			||||||
/_/   /_/_/ /_/\__, / |___/_/_/ /_/ 
 | 
					 | 
				
			||||||
              /____/                
 | 
					 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/pve-scripts-local
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/pve-scripts-local
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					    ____ _    ________    _____           _       __             __                     __
 | 
				
			||||||
 | 
					   / __ \ |  / / ____/   / ___/__________(_)___  / /______      / /   ____  _________ _/ /
 | 
				
			||||||
 | 
					  / /_/ / | / / __/______\__ \/ ___/ ___/ / __ \/ __/ ___/_____/ /   / __ \/ ___/ __ `/ / 
 | 
				
			||||||
 | 
					 / ____/| |/ / /__/_____/__/ / /__/ /  / / /_/ / /_(__  )_____/ /___/ /_/ / /__/ /_/ / /  
 | 
				
			||||||
 | 
					/_/     |___/_____/    /____/\___/_/  /_/ .___/\__/____/     /_____/\____/\___/\__,_/_/   
 | 
				
			||||||
 | 
					                                       /_/                                                
 | 
				
			||||||
							
								
								
									
										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/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/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 @@
 | 
				
			|||||||
 | 
					   __  __     _____                 
 | 
				
			||||||
 | 
					  / / / /___ / ___/____  ____ _____ 
 | 
				
			||||||
 | 
					 / / / / __ \\__ \/ __ \/ __ `/ __ \
 | 
				
			||||||
 | 
					/ /_/ / /_/ /__/ / / / / /_/ / /_/ /
 | 
				
			||||||
 | 
					\____/ .___/____/_/ /_/\__,_/ .___/ 
 | 
				
			||||||
 | 
					    /_/                    /_/      
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/verdaccio
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/verdaccio
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					 _    __              __                _     
 | 
				
			||||||
 | 
					| |  / /__  _________/ /___ ___________(_)___ 
 | 
				
			||||||
 | 
					| | / / _ \/ ___/ __  / __ `/ ___/ ___/ / __ \
 | 
				
			||||||
 | 
					| |/ /  __/ /  / /_/ / /_/ / /__/ /__/ / /_/ /
 | 
				
			||||||
 | 
					|___/\___/_/   \__,_/\__,_/\___/\___/_/\____/ 
 | 
				
			||||||
 | 
					                                              
 | 
				
			||||||
							
								
								
									
										6
									
								
								ct/headers/warracker
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ct/headers/warracker
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					 _       __                           __            
 | 
				
			||||||
 | 
					| |     / /___ _______________ ______/ /_____  _____
 | 
				
			||||||
 | 
					| | /| / / __ `/ ___/ ___/ __ `/ ___/ //_/ _ \/ ___/
 | 
				
			||||||
 | 
					| |/ |/ / /_/ / /  / /  / /_/ / /__/ ,< /  __/ /    
 | 
				
			||||||
 | 
					|__/|__/\__,_/_/  /_/   \__,_/\___/_/|_|\___/_/     
 | 
				
			||||||
 | 
					                                                    
 | 
				
			||||||
@@ -31,8 +31,7 @@ function update_script() {
 | 
				
			|||||||
    mv /opt/"${APP}_version.txt" ~/.headscale
 | 
					    mv /opt/"${APP}_version.txt" ~/.headscale
 | 
				
			||||||
  fi
 | 
					  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 check_for_gh_release "headscale" "juanfont/headscale"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.headscale 2>/dev/null)" ]] || [[ ! -f ~/.headscale ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop headscale
 | 
					    systemctl stop headscale
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    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"
 | 
					    fetch_and_deploy_gh_release "headscale-admin" "GoodiesHQ/headscale-admin" "prebuild" "latest" "/opt/headscale-admin" "admin.zip"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    # Temporary fix until headscale project resolves service getting disabled on updates.
 | 
					 | 
				
			||||||
    systemctl enable -q --now headscale
 | 
					    systemctl enable -q --now headscale
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -57,3 +53,5 @@ description
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
msg_ok "Completed Successfully!\n"
 | 
					msg_ok "Completed Successfully!\n"
 | 
				
			||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
					echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
 | 
				
			||||||
 | 
					echo -e "${INFO}${YW} Access it using the following URL:${CL}"
 | 
				
			||||||
 | 
					echo -e "${TAB}${GATEWAY}${BGN}Headscale API: ${IP}/api (no Frontend) | headscale-admin: http://${IP}/admin/${CL}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,9 +28,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "healthchecks" "healthchecks/healthchecks"; then
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/healthchecks/healthchecks/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//')
 | 
					 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.healthchecks 2>/dev/null)" ]] || [[ ! -f ~/.healthchecks ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping $APP"
 | 
					    msg_info "Stopping $APP"
 | 
				
			||||||
    systemctl stop healthchecks
 | 
					    systemctl stop healthchecks
 | 
				
			||||||
    msg_ok "Stopped $APP"
 | 
					    msg_ok "Stopped $APP"
 | 
				
			||||||
@@ -38,7 +36,7 @@ function update_script() {
 | 
				
			|||||||
    setup_uv
 | 
					    setup_uv
 | 
				
			||||||
    fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
 | 
					    fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating $APP to v${RELEASE}"
 | 
					    msg_info "Updating $APP"
 | 
				
			||||||
    cd /opt/healthchecks
 | 
					    cd /opt/healthchecks
 | 
				
			||||||
    mkdir -p /opt/healthchecks/static-collected/
 | 
					    mkdir -p /opt/healthchecks/static-collected/
 | 
				
			||||||
    $STD uv pip install wheel gunicorn -r requirements.txt --system
 | 
					    $STD uv pip install wheel gunicorn -r requirements.txt --system
 | 
				
			||||||
@@ -46,16 +44,13 @@ function update_script() {
 | 
				
			|||||||
    $STD uv run -- python manage.py migrate --noinput
 | 
					    $STD uv run -- python manage.py migrate --noinput
 | 
				
			||||||
    $STD uv run -- python manage.py collectstatic --noinput
 | 
					    $STD uv run -- python manage.py collectstatic --noinput
 | 
				
			||||||
    $STD uv run -- python manage.py compress
 | 
					    $STD uv run -- python manage.py compress
 | 
				
			||||||
    msg_ok "Updated $APP to v${RELEASE}"
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start healthchecks
 | 
					    systemctl start healthchecks
 | 
				
			||||||
    systemctl restart caddy
 | 
					    systemctl restart caddy
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Update Successful"
 | 
					    msg_ok "Update Successful"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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"
 | 
					    msg_ok "Updated Services"
 | 
				
			||||||
    systemctl daemon-reload
 | 
					    systemctl daemon-reload
 | 
				
			||||||
  fi
 | 
					  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)"
 | 
					    msg_info "Stopping Services (Patience)"
 | 
				
			||||||
    systemctl stop homarr
 | 
					    systemctl stop homarr
 | 
				
			||||||
    msg_ok "Services Stopped"
 | 
					    msg_ok "Services Stopped"
 | 
				
			||||||
@@ -98,7 +97,6 @@ EOF
 | 
				
			|||||||
    $STD apt upgrade nodejs -y
 | 
					    $STD apt upgrade nodejs -y
 | 
				
			||||||
    msg_ok "Updated Nodejs"
 | 
					    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_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]')"
 | 
					    NODE_MODULE="pnpm@$(curl -s https://raw.githubusercontent.com/homarr-labs/homarr/dev/package.json | jq -r '.packageManager | split("@")[1]')"
 | 
				
			||||||
    setup_nodejs
 | 
					    setup_nodejs
 | 
				
			||||||
@@ -106,7 +104,7 @@ EOF
 | 
				
			|||||||
    rm -rf /opt/homarr
 | 
					    rm -rf /opt/homarr
 | 
				
			||||||
    fetch_and_deploy_gh_release "homarr" "homarr-labs/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
 | 
					    rm /opt/run_homarr.sh
 | 
				
			||||||
    cat <<'EOF' >/opt/run_homarr.sh
 | 
					    cat <<'EOF' >/opt/run_homarr.sh
 | 
				
			||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
@@ -153,7 +151,6 @@ EOF
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    mkdir /opt/homarr/build
 | 
					    mkdir /opt/homarr/build
 | 
				
			||||||
    cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node
 | 
					    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_ok "Updated ${APP}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Starting Services"
 | 
					    msg_info "Starting Services"
 | 
				
			||||||
@@ -164,8 +161,6 @@ EOF
 | 
				
			|||||||
    if [[ "$choice" =~ ^[Yy]$ ]]; then
 | 
					    if [[ "$choice" =~ ^[Yy]$ ]]; then
 | 
				
			||||||
      reboot
 | 
					      reboot
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,18 +27,20 @@ function update_script() {
 | 
				
			|||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  if [[ -x /opt/homebox ]]; then
 | 
					  if [[ -x /opt/homebox ]]; then
 | 
				
			||||||
    sed -i 's|/opt\b|/opt/homebox|g' /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|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
 | 
					    systemctl daemon-reload
 | 
				
			||||||
  fi
 | 
					  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 check_for_gh_release "homebox" "sysadminsmedia/homebox"; then
 | 
				
			||||||
  if [[ "${RELEASE}" != "$(cat ~/.homebox 2>/dev/null)" ]] || [[ ! -f ~/.homebox ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping ${APP}"
 | 
					    msg_info "Stopping ${APP}"
 | 
				
			||||||
    systemctl stop homebox
 | 
					    systemctl stop homebox
 | 
				
			||||||
    msg_ok "${APP} Stopped"
 | 
					    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"
 | 
					    fetch_and_deploy_gh_release "homebox" "sysadminsmedia/homebox" "prebuild" "latest" "/opt/homebox" "homebox_Linux_x86_64.tar.gz"
 | 
				
			||||||
    chmod +x /opt/homebox/homebox
 | 
					    chmod +x /opt/homebox/homebox
 | 
				
			||||||
    [ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
 | 
					    [ -f /opt/.env ] && mv /opt/.env /opt/homebox/.env
 | 
				
			||||||
@@ -47,10 +49,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting ${APP}"
 | 
					    msg_info "Starting ${APP}"
 | 
				
			||||||
    systemctl start homebox
 | 
					    systemctl start homebox
 | 
				
			||||||
    msg_ok "Started ${APP}"
 | 
					    msg_ok "Started ${APP}"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE=$(curl -fsSL https://api.github.com/repos/danielbrendel/hortusfox-web/releases/latest | jq -r .tag_name | sed 's/^v//')
 | 
					  if check_for_gh_release "hortusfox" "danielbrendel/hortusfox-web"; then
 | 
				
			||||||
  if [[ ! -f ~/.hortusfox ]] || [[ "${RELEASE}" != "$(cat ~/.hortusfox)" ]]; then
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop apache2
 | 
					    systemctl stop apache2
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -58,8 +57,6 @@ function update_script() {
 | 
				
			|||||||
    rm -r /opt/hortusfox-backup
 | 
					    rm -r /opt/hortusfox-backup
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}"
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -30,16 +30,14 @@ function update_script() {
 | 
				
			|||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setup_uv
 | 
					  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
 | 
					  if check_for_gh_release "huntarr" "plexguide/Huntarr.io"; then
 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at ${RELEASE}"
 | 
					    msg_info "Stopping huntarr"
 | 
				
			||||||
    exit
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
  msg_info "Stopping huntarr service"
 | 
					 | 
				
			||||||
    systemctl stop huntarr
 | 
					    systemctl stop huntarr
 | 
				
			||||||
  msg_ok "Stopped huntarr service"
 | 
					    msg_ok "Stopped huntarr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
 | 
					    fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Configuring $APP"
 | 
					    msg_info "Configuring $APP"
 | 
				
			||||||
    cd /opt/huntarr
 | 
					    cd /opt/huntarr
 | 
				
			||||||
    $STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
 | 
					    $STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
 | 
				
			||||||
@@ -48,8 +46,8 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting $APP"
 | 
					    msg_info "Starting $APP"
 | 
				
			||||||
    systemctl start huntarr
 | 
					    systemctl start huntarr
 | 
				
			||||||
    msg_ok "Started $APP"
 | 
					    msg_ok "Started $APP"
 | 
				
			||||||
 | 
					    msg_ok "Updated $APP"
 | 
				
			||||||
  msg_ok "Updated $APP to v${RELEASE}"
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										67
									
								
								ct/immich.sh
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								ct/immich.sh
									
									
									
									
									
								
							@@ -11,7 +11,7 @@ var_disk="${var_disk:-20}"
 | 
				
			|||||||
var_cpu="${var_cpu:-4}"
 | 
					var_cpu="${var_cpu:-4}"
 | 
				
			||||||
var_ram="${var_ram:-4096}"
 | 
					var_ram="${var_ram:-4096}"
 | 
				
			||||||
var_os="${var_os:-debian}"
 | 
					var_os="${var_os:-debian}"
 | 
				
			||||||
var_version="${var_version:-12}"
 | 
					var_version="${var_version:-13}"
 | 
				
			||||||
var_unprivileged="${var_unprivileged:-1}"
 | 
					var_unprivileged="${var_unprivileged:-1}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
header_info "$APP"
 | 
					header_info "$APP"
 | 
				
			||||||
@@ -27,11 +27,22 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  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
 | 
					  setup_uv
 | 
				
			||||||
  PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
 | 
					  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
 | 
					  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
 | 
					  STAGING_DIR=/opt/staging
 | 
				
			||||||
  BASE_DIR=${STAGING_DIR}/base-images
 | 
					  BASE_DIR=${STAGING_DIR}/base-images
 | 
				
			||||||
  SOURCE_DIR=${STAGING_DIR}/image-source
 | 
					  SOURCE_DIR=${STAGING_DIR}/image-source
 | 
				
			||||||
@@ -45,8 +56,10 @@ function update_script() {
 | 
				
			|||||||
      for url in "${INTEL_URLS[@]}"; do
 | 
					      for url in "${INTEL_URLS[@]}"; do
 | 
				
			||||||
        curl -fsSLO "$url"
 | 
					        curl -fsSLO "$url"
 | 
				
			||||||
      done
 | 
					      done
 | 
				
			||||||
 | 
					      $STD apt-mark unhold libigdgmm12
 | 
				
			||||||
      $STD apt install -y ./*.deb
 | 
					      $STD apt install -y ./*.deb
 | 
				
			||||||
      rm ./*.deb
 | 
					      rm ./*.deb
 | 
				
			||||||
 | 
					      $STD apt-mark hold libigdgmm12
 | 
				
			||||||
      msg_ok "Intel iGPU dependencies updated"
 | 
					      msg_ok "Intel iGPU dependencies updated"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    rm ~/Dockerfile
 | 
					    rm ~/Dockerfile
 | 
				
			||||||
@@ -61,13 +74,9 @@ function update_script() {
 | 
				
			|||||||
    done
 | 
					    done
 | 
				
			||||||
    msg_ok "Image-processing libraries up to date"
 | 
					    msg_ok "Image-processing libraries up to date"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  RELEASE="1.139.4"
 | 
					  RELEASE="2.0.1"
 | 
				
			||||||
  #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 check_for_gh_release "immich" "immich-app/immich" "${RELEASE}"; then
 | 
				
			||||||
  if [[ -f ~/.immich && "$RELEASE" == "$(cat ~/.immich)" ]]; then
 | 
					    msg_info "Stopping Services"
 | 
				
			||||||
    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-web
 | 
				
			||||||
    systemctl stop immich-ml
 | 
					    systemctl stop immich-ml
 | 
				
			||||||
    msg_ok "Stopped ${APP}"
 | 
					    msg_ok "Stopped ${APP}"
 | 
				
			||||||
@@ -82,22 +91,10 @@ function update_script() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
 | 
					    if [[ ! -f ~/.vchord_version ]] || [[ "$VCHORD_RELEASE" != "$(cat ~/.vchord_version)" ]]; then
 | 
				
			||||||
      msg_info "Updating VectorChord"
 | 
					      msg_info "Updating VectorChord"
 | 
				
			||||||
    if [[ ! -f ~/.vchord_version ]] || [[ ! "$(cat ~/.vchord_version)" > "0.3.0" ]]; then
 | 
					 | 
				
			||||||
      $STD sudo -u postgres pg_dumpall --clean --if-exists --username=postgres | gzip >/etc/postgresql/immich-db-vchord0.3.0.sql.gz
 | 
					 | 
				
			||||||
      chown postgres /etc/postgresql/immich-db-vchord0.3.0.sql.gz
 | 
					 | 
				
			||||||
      $STD sudo -u postgres gunzip --stdout /etc/postgresql/immich-db-vchord0.3.0.sql.gz |
 | 
					 | 
				
			||||||
        sed -e "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
 | 
					 | 
				
			||||||
          -e "/vchordrq.prewarm_dim/d" |
 | 
					 | 
				
			||||||
        sudo -u postgres psql
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
      curl -fsSL "https://github.com/tensorchord/vectorchord/releases/download/${VCHORD_RELEASE}/postgresql-16-vchord_${VCHORD_RELEASE}-1_amd64.deb" -o vchord.deb
 | 
					      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 apt install -y ./vchord.deb
 | 
				
			||||||
      $STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
 | 
					      $STD sudo -u postgres psql -d immich -c "ALTER EXTENSION vchord UPDATE;"
 | 
				
			||||||
      systemctl restart postgresql
 | 
					      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
 | 
					      echo "$VCHORD_RELEASE" >~/.vchord_version
 | 
				
			||||||
      rm ./vchord.deb
 | 
					      rm ./vchord.deb
 | 
				
			||||||
      msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
 | 
					      msg_ok "Updated VectorChord to v${VCHORD_RELEASE}"
 | 
				
			||||||
@@ -130,9 +127,6 @@ EOF
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    msg_info "Updating ${APP} web and microservices"
 | 
					    msg_info "Updating ${APP} web and microservices"
 | 
				
			||||||
    cd "$SRC_DIR"/server
 | 
					    cd "$SRC_DIR"/server
 | 
				
			||||||
  if [[ "$RELEASE" == "1.135.1" ]]; then
 | 
					 | 
				
			||||||
    rm ./src/schema/migrations/1750323941566-UnsetPrewarmDimParameter.ts
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
    export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
 | 
					    export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
 | 
				
			||||||
    export CI=1
 | 
					    export CI=1
 | 
				
			||||||
    corepack enable
 | 
					    corepack enable
 | 
				
			||||||
@@ -148,6 +142,7 @@ EOF
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    # openapi & web build
 | 
					    # openapi & web build
 | 
				
			||||||
    cd "$SRC_DIR"
 | 
					    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 --frozen-lockfile --force install
 | 
				
			||||||
    $STD pnpm --filter @immich/sdk --filter immich-web build
 | 
					    $STD pnpm --filter @immich/sdk --filter immich-web build
 | 
				
			||||||
    cp -a web/build "$APP_DIR"/www
 | 
					    cp -a web/build "$APP_DIR"/www
 | 
				
			||||||
@@ -162,17 +157,17 @@ EOF
 | 
				
			|||||||
    msg_ok "Updated ${APP} web and microservices"
 | 
					    msg_ok "Updated ${APP} web and microservices"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    cd "$SRC_DIR"/machine-learning
 | 
					    cd "$SRC_DIR"/machine-learning
 | 
				
			||||||
  mkdir -p "$ML_DIR"
 | 
					    mkdir -p "$ML_DIR" && chown -R immich:immich "$ML_DIR"
 | 
				
			||||||
 | 
					    chown immich:immich ./uv.lock
 | 
				
			||||||
    export VIRTUAL_ENV="${ML_DIR}"/ml-venv
 | 
					    export VIRTUAL_ENV="${ML_DIR}"/ml-venv
 | 
				
			||||||
  $STD /usr/local/bin/uv venv "$VIRTUAL_ENV"
 | 
					 | 
				
			||||||
    if [[ -f ~/.openvino ]]; then
 | 
					    if [[ -f ~/.openvino ]]; then
 | 
				
			||||||
      msg_info "Updating HW-accelerated machine-learning"
 | 
					      msg_info "Updating HW-accelerated machine-learning"
 | 
				
			||||||
    /usr/local/bin/uv -q sync --extra openvino --no-cache --active
 | 
					      $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"
 | 
					      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"
 | 
					      msg_ok "Updated HW-accelerated machine-learning"
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      msg_info "Updating machine-learning"
 | 
					      msg_info "Updating machine-learning"
 | 
				
			||||||
    /usr/local/bin/uv -q sync --extra cpu --no-cache --active
 | 
					      $STD sudo --preserve-env=VIRTUAL_ENV -nu immich uv sync --extra cpu --active -n -p python3.11 --managed-python
 | 
				
			||||||
      msg_ok "Updated machine-learning"
 | 
					      msg_ok "Updated machine-learning"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    cd "$SRC_DIR"
 | 
					    cd "$SRC_DIR"
 | 
				
			||||||
@@ -191,17 +186,15 @@ EOF
 | 
				
			|||||||
    ln -s "$GEO_DIR" "$APP_DIR"
 | 
					    ln -s "$GEO_DIR" "$APP_DIR"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    chown -R immich:immich "$INSTALL_DIR"
 | 
					    chown -R immich:immich "$INSTALL_DIR"
 | 
				
			||||||
  if [[ ! -f ~/.debian_version.bak ]]; then
 | 
					 | 
				
			||||||
    cp /etc/debian_version ~/.debian_version.bak
 | 
					 | 
				
			||||||
    sed -i 's/.*/13.0/' /etc/debian_version
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
					    msg_ok "Updated ${APP} to v${RELEASE}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    msg_info "Cleaning up"
 | 
					    msg_info "Cleaning up"
 | 
				
			||||||
    $STD apt-get -y autoremove
 | 
					    $STD apt-get -y autoremove
 | 
				
			||||||
    $STD apt-get -y autoclean
 | 
					    $STD apt-get -y autoclean
 | 
				
			||||||
 | 
					    $STD apt clean -y
 | 
				
			||||||
    msg_ok "Cleaned"
 | 
					    msg_ok "Cleaned"
 | 
				
			||||||
    systemctl restart immich-ml immich-web
 | 
					    systemctl restart immich-ml immich-web
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -210,7 +203,7 @@ function compile_libjxl() {
 | 
				
			|||||||
  JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
 | 
					  JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
 | 
				
			||||||
  JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
 | 
					  JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
 | 
				
			||||||
  : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
 | 
					  : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
 | 
				
			||||||
  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"
 | 
					    msg_info "Recompiling libjxl"
 | 
				
			||||||
    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
					    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
				
			||||||
    $STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
 | 
					    $STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
 | 
				
			||||||
@@ -287,9 +280,8 @@ function compile_libheif() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function compile_libraw() {
 | 
					function compile_libraw() {
 | 
				
			||||||
  SOURCE=${SOURCE_DIR}/libraw
 | 
					  SOURCE=${SOURCE_DIR}/libraw
 | 
				
			||||||
  local update
 | 
					 | 
				
			||||||
  : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
 | 
					  : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
 | 
				
			||||||
  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"
 | 
					    msg_info "Recompiling libraw"
 | 
				
			||||||
    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
					    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
				
			||||||
    $STD git clone https://github.com/libraw/libraw.git "$SOURCE"
 | 
					    $STD git clone https://github.com/libraw/libraw.git "$SOURCE"
 | 
				
			||||||
@@ -310,13 +302,14 @@ function compile_libraw() {
 | 
				
			|||||||
function compile_imagemagick() {
 | 
					function compile_imagemagick() {
 | 
				
			||||||
  SOURCE=$SOURCE_DIR/imagemagick
 | 
					  SOURCE=$SOURCE_DIR/imagemagick
 | 
				
			||||||
  : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
 | 
					  : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
 | 
				
			||||||
  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"
 | 
					    msg_info "Recompiling ImageMagick"
 | 
				
			||||||
    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
					    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
				
			||||||
    $STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
 | 
					    $STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
 | 
				
			||||||
    cd "$SOURCE"
 | 
					    cd "$SOURCE"
 | 
				
			||||||
    $STD git reset --hard "$IMAGEMAGICK_REVISION"
 | 
					    $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 -j"$(nproc)"
 | 
				
			||||||
    $STD make install
 | 
					    $STD make install
 | 
				
			||||||
    ldconfig /usr/local/lib
 | 
					    ldconfig /usr/local/lib
 | 
				
			||||||
@@ -330,7 +323,7 @@ function compile_imagemagick() {
 | 
				
			|||||||
function compile_libvips() {
 | 
					function compile_libvips() {
 | 
				
			||||||
  SOURCE=$SOURCE_DIR/libvips
 | 
					  SOURCE=$SOURCE_DIR/libvips
 | 
				
			||||||
  : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
 | 
					  : "${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"
 | 
					    msg_info "Recompiling libvips"
 | 
				
			||||||
    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
					    if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
 | 
				
			||||||
    $STD git clone https://github.com/libvips/libvips.git "$SOURCE"
 | 
					    $STD git clone https://github.com/libvips/libvips.git "$SOURCE"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,9 +27,7 @@ function update_script() {
 | 
				
			|||||||
    msg_error "No ${APP} Installation Found!"
 | 
					    msg_error "No ${APP} Installation Found!"
 | 
				
			||||||
    exit
 | 
					    exit
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					  if check_for_gh_release "inspircd" "inspircd/inspircd"; then
 | 
				
			||||||
  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
 | 
					 | 
				
			||||||
    msg_info "Stopping Service"
 | 
					    msg_info "Stopping Service"
 | 
				
			||||||
    systemctl stop inspircd
 | 
					    systemctl stop inspircd
 | 
				
			||||||
    msg_ok "Stopped Service"
 | 
					    msg_ok "Stopped Service"
 | 
				
			||||||
@@ -39,10 +37,7 @@ function update_script() {
 | 
				
			|||||||
    msg_info "Starting Service"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
    systemctl start inspircd
 | 
					    systemctl start inspircd
 | 
				
			||||||
    msg_ok "Started Service"
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					 | 
				
			||||||
    msg_ok "Updated Successfully"
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    msg_ok "No update required. ${APP} is already at v${RELEASE}."
 | 
					 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,13 +34,18 @@ function update_script() {
 | 
				
			|||||||
DisableRootWarning=true
 | 
					DisableRootWarning=true
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
  fi
 | 
					  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
 | 
					    rm -rf /opt/Jackett
 | 
				
			||||||
    fetch_and_deploy_gh_release "jackett" "Jackett/Jackett" "prebuild" "latest" "/opt/Jackett" "Jackett.Binaries.LinuxAMDx64.tar.gz"
 | 
					    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}"
 | 
					    msg_info "Starting Service"
 | 
				
			||||||
 | 
					    systemctl start jackett
 | 
				
			||||||
 | 
					    msg_ok "Started Service"
 | 
				
			||||||
 | 
					    msg_ok "Updated Successfully"
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
  exit
 | 
					  exit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user