mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-12-14 19:23:32 +01:00
Compare commits
790 Commits
2025-08-06
...
2025-09-21
| Author | SHA1 | Date | |
|---|---|---|---|
| a6d6f79943 | |||
| a7ced850ab | |||
| eadca5f81f | |||
| 5ab375fd89 | |||
| 2dc95b6b22 | |||
| 57dd3d5a44 | |||
| 25ddf48190 | |||
| 01b6bec1fe | |||
| d1ff8201b1 | |||
| c5c5ba1ede | |||
| e3aabd81a3 | |||
| 4713941415 | |||
| adda76f587 | |||
| cf597b6a26 | |||
| 20e8730a34 | |||
| 9ce9de8e84 | |||
| ac3f969016 | |||
| c0597842f8 | |||
| 667d354059 | |||
| d56c1e2f50 | |||
| 3dfbc2d6ea | |||
| 31b33d370e | |||
| d4d4c0e07a | |||
| aded4d5809 | |||
| c00308524b | |||
| fef7786714 | |||
| 0dfd337a9a | |||
| d99862fa24 | |||
| ac08d385c0 | |||
| 7a9de76acb | |||
| 35f3f043a7 | |||
| 4276df26d7 | |||
| 5fec573533 | |||
| ebd269a808 | |||
| 532c0a95bb | |||
| c078b11aa9 | |||
| ab8b025824 | |||
| e2044a0572 | |||
| 59e65eaba3 | |||
| a2306d6b32 | |||
| 3e71af1895 | |||
| 8a3b41867b | |||
| b4b9efeff2 | |||
| 5e2168b2d1 | |||
| c00c1deb79 | |||
| 37e3739bd2 | |||
| f5eda37397 | |||
| 9e42c801f1 | |||
| e4d6dfc885 | |||
| 14894f84b6 | |||
| b5f70e6e77 | |||
| 2919ce16f1 | |||
| 38cf6b2f46 | |||
| c390fb925d | |||
| a28fdac3f0 | |||
| 41b27b31dc | |||
| 7ef8afe4d2 | |||
| 694d9c203e | |||
| 76dcc45e9f | |||
| a0952e9f69 | |||
| 3bd6b6e540 | |||
| 61be53cc26 | |||
| 02eda516df | |||
| 25213fabaa | |||
| ad8a4f63c4 | |||
| bcce0e20c1 | |||
| 515c4073c4 | |||
| 30e22ff661 | |||
| 8265abfb20 | |||
| b40d061f3e | |||
| efe598d6ec | |||
| 82caa8769e | |||
| 7961023f8c | |||
| ea58fdb7e0 | |||
| 238895534a | |||
| cc1c2f84ca | |||
| 3aff0d9d7e | |||
| 7cd332680a | |||
| 382e679842 | |||
| a3b5f798de | |||
| c22630c887 | |||
| 542f260f31 | |||
| a40cc130bd | |||
| 7311f1b843 | |||
| acd9bb1357 | |||
| e2e2459bfd | |||
| caeba37a2e | |||
| 44a8c70437 | |||
| 1860f4b2ee | |||
| bf0bac1523 | |||
| b6bfe9a4b6 | |||
| 634386ea50 | |||
| 020c8a76c1 | |||
| 8f738e2d26 | |||
| e5e7547eca | |||
| a383aa5679 | |||
| ce68253564 | |||
| 65e561dcbe | |||
| dffb291a4f | |||
| f3bcb3211c | |||
| 7c22fe5f46 | |||
| 600e739005 | |||
| 31be78878f | |||
| e47d62d575 | |||
| ec58d6c622 | |||
| bac2b6eade | |||
| bb289203c6 | |||
| fe97056d19 | |||
| 65ba9192d9 | |||
| 8a096b9e6e | |||
| 1c6efa528b | |||
| 89c3410f6f | |||
| 34b1d70762 | |||
| 1860847153 | |||
| 58905bf94d | |||
| 7d1788a079 | |||
| 83e04257d9 | |||
| 11c33e34d2 | |||
| 52df77cab5 | |||
| 17f6264a03 | |||
| 9463b0b808 | |||
| eba83f3848 | |||
| e3f6ea73c3 | |||
| 06247e742c | |||
| 4606782d6b | |||
| a988acf2d5 | |||
| 5f44007372 | |||
| 8b87272e38 | |||
| ceccf08f69 | |||
| 5a80cd7e02 | |||
| d617a49766 | |||
| 7c0d79c115 | |||
| 0d4a508543 | |||
| f979dd2277 | |||
| 87de220511 | |||
| 481e70b0aa | |||
| 6c3a16e579 | |||
| 394f91c994 | |||
| 63a268d6c5 | |||
| 9ee6e23a59 | |||
| eceb1cd53c | |||
| 719c55655d | |||
| aeb15c7ea1 | |||
| 0c7a366782 | |||
| 93a3a572d4 | |||
| 8b2645a529 | |||
| b72e132699 | |||
| f4df8e2ccc | |||
| f03f004226 | |||
| b13c840bda | |||
| ce90647bda | |||
| 164e487090 | |||
| a4660adedd | |||
| 9352eec854 | |||
| 4478f8f6e0 | |||
| d69cbcd941 | |||
| affcfd06cf | |||
| b94b088c19 | |||
| 5385382a88 | |||
| d06ad37a22 | |||
| 72c7d4199b | |||
| 2e75ced83f | |||
| 9a28ce0263 | |||
| 9ed2507bdc | |||
| c617870c2b | |||
| eb71d21ea3 | |||
| 762452b2b3 | |||
| 31cd3e3119 | |||
| c25dba9212 | |||
| 52cefe4a00 | |||
| 7b8fcab242 | |||
| b733e8b5ea | |||
| 4a4e67a3cf | |||
| b00feea00d | |||
| c250cec418 | |||
| a0af0f5196 | |||
| 2f0b6e10ab | |||
| a41364d91d | |||
| e580a5d9c1 | |||
| 9d059b2a13 | |||
| 6e32eebdf0 | |||
| 7f3ebd4296 | |||
| 0c4d55bd78 | |||
| 8f05be3f6b | |||
| e06cd4b28c | |||
| b9242b3232 | |||
| 63f6d772ea | |||
| 652df1f370 | |||
| f4b5baf308 | |||
| cc36fd5434 | |||
| 3e182978ad | |||
| e7adf1a9b5 | |||
| 36fb86eaf8 | |||
| 495c47224e | |||
| 7af71384b4 | |||
| e318152ee3 | |||
| 17dc7c90a1 | |||
| 226a5bce8f | |||
| ffd2ed01b9 | |||
| 3348e2fff0 | |||
| def41f66f4 | |||
| 02a1a732f8 | |||
| 2494af7e1c | |||
| 0c4711d99f | |||
| 039f73a5ed | |||
| 74b58d5b10 | |||
| 61044104a2 | |||
| fac612077a | |||
| 135b3ff964 | |||
| 393b853119 | |||
| 6bb2938e34 | |||
| fbf16fd54d | |||
| d6d4fd034f | |||
| aa4999dac6 | |||
| b6c0b50e79 | |||
| 0f07f1927e | |||
| 4493d86e51 | |||
| fbfeeeb88f | |||
| 2366111bba | |||
| 5fb42b87f1 | |||
| 500c35c58d | |||
| ca3446c90e | |||
| 4c3d42d5d1 | |||
| 299a10efe8 | |||
| 7adac2a342 | |||
| eb58b10d75 | |||
| 5e46d81c45 | |||
| 2963926c45 | |||
| d9a0b863a8 | |||
| db6369f3c6 | |||
| d450e263f0 | |||
| 462960d9bf | |||
| 8ea4829e8a | |||
| c5d23dc883 | |||
| 3dc973e4ac | |||
| 751f488f9e | |||
| 0ed4363247 | |||
| e77612c27e | |||
| 59c8e214af | |||
| c790f03a6b | |||
| 54d4d58b15 | |||
| 889a58c00e | |||
| e9a5d7587a | |||
| 6f84046741 | |||
| ff96351db8 | |||
| 1b632199b3 | |||
| 9fb02a93b4 | |||
| 3aa56651d8 | |||
| 17d4c59041 | |||
| 2bfb35779b | |||
| 83b93390c9 | |||
| 7ce47ad414 | |||
| 646e0c31f4 | |||
| 0c7e200a94 | |||
| a9b02b3e9c | |||
| b62adc2c5c | |||
| 3438b046e5 | |||
| cbd6d6d0f3 | |||
| cf6c429c57 | |||
| bbe71cbbb9 | |||
| 9b6a736c8c | |||
| c395ccc270 | |||
| 3dd72e08e9 | |||
| 1d989bea73 | |||
| f881b88344 | |||
| 06dbad83ef | |||
| 7ff966b042 | |||
| 62264f37a6 | |||
| bf05dabc4c | |||
| bc229d9738 | |||
| 969b08caa8 | |||
| c1c43ed2cb | |||
| e74767d1a4 | |||
| e9e17f4f51 | |||
| 2c1b15a40e | |||
| a4bfaf1646 | |||
| 6fa12cc814 | |||
| d314168a37 | |||
| d6ad11c5c2 | |||
| 534592b44a | |||
| d9b6b58b36 | |||
| 298eb7e83d | |||
| c2dd1e413f | |||
| a4f1766408 | |||
| a24169e9b8 | |||
| 45a2163e66 | |||
| 2fc3e62d60 | |||
| 210b846d61 | |||
| b04cfb65f7 | |||
| 6a2fc4083b | |||
| f7f53943c2 | |||
| 31f4d9b16c | |||
| cd4cd5eec1 | |||
| 8a7eeee727 | |||
| be5d65f421 | |||
| 591af3f109 | |||
| a3e0df9de1 | |||
| 596699d07e | |||
| b2275b44c2 | |||
| 737842fb1e | |||
| 646cb2bc30 | |||
| 4599bfe052 | |||
| bb85b1d4ac | |||
| 57ae4a48a7 | |||
| 06e8460851 | |||
| 9713c95bf4 | |||
| 705748bba5 | |||
| 022f079821 | |||
| 80d75731a8 | |||
| 227721a72f | |||
| 5572a7a0ab | |||
| 6a69185a2d | |||
| 77441b6189 | |||
| 4aa337c2f2 | |||
| 4bd2f6866a | |||
| 377de80103 | |||
| 1c62d4614e | |||
| a91f7410a4 | |||
| 528c0a8de5 | |||
| 988bd3ef19 | |||
| 99d9664ae4 | |||
| 09649eb5b1 | |||
| 5c49ba784a | |||
| 469f959911 | |||
| 7504c4b7e9 | |||
| 9a6047393d | |||
| dec2ef817a | |||
| 54a9bc8841 | |||
| 8def7c0f0a | |||
| 13cbc2756b | |||
| 933928c4ee | |||
| 2beaab0d88 | |||
| 560ed60745 | |||
| 46febb33a9 | |||
| ddd8e0ee68 | |||
| be255263c6 | |||
| c8d969d38a | |||
| 96511325ab | |||
| bc545df207 | |||
| 36bf265fc6 | |||
| 892ad29c60 | |||
| a5d02b5459 | |||
| 3ccf9924a1 | |||
| 953bbd7978 | |||
| 4228cb99db | |||
| f7791fe2ff | |||
| 616c736428 | |||
| ede5f35f39 | |||
| b73bfdf7fd | |||
| 9305a4ca85 | |||
| 54b59e24ca | |||
| d57c613535 | |||
| f02525af8a | |||
| f19659bea0 | |||
| 9cfb549dca | |||
| ba09cbd9cc | |||
| bc4d09b073 | |||
| fb2d91abe7 | |||
| 5146385f4c | |||
| 346a8e140c | |||
| 42aa8f8868 | |||
| 459772162f | |||
| 1d65650d28 | |||
| a2099bc195 | |||
| 896545ab1b | |||
| 522f427677 | |||
| 5d70455d93 | |||
| 01a91d8b4f | |||
| f66a60ee47 | |||
| b4e74b2a17 | |||
| 644e5900d9 | |||
| 3f3f536ebe | |||
| baa39d05a5 | |||
| a85bca7326 | |||
| 6defba8ab3 | |||
| 59f6329e85 | |||
| 856c724b5d | |||
| 67a20a9b4a | |||
| 27cd66f48a | |||
| d25a12c87e | |||
| e24315c50b | |||
| 753ed67b50 | |||
| d6e498050f | |||
| 4a69a7b39f | |||
| 1dcde93b4a | |||
| 663c6570f4 | |||
| 6a17e25871 | |||
| e609552cec | |||
| bd4b781c9e | |||
| 7eb6715a1f | |||
| aa0190978f | |||
| e0f5e588e0 | |||
| 3949e2e049 | |||
| ab4560b879 | |||
| b8f854e7ad | |||
| ea1c5b4561 | |||
| 957eea7a0f | |||
| 476fcedfe0 | |||
| d590e91597 | |||
| 8c796a0870 | |||
| b57efdb78a | |||
| 2cc3ce1ea1 | |||
| 468defcd97 | |||
| 78398309c0 | |||
| 08d1d7be62 | |||
| 05a4fcd471 | |||
| 36acf4aaae | |||
| 4182815b4c | |||
| 73a0910239 | |||
| bd6626e919 | |||
| 3ad6cdf85a | |||
| 732bb75e9b | |||
| d372b45a95 | |||
| df564ace13 | |||
| d2b28413eb | |||
| b93a30ffb0 | |||
| a4044b1cfd | |||
| 83eb2da451 | |||
| 9fda9f34c5 | |||
| 3715ea5946 | |||
| de2d8d0e75 | |||
| 9f6abbe572 | |||
| d90a071d88 | |||
| 69dd06b107 | |||
| 2be054a004 | |||
| a2fcd3992e | |||
| 9a92df420e | |||
| c6864c74bc | |||
| 941457b392 | |||
| e84ea56a8f | |||
| 0d36d64454 | |||
| 74b2407c53 | |||
| b97331282f | |||
| fed5ebd9c8 | |||
| be4a6f1a4f | |||
| b383d43d9c | |||
| 54b676b529 | |||
| d465ca87f2 | |||
| e32c2b7dea | |||
| 444cbc2aa1 | |||
| 497622832e | |||
| f36ac8831e | |||
| 66049f400c | |||
| 8daa235a88 | |||
| 072595c8fb | |||
| 85f8e5cd73 | |||
| 07fbcf57d4 | |||
| f09c5db961 | |||
| c1e93d7d79 | |||
| 292e48f4b4 | |||
| 1d8b8c87bd | |||
| acfcf98273 | |||
| 5bb15dedae | |||
| 07394b9a7d | |||
| 1fce2de5c1 | |||
| 88579d4be3 | |||
| e7ccf9a512 | |||
| 52a9ad733d | |||
| 23f65d0eb7 | |||
| aece852e10 | |||
| d7dea7cc5d | |||
| 5cd24b503c | |||
| 2e5db6a283 | |||
| 32f6a76426 | |||
| 5d526717ef | |||
| 287265d554 | |||
| e72f248918 | |||
| c207d65b1b | |||
| fb1d5d5a33 | |||
| ed5dfa6eef | |||
| 8314e59973 | |||
| b73c50399d | |||
| 50feb0d846 | |||
| 4773649706 | |||
| ebb5d8f2c4 | |||
| 0555dbd93c | |||
| e63bc92368 | |||
| a74b7c4763 | |||
| 73178f5ff4 | |||
| 0358111f5f | |||
| 7346e7b1ab | |||
| 4add8e8273 | |||
| 49f1f7b1e2 | |||
| e5a6a5f1c0 | |||
| 19365b5083 | |||
| 12d3457002 | |||
| 18abecbf9b | |||
| 2ead98c480 | |||
| 265321b0c0 | |||
| bae22ebf82 | |||
| c80f136871 | |||
| faf4fbd0fd | |||
| 41e8958ab9 | |||
| cdc546f879 | |||
| 4ded6585a2 | |||
| 2892b85a6f | |||
| e28ab86797 | |||
| 2c3193ebb3 | |||
| 96959ffdb0 | |||
| 13fbf25ecd | |||
| 21d2159f22 | |||
| a42ceeac98 | |||
| 6e7ad44d36 | |||
| 9ea852ffad | |||
| d4bd7a6fda | |||
| 316f4043d4 | |||
| f799c90712 | |||
| 7de8934105 | |||
| 15dedc1e16 | |||
| 13f46d2c58 | |||
| ff7e7a6e10 | |||
| c49519a7de | |||
| 8ce4776a87 | |||
| 9cda1a8680 | |||
| c9b5e27d74 | |||
| 70ec048aa9 | |||
| 89af0c466b | |||
| 93a1710e20 | |||
| 91a5c9c48f | |||
| e85353856b | |||
| bf99523a94 | |||
| c1b3321801 | |||
| beb9189c72 | |||
| 186c82d156 | |||
| 9d431458ca | |||
| 9c86eea347 | |||
| e20af295f0 | |||
| 68832d71fa | |||
| 2e13483f19 | |||
| c7643ae88c | |||
| f16f7a130a | |||
| 94a8fe7132 | |||
| 059d297305 | |||
| 2bd2a763a1 | |||
| 452ba92a6f | |||
| d27a875987 | |||
| 14418411f6 | |||
| f13c8ff3ce | |||
| 28dc145811 | |||
| 170543bb66 | |||
| c783024ef0 | |||
| 19403a627b | |||
| cc08395a1d | |||
| d5093a3d9d | |||
| 52c4f3e0c2 | |||
| 76a4ec9e06 | |||
| bebf6f65aa | |||
| 34582c4dc4 | |||
| 4495878c4f | |||
| 3c33e8b826 | |||
| be6cc7ddbb | |||
| 615049ce5c | |||
| f9e5c46b21 | |||
| 913102d66f | |||
| 07628f3b76 | |||
| 291d364158 | |||
| 98c4a2ccae | |||
| c60098d8eb | |||
| 7df1dbaf17 | |||
| 304c90a1af | |||
| 01fe1b1f62 | |||
| fd85e71fcf | |||
| 66c03ce1b4 | |||
| 067f9eb209 | |||
| cd3dbc864f | |||
| f42f06343d | |||
| e46648ecdc | |||
| 206751f517 | |||
| 6a06afcbb9 | |||
| bd3e93215b | |||
| 94b9aa4025 | |||
| 36523dfd33 | |||
| 618fa65bc2 | |||
| 1dd417fdaa | |||
| 4480a70ceb | |||
| 5d423888d9 | |||
| 81876d6992 | |||
| b777d74dce | |||
| c904da6b94 | |||
| 4591b58e66 | |||
| 8f7cd0bff9 | |||
| 60318fd77b | |||
| 50c41cec72 | |||
| ef2e9803d0 | |||
| e428a05b45 | |||
| 37e5f7272e | |||
| 5560c4eb12 | |||
| be6e2e3cb1 | |||
| 7086a15321 | |||
| 23f29b14fe | |||
| 9aafb65a98 | |||
| 296f4577d0 | |||
| 1ea1429874 | |||
| 3f70f92fbb | |||
| 23c6994835 | |||
| 70cd362d3e | |||
| aed25098e5 | |||
| a79392149e | |||
| f32647a3d3 | |||
| bb3c77f1b6 | |||
| 66a582dd09 | |||
| 06eb76c5d9 | |||
| a37f921aff | |||
| 5c7e221efa | |||
| 7e00889967 | |||
| f1d855e331 | |||
| a33bbd603d | |||
| 472ad02d44 | |||
| aed2fbc4b1 | |||
| dabb49d7eb | |||
| 61b7b96780 | |||
| a72885b4c1 | |||
| 58fe2df6b4 | |||
| 5c8bd4b124 | |||
| b6d7ad7c38 | |||
| dd4d518052 | |||
| a99650f969 | |||
| 842d73de82 | |||
| 65f731d88b | |||
| 363685d3d3 | |||
| ff77960aa6 | |||
| 8d4a81d28e | |||
| faf10a9d5b | |||
| 1b931becaa | |||
| 905198116d | |||
| 8d65b4624f | |||
| 4e17190721 | |||
| 9337e2de3c | |||
| c7a7ea763b | |||
| ce71992dd6 | |||
| f68b80fe4a | |||
| 79adb4ef9b | |||
| 8dda5ac31f | |||
| 7d901bc594 | |||
| b6dce8cff1 | |||
| 1b43202a79 | |||
| 66687c0d21 | |||
| 39b9cfcffc | |||
| 24f4d2f488 | |||
| ee74400626 | |||
| 032709e107 | |||
| 65d60fbf1e | |||
| c7b80448dc | |||
| d7a60f6027 | |||
| 241ae98c0b | |||
| 63f24a8e61 | |||
| 1cb87c4087 | |||
| 5c22f9775e | |||
| a403da9f47 | |||
| 4ce7335482 | |||
| bc52b1a7d7 | |||
| 1c5ff8b26a | |||
| 967b2a313f | |||
| 50410acf8d | |||
| ab07afb7bd | |||
| eee083c7e0 | |||
| 31ef36d744 | |||
| 13afa93ddf | |||
| 7c631eec00 | |||
| 82d1a872c7 | |||
| 0c23782485 | |||
| ef7c774a24 | |||
| c12ec76181 | |||
| a805e40b04 | |||
| 727b713893 | |||
| 5cedb8469e | |||
| c612a4daa8 | |||
| 87b7166924 | |||
| 9b9faf7a53 | |||
| 51a1d3c0ef | |||
| 8b1c2d6e68 | |||
| 21c2ef2915 | |||
| 6796e609d0 | |||
| 723ac08abb | |||
| 35c4c363a0 | |||
| 32f99aee54 | |||
| 1803ea0323 | |||
| fcf14a93c2 | |||
| 549e1ee01e | |||
| c4b7966303 | |||
| 2ed4d91f3c | |||
| 6a5685505a | |||
| 7cc1eaa259 | |||
| 0db53c98e0 | |||
| 0faf32c4d0 | |||
| 5c564b4bd1 | |||
| 5b81fc1aaa | |||
| 047c7fe53c | |||
| c759269f0a | |||
| 7540314f53 | |||
| 8d73af0106 | |||
| f1cdef1f9b | |||
| 79f3662636 | |||
| c43e5318ae | |||
| 7e32903f10 | |||
| ba5c318276 | |||
| 634fcb5abb | |||
| 5d29a4f11c | |||
| cf62139e07 | |||
| 716f1f05ec | |||
| 47d773d088 | |||
| f9eb0cfa40 | |||
| 2b164f8281 | |||
| 6937ca1c67 | |||
| af6c1ae680 | |||
| 75335f3362 | |||
| d0dfe1f3a6 | |||
| 0ebc6b94ab | |||
| bf110c1814 | |||
| 0d7de4f292 | |||
| f7ca7b28df | |||
| 27b79a23b6 | |||
| 49fbe38981 | |||
| 0cd7985f8a | |||
| 428fae66c3 | |||
| 18c57600c6 | |||
| 68d2d3c52c | |||
| 76f9232c3a | |||
| 4258d44a7d | |||
| c60f04e229 | |||
| 6b93869e52 | |||
| c3cfdc1efa | |||
| 33678fde1b | |||
| 3dfdfeb2fa | |||
| 305d3603ef | |||
| 00138323b9 | |||
| 1d50632019 | |||
| 8883ba6b60 | |||
| 7b06f611ad | |||
| 412919670c | |||
| 77ac07efd7 | |||
| 55def0d441 | |||
| 70a01abbd8 | |||
| d5b0209453 | |||
| 755da8bdc3 | |||
| 9228cd06e3 | |||
| 49579e8558 | |||
| 030a977209 | |||
| b8176dc7b3 | |||
| cd0625cba6 | |||
| 73e131ecf8 | |||
| a0d6082b95 | |||
| 70ccaf6835 | |||
| 05b58decc2 | |||
| ff1b7cc81d | |||
| a2bbc2174a | |||
| a8a44a4d51 | |||
| ed620e8258 | |||
| 1fc667088c | |||
| d89055a5cd | |||
| 4ecd019e15 | |||
| e3a31aa47e | |||
| ed936528d2 | |||
| 6f24de7d63 | |||
| 54de40ed53 | |||
| 872cd289ff | |||
| 9c37ac385c | |||
| 575ad61c93 | |||
| 1773cc5507 | |||
| 11b19fdeab | |||
| 5e6081fbea | |||
| e2a310dd3a | |||
| d934d1b51b | |||
| 6e3c08142d | |||
| a41497f90a | |||
| c54025f8de | |||
| a1eb53841d | |||
| 6c4c3ffa39 | |||
| 78f695f397 | |||
| 4b0d24ed2e | |||
| 705d66e7c6 | |||
| c4703527dc | |||
| 9b607c60b4 | |||
| 4717852019 | |||
| ab9c57ccf9 | |||
| dce77d12c7 | |||
| 1f35b649cc | |||
| 5938a9aceb | |||
| 3b76211c12 | |||
| 7221a0759d | |||
| a750932b3a | |||
| a4de1efae8 | |||
| f7570cb40c | |||
| 10471b88aa | |||
| 04a83cce10 | |||
| f9e26f4f7c | |||
| ed6baa1158 | |||
| a7cc93af09 | |||
| a494ed5872 | |||
| ede517a560 |
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:
|
||||||
|
|||||||
38
.github/label-priority.json
generated
vendored
Normal file
38
.github/label-priority.json
generated
vendored
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"priorities": {
|
||||||
|
"refactor": 3,
|
||||||
|
"feature": 2,
|
||||||
|
"bugfix": 1,
|
||||||
|
"new script": 3,
|
||||||
|
"update script": 2,
|
||||||
|
"delete script": 2,
|
||||||
|
"json": 3,
|
||||||
|
"website": 2,
|
||||||
|
"maintenance": 1,
|
||||||
|
"documentation": 1,
|
||||||
|
"core": 2,
|
||||||
|
"api": 2,
|
||||||
|
"addon": 2,
|
||||||
|
"pve-tool": 2,
|
||||||
|
"vm": 2,
|
||||||
|
"github": 1
|
||||||
|
},
|
||||||
|
"conflicts": {
|
||||||
|
"bugfix": ["refactor"],
|
||||||
|
"website": ["json"],
|
||||||
|
"update script": ["new script", "delete script"],
|
||||||
|
"new script": ["update script", "delete script"],
|
||||||
|
"delete script": ["new script", "update script"]
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"always_combine": [
|
||||||
|
"maintenance",
|
||||||
|
"core",
|
||||||
|
"api",
|
||||||
|
"addon",
|
||||||
|
"pve-tool",
|
||||||
|
"vm",
|
||||||
|
"github"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
116
.github/workflows/autolabeler.yml
generated
vendored
116
.github/workflows/autolabeler.yml
generated
vendored
@ -112,3 +112,119 @@ jobs:
|
|||||||
labels: Array.from(labelsToAdd),
|
labels: Array.from(labelsToAdd),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
ai-check:
|
||||||
|
needs: autolabeler
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Load priority config
|
||||||
|
run: |
|
||||||
|
echo "PRIORITY_JSON=$(jq -c . .github/label-priority.json)" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Fetch PR metadata
|
||||||
|
id: pr
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const pr = context.payload.pull_request;
|
||||||
|
const files = await github.rest.pulls.listFiles({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
pull_number: pr.number
|
||||||
|
});
|
||||||
|
const prData = {
|
||||||
|
title: pr.title || "",
|
||||||
|
body: pr.body || "",
|
||||||
|
files: files.data.map(f => f.filename)
|
||||||
|
};
|
||||||
|
require('fs').writeFileSync(process.env.GITHUB_ENV, `PR_DATA=${JSON.stringify(prData)}\n`, {flag: 'a'});
|
||||||
|
|
||||||
|
- name: AI Label Review
|
||||||
|
id: ai
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
env:
|
||||||
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const prData = JSON.parse(process.env.PR_DATA);
|
||||||
|
|
||||||
|
const prompt = `
|
||||||
|
You are a GitHub labeling bot.
|
||||||
|
Task:
|
||||||
|
- Analyze PR title, body, and file list.
|
||||||
|
- For each possible label, return a confidence score (0–1).
|
||||||
|
- If both bugfix and refactor apply, prefer refactor.
|
||||||
|
- Output JSON: {"labels":[{"name":"bugfix","score":0.9},{"name":"refactor","score":0.6}]}
|
||||||
|
|
||||||
|
Valid labels: [new script, update script, delete script, bugfix, feature, maintenance, refactor, website, json, api, core, github, addon, pve-tool, vm].
|
||||||
|
|
||||||
|
PR data: ${JSON.stringify(prData)}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const response = await fetch("https://api.openai.com/v1/chat/completions", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
"Authorization": "Bearer " + process.env.OPENAI_API_KEY,
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
model: "gpt-4.1-mini",
|
||||||
|
messages: [{ role: "user", content: prompt }],
|
||||||
|
temperature: 0
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = await response.json();
|
||||||
|
const labels = JSON.parse(data.choices[0].message.content).labels;
|
||||||
|
core.setOutput("labels", JSON.stringify(labels));
|
||||||
|
|
||||||
|
- name: Apply AI Labels
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const raw = JSON.parse('${{ steps.ai.outputs.labels }}');
|
||||||
|
const prNumber = context.payload.pull_request.number;
|
||||||
|
const config = JSON.parse(process.env.PRIORITY_JSON);
|
||||||
|
|
||||||
|
let toApply = [];
|
||||||
|
let toSuggest = [];
|
||||||
|
|
||||||
|
raw.forEach(l => {
|
||||||
|
if (l.score >= 0.8) {
|
||||||
|
const conflicts = config.conflicts[l.name] || [];
|
||||||
|
const hasStrongerConflict = conflicts.some(c =>
|
||||||
|
raw.some(x =>
|
||||||
|
x.name === c &&
|
||||||
|
x.score >= 0.6 &&
|
||||||
|
(config.priorities[c] || 0) >= (config.priorities[l.name] || 0)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (!hasStrongerConflict) {
|
||||||
|
toApply.push(l.name);
|
||||||
|
}
|
||||||
|
} else if (l.score >= 0.5) {
|
||||||
|
toSuggest.push(`${l.name} (${Math.round(l.score*100)}%)`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (toApply.length > 0) {
|
||||||
|
await github.rest.issues.addLabels({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
issue_number: prNumber,
|
||||||
|
labels: toApply
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (toSuggest.length > 0) {
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
issue_number: prNumber,
|
||||||
|
body: `🤖 AI suggests these possible labels (uncertain): ${toSuggest.join(", ")}`
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
880
CHANGELOG.md
880
CHANGELOG.md
@ -10,8 +10,888 @@
|
|||||||
> [!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-09-22
|
||||||
|
|
||||||
|
## 2025-09-21
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix openwebui update and installer [@HeedfulCrayon](https://github.com/HeedfulCrayon) ([#7788](https://github.com/community-scripts/ProxmoxVE/pull/7788))
|
||||||
|
- tracktor: add: cleanup before upgrade [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7782](https://github.com/community-scripts/ProxmoxVE/pull/7782))
|
||||||
|
- Fix regex to extract MySQL version correctly [@MickLesk](https://github.com/MickLesk) ([#7774](https://github.com/community-scripts/ProxmoxVE/pull/7774))
|
||||||
|
- Update Ollama Installer in OpenWebUI to resume downloads if interrupted [@HeedfulCrayon](https://github.com/HeedfulCrayon) ([#7779](https://github.com/community-scripts/ProxmoxVE/pull/7779))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Implement clean install option in tools.func (fetch_and_deploy_gh_release) [@MickLesk](https://github.com/MickLesk) ([#7785](https://github.com/community-scripts/ProxmoxVE/pull/7785))
|
||||||
|
- caddy: modify disk size and implement xCaddy update [@MickLesk](https://github.com/MickLesk) ([#7775](https://github.com/community-scripts/ProxmoxVE/pull/7775))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Harmonize and shorten JSON Names for PVE/PBS/PMG [@MickLesk](https://github.com/MickLesk) ([#7773](https://github.com/community-scripts/ProxmoxVE/pull/7773))
|
||||||
|
|
||||||
|
## 2025-09-20
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- checkmk.sh Update: Revert old Pr [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7765](https://github.com/community-scripts/ProxmoxVE/pull/7765))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Wazuh: Increase HDD size [@tremor021](https://github.com/tremor021) ([#7759](https://github.com/community-scripts/ProxmoxVE/pull/7759))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 📂 Github
|
||||||
|
|
||||||
|
- Add Debian 13 in bug report template [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7757](https://github.com/community-scripts/ProxmoxVE/pull/7757))
|
||||||
|
|
||||||
|
## 2025-09-19
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Tunarr ([#7735](https://github.com/community-scripts/ProxmoxVE/pull/7735))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- SigNoz: Fix wrong URL for Zookeeper [@tremor021](https://github.com/tremor021) ([#7742](https://github.com/community-scripts/ProxmoxVE/pull/7742))
|
||||||
|
|
||||||
|
## 2025-09-18
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Alpine-Caddy [@tremor021](https://github.com/tremor021) ([#7711](https://github.com/community-scripts/ProxmoxVE/pull/7711))
|
||||||
|
- pve-tool: execute.sh by @jeroenzwart [@MickLesk](https://github.com/MickLesk) ([#7708](https://github.com/community-scripts/ProxmoxVE/pull/7708))
|
||||||
|
- GlobaLeaks ([#7707](https://github.com/community-scripts/ProxmoxVE/pull/7707))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Delay chmod after updating beszel [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7725](https://github.com/community-scripts/ProxmoxVE/pull/7725))
|
||||||
|
- Remove redundant globaleaks configuration [@evilaliv3](https://github.com/evilaliv3) ([#7723](https://github.com/community-scripts/ProxmoxVE/pull/7723))
|
||||||
|
- Gatus: check for GO path before update [@vhsdream](https://github.com/vhsdream) ([#7705](https://github.com/community-scripts/ProxmoxVE/pull/7705))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Cloudflared: Bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#7719](https://github.com/community-scripts/ProxmoxVE/pull/7719))
|
||||||
|
- AdGuard Home: Bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#7720](https://github.com/community-scripts/ProxmoxVE/pull/7720))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Immich: Debian Trixie [@vhsdream](https://github.com/vhsdream) ([#7728](https://github.com/community-scripts/ProxmoxVE/pull/7728))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Add Warning for Containerized Home Assistant [@ZaxLofful](https://github.com/ZaxLofful) ([#7704](https://github.com/community-scripts/ProxmoxVE/pull/7704))
|
||||||
|
|
||||||
|
## 2025-09-17
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- beszel: fix: binary permission after upgrade [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7697](https://github.com/community-scripts/ProxmoxVE/pull/7697))
|
||||||
|
- RabbitMQ: Update repositories [@tremor021](https://github.com/tremor021) ([#7689](https://github.com/community-scripts/ProxmoxVE/pull/7689))
|
||||||
|
- Komodo: Add docker compose pull for actually updating docker container [@hanneshier](https://github.com/hanneshier) ([#7682](https://github.com/community-scripts/ProxmoxVE/pull/7682))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Debian-LXC: Bump to Debian 13 Trixie [@MickLesk](https://github.com/MickLesk) ([#7683](https://github.com/community-scripts/ProxmoxVE/pull/7683))
|
||||||
|
- Bump Immich to v1.142.1 [@vhsdream](https://github.com/vhsdream) ([#7675](https://github.com/community-scripts/ProxmoxVE/pull/7675))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Grist [@tremor021](https://github.com/tremor021) ([#7681](https://github.com/community-scripts/ProxmoxVE/pull/7681))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 📂 Github
|
||||||
|
|
||||||
|
- Improve: SECURITY.md for clarity and detail + Adding PVE9 as supported [@MickLesk](https://github.com/MickLesk) ([#7690](https://github.com/community-scripts/ProxmoxVE/pull/7690))
|
||||||
|
|
||||||
|
## 2025-09-16
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Improve OpenWrt VM boot and readiness check [@MickLesk](https://github.com/MickLesk) ([#7669](https://github.com/community-scripts/ProxmoxVE/pull/7669))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- hortusfox: fix update check [@MickLesk](https://github.com/MickLesk) ([#7667](https://github.com/community-scripts/ProxmoxVE/pull/7667))
|
||||||
|
|
||||||
|
## 2025-09-15
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- SigNoz ([#7648](https://github.com/community-scripts/ProxmoxVE/pull/7648))
|
||||||
|
- Scraparr ([#7644](https://github.com/community-scripts/ProxmoxVE/pull/7644))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- vm: move pv installation into ensure_pv function [@MickLesk](https://github.com/MickLesk) ([#7642](https://github.com/community-scripts/ProxmoxVE/pull/7642))
|
||||||
|
- Cloudflare-DDNS: Fix the IP6_PROVIDER variable [@hugodantas](https://github.com/hugodantas) ([#7660](https://github.com/community-scripts/ProxmoxVE/pull/7660))
|
||||||
|
- Wikijs: Bump Node.js version to 22 [@MickLesk](https://github.com/MickLesk) ([#7643](https://github.com/community-scripts/ProxmoxVE/pull/7643))
|
||||||
|
|
||||||
|
## 2025-09-14
|
||||||
|
|
||||||
|
## 2025-09-13
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Palmr: hotfix #7622 [@vhsdream](https://github.com/vhsdream) ([#7625](https://github.com/community-scripts/ProxmoxVE/pull/7625))
|
||||||
|
- ollama: fix: ccurl continue on interrupts [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7620](https://github.com/community-scripts/ProxmoxVE/pull/7620))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- pdm: refactor for beta version [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7619](https://github.com/community-scripts/ProxmoxVE/pull/7619))
|
||||||
|
- Immich: bump to v1.142.0 [@vhsdream](https://github.com/vhsdream) ([#7594](https://github.com/community-scripts/ProxmoxVE/pull/7594))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- fix: tagline grammar [@jonathanwuki](https://github.com/jonathanwuki) ([#7621](https://github.com/community-scripts/ProxmoxVE/pull/7621))
|
||||||
|
- fix: grammar/capitalization for links and taglines [@jonathanwuki](https://github.com/jonathanwuki) ([#7609](https://github.com/community-scripts/ProxmoxVE/pull/7609))
|
||||||
|
|
||||||
|
## 2025-09-12
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Stylus ([#7588](https://github.com/community-scripts/ProxmoxVE/pull/7588))
|
||||||
|
- UHF ([#7589](https://github.com/community-scripts/ProxmoxVE/pull/7589))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tweak: post-pve-install: create folder if Not exist [@JVKeller](https://github.com/JVKeller) ([#7598](https://github.com/community-scripts/ProxmoxVE/pull/7598))
|
||||||
|
- Update openwebui.sh [@webmogul1](https://github.com/webmogul1) ([#7582](https://github.com/community-scripts/ProxmoxVE/pull/7582))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [core]: add fallback if mariadb upstream unreachable [@MickLesk](https://github.com/MickLesk) ([#7599](https://github.com/community-scripts/ProxmoxVE/pull/7599))
|
||||||
|
- ESPHome: Increase default disk size [@tremor021](https://github.com/tremor021) ([#7600](https://github.com/community-scripts/ProxmoxVE/pull/7600))
|
||||||
|
|
||||||
|
## 2025-09-11
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- telegraf ([#7576](https://github.com/community-scripts/ProxmoxVE/pull/7576))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- [core] Sort tools.func functions alphabeticaly [@tremor021](https://github.com/tremor021) ([#7569](https://github.com/community-scripts/ProxmoxVE/pull/7569))
|
||||||
|
- mobile subscription nag fix [@dvino](https://github.com/dvino) ([#7567](https://github.com/community-scripts/ProxmoxVE/pull/7567))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- alpine-install: switch to using GitHub to fetch tools when using GitHub [@burritosoftware](https://github.com/burritosoftware) ([#7566](https://github.com/community-scripts/ProxmoxVE/pull/7566))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Add margin-bottom to Most Viewed Scripts header to unifi UI [@BramSuurdje](https://github.com/BramSuurdje) ([#7572](https://github.com/community-scripts/ProxmoxVE/pull/7572))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Fix frontend url [@r1cebank](https://github.com/r1cebank) ([#7578](https://github.com/community-scripts/ProxmoxVE/pull/7578))
|
||||||
|
|
||||||
|
## 2025-09-10
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Autocaliweb ([#7515](https://github.com/community-scripts/ProxmoxVE/pull/7515))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Palmr: fix #7556 [@vhsdream](https://github.com/vhsdream) ([#7558](https://github.com/community-scripts/ProxmoxVE/pull/7558))
|
||||||
|
- Wizarr: Fix DB migrations [@vhsdream](https://github.com/vhsdream) ([#7552](https://github.com/community-scripts/ProxmoxVE/pull/7552))
|
||||||
|
- fix: pmg - split no-nag script into separate config files [@MickLesk](https://github.com/MickLesk) ([#7540](https://github.com/community-scripts/ProxmoxVE/pull/7540))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Update Palmr to Support new v3.2.1 [@vhsdream](https://github.com/vhsdream) ([#7526](https://github.com/community-scripts/ProxmoxVE/pull/7526))
|
||||||
|
- add external installer warnings and user confirmation in several LXC's [@MickLesk](https://github.com/MickLesk) ([#7539](https://github.com/community-scripts/ProxmoxVE/pull/7539))
|
||||||
|
- Booklore: Add Bookdrop location to .env [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#7533](https://github.com/community-scripts/ProxmoxVE/pull/7533))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: audiobookshelf [@MickLesk](https://github.com/MickLesk) ([#7538](https://github.com/community-scripts/ProxmoxVE/pull/7538))
|
||||||
|
- Refactor: Blocky [@MickLesk](https://github.com/MickLesk) ([#7537](https://github.com/community-scripts/ProxmoxVE/pull/7537))
|
||||||
|
- Improve npmplus credential retrieval and messaging [@MickLesk](https://github.com/MickLesk) ([#7532](https://github.com/community-scripts/ProxmoxVE/pull/7532))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Remove Pingvin Share [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7553](https://github.com/community-scripts/ProxmoxVE/pull/7553))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- set updateable to true for several lxc JSON-configs [@MickLesk](https://github.com/MickLesk) ([#7534](https://github.com/community-scripts/ProxmoxVE/pull/7534))
|
||||||
|
|
||||||
|
## 2025-09-09
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tududi: v0.81 [@vhsdream](https://github.com/vhsdream) ([#7517](https://github.com/community-scripts/ProxmoxVE/pull/7517))
|
||||||
|
- WGDashboard: Revert back to old update method [@tremor021](https://github.com/tremor021) ([#7500](https://github.com/community-scripts/ProxmoxVE/pull/7500))
|
||||||
|
- AdventureLog: remove folder during update process [@MickLesk](https://github.com/MickLesk) ([#7507](https://github.com/community-scripts/ProxmoxVE/pull/7507))
|
||||||
|
- PLANKA: Fix backup and restore commands [@tremor021](https://github.com/tremor021) ([#7505](https://github.com/community-scripts/ProxmoxVE/pull/7505))
|
||||||
|
- Recyclarr: Suppress config creation output [@tremor021](https://github.com/tremor021) ([#7502](https://github.com/community-scripts/ProxmoxVE/pull/7502))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Pulse: standardise install/update with Pulse repo script [@vhsdream](https://github.com/vhsdream) ([#7519](https://github.com/community-scripts/ProxmoxVE/pull/7519))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Refactor GitHubStarsButton to wrap in Link component for external navigation [@BramSuurdje](https://github.com/BramSuurdje) ([#7492](https://github.com/community-scripts/ProxmoxVE/pull/7492))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Bump vite from 7.0.0 to 7.1.5 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#7522](https://github.com/community-scripts/ProxmoxVE/pull/7522))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- swizzin: Change category from nvr to media [@MickLesk](https://github.com/MickLesk) ([#7511](https://github.com/community-scripts/ProxmoxVE/pull/7511))
|
||||||
|
|
||||||
|
## 2025-09-08
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- CT's: fix missing variable declaration (actualBudget, openziti, umlautadaptarr) [@MickLesk](https://github.com/MickLesk) ([#7483](https://github.com/community-scripts/ProxmoxVE/pull/7483))
|
||||||
|
- karakeep: fix service file [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7482](https://github.com/community-scripts/ProxmoxVE/pull/7482))
|
||||||
|
- Update searxng-install.sh [@sebguy](https://github.com/sebguy) ([#7469](https://github.com/community-scripts/ProxmoxVE/pull/7469))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Immich: bump to version 1.141.1 [@vhsdream](https://github.com/vhsdream) ([#7418](https://github.com/community-scripts/ProxmoxVE/pull/7418))
|
||||||
|
- [core]: switch all base_settings to variables [@MickLesk](https://github.com/MickLesk) ([#7479](https://github.com/community-scripts/ProxmoxVE/pull/7479))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- RustDesk Server: Update the credentials info [@tremor021](https://github.com/tremor021) ([#7473](https://github.com/community-scripts/ProxmoxVE/pull/7473))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Format numerical values in DataFetcher component for better readability [@BramSuurdje](https://github.com/BramSuurdje) ([#7477](https://github.com/community-scripts/ProxmoxVE/pull/7477))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- feat: enhance github stars button to be better looking and more compact [@BramSuurdje](https://github.com/BramSuurdje) ([#7464](https://github.com/community-scripts/ProxmoxVE/pull/7464))
|
||||||
|
|
||||||
|
## 2025-09-07
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Update ExecStart path for karakeep service [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7460](https://github.com/community-scripts/ProxmoxVE/pull/7460))
|
||||||
|
|
||||||
|
## 2025-09-06
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Resilio Sync ([#7442](https://github.com/community-scripts/ProxmoxVE/pull/7442))
|
||||||
|
- leantime ([#7414](https://github.com/community-scripts/ProxmoxVE/pull/7414))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- use debian source for direct installation of MQTT [@EtlamGit](https://github.com/EtlamGit) ([#7423](https://github.com/community-scripts/ProxmoxVE/pull/7423))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- feat: added mobile ui subscription nag removal [@ivan-penchev](https://github.com/ivan-penchev) ([#7164](https://github.com/community-scripts/ProxmoxVE/pull/7164))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- MediaManager Configuration Path [@austinpilz](https://github.com/austinpilz) ([#7408](https://github.com/community-scripts/ProxmoxVE/pull/7408))
|
||||||
|
- Paperless-NGX: Remove default credentials from json [@tremor021](https://github.com/tremor021) ([#7403](https://github.com/community-scripts/ProxmoxVE/pull/7403))
|
||||||
|
|
||||||
|
## 2025-09-05
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Tududi: Pin version to 0.80 [@vhsdream](https://github.com/vhsdream) ([#7420](https://github.com/community-scripts/ProxmoxVE/pull/7420))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- AdventureLog: Update dependencies [@tremor021](https://github.com/tremor021) ([#7404](https://github.com/community-scripts/ProxmoxVE/pull/7404))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state [@BramSuurdje](https://github.com/BramSuurdje) ([#7405](https://github.com/community-scripts/ProxmoxVE/pull/7405))
|
||||||
|
|
||||||
|
## 2025-09-04
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix: Syntax error in Immich scripts [@henworth](https://github.com/henworth) ([#7398](https://github.com/community-scripts/ProxmoxVE/pull/7398))
|
||||||
|
- Netdata: Fix pve_check for 8 [@MickLesk](https://github.com/MickLesk) ([#7392](https://github.com/community-scripts/ProxmoxVE/pull/7392))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Immich: pin compiled photo library revisions [@vhsdream](https://github.com/vhsdream) ([#7395](https://github.com/community-scripts/ProxmoxVE/pull/7395))
|
||||||
|
|
||||||
|
## 2025-09-03
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Element-Synapse: Increase HDD size [@tremor021](https://github.com/tremor021) ([#7384](https://github.com/community-scripts/ProxmoxVE/pull/7384))
|
||||||
|
- Wizarr: fix uv lock issue; use correct output suppression [@vhsdream](https://github.com/vhsdream) ([#7378](https://github.com/community-scripts/ProxmoxVE/pull/7378))
|
||||||
|
- Netbox: Fix missing directory [@tremor021](https://github.com/tremor021) ([#7374](https://github.com/community-scripts/ProxmoxVE/pull/7374))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Enhanced IP-Tag installation script with interactive configuration, improved VM IP detection, and better visual indicators [@DesertGamer](https://github.com/DesertGamer) ([#7366](https://github.com/community-scripts/ProxmoxVE/pull/7366))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Fix navigation [@BramSuurdje](https://github.com/BramSuurdje) ([#7376](https://github.com/community-scripts/ProxmoxVE/pull/7376))
|
||||||
|
|
||||||
|
## 2025-09-02
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Increase default disk size for Apt-Cacher-NG [@MickLesk](https://github.com/MickLesk) ([#7352](https://github.com/community-scripts/ProxmoxVE/pull/7352))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Snipe-IT: Fix Nginx configuration [@tremor021](https://github.com/tremor021) ([#7358](https://github.com/community-scripts/ProxmoxVE/pull/7358))
|
||||||
|
- booklore: remove folder before update [@MickLesk](https://github.com/MickLesk) ([#7351](https://github.com/community-scripts/ProxmoxVE/pull/7351))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Immich: bump version to 1.140.1 [@vhsdream](https://github.com/vhsdream) ([#7349](https://github.com/community-scripts/ProxmoxVE/pull/7349))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- pbs: increase note on website for ipv6 [@MickLesk](https://github.com/MickLesk) ([#7339](https://github.com/community-scripts/ProxmoxVE/pull/7339))
|
||||||
|
|
||||||
|
## 2025-09-01
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Update configarr.sh to mv backep up .env correctly [@finkerle](https://github.com/finkerle) ([#7323](https://github.com/community-scripts/ProxmoxVE/pull/7323))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Refactor + Feature Bump: HomeAssistant OS [@MickLesk](https://github.com/MickLesk) ([#7336](https://github.com/community-scripts/ProxmoxVE/pull/7336))
|
||||||
|
- UmbrelOS: Refactor / use q35 / better import [@MickLesk](https://github.com/MickLesk) ([#7329](https://github.com/community-scripts/ProxmoxVE/pull/7329))
|
||||||
|
- Harmonize GH Release Check (excl. Pre-Releases & Migrate old "_version.txt" [@MickLesk](https://github.com/MickLesk) ([#7328](https://github.com/community-scripts/ProxmoxVE/pull/7328))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Bump next from 15.2.4 to 15.5.2 in /frontend [@dependabot[bot]](https://github.com/dependabot[bot]) ([#7309](https://github.com/community-scripts/ProxmoxVE/pull/7309))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- booklore: add note for start-up in frontend [@MickLesk](https://github.com/MickLesk) ([#7331](https://github.com/community-scripts/ProxmoxVE/pull/7331))
|
||||||
|
|
||||||
|
## 2025-08-31
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- n8n: Increase disk size [@tremor021](https://github.com/tremor021) ([#7320](https://github.com/community-scripts/ProxmoxVE/pull/7320))
|
||||||
|
|
||||||
|
## 2025-08-30
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Immich: bump version to 1.140.0 [@vhsdream](https://github.com/vhsdream) ([#7275](https://github.com/community-scripts/ProxmoxVE/pull/7275))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor gitea-mirror env-file [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7240](https://github.com/community-scripts/ProxmoxVE/pull/7240))
|
||||||
|
|
||||||
|
## 2025-08-29
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix version check for pocket-id migration [@MickLesk](https://github.com/MickLesk) ([#7298](https://github.com/community-scripts/ProxmoxVE/pull/7298))
|
||||||
|
- fix: remove file creation at release fetching and version checking logic [@MickLesk](https://github.com/MickLesk) ([#7299](https://github.com/community-scripts/ProxmoxVE/pull/7299))
|
||||||
|
- Zitadel: Fix initial setup [@tremor021](https://github.com/tremor021) ([#7284](https://github.com/community-scripts/ProxmoxVE/pull/7284))
|
||||||
|
- post-pbs: increase enterprise recognition [@MickLesk](https://github.com/MickLesk) ([#7280](https://github.com/community-scripts/ProxmoxVE/pull/7280))
|
||||||
|
- Fix typo where install mode was changed instead of pinned version [@Brandsma](https://github.com/Brandsma) ([#7277](https://github.com/community-scripts/ProxmoxVE/pull/7277))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [core]: feature - check_for_gh_release - version pinning [@MickLesk](https://github.com/MickLesk) ([#7279](https://github.com/community-scripts/ProxmoxVE/pull/7279))
|
||||||
|
- [feat]: migrate all update_scripts to new version helper (gh) [@MickLesk](https://github.com/MickLesk) ([#7262](https://github.com/community-scripts/ProxmoxVE/pull/7262))
|
||||||
|
|
||||||
|
## 2025-08-28
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- MediaManager ([#7238](https://github.com/community-scripts/ProxmoxVE/pull/7238))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- MMDL: add build-essential as dep [@vhsdream](https://github.com/vhsdream) ([#7266](https://github.com/community-scripts/ProxmoxVE/pull/7266))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- add support for multiple ip addresses in monitor-all.sh [@moshekv](https://github.com/moshekv) ([#7244](https://github.com/community-scripts/ProxmoxVE/pull/7244))
|
||||||
|
- [core]: feature - check_for_gh_release as update-handler [@MickLesk](https://github.com/MickLesk) ([#7254](https://github.com/community-scripts/ProxmoxVE/pull/7254))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Flaresolverr: Pin to 3.3.25 (Python Issue) [@MickLesk](https://github.com/MickLesk) ([#7248](https://github.com/community-scripts/ProxmoxVE/pull/7248))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Keycloak: Update website [@tremor021](https://github.com/tremor021) ([#7256](https://github.com/community-scripts/ProxmoxVE/pull/7256))
|
||||||
|
|
||||||
|
## 2025-08-27
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- searxng: improve installation [@MickLesk](https://github.com/MickLesk) ([#7233](https://github.com/community-scripts/ProxmoxVE/pull/7233))
|
||||||
|
- Homebox: Fix Update Script [@MickLesk](https://github.com/MickLesk) ([#7232](https://github.com/community-scripts/ProxmoxVE/pull/7232))
|
||||||
|
|
||||||
|
## 2025-08-26
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- tracktor ([#7190](https://github.com/community-scripts/ProxmoxVE/pull/7190))
|
||||||
|
- PBS: Upgrade Script for v4 [@MickLesk](https://github.com/MickLesk) ([#7214](https://github.com/community-scripts/ProxmoxVE/pull/7214))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Refactor: Post-PBS-Script [@MickLesk](https://github.com/MickLesk) ([#7213](https://github.com/community-scripts/ProxmoxVE/pull/7213))
|
||||||
|
- Refactor: Post-PMG-Script [@MickLesk](https://github.com/MickLesk) ([#7212](https://github.com/community-scripts/ProxmoxVE/pull/7212))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- [website] Update documentation URLs [@tremor021](https://github.com/tremor021) ([#7201](https://github.com/community-scripts/ProxmoxVE/pull/7201))
|
||||||
|
|
||||||
|
## 2025-08-25
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Alpine-RustDesk Server [@tremor021](https://github.com/tremor021) ([#7191](https://github.com/community-scripts/ProxmoxVE/pull/7191))
|
||||||
|
- Alpine-Redlib ([#7178](https://github.com/community-scripts/ProxmoxVE/pull/7178))
|
||||||
|
- healthchecks ([#7177](https://github.com/community-scripts/ProxmoxVE/pull/7177))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- FileBrowser Quantum: safer update (tmp download + atomic replace + arch autodetect) [@CommanderPaladin](https://github.com/CommanderPaladin) ([#7174](https://github.com/community-scripts/ProxmoxVE/pull/7174))
|
||||||
|
- Immich: bump to v1.139.4 [@vhsdream](https://github.com/vhsdream) ([#7138](https://github.com/community-scripts/ProxmoxVE/pull/7138))
|
||||||
|
- Komodo: Fix compose.env path [@tremor021](https://github.com/tremor021) ([#7202](https://github.com/community-scripts/ProxmoxVE/pull/7202))
|
||||||
|
- Komodo: Fix update procedure and missing env var [@tremor021](https://github.com/tremor021) ([#7198](https://github.com/community-scripts/ProxmoxVE/pull/7198))
|
||||||
|
- SnipeIT: Update nginx config to v8.3 [@tremor021](https://github.com/tremor021) ([#7171](https://github.com/community-scripts/ProxmoxVE/pull/7171))
|
||||||
|
- Lidarr: Fix RELEASE variable fetching [@tremor021](https://github.com/tremor021) ([#7162](https://github.com/community-scripts/ProxmoxVE/pull/7162))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Komodo: Generate admin users password [@tremor021](https://github.com/tremor021) ([#7193](https://github.com/community-scripts/ProxmoxVE/pull/7193))
|
||||||
|
- [core]: uv uses now "update-shell" command [@MickLesk](https://github.com/MickLesk) ([#7172](https://github.com/community-scripts/ProxmoxVE/pull/7172))
|
||||||
|
- [core]: tools.func - better verbose for postgresql [@MickLesk](https://github.com/MickLesk) ([#7173](https://github.com/community-scripts/ProxmoxVE/pull/7173))
|
||||||
|
- n8n: Force update to NodeJS v22 [@tremor021](https://github.com/tremor021) ([#7176](https://github.com/community-scripts/ProxmoxVE/pull/7176))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- 2FAuth: Fix website and docs URLs [@tremor021](https://github.com/tremor021) ([#7199](https://github.com/community-scripts/ProxmoxVE/pull/7199))
|
||||||
|
|
||||||
|
## 2025-08-24
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Kasm: Fix install log parsing [@tremor021](https://github.com/tremor021) ([#7140](https://github.com/community-scripts/ProxmoxVE/pull/7140))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- BookLore: Fix Nginx config [@tremor021](https://github.com/tremor021) ([#7155](https://github.com/community-scripts/ProxmoxVE/pull/7155))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Syncthing: Switch to v2 stable repository [@tremor021](https://github.com/tremor021) ([#7150](https://github.com/community-scripts/ProxmoxVE/pull/7150))
|
||||||
|
|
||||||
|
## 2025-08-23
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- qBittorrent: Fix file names [@tremor021](https://github.com/tremor021) ([#7136](https://github.com/community-scripts/ProxmoxVE/pull/7136))
|
||||||
|
- Tandoor: Fix env path [@tremor021](https://github.com/tremor021) ([#7130](https://github.com/community-scripts/ProxmoxVE/pull/7130))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Immich: v1.139.2 [@vhsdream](https://github.com/vhsdream) ([#7116](https://github.com/community-scripts/ProxmoxVE/pull/7116))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Pf2eTools [@tremor021](https://github.com/tremor021) ([#7096](https://github.com/community-scripts/ProxmoxVE/pull/7096))
|
||||||
|
- Refactor: Prowlarr [@tremor021](https://github.com/tremor021) ([#7091](https://github.com/community-scripts/ProxmoxVE/pull/7091))
|
||||||
|
- Refactor: Radarr [@tremor021](https://github.com/tremor021) ([#7088](https://github.com/community-scripts/ProxmoxVE/pull/7088))
|
||||||
|
- Refactor: Snipe-IT [@tremor021](https://github.com/tremor021) ([#7081](https://github.com/community-scripts/ProxmoxVE/pull/7081))
|
||||||
|
|
||||||
|
## 2025-08-22
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Refactor: Prometheus [@tremor021](https://github.com/tremor021) ([#7093](https://github.com/community-scripts/ProxmoxVE/pull/7093))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- paperless: nltk fix [@MickLesk](https://github.com/MickLesk) ([#7098](https://github.com/community-scripts/ProxmoxVE/pull/7098))
|
||||||
|
- Tududi Fix: use correct tag parsing for release during update check [@vhsdream](https://github.com/vhsdream) ([#7072](https://github.com/community-scripts/ProxmoxVE/pull/7072))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: phpIPAM [@tremor021](https://github.com/tremor021) ([#7095](https://github.com/community-scripts/ProxmoxVE/pull/7095))
|
||||||
|
- Refactor: Prometheus Paperless NGX Exporter [@tremor021](https://github.com/tremor021) ([#7092](https://github.com/community-scripts/ProxmoxVE/pull/7092))
|
||||||
|
- Refactor: PS5-MQTT [@tremor021](https://github.com/tremor021) ([#7090](https://github.com/community-scripts/ProxmoxVE/pull/7090))
|
||||||
|
- Refactor: qBittorrent [@tremor021](https://github.com/tremor021) ([#7089](https://github.com/community-scripts/ProxmoxVE/pull/7089))
|
||||||
|
- Refactor: RDTClient [@tremor021](https://github.com/tremor021) ([#7086](https://github.com/community-scripts/ProxmoxVE/pull/7086))
|
||||||
|
- Refactor: Recyclarr [@tremor021](https://github.com/tremor021) ([#7085](https://github.com/community-scripts/ProxmoxVE/pull/7085))
|
||||||
|
- Refactor: RevealJS [@tremor021](https://github.com/tremor021) ([#7084](https://github.com/community-scripts/ProxmoxVE/pull/7084))
|
||||||
|
- Refactor: Rclone [@tremor021](https://github.com/tremor021) ([#7087](https://github.com/community-scripts/ProxmoxVE/pull/7087))
|
||||||
|
- Refactor: Semaphore [@tremor021](https://github.com/tremor021) ([#7083](https://github.com/community-scripts/ProxmoxVE/pull/7083))
|
||||||
|
- Refactor: Silverbullet [@tremor021](https://github.com/tremor021) ([#7082](https://github.com/community-scripts/ProxmoxVE/pull/7082))
|
||||||
|
- Refactor: Plant-it [@tremor021](https://github.com/tremor021) ([#7094](https://github.com/community-scripts/ProxmoxVE/pull/7094))
|
||||||
|
- Refactor: TasmoAdmin [@tremor021](https://github.com/tremor021) ([#7080](https://github.com/community-scripts/ProxmoxVE/pull/7080))
|
||||||
|
|
||||||
|
## 2025-08-21
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- LiteLLM ([#7052](https://github.com/community-scripts/ProxmoxVE/pull/7052))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- tianji: add uv deps [@MickLesk](https://github.com/MickLesk) ([#7066](https://github.com/community-scripts/ProxmoxVE/pull/7066))
|
||||||
|
- Zitadel: installer for v4 [@MickLesk](https://github.com/MickLesk) ([#7058](https://github.com/community-scripts/ProxmoxVE/pull/7058))
|
||||||
|
- Paperless-NGX: create direction for nltk [@MickLesk](https://github.com/MickLesk) ([#7064](https://github.com/community-scripts/ProxmoxVE/pull/7064))
|
||||||
|
- Immich: hotfix - revert 7035 [@vhsdream](https://github.com/vhsdream) ([#7054](https://github.com/community-scripts/ProxmoxVE/pull/7054))
|
||||||
|
- duplicati: fix release pattern [@MickLesk](https://github.com/MickLesk) ([#7049](https://github.com/community-scripts/ProxmoxVE/pull/7049))
|
||||||
|
- technitiumdns: fix unbound variable [@MickLesk](https://github.com/MickLesk) ([#7047](https://github.com/community-scripts/ProxmoxVE/pull/7047))
|
||||||
|
- [core]: improve binary globbing for gh releases [@MickLesk](https://github.com/MickLesk) ([#7044](https://github.com/community-scripts/ProxmoxVE/pull/7044))
|
||||||
|
|
||||||
|
## 2025-08-20
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Post-Install, change pve-test for trixie [@MickLesk](https://github.com/MickLesk) ([#7031](https://github.com/community-scripts/ProxmoxVE/pull/7031))
|
||||||
|
- Immich: fix small issue with immich-admin "start" script [@vhsdream](https://github.com/vhsdream) ([#7035](https://github.com/community-scripts/ProxmoxVE/pull/7035))
|
||||||
|
- WasteBin: Small fixes [@tremor021](https://github.com/tremor021) ([#7018](https://github.com/community-scripts/ProxmoxVE/pull/7018))
|
||||||
|
- Komga: Fix update [@tremor021](https://github.com/tremor021) ([#7027](https://github.com/community-scripts/ProxmoxVE/pull/7027))
|
||||||
|
- Barcode Buddy: Fix missing dependency [@tremor021](https://github.com/tremor021) ([#7020](https://github.com/community-scripts/ProxmoxVE/pull/7020))
|
||||||
|
- PBS: ifupdown2 reload [@MickLesk](https://github.com/MickLesk) ([#7013](https://github.com/community-scripts/ProxmoxVE/pull/7013))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Feature: Netdata support PVE9 (Debian 13 Trixie) [@MickLesk](https://github.com/MickLesk) ([#7012](https://github.com/community-scripts/ProxmoxVE/pull/7012))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: RustDesk Server [@tremor021](https://github.com/tremor021) ([#7008](https://github.com/community-scripts/ProxmoxVE/pull/7008))
|
||||||
|
- ghost: fix: verbose [@CrazyWolf13](https://github.com/CrazyWolf13) ([#7023](https://github.com/community-scripts/ProxmoxVE/pull/7023))
|
||||||
|
- Refactor: Paperless-ngx [@MickLesk](https://github.com/MickLesk) ([#6938](https://github.com/community-scripts/ProxmoxVE/pull/6938))
|
||||||
|
|
||||||
|
## 2025-08-19
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Debian 13 VM [@MickLesk](https://github.com/MickLesk) ([#6970](https://github.com/community-scripts/ProxmoxVE/pull/6970))
|
||||||
|
- Swizzin ([#6962](https://github.com/community-scripts/ProxmoxVE/pull/6962))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- [core]: create_lxc - fix offline issue with alpine packages [@MickLesk](https://github.com/MickLesk) ([#6994](https://github.com/community-scripts/ProxmoxVE/pull/6994))
|
||||||
|
- OpenObserve: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6961](https://github.com/community-scripts/ProxmoxVE/pull/6961))
|
||||||
|
- Update hev-socks5-server-install.sh [@iAzamat2](https://github.com/iAzamat2) ([#6953](https://github.com/community-scripts/ProxmoxVE/pull/6953))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Refactor: Glances (+ Feature Bump) [@MickLesk](https://github.com/MickLesk) ([#6976](https://github.com/community-scripts/ProxmoxVE/pull/6976))
|
||||||
|
- [core]: add new features to create_lxc [@MickLesk](https://github.com/MickLesk) ([#6979](https://github.com/community-scripts/ProxmoxVE/pull/6979))
|
||||||
|
- [core]: extend setup_uv to work with alpine [@MickLesk](https://github.com/MickLesk) ([#6978](https://github.com/community-scripts/ProxmoxVE/pull/6978))
|
||||||
|
- Immich: Bump version to 1.138.1 [@vhsdream](https://github.com/vhsdream) ([#6984](https://github.com/community-scripts/ProxmoxVE/pull/6984))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Tdarr [@MickLesk](https://github.com/MickLesk) ([#6969](https://github.com/community-scripts/ProxmoxVE/pull/6969))
|
||||||
|
- Refactor: The Lounge [@tremor021](https://github.com/tremor021) ([#6958](https://github.com/community-scripts/ProxmoxVE/pull/6958))
|
||||||
|
- Refactor: TeddyCloud [@tremor021](https://github.com/tremor021) ([#6963](https://github.com/community-scripts/ProxmoxVE/pull/6963))
|
||||||
|
- Refactor: Technitium DNS [@tremor021](https://github.com/tremor021) ([#6968](https://github.com/community-scripts/ProxmoxVE/pull/6968))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- [web]: update logos from reactive-resume & slskd [@MickLesk](https://github.com/MickLesk) ([#6990](https://github.com/community-scripts/ProxmoxVE/pull/6990))
|
||||||
|
|
||||||
|
## 2025-08-18
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- CopyParty [@MickLesk](https://github.com/MickLesk) ([#6929](https://github.com/community-scripts/ProxmoxVE/pull/6929))
|
||||||
|
- Twingate-Connector ([#6921](https://github.com/community-scripts/ProxmoxVE/pull/6921))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Keycloak: fix update function [@MickLesk](https://github.com/MickLesk) ([#6943](https://github.com/community-scripts/ProxmoxVE/pull/6943))
|
||||||
|
- Immich: add message to indicate image-processing library update check [@vhsdream](https://github.com/vhsdream) ([#6935](https://github.com/community-scripts/ProxmoxVE/pull/6935))
|
||||||
|
- fix(uptimekuma): unbound env variable [@vidonnus](https://github.com/vidonnus) ([#6922](https://github.com/community-scripts/ProxmoxVE/pull/6922))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Traefik [@tremor021](https://github.com/tremor021) ([#6940](https://github.com/community-scripts/ProxmoxVE/pull/6940))
|
||||||
|
- Refactor: Traccar [@tremor021](https://github.com/tremor021) ([#6942](https://github.com/community-scripts/ProxmoxVE/pull/6942))
|
||||||
|
- Refactor: Umami [@tremor021](https://github.com/tremor021) ([#6939](https://github.com/community-scripts/ProxmoxVE/pull/6939))
|
||||||
|
- Refactor: GoMFT [@tremor021](https://github.com/tremor021) ([#6916](https://github.com/community-scripts/ProxmoxVE/pull/6916))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- OpenWRT: add info for VLAN-aware in frontend [@MickLesk](https://github.com/MickLesk) ([#6944](https://github.com/community-scripts/ProxmoxVE/pull/6944))
|
||||||
|
|
||||||
|
## 2025-08-17
|
||||||
|
|
||||||
|
## 2025-08-16
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Wireguard: Fix WGDashboard not updating [@tremor021](https://github.com/tremor021) ([#6898](https://github.com/community-scripts/ProxmoxVE/pull/6898))
|
||||||
|
- Tandoor Images Fix [@WarLord185](https://github.com/WarLord185) ([#6892](https://github.com/community-scripts/ProxmoxVE/pull/6892))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Uptime Kuma [@tremor021](https://github.com/tremor021) ([#6902](https://github.com/community-scripts/ProxmoxVE/pull/6902))
|
||||||
|
- Refactor: Wallos [@tremor021](https://github.com/tremor021) ([#6900](https://github.com/community-scripts/ProxmoxVE/pull/6900))
|
||||||
|
|
||||||
|
## 2025-08-15
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: pin Vectorchord release; adjust extension update commands [@vhsdream](https://github.com/vhsdream) ([#6878](https://github.com/community-scripts/ProxmoxVE/pull/6878))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Bump Immich to v1.138.0 [@vhsdream](https://github.com/vhsdream) ([#6813](https://github.com/community-scripts/ProxmoxVE/pull/6813))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Wavelog [@tremor021](https://github.com/tremor021) ([#6869](https://github.com/community-scripts/ProxmoxVE/pull/6869))
|
||||||
|
- Refactor: WatchYourLAN [@tremor021](https://github.com/tremor021) ([#6871](https://github.com/community-scripts/ProxmoxVE/pull/6871))
|
||||||
|
- Refactor: Watcharr [@tremor021](https://github.com/tremor021) ([#6872](https://github.com/community-scripts/ProxmoxVE/pull/6872))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Add missing default user & pass for RabbitMQ [@hbenyoussef](https://github.com/hbenyoussef) ([#6883](https://github.com/community-scripts/ProxmoxVE/pull/6883))
|
||||||
|
|
||||||
|
## 2025-08-14
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Bugfix Searxng Redis replaced with Valkey in installscript [@elvito](https://github.com/elvito) ([#6831](https://github.com/community-scripts/ProxmoxVE/pull/6831))
|
||||||
|
- Spoolman: Use environment variables to control host and port [@tremor021](https://github.com/tremor021) ([#6825](https://github.com/community-scripts/ProxmoxVE/pull/6825))
|
||||||
|
- Pulse: v4.3.2+ [@vhsdream](https://github.com/vhsdream) ([#6859](https://github.com/community-scripts/ProxmoxVE/pull/6859))
|
||||||
|
- rustdeskserver: fix API version file [@steadfasterX](https://github.com/steadfasterX) ([#6847](https://github.com/community-scripts/ProxmoxVE/pull/6847))
|
||||||
|
- Immich: quickfix #6836 [@vhsdream](https://github.com/vhsdream) ([#6848](https://github.com/community-scripts/ProxmoxVE/pull/6848))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: WikiJS [@tremor021](https://github.com/tremor021) ([#6840](https://github.com/community-scripts/ProxmoxVE/pull/6840))
|
||||||
|
- Refactor: Zoraxy [@tremor021](https://github.com/tremor021) ([#6823](https://github.com/community-scripts/ProxmoxVE/pull/6823))
|
||||||
|
- Refactor: Zitadel [@tremor021](https://github.com/tremor021) ([#6826](https://github.com/community-scripts/ProxmoxVE/pull/6826))
|
||||||
|
- Refactor: WordPress [@tremor021](https://github.com/tremor021) ([#6837](https://github.com/community-scripts/ProxmoxVE/pull/6837))
|
||||||
|
- Refactor: WireGuard [@tremor021](https://github.com/tremor021) ([#6839](https://github.com/community-scripts/ProxmoxVE/pull/6839))
|
||||||
|
- Refactor: yt-dlp-webui [@tremor021](https://github.com/tremor021) ([#6832](https://github.com/community-scripts/ProxmoxVE/pull/6832))
|
||||||
|
- Refactor: Zipline [@tremor021](https://github.com/tremor021) ([#6829](https://github.com/community-scripts/ProxmoxVE/pull/6829))
|
||||||
|
- Refactor: Zot-Registry [@tremor021](https://github.com/tremor021) ([#6822](https://github.com/community-scripts/ProxmoxVE/pull/6822))
|
||||||
|
- Refactor: Zwave-JS-UI [@tremor021](https://github.com/tremor021) ([#6820](https://github.com/community-scripts/ProxmoxVE/pull/6820))
|
||||||
|
|
||||||
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- #### 📂 Github
|
||||||
|
|
||||||
|
- ProxmoxVE svg logo [@LuisPalacios](https://github.com/LuisPalacios) ([#6846](https://github.com/community-scripts/ProxmoxVE/pull/6846))
|
||||||
|
|
||||||
|
## 2025-08-13
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- emby: fix update output [@MickLesk](https://github.com/MickLesk) ([#6791](https://github.com/community-scripts/ProxmoxVE/pull/6791))
|
||||||
|
- archivebox: fix wrong formatted uv command [@MickLesk](https://github.com/MickLesk) ([#6794](https://github.com/community-scripts/ProxmoxVE/pull/6794))
|
||||||
|
- Outline: Fixes for install and update procedures [@tremor021](https://github.com/tremor021) ([#6806](https://github.com/community-scripts/ProxmoxVE/pull/6806))
|
||||||
|
- Palmr: fix release version parsing // increase RAM [@vhsdream](https://github.com/vhsdream) ([#6800](https://github.com/community-scripts/ProxmoxVE/pull/6800))
|
||||||
|
- myspeed: fix update process if no data exist [@MickLesk](https://github.com/MickLesk) ([#6795](https://github.com/community-scripts/ProxmoxVE/pull/6795))
|
||||||
|
- crafty-controller: fix update output [@MickLesk](https://github.com/MickLesk) ([#6793](https://github.com/community-scripts/ProxmoxVE/pull/6793))
|
||||||
|
- GLPI: Fix timezone command [@tremor021](https://github.com/tremor021) ([#6783](https://github.com/community-scripts/ProxmoxVE/pull/6783))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Docker LXC: Add Portainer info [@tremor021](https://github.com/tremor021) ([#6803](https://github.com/community-scripts/ProxmoxVE/pull/6803))
|
||||||
|
- AgentDVR: Added update function [@tremor021](https://github.com/tremor021) ([#6804](https://github.com/community-scripts/ProxmoxVE/pull/6804))
|
||||||
|
|
||||||
|
## 2025-08-12
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Pulse: binary path changed AGAIN; other fixes [@vhsdream](https://github.com/vhsdream) ([#6770](https://github.com/community-scripts/ProxmoxVE/pull/6770))
|
||||||
|
- fix alpine syncthing config not being created [@GamerHun1238](https://github.com/GamerHun1238) ([#6773](https://github.com/community-scripts/ProxmoxVE/pull/6773))
|
||||||
|
- change owner of hortusfox directory [@snow2k9](https://github.com/snow2k9) ([#6763](https://github.com/community-scripts/ProxmoxVE/pull/6763))
|
||||||
|
|
||||||
|
## 2025-08-11
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Reactive Resume: use new release parsing; other fixes [@vhsdream](https://github.com/vhsdream) ([#6744](https://github.com/community-scripts/ProxmoxVE/pull/6744))
|
||||||
|
|
||||||
|
## 2025-08-10
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Fix/thinpool detection as it allows to delete active thinpool with different name than "data" [@onethree7](https://github.com/onethree7) ([#6730](https://github.com/community-scripts/ProxmoxVE/pull/6730))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Pulse: fix binary path [@vhsdream](https://github.com/vhsdream) ([#6740](https://github.com/community-scripts/ProxmoxVE/pull/6740))
|
||||||
|
- Karakeep: chromium fix [@vhsdream](https://github.com/vhsdream) ([#6729](https://github.com/community-scripts/ProxmoxVE/pull/6729))
|
||||||
|
|
||||||
|
## 2025-08-09
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Paperless-AI: increase HDD Space to 20G [@MickLesk](https://github.com/MickLesk) ([#6716](https://github.com/community-scripts/ProxmoxVE/pull/6716))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- vaultwarden: increase disk space [@CrazyWolf13](https://github.com/CrazyWolf13) ([#6712](https://github.com/community-scripts/ProxmoxVE/pull/6712))
|
||||||
|
- Fix: Bazarr requirements.txt file not parse-able by UV [@Xerovoxx98](https://github.com/Xerovoxx98) ([#6701](https://github.com/community-scripts/ProxmoxVE/pull/6701))
|
||||||
|
- Improve backup of adventurelog folder [@ThomasDetemmerman](https://github.com/ThomasDetemmerman) ([#6653](https://github.com/community-scripts/ProxmoxVE/pull/6653))
|
||||||
|
- HomeBox: Fixes for update procedure [@tremor021](https://github.com/tremor021) ([#6702](https://github.com/community-scripts/ProxmoxVE/pull/6702))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Tianji [@MickLesk](https://github.com/MickLesk) ([#6662](https://github.com/community-scripts/ProxmoxVE/pull/6662))
|
||||||
|
|
||||||
|
## 2025-08-08
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Palmr ([#6642](https://github.com/community-scripts/ProxmoxVE/pull/6642))
|
||||||
|
- HortusFox ([#6641](https://github.com/community-scripts/ProxmoxVE/pull/6641))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Unifi: Update libssl dependency [@tremor021](https://github.com/tremor021) ([#6680](https://github.com/community-scripts/ProxmoxVE/pull/6680))
|
||||||
|
- HomeBox: Fix checking for existing install [@tremor021](https://github.com/tremor021) ([#6677](https://github.com/community-scripts/ProxmoxVE/pull/6677))
|
||||||
|
- Immich: unpin libvips revision [@vhsdream](https://github.com/vhsdream) ([#6669](https://github.com/community-scripts/ProxmoxVE/pull/6669))
|
||||||
|
- Meilisearch: fix wrong path switch [@MickLesk](https://github.com/MickLesk) ([#6668](https://github.com/community-scripts/ProxmoxVE/pull/6668))
|
||||||
|
- MariaDB: fix "feedback" (statistical informations) whiptail [@MickLesk](https://github.com/MickLesk) ([#6657](https://github.com/community-scripts/ProxmoxVE/pull/6657))
|
||||||
|
- Karakeep: workaround/fix for #6593 [@vhsdream](https://github.com/vhsdream) ([#6648](https://github.com/community-scripts/ProxmoxVE/pull/6648))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Feature: FSTrim (Filesystem Trim) - Log / LVM Check / ZFS [@MickLesk](https://github.com/MickLesk) ([#6660](https://github.com/community-scripts/ProxmoxVE/pull/6660))
|
||||||
|
- IP Tag: Allow installation on PVE 9.x [@webhdx](https://github.com/webhdx) ([#6679](https://github.com/community-scripts/ProxmoxVE/pull/6679))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Alpine IT-Tools [@tremor021](https://github.com/tremor021) ([#6579](https://github.com/community-scripts/ProxmoxVE/pull/6579))
|
||||||
|
- Refactor: ArchiveBox [@MickLesk](https://github.com/MickLesk) ([#6670](https://github.com/community-scripts/ProxmoxVE/pull/6670))
|
||||||
|
- Refactor: Bazarr [@MickLesk](https://github.com/MickLesk) ([#6663](https://github.com/community-scripts/ProxmoxVE/pull/6663))
|
||||||
|
- Refactor: Kometa [@MickLesk](https://github.com/MickLesk) ([#6673](https://github.com/community-scripts/ProxmoxVE/pull/6673))
|
||||||
|
|
||||||
## 2025-08-07
|
## 2025-08-07
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Commafeed: Fix Backup Handling while Update [@MickLesk](https://github.com/MickLesk) ([#6629](https://github.com/community-scripts/ProxmoxVE/pull/6629))
|
||||||
|
- VictoriaMetrics: Fix release fetching [@tremor021](https://github.com/tremor021) ([#6632](https://github.com/community-scripts/ProxmoxVE/pull/6632))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Feature: Post-PVE-Script (PVE9 Support + some Features) [@MickLesk](https://github.com/MickLesk) ([#6626](https://github.com/community-scripts/ProxmoxVE/pull/6626))
|
||||||
|
- Feature: Clean-LXC now supports Alpine based containers [@MickLesk](https://github.com/MickLesk) ([#6628](https://github.com/community-scripts/ProxmoxVE/pull/6628))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Tandoor v2 [@MickLesk](https://github.com/MickLesk) ([#6635](https://github.com/community-scripts/ProxmoxVE/pull/6635))
|
||||||
|
- Refactor: Paymenter [@tremor021](https://github.com/tremor021) ([#6589](https://github.com/community-scripts/ProxmoxVE/pull/6589))
|
||||||
|
|
||||||
## 2025-08-06
|
## 2025-08-06
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|||||||
54
SECURITY.md
54
SECURITY.md
@ -1,24 +1,64 @@
|
|||||||
|
# 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: |
|
||||||
| 8.1.x | :white_check_mark: |
|
| 8.1.x | :white_check_mark: |
|
||||||
| 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.
|
||||||
|
|||||||
14
ct/2fauth.sh
14
ct/2fauth.sh
@ -28,12 +28,7 @@ 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
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Bubka/2FAuth/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
|
||||||
if [[ "${RELEASE}" != "$(cat ~/.2fauth 2>/dev/null)" ]] || [[ ! -f ~/.2fauth ]]; then
|
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get -y upgrade
|
$STD apt-get -y upgrade
|
||||||
|
|
||||||
@ -64,18 +59,13 @@ 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-get remove --purge -y php8.2*
|
||||||
fi
|
fi
|
||||||
$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"
|
||||||
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:-12}"
|
||||||
var_unprivileged="1"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
header_info "$APP"
|
header_info "$APP"
|
||||||
variables
|
variables
|
||||||
|
|||||||
@ -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"
|
||||||
@ -20,15 +20,15 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/AdGuardHome ]]; then
|
if [[ ! -d /opt/AdGuardHome ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_error "Adguard Home should be updated via the user interface."
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_error "Adguard Home can only be updated via the user interface."
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -38,4 +38,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
||||||
|
|||||||
@ -27,25 +27,25 @@ 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-get update
|
||||||
if [[ "${RELEASE}" != "$(cat ~/.adventurelog 2>/dev/null)" ]] || [[ ! -f ~/.adventurelog ]]; then
|
$STD apt-get 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
|
||||||
msg_ok "Services Stopped"
|
msg_ok "Services Stopped"
|
||||||
|
|
||||||
msg_info "Backup Old Installation"
|
msg_info "Backup Old Installation"
|
||||||
mkdir -p /opt/adventurelog-backup
|
cp -r /opt/adventurelog /opt/adventurelog-backup
|
||||||
cp /opt/adventurelog/backend/server/.env /opt/adventurelog-backup/backend/server/.env
|
rm -rf /opt/adventurelog
|
||||||
cp -r /opt/adventurelog/backend/server/media /opt/adventurelog-backup/backend/server/media
|
|
||||||
cp /opt/adventurelog/frontend/.env /opt/adventurelog-backup/frontend/.env
|
|
||||||
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.12" setup_uv
|
||||||
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Updating ${APP}"
|
||||||
cp /opt/adventurelog-backup/backend/server/.env /opt/adventurelog/backend/server/.env
|
cp /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
|
||||||
@ -57,7 +57,7 @@ function update_script() {
|
|||||||
$STD .venv/bin/python -m pip install -r requirements.txt
|
$STD .venv/bin/python -m pip install -r requirements.txt
|
||||||
$STD .venv/bin/python -m manage collectstatic --noinput
|
$STD .venv/bin/python -m manage collectstatic --noinput
|
||||||
$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
|
||||||
$STD pnpm i
|
$STD pnpm i
|
||||||
@ -73,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
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,7 +27,30 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_error "Currently we don't provide an update function for this ${APP}."
|
|
||||||
|
RELEASE=$(curl -fsSL "https://www.ispyconnect.com/api/Agent/DownloadLocation4?platform=Linux64&fromVersion=0" | grep -o 'https://.*\.zip')
|
||||||
|
if [[ "${RELEASE}" != "$(cat ~/.agentdvr 2>/dev/null)" ]] || [[ ! -f ~/.agentdvr ]]; then
|
||||||
|
msg_info "Stopping service"
|
||||||
|
systemctl stop AgentDVR
|
||||||
|
msg_ok "Service stopped"
|
||||||
|
|
||||||
|
msg_info "Updating $APP"
|
||||||
|
cd /opt/agentdvr/agent
|
||||||
|
curl -fsSL "$RELEASE" -o $(basename "$RELEASE")
|
||||||
|
$STD unzip -o Agent_Linux64*.zip
|
||||||
|
chmod +x ./Agent
|
||||||
|
echo $RELEASE > ~/.agentdvr
|
||||||
|
rm -rf Agent_Linux64*.zip
|
||||||
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
|
msg_info "Starting service"
|
||||||
|
systemctl start AgentDVR
|
||||||
|
msg_ok "Service started"
|
||||||
|
|
||||||
|
msg_ok "Updated $APP successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
||||||
|
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}"
|
||||||
@ -27,16 +27,15 @@ function update_script() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/CorentinTh/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
RELEASE=$(curl -fsSL https://api.github.com/repos/sharevb/it-tools/releases/latest | grep '"tag_name":' | cut -d '"' -f4)
|
||||||
if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then
|
if [ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ] || [ ! -f /opt/${APP}_version.txt ]; then
|
||||||
DOWNLOAD_URL="https://github.com/CorentinTh/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip"
|
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
curl -fsSL -o it-tools.zip "$DOWNLOAD_URL"
|
curl -fsSL "https://github.com/sharevb/it-tools/releases/download/${RELEASE}/it-tools-${RELEASE#v}.zip" -o it-tools.zip
|
||||||
mkdir -p /usr/share/nginx/html
|
mkdir -p /usr/share/nginx/html
|
||||||
rm -rf /usr/share/nginx/html/*
|
rm -rf /usr/share/nginx/html/*
|
||||||
$STD unzip it-tools.zip -d /tmp/it-tools
|
$STD unzip it-tools.zip -d /tmp
|
||||||
cp -r /tmp/it-tools/dist/* /usr/share/nginx/html
|
cp -r /tmp/dist/* /usr/share/nginx/html
|
||||||
rm -rf /tmp/it-tools
|
rm -rf /tmp/dist
|
||||||
rm -f it-tools.zip
|
rm -f it-tools.zip
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
else
|
||||||
|
|||||||
56
ct/alpine-redlib.sh
Normal file
56
ct/alpine-redlib.sh
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: andrej-kocijan (Andrej Kocijan)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/redlib-org/redlib
|
||||||
|
|
||||||
|
APP="Alpine-Redlib"
|
||||||
|
var_tags="${var_tags:-alpine;frontend}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-1}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.22}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/redlib ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Updating Alpine Packages"
|
||||||
|
$STD apk -U upgrade
|
||||||
|
msg_ok "Updated Alpine Packages"
|
||||||
|
|
||||||
|
msg_info "Stopping ${APP} Service"
|
||||||
|
$STD rc-service redlib stop
|
||||||
|
msg_ok "Stopped ${APP} Service"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "redlib" "redlib-org/redlib" "prebuild" "latest" "/opt/redlib" "redlib-x86_64-unknown-linux-musl.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP} Service"
|
||||||
|
$STD rc-service redlib start
|
||||||
|
msg_ok "Started ${APP} Service"
|
||||||
|
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5252${CL}"
|
||||||
74
ct/alpine-rustdeskserver.sh
Normal file
74
ct/alpine-rustdeskserver.sh
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/rustdesk/rustdesk-server
|
||||||
|
|
||||||
|
APP="Alpine-RustDeskServer"
|
||||||
|
var_tags="${var_tags:-alpine;monitoring}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-3}"
|
||||||
|
var_os="${var_os:-alpine}"
|
||||||
|
var_version="${var_version:-3.22}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
if [[ ! -d /opt/rustdesk-server ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
APIRELEASE=$(curl -s https://api.github.com/repos/lejianwen/rustdesk-api/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
|
RELEASE=$(curl -s https://api.github.com/repos/rustdesk/rustdesk-server/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
if [ "${RELEASE}" != "$(cat ~/.rustdesk-server 2>/dev/null)" ] || [ ! -f ~/.rustdesk-server ]; then
|
||||||
|
msg_info "Updating RustDesk Server to v${RELEASE}"
|
||||||
|
$STD apk -U upgrade
|
||||||
|
$STD service rustdesk-server-hbbs stop
|
||||||
|
$STD service rustdesk-server-hbbr stop
|
||||||
|
temp_file1=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/rustdesk/rustdesk-server/releases/download/${RELEASE}/rustdesk-server-linux-amd64.zip" -o "$temp_file1"
|
||||||
|
$STD unzip "$temp_file1"
|
||||||
|
cp -r amd64/* /opt/rustdesk-server/
|
||||||
|
echo "${RELEASE}" >~/.rustdesk-server
|
||||||
|
$STD service rustdesk-server-hbbs start
|
||||||
|
$STD service rustdesk-server-hbbr start
|
||||||
|
rm -rf amd64
|
||||||
|
rm -f $temp_file1
|
||||||
|
msg_ok "Updated RustDesk Server successfully"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
|
fi
|
||||||
|
if [ "${APIRELEASE}" != "$(cat ~/.rustdesk-api)" ] || [ ! -f ~/.rustdesk-api ]; then
|
||||||
|
msg_info "Updating RustDesk API to v${APIRELEASE}"
|
||||||
|
$STD service rustdesk-api stop
|
||||||
|
temp_file2=$(mktemp)
|
||||||
|
curl -fsSL "https://github.com/lejianwen/rustdesk-api/releases/download/v${APIRELEASE}/linux-amd64.tar.gz" -o "$temp_file2"
|
||||||
|
$STD tar zxvf "$temp_file2"
|
||||||
|
cp -r release/* /opt/rustdesk-api
|
||||||
|
echo "${APIRELEASE}" >~/.rustdesk-api
|
||||||
|
$STD service rustdesk-api start
|
||||||
|
rm -rf release
|
||||||
|
rm -f $temp_file2
|
||||||
|
msg_ok "Updated RustDesk API"
|
||||||
|
else
|
||||||
|
msg_ok "No update required. RustDesk API is already at v${APIRELEASE}"
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:21114${CL}"
|
||||||
@ -9,7 +9,7 @@ APP="Apt-Cacher-NG"
|
|||||||
var_tags="${var_tags:-caching}"
|
var_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}"
|
||||||
@ -20,18 +20,18 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then
|
if [[ ! -d /var ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating $APP LXC"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "Updated $APP LXC"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -41,4 +41,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3142/acng-report.html${CL}"
|
||||||
|
|||||||
@ -20,29 +20,38 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/archivebox ]]; then
|
if [[ ! -d /opt/archivebox ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Stopping ${APP}"
|
|
||||||
systemctl stop archivebox
|
|
||||||
msg_ok "Stopped ${APP}"
|
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
|
||||||
cd /opt/archivebox/data
|
|
||||||
pip install --upgrade --ignore-installed archivebox
|
|
||||||
sudo -u archivebox archivebox init
|
|
||||||
msg_ok "Updated ${APP}"
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
|
||||||
systemctl start archivebox
|
|
||||||
msg_ok "Started ${APP}"
|
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
|
|
||||||
|
msg_info "Stopping ArchiveBox"
|
||||||
|
systemctl stop archivebox
|
||||||
|
msg_ok "Stopped ArchiveBox"
|
||||||
|
|
||||||
|
msg_info "Upgrading Playwright"
|
||||||
|
$STD uv pip install playwright --system
|
||||||
|
$STD playwright install-deps chromium
|
||||||
|
msg_ok "Upgraded Playwright"
|
||||||
|
|
||||||
|
msg_info "Updating ArchiveBox"
|
||||||
|
cd /opt/archivebox/data
|
||||||
|
$STD uv pip install --system --upgrade --no-reinstall archivebox
|
||||||
|
sudo -u archivebox archivebox init
|
||||||
|
msg_ok "Updated ArchiveBox"
|
||||||
|
|
||||||
|
msg_info "Starting ArchiveBox"
|
||||||
|
systemctl start archivebox
|
||||||
|
msg_ok "Started ArchiveBox"
|
||||||
|
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -52,4 +61,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000/admin/login${CL}"
|
||||||
|
|||||||
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}"
|
||||||
@ -20,15 +20,19 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -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
|
|
||||||
fi
|
|
||||||
echo "This application receives updates through the APT package manager."
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_info "Updating $APP LXC"
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get -y upgrade
|
||||||
|
msg_ok "Updated $APP LXC"
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -38,4 +42,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:13378${CL}"
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -20,30 +20,26 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /root/.config/autobrr/config.toml ]]; then
|
if [[ ! -f /root/.config/autobrr/config.toml ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
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"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
|
fetch_and_deploy_gh_release "autobrr" "autobrr/autobrr" "prebuild" "latest" "/usr/local/bin" "autobrr_*_linux_x86_64.tar.gz"
|
||||||
|
|
||||||
msg_info "Starting ${APP} LXC"
|
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"
|
fi
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}"
|
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|||||||
33
ct/bazarr.sh
33
ct/bazarr.sh
@ -20,20 +20,27 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var/lib/bazarr/ ]]; then
|
if [[ ! -d /var/lib/bazarr/ ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating $APP LXC"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "Updated $APP LXC"
|
|
||||||
exit
|
exit
|
||||||
}
|
fi
|
||||||
|
if check_for_gh_release "bazarr" "morpheus65535/bazarr"; then
|
||||||
|
PYTHON_VERSION="3.13" setup_uv
|
||||||
|
fetch_and_deploy_gh_release "bazarr" "morpheus65535/bazarr" "prebuild" "latest" "/opt/bazarr" "bazarr.zip"
|
||||||
|
|
||||||
|
msg_info "Setup Bazarr"
|
||||||
|
mkdir -p /var/lib/bazarr/
|
||||||
|
chmod 775 /opt/bazarr /var/lib/bazarr/
|
||||||
|
sed -i.bak 's/--only-binary=Pillow//g' /opt/bazarr/requirements.txt
|
||||||
|
$STD uv pip install -r /opt/bazarr/requirements.txt --system
|
||||||
|
msg_ok "Setup Bazarr"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
start
|
start
|
||||||
build_container
|
build_container
|
||||||
description
|
description
|
||||||
@ -41,4 +48,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:6767${CL}"
|
||||||
|
|||||||
@ -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"
|
||||||
@ -49,4 +50,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
echo -e "${INFO}${YW} Access it using the following IP:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8090${CL}"
|
||||||
|
|||||||
@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
46
ct/blocky.sh
46
ct/blocky.sh
@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2025 tteck
|
# 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}"
|
||||||
@ -20,18 +20,38 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /var ]]; then
|
if [[ ! -d /opt/blocky ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
msg_info "Updating $APP LXC"
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get -y upgrade
|
|
||||||
msg_ok "Updated $APP LXC"
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "blocky" "0xERR0R/blocky"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop blocky
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Backup Config"
|
||||||
|
mv /opt/blocky/config.yml /opt/config.yml
|
||||||
|
msg_ok "Backed Up Config"
|
||||||
|
|
||||||
|
msg_info "Removing Old Version"
|
||||||
|
rm -rf /opt/blocky
|
||||||
|
msg_ok "Removed Old Version"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_linux_x86_64.tar.gz"
|
||||||
|
|
||||||
|
msg_info "Restore Config"
|
||||||
|
mv /opt/config.yml /opt/blocky/config.yml
|
||||||
|
msg_ok "Restored Config"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start blocky
|
||||||
|
msg_ok "Started Service"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -41,4 +61,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}"
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
17
ct/caddy.sh
17
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
|
||||||
|
install_go
|
||||||
|
msg_info "Updating xCaddy"
|
||||||
|
cd /opt
|
||||||
|
RELEASE=$(curl -fsSL https://api.github.com/repos/caddyserver/xcaddy/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
|
||||||
|
VERSION="${RELEASE#v}"
|
||||||
|
curl -fsSL "https://github.com/caddyserver/xcaddy/releases/download/${RELEASE}/xcaddy_${VERSION}_linux_amd64.deb" -o "xcaddy_${VERSION}_linux_amd64.deb"
|
||||||
|
$STD dpkg -i "xcaddy_${VERSION}_linux_amd64.deb"
|
||||||
|
rm -f "xcaddy_${VERSION}_linux_amd64.deb"
|
||||||
|
$STD xcaddy build
|
||||||
|
msg_ok "Updated xCaddy"
|
||||||
|
fi
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,4 +54,4 @@ description
|
|||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:80${CL}"
|
||||||
|
|||||||
@ -27,23 +27,21 @@ 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
|
curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb" -o "/opt/checkmk.deb"
|
||||||
curl -fsSL "https://download.checkmk.com/checkmk/${RELEASE}/check-mk-raw-${RELEASE}_0.bookworm_amd64.deb" -o "/opt/checkmk.deb"
|
$STD apt-get install -y /opt/checkmk.deb
|
||||||
$STD apt-get install -y /opt/checkmk.deb
|
$STD omd --force -V ${RELEASE}.cre update --conflict=install monitoring
|
||||||
$STD omd --force -V ${RELEASE}.cre update --conflict=install monitoring
|
$STD omd start monitoring
|
||||||
$STD omd start monitoring
|
$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}"
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
msg_ok "Updated Successfully"
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,32 +20,27 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
|
if [[ ! -f /opt/cleanuparr/Cleanuparr ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/Cleanuparr/Cleanuparr/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
|
||||||
if [[ "${RELEASE}" != "$(cat ~/.Cleanuparr 2>/dev/null)" ]] || [[ ! -f ~/.Cleanuparr ]]; then
|
|
||||||
msg_info "Stopping ${APP}"
|
|
||||||
systemctl stop cleanuparr
|
|
||||||
msg_ok "Stopped ${APP}"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
|
||||||
systemctl start cleanuparr
|
|
||||||
msg_ok "Started ${APP}"
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
exit
|
||||||
}
|
fi
|
||||||
|
if check_for_gh_release "cleanuparr" "Cleanuparr/Cleanuparr"; then
|
||||||
|
msg_info "Stopping ${APP}"
|
||||||
|
systemctl stop cleanuparr
|
||||||
|
msg_ok "Stopped ${APP}"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||||
|
|
||||||
|
msg_info "Starting ${APP}"
|
||||||
|
systemctl start cleanuparr
|
||||||
|
msg_ok "Started ${APP}"
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
start
|
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"
|
||||||
@ -20,18 +20,18 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /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
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
@ -39,4 +39,4 @@ build_container
|
|||||||
description
|
description
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
msg_ok "Completed Successfully!\n"
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${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 "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
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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}"
|
||||||
@ -40,23 +39,25 @@ function update_script() {
|
|||||||
$STD apt-get install -y rsync
|
$STD apt-get install -y rsync
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d /opt/commafeed/data ] && [ "$(ls -A /opt/commafeed/data)" ]; then
|
if [ -d /opt/commafeed/data ] && [ "$(ls -A /opt/commafeed/data)" ]; then
|
||||||
|
msg_info "Backing up existing data"
|
||||||
mv /opt/commafeed/data /opt/data.bak
|
mv /opt/commafeed/data /opt/data.bak
|
||||||
|
msg_ok "Backed up existing data"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip"
|
fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip"
|
||||||
|
|
||||||
msg_info "Updating ${APP} to ${RELEASE}"
|
if [ -d /opt/data.bak ] && [ "$(ls -A /opt/data.bak)" ]; then
|
||||||
if [ -d /opt/commafeed/data.bak ] && [ "$(ls -A /opt/commafeed/data.bak)" ]; then
|
msg_info "Restoring data"
|
||||||
mv /opt/commafeed/data.bak /opt/commafeed/data
|
mv /opt/data.bak /opt/commafeed/data
|
||||||
|
msg_ok "Restored data"
|
||||||
fi
|
fi
|
||||||
msg_ok "Updated ${APP} to ${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting ${APP}"
|
msg_info "Starting ${APP}"
|
||||||
systemctl start commafeed
|
systemctl start commafeed
|
||||||
msg_ok "Started ${APP}"
|
msg_ok "Started ${APP}"
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
else
|
|
||||||
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
|
||||||
|
|||||||
@ -68,10 +68,10 @@ function update_script() {
|
|||||||
msg_ok "Started Crafty-Controller"
|
msg_ok "Started Crafty-Controller"
|
||||||
|
|
||||||
msg_ok "Updated Successfully"
|
msg_ok "Updated Successfully"
|
||||||
exit
|
|
||||||
else
|
else
|
||||||
msg_ok "No update required. Crafty-Controller is already at v${RELEASE}."
|
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||||
fi
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@ -33,52 +33,42 @@ 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
|
|
||||||
if ! command -v npm >/dev/null 2>&1; then
|
|
||||||
echo "Installing NPM..."
|
|
||||||
$STD apt-get install -y npm
|
|
||||||
echo "Installed NPM..."
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
LATEST=$(curl -fsSL https://api.github.com/repos/jhuckaby/Cronicle/releases/latest | grep '"tag_name":' | cut -d'"' -f4)
|
|
||||||
IP=$(hostname -I | awk '{print $1}')
|
|
||||||
msg_info "Installing Dependencies"
|
|
||||||
$STD apt-get install -y \
|
|
||||||
git \
|
|
||||||
build-essential \
|
|
||||||
ca-certificates \
|
|
||||||
gnupg2
|
|
||||||
msg_ok "Installed Dependencies"
|
|
||||||
|
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
|
if check_for_gh_release "cronicle" "jhuckaby/Cronicle"; then
|
||||||
|
IP=$(hostname -I | awk '{print $1}')
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
$STD apt-get install -y \
|
||||||
|
git \
|
||||||
|
build-essential \
|
||||||
|
ca-certificates \
|
||||||
|
gnupg2
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Configuring Cronicle Worker"
|
NODE_VERSION="22" setup_nodejs
|
||||||
cd /opt/cronicle
|
fetch_and_deploy_gh_release "cronicle" "jhuckaby/Cronicle"
|
||||||
$STD npm install
|
|
||||||
$STD node bin/build.js dist
|
msg_info "Configuring Cronicle Worker"
|
||||||
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
|
cd /opt/cronicle
|
||||||
$STD /opt/cronicle/bin/control.sh start
|
$STD npm install
|
||||||
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
|
$STD node bin/build.js dist
|
||||||
chmod 775 /etc/init.d/cronicled
|
sed -i "s/localhost:3012/${IP}:3012/g" /opt/cronicle/conf/config.json
|
||||||
$STD update-rc.d cronicled defaults
|
$STD /opt/cronicle/bin/control.sh start
|
||||||
msg_ok "Installed Cronicle Worker"
|
$STD cp /opt/cronicle/bin/cronicled.init /etc/init.d/cronicled
|
||||||
|
chmod 775 /etc/init.d/cronicled
|
||||||
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
|
$STD update-rc.d cronicled defaults
|
||||||
exit
|
msg_ok "Installed Cronicle Worker"
|
||||||
|
|
||||||
|
echo -e "\n Add Masters secret key to /opt/cronicle/conf/config.json \n"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@ -90,3 +90,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} If you installed Portainer, access it at the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:9443${CL}"
|
||||||
|
|||||||
@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,31 +20,27 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -f /usr/bin/duplicati-server ]]; then
|
if [[ ! -f /usr/bin/duplicati-server ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/duplicati/duplicati/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
|
|
||||||
if [[ "${RELEASE}" != "$(cat ~/.duplicati)" ]] || [[ ! -f ~/.duplicati ]]; then
|
|
||||||
msg_info "Stopping $APP"
|
|
||||||
systemctl stop duplicati
|
|
||||||
msg_ok "Stopped $APP"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "linux-x64-gui.deb"
|
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
|
||||||
systemctl start duplicati
|
|
||||||
msg_ok "Started $APP"
|
|
||||||
|
|
||||||
msg_ok "Update Successful"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
|
||||||
fi
|
|
||||||
exit
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "duplicati" "duplicati/duplicati"; then
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop duplicati
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-x64-gui.deb"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start duplicati
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@ -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,9 @@ 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"
|
||||||
exit
|
|
||||||
fi
|
fi
|
||||||
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
start
|
start
|
||||||
|
|||||||
@ -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,11 +41,11 @@ 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
|
||||||
|
|
||||||
chown -R www-data:www-data /opt/firefly
|
chown -R www-data:www-data /opt/firefly
|
||||||
find /opt/firefly/storage -type d -exec chmod 775 {} \;
|
find /opt/firefly/storage -type d -exec chmod 775 {} \;
|
||||||
find /opt/firefly/storage -type f -exec chmod 664 {} \;
|
find /opt/firefly/storage -type f -exec chmod 664 {} \;
|
||||||
@ -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.5"; 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
|
||||||
}
|
}
|
||||||
|
|||||||
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
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,25 +32,54 @@ 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
|
||||||
whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \
|
whiptail --backtitle "Gitea Mirror Update" --title "Proceeding with Update" --msgbox \
|
||||||
"Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
|
"Proceeding with version $APP_VERSION update.\n\nAll configuration will be cleared as warned." 8 50
|
||||||
rm -rf /opt/gitea-mirror
|
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 [[ "${RELEASE}" != "$(cat ~/.${APP} 2>/dev/null || cat /opt/${APP}_version.txt 2>/dev/null)" ]]; then
|
|
||||||
|
|
||||||
|
if [[ ! -f /opt/gitea-mirror.env ]]; then
|
||||||
|
msg_info "Detected old Enviroment, updating files"
|
||||||
|
APP_SECRET=$(openssl rand -base64 32)
|
||||||
|
HOST_IP=$(hostname -I | awk '{print $1}')
|
||||||
|
cat <<EOF >/opt/gitea-mirror.env
|
||||||
|
# See here for config options: https://github.com/RayLabsHQ/gitea-mirror/blob/main/docs/ENVIRONMENT_VARIABLES.md
|
||||||
|
NODE_ENV=production
|
||||||
|
HOST=0.0.0.0
|
||||||
|
PORT=4321
|
||||||
|
DATABASE_URL=sqlite://data/gitea-mirror.db
|
||||||
|
BETTER_AUTH_URL=http://${HOST_IP}:4321
|
||||||
|
BETTER_AUTH_SECRET=${APP_SECRET}
|
||||||
|
npm_package_version=${APP_VERSION}
|
||||||
|
EOF
|
||||||
|
rm /etc/systemd/system/gitea-mirror.service
|
||||||
|
cat <<EOF >/etc/systemd/system/gitea-mirror.service
|
||||||
|
[Unit]
|
||||||
|
Description=Gitea Mirror
|
||||||
|
After=network.target
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
WorkingDirectory=/opt/gitea-mirror
|
||||||
|
ExecStart=/usr/local/bin/bun dist/server/entry.mjs
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=10
|
||||||
|
EnvironmentFile=/opt/gitea-mirror.env
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl daemon-reload
|
||||||
|
msg_ok "Old Enviroment fixed"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror"; then
|
||||||
msg_info "Stopping Services"
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
24
ct/gokapi.sh
24
ct/gokapi.sh
@ -20,19 +20,14 @@ color
|
|||||||
catch_errors
|
catch_errors
|
||||||
|
|
||||||
function update_script() {
|
function update_script() {
|
||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/gokapi ]]; then
|
if [[ ! -d /opt/gokapi ]]; then
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|||||||
78
ct/gomft.sh
78
ct/gomft.sh
@ -28,91 +28,17 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
if ! dpkg -l | grep -q "^ii.*build-essential"; then
|
if check_for_gh_release "gomft" "StarFleetCPTN/GoMFT"; then
|
||||||
$STD apt-get install -y build-essential
|
|
||||||
fi
|
|
||||||
if [[ ! -f "/usr/bin/node" ]]; then
|
|
||||||
mkdir -p /etc/apt/keyrings
|
|
||||||
curl -fsSL "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
|
|
||||||
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
|
||||||
$STD apt-get update
|
|
||||||
$STD apt-get install -y nodejs
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL "https://api.github.com/repos/StarFleetCPTN/GoMFT/releases/latest" | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then
|
|
||||||
msg_info "Stopping $APP"
|
msg_info "Stopping $APP"
|
||||||
systemctl stop gomft
|
systemctl stop gomft
|
||||||
msg_ok "Stopped $APP"
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
msg_info "Updating $APP to ${RELEASE}"
|
fetch_and_deploy_gh_release "gomft" "StarFleetCPTN/GoMFT" "singlefile" "latest" "/opt/gomft" "gomft*linux-amd64"
|
||||||
if ! command -v git >/dev/null 2>&1; then
|
|
||||||
$STD apt-get install -y git
|
|
||||||
fi
|
|
||||||
rm -f /opt/gomft/gomft
|
|
||||||
temp_file=$(mktemp)
|
|
||||||
curl -fsSL "https://github.com/StarFleetCPTN/GoMFT/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file"
|
|
||||||
tar -xzf "$temp_file"
|
|
||||||
cp -rf "GoMFT-${RELEASE}"/* /opt/gomft/
|
|
||||||
cd /opt/gomft
|
|
||||||
$STD npm install
|
|
||||||
$STD npm run build
|
|
||||||
TEMPL_VERSION="$(awk '/github.com\/a-h\/templ/{print $2}' go.mod)"
|
|
||||||
$STD go install github.com/a-h/templ/cmd/templ@${TEMPL_VERSION}
|
|
||||||
# dirty hack to fix templ
|
|
||||||
cat <<'EOF' >/opt/gomft/components/file_metadata/search/file_metadata_search_content.templ
|
|
||||||
package search
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"github.com/starfleetcptn/gomft/components/file_metadata"
|
|
||||||
"github.com/starfleetcptn/gomft/components/file_metadata/list"
|
|
||||||
)
|
|
||||||
|
|
||||||
templ FileMetadataSearchContent(ctx context.Context, data file_metadata.FileMetadataSearchData) {
|
|
||||||
<!-- Search Results -->
|
|
||||||
<div id="search-results">
|
|
||||||
if len(data.Files) > 0 {
|
|
||||||
@list.FileMetadataListPartial(ctx, file_metadata.FileMetadataListData{
|
|
||||||
Files: data.Files,
|
|
||||||
Page: data.Page,
|
|
||||||
Limit: data.Limit,
|
|
||||||
TotalCount: data.TotalCount,
|
|
||||||
TotalPages: data.TotalPages,
|
|
||||||
Filter: data.Filter,
|
|
||||||
SortBy: data.SortBy,
|
|
||||||
SortDir: data.SortDir,
|
|
||||||
}, "/files/search/partial", "#search-results-container")
|
|
||||||
} else {
|
|
||||||
<div class="p-6 text-center text-gray-500 dark:text-gray-400">
|
|
||||||
<svg class="mx-auto mb-4 w-12 h-12 text-gray-400" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
|
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" />
|
|
||||||
</svg>
|
|
||||||
<p>No files found matching your search criteria.</p>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
$STD "$HOME"/go/bin/templ generate
|
|
||||||
export CGO_ENABLED=1
|
|
||||||
export GOOS=linux
|
|
||||||
$STD go build -o gomft
|
|
||||||
chmod +x /opt/gomft/gomft
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Updated $APP to ${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Cleaning Up"
|
|
||||||
rm -f "$temp_file"
|
|
||||||
rm -rf "$HOME/GoMFT-v.${RELEASE}/"
|
|
||||||
msg_ok "Cleanup Complete"
|
|
||||||
|
|
||||||
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/alpine-redlib
Normal file
6
ct/headers/alpine-redlib
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ ____ _____ __
|
||||||
|
/ | / /___ (_)___ ___ / __ \___ ____/ / (_) /_
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ /_/ / _ \/ __ / / / __ \
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ _, _/ __/ /_/ / / / /_/ /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\___/\__,_/_/_/_.___/
|
||||||
|
/_/
|
||||||
6
ct/headers/alpine-rustdeskserver
Normal file
6
ct/headers/alpine-rustdeskserver
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
___ __ _ ____ __ ____ __ _____
|
||||||
|
/ | / /___ (_)___ ___ / __ \__ _______/ /_/ __ \___ _____/ /__/ ___/___ ______ _____ _____
|
||||||
|
/ /| | / / __ \/ / __ \/ _ \______/ /_/ / / / / ___/ __/ / / / _ \/ ___/ //_/\__ \/ _ \/ ___/ | / / _ \/ ___/
|
||||||
|
/ ___ |/ / /_/ / / / / / __/_____/ _, _/ /_/ (__ ) /_/ /_/ / __(__ ) ,< ___/ / __/ / | |/ / __/ /
|
||||||
|
/_/ |_/_/ .___/_/_/ /_/\___/ /_/ |_|\__,_/____/\__/_____/\___/____/_/|_|/____/\___/_/ |___/\___/_/
|
||||||
|
/_/
|
||||||
6
ct/headers/autocaliweb
Normal file
6
ct/headers/autocaliweb
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
___ __ ___ __
|
||||||
|
/ | __ __/ /_____ _________ _/ (_) _____ / /_
|
||||||
|
/ /| |/ / / / __/ __ \/ ___/ __ `/ / / | /| / / _ \/ __ \
|
||||||
|
/ ___ / /_/ / /_/ /_/ / /__/ /_/ / / /| |/ |/ / __/ /_/ /
|
||||||
|
/_/ |_\__,_/\__/\____/\___/\__,_/_/_/ |__/|__/\___/_.___/
|
||||||
|
|
||||||
6
ct/headers/globaleaks
Normal file
6
ct/headers/globaleaks
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
________ __ __ __
|
||||||
|
/ ____/ /___ / /_ ____ _/ / ___ ____ _/ /_______
|
||||||
|
/ / __/ / __ \/ __ \/ __ `/ / / _ \/ __ `/ //_/ ___/
|
||||||
|
/ /_/ / / /_/ / /_/ / /_/ / /___/ __/ /_/ / ,< (__ )
|
||||||
|
\____/_/\____/_.___/\__,_/_____/\___/\__,_/_/|_/____/
|
||||||
|
|
||||||
6
ct/headers/healthchecks
Normal file
6
ct/headers/healthchecks
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
__ ____ __ __ __
|
||||||
|
/ /_ ___ ____ _/ / /_/ /_ _____/ /_ ___ _____/ /_______
|
||||||
|
/ __ \/ _ \/ __ `/ / __/ __ \/ ___/ __ \/ _ \/ ___/ //_/ ___/
|
||||||
|
/ / / / __/ /_/ / / /_/ / / / /__/ / / / __/ /__/ ,< (__ )
|
||||||
|
/_/ /_/\___/\__,_/_/\__/_/ /_/\___/_/ /_/\___/\___/_/|_/____/
|
||||||
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
__ __ __
|
|
||||||
/ / / /___ ____ __________/ /__ _____
|
|
||||||
/ /_/ / __ \/ __ `/ ___/ __ / _ \/ ___/
|
|
||||||
/ __ / /_/ / /_/ / / / /_/ / __/ /
|
|
||||||
/_/ /_/\____/\__,_/_/ \__,_/\___/_/
|
|
||||||
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
__ __ ___ _ __ __ ______
|
|
||||||
/ / / /___ ____ ___ ___ / | __________(_)____/ /_____ _____ / /_ / ____/___ ________
|
|
||||||
/ /_/ / __ \/ __ `__ \/ _ \ / /| | / ___/ ___/ / ___/ __/ __ `/ __ \/ __/_____/ / / __ \/ ___/ _ \
|
|
||||||
/ __ / /_/ / / / / / / __/ / ___ |(__ |__ ) (__ ) /_/ /_/ / / / / /_/_____/ /___/ /_/ / / / __/
|
|
||||||
/_/ /_/\____/_/ /_/ /_/\___/ /_/ |_/____/____/_/____/\__/\__,_/_/ /_/\__/ \____/\____/_/ \___/
|
|
||||||
|
|
||||||
6
ct/headers/hortusfox
Normal file
6
ct/headers/hortusfox
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
__ __ __ ______
|
||||||
|
/ / / /___ _____/ /___ _______/ ____/___ _ __
|
||||||
|
/ /_/ / __ \/ ___/ __/ / / / ___/ /_ / __ \| |/_/
|
||||||
|
/ __ / /_/ / / / /_/ /_/ (__ ) __/ / /_/ /> <
|
||||||
|
/_/ /_/\____/_/ \__/\__,_/____/_/ \____/_/|_|
|
||||||
|
|
||||||
6
ct/headers/leantime
Normal file
6
ct/headers/leantime
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
__ __ _
|
||||||
|
/ / ___ ____ _____ / /_(_)___ ___ ___
|
||||||
|
/ / / _ \/ __ `/ __ \/ __/ / __ `__ \/ _ \
|
||||||
|
/ /___/ __/ /_/ / / / / /_/ / / / / / / __/
|
||||||
|
/_____/\___/\__,_/_/ /_/\__/_/_/ /_/ /_/\___/
|
||||||
|
|
||||||
6
ct/headers/litellm
Normal file
6
ct/headers/litellm
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
__ _ __ __ __ __ ___
|
||||||
|
/ / (_) /____ / / / / / |/ /
|
||||||
|
/ / / / __/ _ \/ / / / / /|_/ /
|
||||||
|
/ /___/ / /_/ __/ /___/ /___/ / / /
|
||||||
|
/_____/_/\__/\___/_____/_____/_/ /_/
|
||||||
|
|
||||||
6
ct/headers/mediamanager
Normal file
6
ct/headers/mediamanager
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
__ ___ ___ __ ___
|
||||||
|
/ |/ /__ ____/ (_)___ _/ |/ /___ _____ ____ _____ ____ _____
|
||||||
|
/ /|_/ / _ \/ __ / / __ `/ /|_/ / __ `/ __ \/ __ `/ __ `/ _ \/ ___/
|
||||||
|
/ / / / __/ /_/ / / /_/ / / / / /_/ / / / / /_/ / /_/ / __/ /
|
||||||
|
/_/ /_/\___/\__,_/_/\__,_/_/ /_/\__,_/_/ /_/\__,_/\__, /\___/_/
|
||||||
|
/____/
|
||||||
6
ct/headers/palmr
Normal file
6
ct/headers/palmr
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
____ __
|
||||||
|
/ __ \____ _/ /___ ___ _____
|
||||||
|
/ /_/ / __ `/ / __ `__ \/ ___/
|
||||||
|
/ ____/ /_/ / / / / / / / /
|
||||||
|
/_/ \__,_/_/_/ /_/ /_/_/
|
||||||
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
____ _ _
|
|
||||||
/ __ \(_)___ ____ __ __(_)___
|
|
||||||
/ /_/ / / __ \/ __ `/ | / / / __ \
|
|
||||||
/ ____/ / / / / /_/ /| |/ / / / / /
|
|
||||||
/_/ /_/_/ /_/\__, / |___/_/_/ /_/
|
|
||||||
/____/
|
|
||||||
6
ct/headers/resiliosync
Normal file
6
ct/headers/resiliosync
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
____ _ ___ _____
|
||||||
|
/ __ \___ _____(_) (_)___ / ___/__ ______ _____
|
||||||
|
/ /_/ / _ \/ ___/ / / / __ \ \__ \/ / / / __ \/ ___/
|
||||||
|
/ _, _/ __(__ ) / / / /_/ / ___/ / /_/ / / / / /__
|
||||||
|
/_/ |_|\___/____/_/_/_/\____/ /____/\__, /_/ /_/\___/
|
||||||
|
/____/
|
||||||
6
ct/headers/scraparr
Normal file
6
ct/headers/scraparr
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
_____
|
||||||
|
/ ___/______________ _____ ____ ___________
|
||||||
|
\__ \/ ___/ ___/ __ `/ __ \/ __ `/ ___/ ___/
|
||||||
|
___/ / /__/ / / /_/ / /_/ / /_/ / / / /
|
||||||
|
/____/\___/_/ \__,_/ .___/\__,_/_/ /_/
|
||||||
|
/_/
|
||||||
6
ct/headers/signoz
Normal file
6
ct/headers/signoz
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
_____ _ _ __
|
||||||
|
/ ___/(_)___ _/ | / /___ ____
|
||||||
|
\__ \/ / __ `/ |/ / __ \/_ /
|
||||||
|
___/ / / /_/ / /| / /_/ / / /_
|
||||||
|
/____/_/\__, /_/ |_/\____/ /___/
|
||||||
|
/____/
|
||||||
6
ct/headers/stylus
Normal file
6
ct/headers/stylus
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
_____ __ __
|
||||||
|
/ ___// /___ __/ /_ _______
|
||||||
|
\__ \/ __/ / / / / / / / ___/
|
||||||
|
___/ / /_/ /_/ / / /_/ (__ )
|
||||||
|
/____/\__/\__, /_/\__,_/____/
|
||||||
|
/____/
|
||||||
6
ct/headers/swizzin
Normal file
6
ct/headers/swizzin
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
_____ _ _
|
||||||
|
/ ___/ __(_)_______ (_)___
|
||||||
|
\__ \ | /| / / /_ /_ / / / __ \
|
||||||
|
___/ / |/ |/ / / / /_/ /_/ / / / /
|
||||||
|
/____/|__/|__/_/ /___/___/_/_/ /_/
|
||||||
|
|
||||||
6
ct/headers/telegraf
Normal file
6
ct/headers/telegraf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
__ __ ____
|
||||||
|
/ /____ / /__ ____ __________ _/ __/
|
||||||
|
/ __/ _ \/ / _ \/ __ `/ ___/ __ `/ /_
|
||||||
|
/ /_/ __/ / __/ /_/ / / / /_/ / __/
|
||||||
|
\__/\___/_/\___/\__, /_/ \__,_/_/
|
||||||
|
/____/
|
||||||
6
ct/headers/tracktor
Normal file
6
ct/headers/tracktor
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
__ __ __
|
||||||
|
/ /__________ ______/ /__/ /_____ _____
|
||||||
|
/ __/ ___/ __ `/ ___/ //_/ __/ __ \/ ___/
|
||||||
|
/ /_/ / / /_/ / /__/ ,< / /_/ /_/ / /
|
||||||
|
\__/_/ \__,_/\___/_/|_|\__/\____/_/
|
||||||
|
|
||||||
6
ct/headers/tunarr
Normal file
6
ct/headers/tunarr
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
______
|
||||||
|
/_ __/_ ______ ____ ___________
|
||||||
|
/ / / / / / __ \/ __ `/ ___/ ___/
|
||||||
|
/ / / /_/ / / / / /_/ / / / /
|
||||||
|
/_/ \__,_/_/ /_/\__,_/_/ /_/
|
||||||
|
|
||||||
6
ct/headers/twingate-connector
Normal file
6
ct/headers/twingate-connector
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
______ _ __ ______ __
|
||||||
|
/_ __/ __(_)___ ____ _____ _/ /____ / ____/___ ____ ____ ___ _____/ /_____ _____
|
||||||
|
/ / | | /| / / / __ \/ __ `/ __ `/ __/ _ \______/ / / __ \/ __ \/ __ \/ _ \/ ___/ __/ __ \/ ___/
|
||||||
|
/ / | |/ |/ / / / / / /_/ / /_/ / /_/ __/_____/ /___/ /_/ / / / / / / / __/ /__/ /_/ /_/ / /
|
||||||
|
/_/ |__/|__/_/_/ /_/\__, /\__,_/\__/\___/ \____/\____/_/ /_/_/ /_/\___/\___/\__/\____/_/
|
||||||
|
/____/
|
||||||
6
ct/headers/uhf
Normal file
6
ct/headers/uhf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
__ ____ ________
|
||||||
|
/ / / / / / / ____/
|
||||||
|
/ / / / /_/ / /_
|
||||||
|
/ /_/ / __ / __/
|
||||||
|
\____/_/ /_/_/
|
||||||
|
|
||||||
@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
65
ct/healthchecks.sh
Normal file
65
ct/healthchecks.sh
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://healthchecks.io/
|
||||||
|
|
||||||
|
APP="healthchecks"
|
||||||
|
var_tags="${var_tags:-monitoring}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-5}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/healthchecks ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "healthchecks" "healthchecks/healthchecks"; then
|
||||||
|
msg_info "Stopping $APP"
|
||||||
|
systemctl stop healthchecks
|
||||||
|
msg_ok "Stopped $APP"
|
||||||
|
|
||||||
|
setup_uv
|
||||||
|
fetch_and_deploy_gh_release "healthchecks" "healthchecks/healthchecks"
|
||||||
|
|
||||||
|
msg_info "Updating $APP"
|
||||||
|
cd /opt/healthchecks
|
||||||
|
mkdir -p /opt/healthchecks/static-collected/
|
||||||
|
$STD uv pip install wheel gunicorn -r requirements.txt --system
|
||||||
|
$STD uv run -- python manage.py makemigrations
|
||||||
|
$STD uv run -- python manage.py migrate --noinput
|
||||||
|
$STD uv run -- python manage.py collectstatic --noinput
|
||||||
|
$STD uv run -- python manage.py compress
|
||||||
|
msg_ok "Updated $APP"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start healthchecks
|
||||||
|
systemctl restart caddy
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
msg_ok "Update Successful"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}https://${IP}${CL}"
|
||||||
@ -1,85 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 tteck
|
|
||||||
# Author: MickLesk (Canbiz) & vhsdream
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://hoarder.app/
|
|
||||||
|
|
||||||
APP="Hoarder"
|
|
||||||
var_tags="${var_tags:-bookmark}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-4096}"
|
|
||||||
var_disk="${var_disk:-10}"
|
|
||||||
var_os="${var_os:-debian}"
|
|
||||||
var_version="${var_version:-12}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -d /opt/hoarder ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/hoarder-app/hoarder/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
|
||||||
PREV_RELEASE=$(cat /opt/${APP}_version.txt)
|
|
||||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "${PREV_RELEASE}" ]]; then
|
|
||||||
msg_info "Stopping Services"
|
|
||||||
systemctl stop hoarder-web hoarder-workers hoarder-browser
|
|
||||||
msg_ok "Stopped Services"
|
|
||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
|
||||||
if [[ $(corepack -v) < "0.31.0" ]]; then
|
|
||||||
$STD npm install -g corepack@0.31.0
|
|
||||||
fi
|
|
||||||
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
|
|
||||||
$STD apt-get install -y graphicsmagick ghostscript
|
|
||||||
fi
|
|
||||||
cd /opt
|
|
||||||
if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
|
|
||||||
mkdir -p /etc/hoarder
|
|
||||||
mv /opt/hoarder/.env /etc/hoarder/hoarder.env
|
|
||||||
fi
|
|
||||||
rm -rf /opt/hoarder
|
|
||||||
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
|
|
||||||
$STD unzip v"${RELEASE}".zip
|
|
||||||
mv karakeep-"${RELEASE}" /opt/hoarder
|
|
||||||
cd /opt/hoarder/apps/web
|
|
||||||
$STD pnpm install --frozen-lockfile
|
|
||||||
$STD pnpm exec next build --experimental-build-mode compile
|
|
||||||
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
|
|
||||||
cd /opt/hoarder/apps/workers
|
|
||||||
$STD pnpm install --frozen-lockfile
|
|
||||||
export DATA_DIR=/opt/hoarder_data
|
|
||||||
cd /opt/hoarder/packages/db
|
|
||||||
$STD pnpm migrate
|
|
||||||
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
|
|
||||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
|
||||||
|
|
||||||
msg_info "Starting Services"
|
|
||||||
systemctl start hoarder-browser hoarder-workers hoarder-web
|
|
||||||
msg_ok "Started Services"
|
|
||||||
msg_info "Cleaning up"
|
|
||||||
rm -R /opt/v"${RELEASE}".zip
|
|
||||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
|
||||||
msg_ok "Cleaned"
|
|
||||||
msg_ok "Updated Successfully"
|
|
||||||
else
|
|
||||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
|
||||||
fi
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"
|
|
||||||
@ -81,9 +81,8 @@ EOF
|
|||||||
msg_ok "Updated Services"
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,165 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
|
||||||
# Copyright (c) 2021-2025 community-scripts ORG
|
|
||||||
# Author: tteck (tteckster) | Co-Author: MickLesk (CanbiZ)
|
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
# Source: https://www.home-assistant.io/
|
|
||||||
|
|
||||||
APP="Home Assistant-Core"
|
|
||||||
var_tags="${var_tags:-automation;smarthome}"
|
|
||||||
var_cpu="${var_cpu:-2}"
|
|
||||||
var_ram="${var_ram:-2048}"
|
|
||||||
var_disk="${var_disk:-10}"
|
|
||||||
var_os="${var_os:-ubuntu}"
|
|
||||||
var_version="${var_version:-24.10}"
|
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
|
||||||
|
|
||||||
header_info "$APP"
|
|
||||||
variables
|
|
||||||
color
|
|
||||||
catch_errors
|
|
||||||
|
|
||||||
function update_script() {
|
|
||||||
header_info
|
|
||||||
if ! lsb_release -d | grep -q "Ubuntu 24.10"; then
|
|
||||||
msg_error "Wrong OS detected. This script only supports Ubuntu 24.10."
|
|
||||||
msg_error "Read Guide: https://github.com/community-scripts/ProxmoxVE/discussions/1549"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
check_container_storage
|
|
||||||
check_container_resources
|
|
||||||
if [[ ! -d /srv/homeassistant ]]; then
|
|
||||||
msg_error "No ${APP} Installation Found!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
setup_uv
|
|
||||||
IP=$(hostname -I | awk '{print $1}')
|
|
||||||
UPD=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "UPDATE" --radiolist --cancel-button Exit-Script "Spacebar = Select" 11 58 4 \
|
|
||||||
"1" "Update Core" ON \
|
|
||||||
"2" "Install HACS" OFF \
|
|
||||||
"3" "Install FileBrowser" OFF \
|
|
||||||
3>&1 1>&2 2>&3)
|
|
||||||
|
|
||||||
if [ "$UPD" == "1" ]; then
|
|
||||||
if (whiptail --backtitle "Proxmox VE Helper Scripts" --defaultno --title "SELECT BRANCH" --yesno "Use Beta Branch?" 10 58); then
|
|
||||||
clear
|
|
||||||
header_info
|
|
||||||
echo -e "${GN}Updating to Beta Version${CL}"
|
|
||||||
BR="--pre"
|
|
||||||
else
|
|
||||||
clear
|
|
||||||
header_info
|
|
||||||
echo -e "${GN}Updating to Stable Version${CL}"
|
|
||||||
BR=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Stopping Home Assistant"
|
|
||||||
systemctl stop homeassistant
|
|
||||||
msg_ok "Stopped Home Assistant"
|
|
||||||
|
|
||||||
if [[ -d /srv/homeassistant/bin ]]; then
|
|
||||||
msg_info "Migrating to .venv-based structure"
|
|
||||||
$STD source /srv/homeassistant/bin/activate
|
|
||||||
PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")
|
|
||||||
$STD deactivate
|
|
||||||
mv /srv/homeassistant "/srv/homeassistant_backup_$PY_VER"
|
|
||||||
mkdir -p /srv/homeassistant
|
|
||||||
cd /srv/homeassistant
|
|
||||||
|
|
||||||
$STD uv python install 3.13
|
|
||||||
UV_PYTHON=$(uv python list | awk '/3\.13\.[0-9]+.*\/root\/.local/ {print $2; exit}')
|
|
||||||
if [[ -z "$UV_PYTHON" ]]; then
|
|
||||||
msg_error "No local Python 3.13 found via uv"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
$STD uv venv .venv --python "$UV_PYTHON"
|
|
||||||
$STD source .venv/bin/activate
|
|
||||||
$STD uv pip install homeassistant mysqlclient psycopg2-binary isal webrtcvad wheel
|
|
||||||
mkdir -p /root/.homeassistant
|
|
||||||
msg_ok "Migration complete"
|
|
||||||
else
|
|
||||||
source /srv/homeassistant/.venv/bin/activate
|
|
||||||
fi
|
|
||||||
|
|
||||||
msg_info "Updating Home Assistant"
|
|
||||||
$STD uv pip install $BR --upgrade homeassistant
|
|
||||||
msg_ok "Updated Home Assistant"
|
|
||||||
|
|
||||||
msg_info "Starting Home Assistant"
|
|
||||||
if [[ -f /etc/systemd/system/homeassistant.service ]] && grep -q "/srv/homeassistant/bin/python3" /etc/systemd/system/homeassistant.service; then
|
|
||||||
sed -i 's|ExecStart=/srv/homeassistant/bin/python3|ExecStart=/srv/homeassistant/.venv/bin/python3|' /etc/systemd/system/homeassistant.service
|
|
||||||
sed -i 's|PATH=/srv/homeassistant/bin|PATH=/srv/homeassistant/.venv/bin|' /etc/systemd/system/homeassistant.service
|
|
||||||
$STD systemctl daemon-reload
|
|
||||||
fi
|
|
||||||
|
|
||||||
systemctl start homeassistant
|
|
||||||
sleep 5
|
|
||||||
msg_ok "Started Home Assistant"
|
|
||||||
msg_ok "Update Successful"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$UPD" == "2" ]; then
|
|
||||||
msg_info "Installing Home Assistant Community Store (HACS)"
|
|
||||||
$STD apt update
|
|
||||||
cd /root/.homeassistant
|
|
||||||
$STD bash <(curl -fsSL https://get.hacs.xyz)
|
|
||||||
msg_ok "Installed Home Assistant Community Store (HACS)"
|
|
||||||
echo -e "\n Reboot Home Assistant and clear browser cache then Add HACS integration.\n"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$UPD" == "3" ]; then
|
|
||||||
set +Eeuo pipefail
|
|
||||||
read -r -p "${TAB3}Would you like to use No Authentication? <y/N> " prompt
|
|
||||||
msg_info "Installing FileBrowser"
|
|
||||||
RELEASE=$(curl -fsSL https://api.github.com/repos/filebrowser/filebrowser/releases/latest | grep -o '"tag_name": ".*"' | sed 's/"//g' | sed 's/tag_name: //g')
|
|
||||||
$STD curl -fsSL https://github.com/filebrowser/filebrowser/releases/download/$RELEASE/linux-amd64-filebrowser.tar.gz | tar -xzv -C /usr/local/bin
|
|
||||||
|
|
||||||
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
|
||||||
$STD filebrowser config init -a '0.0.0.0'
|
|
||||||
$STD filebrowser config set -a '0.0.0.0'
|
|
||||||
$STD filebrowser config set --auth.method=noauth
|
|
||||||
$STD filebrowser users add ID 1 --perm.admin
|
|
||||||
else
|
|
||||||
$STD filebrowser config init -a '0.0.0.0'
|
|
||||||
$STD filebrowser config set -a '0.0.0.0'
|
|
||||||
$STD filebrowser users add admin helper-scripts.com --perm.admin
|
|
||||||
fi
|
|
||||||
msg_ok "Installed FileBrowser"
|
|
||||||
|
|
||||||
msg_info "Creating Service"
|
|
||||||
cat <<EOF >/etc/systemd/system/filebrowser.service
|
|
||||||
[Unit]
|
|
||||||
Description=Filebrowser
|
|
||||||
After=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
User=root
|
|
||||||
WorkingDirectory=/root/
|
|
||||||
ExecStart=/usr/local/bin/filebrowser -r /root/.homeassistant
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
systemctl enable --now -q filebrowser.service
|
|
||||||
msg_ok "Created Service"
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "FileBrowser should be reachable by going to the following URL.
|
|
||||||
${BL}http://$IP:8080${CL} admin|helper-scripts.com\n"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
start
|
|
||||||
build_container
|
|
||||||
description
|
|
||||||
|
|
||||||
msg_ok "Completed Successfully!\n"
|
|
||||||
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
||||||
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
|
||||||
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8123${CL}"
|
|
||||||
@ -22,32 +22,34 @@ function update_script() {
|
|||||||
header_info
|
header_info
|
||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
if [[ ! -d /opt/homebox ]]; then
|
if [[ ! -f /etc/systemd/system/homebox.service ]]; then
|
||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
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
|
||||||
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"
|
||||||
|
|
||||||
|
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
|
||||||
|
[ -d /opt/.data ] && mv /opt/.data /opt/homebox/.data
|
||||||
|
|
||||||
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
|
||||||
}
|
}
|
||||||
|
|||||||
71
ct/hortusfox.sh
Normal file
71
ct/hortusfox.sh
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/danielbrendel/hortusfox-web
|
||||||
|
|
||||||
|
APP="HortusFox"
|
||||||
|
var_tags="${var_tags:-plants}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-5}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-12}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /opt/hortusfox ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "hortusfox" "danielbrendel/hortusfox-web"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop apache2
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Backing up current HortusFox installation"
|
||||||
|
cd /opt
|
||||||
|
mv /opt/hortusfox/ /opt/hortusfox-backup
|
||||||
|
msg_ok "Backed up current HortusFox installation"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web"
|
||||||
|
|
||||||
|
msg_info "Updating HortusFox"
|
||||||
|
cd /opt/hortusfox
|
||||||
|
mv /opt/hortusfox-backup/.env /opt/hortusfox/.env
|
||||||
|
$STD composer install --no-dev --optimize-autoloader
|
||||||
|
$STD php asatru migrate --no-interaction
|
||||||
|
$STD php asatru plants:attributes
|
||||||
|
$STD php asatru calendar:classes
|
||||||
|
chown -R www-data:www-data /opt/hortusfox
|
||||||
|
msg_ok "Updated HortusFox"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start apache2
|
||||||
|
msg_ok "Started Service"
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
rm -r /opt/hortusfox-backup
|
||||||
|
msg_ok "Cleaned"
|
||||||
|
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}${CL}"
|
||||||
@ -30,26 +30,24 @@ 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
|
systemctl stop huntarr
|
||||||
|
msg_ok "Stopped huntarr"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
|
||||||
|
|
||||||
|
msg_info "Configuring $APP"
|
||||||
|
cd /opt/huntarr
|
||||||
|
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
|
||||||
|
msg_ok "Configured $APP"
|
||||||
|
|
||||||
|
msg_info "Starting $APP"
|
||||||
|
systemctl start huntarr
|
||||||
|
msg_ok "Started $APP"
|
||||||
|
msg_ok "Updated $APP"
|
||||||
fi
|
fi
|
||||||
msg_info "Stopping huntarr service"
|
|
||||||
systemctl stop huntarr
|
|
||||||
msg_ok "Stopped huntarr service"
|
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "huntarr" "plexguide/Huntarr.io"
|
|
||||||
msg_info "Configuring $APP"
|
|
||||||
cd /opt/huntarr
|
|
||||||
$STD uv pip install -r requirements.txt --python /opt/huntarr/.venv/bin/python
|
|
||||||
msg_ok "Configured $APP"
|
|
||||||
|
|
||||||
msg_info "Starting $APP"
|
|
||||||
systemctl start huntarr
|
|
||||||
msg_ok "Started $APP"
|
|
||||||
|
|
||||||
msg_ok "Updated $APP to v${RELEASE}"
|
|
||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user