mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-03-02 17:05:55 +01:00
Compare commits
433 Commits
wealthfoli
...
fix/github
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e52111ca0 | ||
|
|
375dccacb1 | ||
|
|
1c463369c7 | ||
|
|
1a1e707db3 | ||
|
|
95a63e66a8 | ||
|
|
b09f2db2a9 | ||
|
|
340d999b2b | ||
|
|
8c9874c4aa | ||
|
|
e9b98c2ab0 | ||
|
|
dd46dd2d87 | ||
|
|
719761de6c | ||
|
|
765cd6d123 | ||
|
|
26915e3979 | ||
|
|
34343bc61c | ||
|
|
7484c58175 | ||
|
|
dd4a15fff1 | ||
|
|
6df91f54af | ||
|
|
8c0016c0a7 | ||
|
|
a94bf79869 | ||
|
|
191539b28b | ||
|
|
31f410c3e5 | ||
|
|
efdfe127a7 | ||
|
|
007ecc3c14 | ||
|
|
db95b776b7 | ||
|
|
1560a7fb97 | ||
|
|
8fc5b83b57 | ||
|
|
33fd68b97f | ||
|
|
7e37d23c5e | ||
|
|
cc034b57ff | ||
|
|
98792e9394 | ||
|
|
87b7918779 | ||
|
|
aa6e2b57fb | ||
|
|
b3eb937d55 | ||
|
|
af24e42919 | ||
|
|
dbdd891a99 | ||
|
|
1a066e88a9 | ||
|
|
0e364adb54 | ||
|
|
73fd1dd11b | ||
|
|
efcdd65c67 | ||
|
|
8b15af7499 | ||
|
|
13daffdeed | ||
|
|
fd82f5b496 | ||
|
|
83f03d617e | ||
|
|
4c5d5b2030 | ||
|
|
4e1ade4c28 | ||
|
|
e5073d1a4f | ||
|
|
01e956bdf8 | ||
|
|
0cc049edb6 | ||
|
|
ffa1a26b5e | ||
|
|
59ca9c26c9 | ||
|
|
56de2d1e39 | ||
|
|
72eb8b9575 | ||
|
|
65a67347bd | ||
|
|
25d54ff69a | ||
|
|
5c85c5098e | ||
|
|
7b8080438d | ||
|
|
2041371a04 | ||
|
|
b172301e0f | ||
|
|
4b6cb1601b | ||
|
|
d9f766cca6 | ||
|
|
a4973fa3b7 | ||
|
|
dcbb8490f1 | ||
|
|
3aa5431302 | ||
|
|
2e753578cd | ||
|
|
483ead9a8b | ||
|
|
53ee9403cd | ||
|
|
ed7e71f8c3 | ||
|
|
97d4b3ffc2 | ||
|
|
e226386c9d | ||
|
|
4e7e348322 | ||
|
|
0920d56218 | ||
|
|
071420c39a | ||
|
|
6a7bc481a4 | ||
|
|
11fb4743cc | ||
|
|
b2a710e673 | ||
|
|
49f1f16cba | ||
|
|
8005ddd74f | ||
|
|
2fead98966 | ||
|
|
09de4e9ca9 | ||
|
|
e1815642b2 | ||
|
|
75da6920d5 | ||
|
|
5f13d29c57 | ||
|
|
3c83654666 | ||
|
|
ae3a249854 | ||
|
|
a8a1cbcf3e | ||
|
|
60f9622998 | ||
|
|
552f3ab1d4 | ||
|
|
aa54640798 | ||
|
|
e1a8dfa8a2 | ||
|
|
691cec80ab | ||
|
|
c1ec478269 | ||
|
|
0e8f9c1237 | ||
|
|
620db1901c | ||
|
|
d5ce186aa3 | ||
|
|
68fbed63a5 | ||
|
|
973970ee1a | ||
|
|
b30e86aa2f | ||
|
|
a13caec262 | ||
|
|
df80c849f2 | ||
|
|
69de9fa57e | ||
|
|
695a6ce29b | ||
|
|
1976a1715c | ||
|
|
6ba22c82d7 | ||
|
|
1a14b19fa0 | ||
|
|
9e6b1f0e12 | ||
|
|
103982fcdb | ||
|
|
e315e0b17e | ||
|
|
2a537f0772 | ||
|
|
9d7da517f3 | ||
|
|
c1248cca14 | ||
|
|
a83cd9a80e | ||
|
|
203c1f2f48 | ||
|
|
287fe28741 | ||
|
|
d868b6d885 | ||
|
|
3995aa02da | ||
|
|
2b44ff289f | ||
|
|
47757d4d7d | ||
|
|
ee90bfb458 | ||
|
|
3e22aaa4bb | ||
|
|
618133ffca | ||
|
|
ded8a95567 | ||
|
|
85502e7c43 | ||
|
|
a8bec558f9 | ||
|
|
5c7934a71e | ||
|
|
adf6a03067 | ||
|
|
f4cf671694 | ||
|
|
2f364d2fca | ||
|
|
88008b8735 | ||
|
|
07eae3a06f | ||
|
|
171d830c22 | ||
|
|
4e8421c080 | ||
|
|
0c92f40d7a | ||
|
|
104971ada3 | ||
|
|
9db0ff6d81 | ||
|
|
b05f0fb059 | ||
|
|
345e7f741b | ||
|
|
452f3bdc6a | ||
|
|
d287b5f848 | ||
|
|
80a435fc9f | ||
|
|
2e32ea3c52 | ||
|
|
0753521739 | ||
|
|
e93949a3d2 | ||
|
|
c7dcedc23c | ||
|
|
2407a633e7 | ||
|
|
c0b8d25b66 | ||
|
|
b0112f83e9 | ||
|
|
f0ed8db337 | ||
|
|
0eaaac7dea | ||
|
|
802cbdd22b | ||
|
|
4f9490184b | ||
|
|
b5288692cd | ||
|
|
8cc2c7c025 | ||
|
|
85c5d54a12 | ||
|
|
1273778dc2 | ||
|
|
2a7fa5addb | ||
|
|
116888201c | ||
|
|
a3d9ea7530 | ||
|
|
903e63d758 | ||
|
|
901b90f956 | ||
|
|
8795cfb03f | ||
|
|
ae834cb39e | ||
|
|
7dbd1fdc36 | ||
|
|
300f8c80e8 | ||
|
|
d969969c2d | ||
|
|
f6558953bc | ||
|
|
b9f4e6c8bd | ||
|
|
54031b56d6 | ||
|
|
c68b9b6a40 | ||
|
|
f4c10ed75d | ||
|
|
097ee57598 | ||
|
|
120aefbdfe | ||
|
|
fc612ad369 | ||
|
|
c061434dd7 | ||
|
|
7b01ed0a90 | ||
|
|
de94a3b0c8 | ||
|
|
f25a150fa1 | ||
|
|
fd44c98235 | ||
|
|
c754d0c369 | ||
|
|
bc5af1a536 | ||
|
|
53f89258a4 | ||
|
|
97302789d9 | ||
|
|
f3b38e2ba2 | ||
|
|
eff0963023 | ||
|
|
d42f5b75cb | ||
|
|
27c02dda99 | ||
|
|
c3bac57055 | ||
|
|
9fd11feb1f | ||
|
|
32f3748a0e | ||
|
|
f4547f10b6 | ||
|
|
a3a6cbb6a6 | ||
|
|
1a6ca67375 | ||
|
|
401bd6b55b | ||
|
|
a40da3c452 | ||
|
|
5c48506629 | ||
|
|
45a8f744f1 | ||
|
|
54c66c5af4 | ||
|
|
0fab65f0cf | ||
|
|
31482e7489 | ||
|
|
d97f9a0bce | ||
|
|
9b2275c980 | ||
|
|
b6a4e6a2a6 | ||
|
|
96c056ea4e | ||
|
|
491081ffbf | ||
|
|
1123fdca14 | ||
|
|
a3a383361d | ||
|
|
6cc8877852 | ||
|
|
845b89f975 | ||
|
|
be26dc33dd | ||
|
|
b439960222 | ||
|
|
b4a5d28957 | ||
|
|
eaa69d58be | ||
|
|
3ffff334a0 | ||
|
|
38f04f4dcc | ||
|
|
fdbcee3a93 | ||
|
|
ce11ba8f27 | ||
|
|
43a0a078f5 | ||
|
|
646dabf0f0 | ||
|
|
2582c1f63b | ||
|
|
3ce3c6f613 | ||
|
|
97652792be | ||
|
|
f07f2cb04e | ||
|
|
5f73f9d5e6 | ||
|
|
0183ae0fff | ||
|
|
32d1937a74 | ||
|
|
0a7bd20b06 | ||
|
|
c9ecb1ccca | ||
|
|
d274a269b5 | ||
|
|
cbee9d64b5 | ||
|
|
ffcda217e3 | ||
|
|
438d5d6b94 | ||
|
|
104366bc64 | ||
|
|
9dab79f8ca | ||
|
|
2dddeaf966 | ||
|
|
fae06a3a58 | ||
|
|
137272c354 | ||
|
|
52a9e23401 | ||
|
|
c2333de180 | ||
|
|
ad8974894b | ||
|
|
38af4be5ba | ||
|
|
80ae1f34fa | ||
|
|
06bc6e20d5 | ||
|
|
4418e72856 | ||
|
|
896714e06f | ||
|
|
96389a02cb | ||
|
|
a4e6286260 | ||
|
|
a6617cc6a1 | ||
|
|
f1377e6cb0 | ||
|
|
56cff01240 | ||
|
|
26ba17c8c3 | ||
|
|
2bd4b063d9 | ||
|
|
40bd7dc366 | ||
|
|
a81ebcb16c | ||
|
|
cebdbcc35d | ||
|
|
42475ed4f6 | ||
|
|
11eba0093f | ||
|
|
f6e535c7b7 | ||
|
|
58329f99ea | ||
|
|
558220fb0e | ||
|
|
61aee12a82 | ||
|
|
215c441129 | ||
|
|
32afe0c2e4 | ||
|
|
73ee5f8f19 | ||
|
|
34db7c652f | ||
|
|
c5c6e660ba | ||
|
|
ae8dd5ba36 | ||
|
|
c975b25ad5 | ||
|
|
4e3ee020e4 | ||
|
|
90ce773247 | ||
|
|
704f8d7e10 | ||
|
|
d7fbbbde0f | ||
|
|
2edd2ffaf8 | ||
|
|
cba1a0bb6b | ||
|
|
97bc69452d | ||
|
|
4257954cfa | ||
|
|
39354352ff | ||
|
|
652920ee49 | ||
|
|
057bdefcc0 | ||
|
|
74b2a29d37 | ||
|
|
607e868328 | ||
|
|
9839bfb5a9 | ||
|
|
983e0f39ca | ||
|
|
8afbf73be0 | ||
|
|
1ca59363ea | ||
|
|
f5180606b3 | ||
|
|
de4857cf53 | ||
|
|
d63c0362bb | ||
|
|
b647868cb5 | ||
|
|
2bae310cc3 | ||
|
|
98b6c59986 | ||
|
|
f4e7edd51d | ||
|
|
142a7ff66d | ||
|
|
f374d2431e | ||
|
|
3c189f66ee | ||
|
|
4d125e29fe | ||
|
|
88c898a946 | ||
|
|
d529150360 | ||
|
|
a4467e9b04 | ||
|
|
ba8c929ac3 | ||
|
|
a8977a25d4 | ||
|
|
81ec696ac5 | ||
|
|
39afa87703 | ||
|
|
6c5f2aa9c1 | ||
|
|
2d3c346650 | ||
|
|
46886ed706 | ||
|
|
b3baf3c307 | ||
|
|
26904fad1a | ||
|
|
54140e7d6e | ||
|
|
00b543c5b6 | ||
|
|
fe0fc4231a | ||
|
|
240f1f391f | ||
|
|
da915b87f6 | ||
|
|
b46dddbd7d | ||
|
|
b3e3ed5fb3 | ||
|
|
7b767ff58b | ||
|
|
79baf4360e | ||
|
|
773f3f67b8 | ||
|
|
9a95d81f17 | ||
|
|
ed9a6d9d4b | ||
|
|
c6005af29d | ||
|
|
911f533e6a | ||
|
|
cecadf5681 | ||
|
|
f762155870 | ||
|
|
867d02d969 | ||
|
|
1a9bbdd6e7 | ||
|
|
3e0db150bd | ||
|
|
6b3653627c | ||
|
|
733ad75dc1 | ||
|
|
60aaaab3e7 | ||
|
|
1f735cb31f | ||
|
|
adcbe8dae2 | ||
|
|
bba520dbbf | ||
|
|
b43963d352 | ||
|
|
0957a23366 | ||
|
|
9f3588dd8d | ||
|
|
f23414a1a8 | ||
|
|
2a8bb76dcf | ||
|
|
bf85ef2a8b | ||
|
|
cc89cdbab1 | ||
|
|
d6f3f03f8a | ||
|
|
55e35d7f11 | ||
|
|
3b9f8d4a93 | ||
|
|
6c5377adec | ||
|
|
eeb349346b | ||
|
|
d271c16799 | ||
|
|
4774c54861 | ||
|
|
4bf63bae35 | ||
|
|
f2b7c9638d | ||
|
|
551f89e46f | ||
|
|
4f571a1eb6 | ||
|
|
3156e8e363 | ||
|
|
60ebdc97a5 | ||
|
|
20ec369338 | ||
|
|
4907a906c3 | ||
|
|
27e3a4301e | ||
|
|
43fb75f2b4 | ||
|
|
899d0e4baa | ||
|
|
85584b105d | ||
|
|
3fe6f50414 | ||
|
|
724a066aed | ||
|
|
cd6e8ecbbe | ||
|
|
8083c0c0e1 | ||
|
|
29836f35ed | ||
|
|
17d3d4297c | ||
|
|
2b921736e6 | ||
|
|
ddabe81dd8 | ||
|
|
19c5671d3f | ||
|
|
2326520d17 | ||
|
|
7964d39e32 | ||
|
|
f7cf7c8adc | ||
|
|
744191cb84 | ||
|
|
291ed4c5ad | ||
|
|
f9612c5aba | ||
|
|
403a839ac0 | ||
|
|
41c89413ef | ||
|
|
fa11528a7b | ||
|
|
2a03c86384 | ||
|
|
57b4e10b93 | ||
|
|
4b22c7cc2d | ||
|
|
79fd0d1dda | ||
|
|
280778d53b | ||
|
|
1c3a3107f1 | ||
|
|
ee2c3a20ee | ||
|
|
5ee4f4e34b | ||
|
|
4b0e893bf1 | ||
|
|
3676157a7c | ||
|
|
e437e50882 | ||
|
|
6e9a94b46d | ||
|
|
137ae6775e | ||
|
|
dd8c998d43 | ||
|
|
b215bac01d | ||
|
|
c3cd9df12f | ||
|
|
406d53ea2f | ||
|
|
c8b278f26f | ||
|
|
a6f0d7233e | ||
|
|
079a436286 | ||
|
|
1c2ed6ff10 | ||
|
|
c1d7f23a17 | ||
|
|
fdbe48badb | ||
|
|
d09dd0b664 | ||
|
|
cba6717469 | ||
|
|
0a12acf6bd | ||
|
|
4e4defa236 | ||
|
|
c15f69712f | ||
|
|
b53a731c42 | ||
|
|
ddfe9166a1 | ||
|
|
1b1c84ad4f | ||
|
|
db69c7b0f8 | ||
|
|
53b3b4bf9f | ||
|
|
8fadcc0130 | ||
|
|
5aff8dc2f1 | ||
|
|
e7ed841361 | ||
|
|
7e49c222e5 | ||
|
|
9f31012598 | ||
|
|
811062f958 | ||
|
|
893b0bfb4a | ||
|
|
f34f994560 | ||
|
|
216b389635 | ||
|
|
d062baf8c9 | ||
|
|
e09e244c3d | ||
|
|
2645f4cf4d | ||
|
|
a0b55b6934 | ||
|
|
b263dc25fe | ||
|
|
ac308c931e | ||
|
|
a16dfb6d82 | ||
|
|
63e9bc3729 | ||
|
|
3735f9251b | ||
|
|
fc2559c702 | ||
|
|
5f2d463408 | ||
|
|
69e0dc6968 | ||
|
|
fccb8a923a | ||
|
|
53dbb9d705 | ||
|
|
236c5296b8 | ||
|
|
76c7e3a67f |
395
.github/changelogs/2026/02.md
generated
vendored
395
.github/changelogs/2026/02.md
generated
vendored
@@ -1,3 +1,398 @@
|
|||||||
|
## 2026-02-21
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Pangolin: restore config before db migration, use drizzle-kit push [@MickLesk](https://github.com/MickLesk) ([#12130](https://github.com/community-scripts/ProxmoxVE/pull/12130))
|
||||||
|
- PLANKA: fix msg's [@danielalanbates](https://github.com/danielalanbates) ([#12143](https://github.com/community-scripts/ProxmoxVE/pull/12143))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- MediaManager: Update documentation URL [@tremor021](https://github.com/tremor021) ([#12154](https://github.com/community-scripts/ProxmoxVE/pull/12154))
|
||||||
|
|
||||||
|
## 2026-02-20
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Sure ([#12114](https://github.com/community-scripts/ProxmoxVE/pull/12114))
|
||||||
|
- Calibre-Web ([#12115](https://github.com/community-scripts/ProxmoxVE/pull/12115))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Zammad: fix Elasticsearch JVM config and add daemon-reload [@MickLesk](https://github.com/MickLesk) ([#12125](https://github.com/community-scripts/ProxmoxVE/pull/12125))
|
||||||
|
- Huntarr: add build-essential for native pip dependencies [@MickLesk](https://github.com/MickLesk) ([#12126](https://github.com/community-scripts/ProxmoxVE/pull/12126))
|
||||||
|
- Dokploy: fix update function [@vhsdream](https://github.com/vhsdream) ([#12116](https://github.com/community-scripts/ProxmoxVE/pull/12116))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- recyclarr: adjust paths for v8.0 breaking changes [@MickLesk](https://github.com/MickLesk) ([#12129](https://github.com/community-scripts/ProxmoxVE/pull/12129))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Planka: migrate data paths to new v2 directory structure [@MickLesk](https://github.com/MickLesk) ([#12128](https://github.com/community-scripts/ProxmoxVE/pull/12128))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- fixen broken link to dawarich documentation [@RiX012](https://github.com/RiX012) ([#12103](https://github.com/community-scripts/ProxmoxVE/pull/12103))
|
||||||
|
|
||||||
|
## 2026-02-19
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- TrueNAS-VM ([#12059](https://github.com/community-scripts/ProxmoxVE/pull/12059))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- add: patchmon breaking change msg [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12075](https://github.com/community-scripts/ProxmoxVE/pull/12075))
|
||||||
|
- LibreNMS: Various fixes [@tremor021](https://github.com/tremor021) ([#12089](https://github.com/community-scripts/ProxmoxVE/pull/12089))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- truenas-vm: slug fix for source code link [@juronja](https://github.com/juronja) ([#12088](https://github.com/community-scripts/ProxmoxVE/pull/12088))
|
||||||
|
|
||||||
|
## 2026-02-18
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- [Fix] PatchMon: use `SERVER_PORT` in Nginx config if set in env [@vhsdream](https://github.com/vhsdream) ([#12053](https://github.com/community-scripts/ProxmoxVE/pull/12053))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- core: Execution ID & Telemetry Improvements [@MickLesk](https://github.com/MickLesk) ([#12041](https://github.com/community-scripts/ProxmoxVE/pull/12041))
|
||||||
|
|
||||||
|
## 2026-02-17
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Databasus ([#12018](https://github.com/community-scripts/ProxmoxVE/pull/12018))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- [Hotfix] Cleanuparr: backup config before update [@vhsdream](https://github.com/vhsdream) ([#12039](https://github.com/community-scripts/ProxmoxVE/pull/12039))
|
||||||
|
- fix: pterodactyl-panel add symlink [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11997](https://github.com/community-scripts/ProxmoxVE/pull/11997))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- core: call get_lxc_ip in start() before updates [@MickLesk](https://github.com/MickLesk) ([#12015](https://github.com/community-scripts/ProxmoxVE/pull/12015))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools/pve: add data analytics / formatting / linting [@MickLesk](https://github.com/MickLesk) ([#12034](https://github.com/community-scripts/ProxmoxVE/pull/12034))
|
||||||
|
- core: smart recovery for failed installs | extend exit_codes [@MickLesk](https://github.com/MickLesk) ([#11221](https://github.com/community-scripts/ProxmoxVE/pull/11221))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: error-handler improvements | better exit_code handling | better tools.func source check [@MickLesk](https://github.com/MickLesk) ([#12019](https://github.com/community-scripts/ProxmoxVE/pull/12019))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Immich Public Proxy: centralize and fix systemd service creation [@MickLesk](https://github.com/MickLesk) ([#12025](https://github.com/community-scripts/ProxmoxVE/pull/12025))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- fix contribution/setup-fork [@andreasabeck](https://github.com/andreasabeck) ([#12047](https://github.com/community-scripts/ProxmoxVE/pull/12047))
|
||||||
|
|
||||||
|
## 2026-02-16
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- RomM ([#11987](https://github.com/community-scripts/ProxmoxVE/pull/11987))
|
||||||
|
- LinkDing ([#11976](https://github.com/community-scripts/ProxmoxVE/pull/11976))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Opencloud: Pin version to 5.1.0 [@vhsdream](https://github.com/vhsdream) ([#12004](https://github.com/community-scripts/ProxmoxVE/pull/12004))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tududi: Fix sed command for DB_FILE configuration [@tremor021](https://github.com/tremor021) ([#11988](https://github.com/community-scripts/ProxmoxVE/pull/11988))
|
||||||
|
- slskd: fix exit position [@MickLesk](https://github.com/MickLesk) ([#11963](https://github.com/community-scripts/ProxmoxVE/pull/11963))
|
||||||
|
- cryptpad: restore config earlier and run onlyoffice upgrade [@MickLesk](https://github.com/MickLesk) ([#11964](https://github.com/community-scripts/ProxmoxVE/pull/11964))
|
||||||
|
- jellyseerr/overseerr: Migrate update script to Seerr; prompt rerun [@MickLesk](https://github.com/MickLesk) ([#11965](https://github.com/community-scripts/ProxmoxVE/pull/11965))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core/vm's: ensure script state is sent on script exit [@MickLesk](https://github.com/MickLesk) ([#11991](https://github.com/community-scripts/ProxmoxVE/pull/11991))
|
||||||
|
- Vaultwarden: export VW_VERSION as version number [@MickLesk](https://github.com/MickLesk) ([#11966](https://github.com/community-scripts/ProxmoxVE/pull/11966))
|
||||||
|
- Zabbix: Improve zabbix-agent service detection [@MickLesk](https://github.com/MickLesk) ([#11968](https://github.com/community-scripts/ProxmoxVE/pull/11968))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: ensure /usr/local/bin PATH persists for pct enter sessions [@MickLesk](https://github.com/MickLesk) ([#11970](https://github.com/community-scripts/ProxmoxVE/pull/11970))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: remove duplicate error handler from alpine-install.func [@MickLesk](https://github.com/MickLesk) ([#11971](https://github.com/community-scripts/ProxmoxVE/pull/11971))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- github: add "website" label if "json" changed [@MickLesk](https://github.com/MickLesk) ([#11975](https://github.com/community-scripts/ProxmoxVE/pull/11975))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Update Wishlist LXC webpage to include reverse proxy info [@summoningpixels](https://github.com/summoningpixels) ([#11973](https://github.com/community-scripts/ProxmoxVE/pull/11973))
|
||||||
|
- Update OpenCloud LXC webpage to include services ports [@summoningpixels](https://github.com/summoningpixels) ([#11969](https://github.com/community-scripts/ProxmoxVE/pull/11969))
|
||||||
|
|
||||||
|
## 2026-02-15
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- ebusd ([#11942](https://github.com/community-scripts/ProxmoxVE/pull/11942))
|
||||||
|
- add: seer script and migrations [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11930](https://github.com/community-scripts/ProxmoxVE/pull/11930))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Fix seerr URL in jellyseerr script [@lucacome](https://github.com/lucacome) ([#11951](https://github.com/community-scripts/ProxmoxVE/pull/11951))
|
||||||
|
- Fix jellyseer and overseer script replacement [@lucacome](https://github.com/lucacome) ([#11949](https://github.com/community-scripts/ProxmoxVE/pull/11949))
|
||||||
|
- Tautulli: Add setuptools < 81 [@tremor021](https://github.com/tremor021) ([#11943](https://github.com/community-scripts/ProxmoxVE/pull/11943))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Refactor: Patchmon [@vhsdream](https://github.com/vhsdream) ([#11888](https://github.com/community-scripts/ProxmoxVE/pull/11888))
|
||||||
|
|
||||||
|
## 2026-02-14
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Increase disk allocation for OpenWebUI and Ollama to prevent installation failures [@Copilot](https://github.com/Copilot) ([#11920](https://github.com/community-scripts/ProxmoxVE/pull/11920))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- core: handle missing RAM speed in nested VMs [@MickLesk](https://github.com/MickLesk) ([#11913](https://github.com/community-scripts/ProxmoxVE/pull/11913))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- core: overwriteable app version [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11753](https://github.com/community-scripts/ProxmoxVE/pull/11753))
|
||||||
|
- core: validate container IDs cluster-wide across all nodes [@MickLesk](https://github.com/MickLesk) ([#11906](https://github.com/community-scripts/ProxmoxVE/pull/11906))
|
||||||
|
- core: improve error reporting with structured error strings and better categorization + output formatting [@MickLesk](https://github.com/MickLesk) ([#11907](https://github.com/community-scripts/ProxmoxVE/pull/11907))
|
||||||
|
- core: unified logging system with combined logs [@MickLesk](https://github.com/MickLesk) ([#11761](https://github.com/community-scripts/ProxmoxVE/pull/11761))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- lxc-updater: add patchmon aware [@failure101](https://github.com/failure101) ([#11905](https://github.com/community-scripts/ProxmoxVE/pull/11905))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Disable UniFi script - APT packages no longer available [@Copilot](https://github.com/Copilot) ([#11898](https://github.com/community-scripts/ProxmoxVE/pull/11898))
|
||||||
|
|
||||||
|
## 2026-02-13
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- OpenWebUI: pin numba constraint [@MickLesk](https://github.com/MickLesk) ([#11874](https://github.com/community-scripts/ProxmoxVE/pull/11874))
|
||||||
|
- Planka: add migrate step to update function [@ZimmermannLeon](https://github.com/ZimmermannLeon) ([#11877](https://github.com/community-scripts/ProxmoxVE/pull/11877))
|
||||||
|
- Pangolin: switch sqlite-specific back to generic [@MickLesk](https://github.com/MickLesk) ([#11868](https://github.com/community-scripts/ProxmoxVE/pull/11868))
|
||||||
|
- [Hotfix] Jotty: Copy contents of config backup into /opt/jotty/config [@vhsdream](https://github.com/vhsdream) ([#11864](https://github.com/community-scripts/ProxmoxVE/pull/11864))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Radicale [@vhsdream](https://github.com/vhsdream) ([#11850](https://github.com/community-scripts/ProxmoxVE/pull/11850))
|
||||||
|
- chore(donetick): add config entry for v0.1.73 [@tomfrenzel](https://github.com/tomfrenzel) ([#11872](https://github.com/community-scripts/ProxmoxVE/pull/11872))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: retry reporting with fallback payloads [@MickLesk](https://github.com/MickLesk) ([#11885](https://github.com/community-scripts/ProxmoxVE/pull/11885))
|
||||||
|
|
||||||
|
### 📡 API
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- error-handler: Implement json_escape and enhance error handling [@MickLesk](https://github.com/MickLesk) ([#11875](https://github.com/community-scripts/ProxmoxVE/pull/11875))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- SQLServer-2025: add PVE9/Kernel 6.x incompatibility warning [@MickLesk](https://github.com/MickLesk) ([#11829](https://github.com/community-scripts/ProxmoxVE/pull/11829))
|
||||||
|
|
||||||
|
## 2026-02-12
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- EMQX: increase disk to 6GB and add optional MQ disable prompt [@MickLesk](https://github.com/MickLesk) ([#11844](https://github.com/community-scripts/ProxmoxVE/pull/11844))
|
||||||
|
- Increased the Grafana container default disk size. [@shtefko](https://github.com/shtefko) ([#11840](https://github.com/community-scripts/ProxmoxVE/pull/11840))
|
||||||
|
- Pangolin: Update database generation command in install script [@tremor021](https://github.com/tremor021) ([#11825](https://github.com/community-scripts/ProxmoxVE/pull/11825))
|
||||||
|
- Deluge: add python3-setuptools as dep [@MickLesk](https://github.com/MickLesk) ([#11833](https://github.com/community-scripts/ProxmoxVE/pull/11833))
|
||||||
|
- Dispatcharr: migrate to uv sync [@MickLesk](https://github.com/MickLesk) ([#11831](https://github.com/community-scripts/ProxmoxVE/pull/11831))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Archlinux-VM: fix LVM/LVM-thin storage and improve error reporting | VM's add correct exit_code for analytics [@MickLesk](https://github.com/MickLesk) ([#11842](https://github.com/community-scripts/ProxmoxVE/pull/11842))
|
||||||
|
- Debian13-VM: Optimize First Boot & add noCloud/Cloud Selection [@MickLesk](https://github.com/MickLesk) ([#11810](https://github.com/community-scripts/ProxmoxVE/pull/11810))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: auto-detect binary vs armored GPG keys in setup_deb822_repo [@MickLesk](https://github.com/MickLesk) ([#11841](https://github.com/community-scripts/ProxmoxVE/pull/11841))
|
||||||
|
- core: remove old Go API and extend misc/api.func with new backend [@MickLesk](https://github.com/MickLesk) ([#11822](https://github.com/community-scripts/ProxmoxVE/pull/11822))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- error_handler: prevent stuck 'installing' status [@MickLesk](https://github.com/MickLesk) ([#11845](https://github.com/community-scripts/ProxmoxVE/pull/11845))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tailscale: fix DNS check and keyrings directory issues [@MickLesk](https://github.com/MickLesk) ([#11837](https://github.com/community-scripts/ProxmoxVE/pull/11837))
|
||||||
|
|
||||||
|
## 2026-02-11
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Draw.io ([#11788](https://github.com/community-scripts/ProxmoxVE/pull/11788))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- dispatcharr: include port 9191 in success-message [@MickLesk](https://github.com/MickLesk) ([#11808](https://github.com/community-scripts/ProxmoxVE/pull/11808))
|
||||||
|
- fix: make donetick 0.1.71 compatible [@tomfrenzel](https://github.com/tomfrenzel) ([#11804](https://github.com/community-scripts/ProxmoxVE/pull/11804))
|
||||||
|
- Kasm: Support new version URL format without hash suffix [@MickLesk](https://github.com/MickLesk) ([#11787](https://github.com/community-scripts/ProxmoxVE/pull/11787))
|
||||||
|
- LibreTranslate: Remove Torch [@tremor021](https://github.com/tremor021) ([#11783](https://github.com/community-scripts/ProxmoxVE/pull/11783))
|
||||||
|
- Snowshare: fix update script [@TuroYT](https://github.com/TuroYT) ([#11726](https://github.com/community-scripts/ProxmoxVE/pull/11726))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [Feature] OpenCloud: support PosixFS Collaborative Mode [@vhsdream](https://github.com/vhsdream) ([#11806](https://github.com/community-scripts/ProxmoxVE/pull/11806))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: respect EDITOR variable for config editing [@ls-root](https://github.com/ls-root) ([#11693](https://github.com/community-scripts/ProxmoxVE/pull/11693))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- Fix formatting in kutt.json notes section [@tiagodenoronha](https://github.com/tiagodenoronha) ([#11774](https://github.com/community-scripts/ProxmoxVE/pull/11774))
|
||||||
|
|
||||||
|
## 2026-02-10
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: Pin version to 2.5.6 [@vhsdream](https://github.com/vhsdream) ([#11775](https://github.com/community-scripts/ProxmoxVE/pull/11775))
|
||||||
|
- Libretranslate: Fix setuptools [@tremor021](https://github.com/tremor021) ([#11772](https://github.com/community-scripts/ProxmoxVE/pull/11772))
|
||||||
|
- Element Synapse: prevent systemd invoke failure during apt install [@MickLesk](https://github.com/MickLesk) ([#11758](https://github.com/community-scripts/ProxmoxVE/pull/11758))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Refactor: Slskd & Soularr [@vhsdream](https://github.com/vhsdream) ([#11674](https://github.com/community-scripts/ProxmoxVE/pull/11674))
|
||||||
|
|
||||||
|
### 🗑️ Deleted Scripts
|
||||||
|
|
||||||
|
- move paperless-exporter from LXC to addon ([#11737](https://github.com/community-scripts/ProxmoxVE/pull/11737))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- feat: improve storage parsing & add guestname [@carlosmaroot](https://github.com/carlosmaroot) ([#11752](https://github.com/community-scripts/ProxmoxVE/pull/11752))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- Github-Version Workflow: include addon scripts in extraction [@MickLesk](https://github.com/MickLesk) ([#11757](https://github.com/community-scripts/ProxmoxVE/pull/11757))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Snowshare: fix typo in config file path on website [@BirdMakingStuff](https://github.com/BirdMakingStuff) ([#11754](https://github.com/community-scripts/ProxmoxVE/pull/11754))
|
||||||
|
|
||||||
|
## 2026-02-09
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- several scripts: add --clear to uv venv calls for uv 0.10 compatibility [@MickLesk](https://github.com/MickLesk) ([#11723](https://github.com/community-scripts/ProxmoxVE/pull/11723))
|
||||||
|
- Koillection: ensure setup_composer is in update script [@MickLesk](https://github.com/MickLesk) ([#11734](https://github.com/community-scripts/ProxmoxVE/pull/11734))
|
||||||
|
- PeaNUT: symlink server.js after update [@vhsdream](https://github.com/vhsdream) ([#11696](https://github.com/community-scripts/ProxmoxVE/pull/11696))
|
||||||
|
- Umlautadaptarr: use release appsettings.json instead of hardcoded copy [@MickLesk](https://github.com/MickLesk) ([#11725](https://github.com/community-scripts/ProxmoxVE/pull/11725))
|
||||||
|
- tracearr: prepare for next stable release [@durzo](https://github.com/durzo) ([#11673](https://github.com/community-scripts/ProxmoxVE/pull/11673))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- remove whiptail from update scripts for unattended update support [@MickLesk](https://github.com/MickLesk) ([#11712](https://github.com/community-scripts/ProxmoxVE/pull/11712))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: FileFlows [@tremor021](https://github.com/tremor021) ([#11108](https://github.com/community-scripts/ProxmoxVE/pull/11108))
|
||||||
|
- Refactor: wger [@MickLesk](https://github.com/MickLesk) ([#11722](https://github.com/community-scripts/ProxmoxVE/pull/11722))
|
||||||
|
- Nginx-UI: better User Handling | ACME [@MickLesk](https://github.com/MickLesk) ([#11715](https://github.com/community-scripts/ProxmoxVE/pull/11715))
|
||||||
|
- NginxProxymanager: use better-sqlite3 [@MickLesk](https://github.com/MickLesk) ([#11708](https://github.com/community-scripts/ProxmoxVE/pull/11708))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- hwaccel: add libmfx-gen1.2 to Intel Arc setup for QSV support [@MickLesk](https://github.com/MickLesk) ([#11707](https://github.com/community-scripts/ProxmoxVE/pull/11707))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- addons: ensure curl is installed before use [@MickLesk](https://github.com/MickLesk) ([#11718](https://github.com/community-scripts/ProxmoxVE/pull/11718))
|
||||||
|
- Netbird (addon): add systemd ordering to start after Docker [@MickLesk](https://github.com/MickLesk) ([#11716](https://github.com/community-scripts/ProxmoxVE/pull/11716))
|
||||||
|
|
||||||
|
### ❔ Uncategorized
|
||||||
|
|
||||||
|
- Bichon: Update website [@tremor021](https://github.com/tremor021) ([#11711](https://github.com/community-scripts/ProxmoxVE/pull/11711))
|
||||||
|
|
||||||
|
## 2026-02-08
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- feat(healthchecks): add sendalerts service [@Mika56](https://github.com/Mika56) ([#11694](https://github.com/community-scripts/ProxmoxVE/pull/11694))
|
||||||
|
- ComfyUI: Dynamic Fetch PyTorch Versions [@MickLesk](https://github.com/MickLesk) ([#11657](https://github.com/community-scripts/ProxmoxVE/pull/11657))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Semaphore: switch from Debian to Ubuntu 24.04 [@MickLesk](https://github.com/MickLesk) ([#11670](https://github.com/community-scripts/ProxmoxVE/pull/11670))
|
||||||
|
|
||||||
## 2026-02-07
|
## 2026-02-07
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
3
.github/workflows/autolabeler.yml
generated
vendored
3
.github/workflows/autolabeler.yml
generated
vendored
@@ -100,7 +100,8 @@ jobs:
|
|||||||
// If it's an update script PR with json changes and a content label, skip adding website/json
|
// If it's an update script PR with json changes and a content label, skip adding website/json
|
||||||
// The PR should be categorized as update script with the content label
|
// The PR should be categorized as update script with the content label
|
||||||
if (!(hasUpdateScript && hasJson && hasContentLabel)) {
|
if (!(hasUpdateScript && hasJson && hasContentLabel)) {
|
||||||
labelsToAdd.add(hasJson ? "json" : "website");
|
labelsToAdd.add("website");
|
||||||
|
if (hasJson) labelsToAdd.add("json");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
456
.github/workflows/check-node-versions.yml
generated
vendored
Normal file
456
.github/workflows/check-node-versions.yml
generated
vendored
Normal file
@@ -0,0 +1,456 @@
|
|||||||
|
name: Check Node.js Version Drift
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
schedule:
|
||||||
|
# Runs weekly on Monday at 06:00 UTC
|
||||||
|
- cron: "0 6 * * 1"
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
issues: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-node-versions:
|
||||||
|
if: github.repository == 'community-scripts/ProxmoxVE'
|
||||||
|
runs-on: coolify-runner
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: main
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qq
|
||||||
|
sudo apt-get install -y -qq jq curl > /dev/null 2>&1
|
||||||
|
|
||||||
|
- name: Check upstream Node.js versions
|
||||||
|
id: check
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
echo "================================================"
|
||||||
|
echo " Checking Node.js version drift in install scripts"
|
||||||
|
echo "================================================"
|
||||||
|
|
||||||
|
# Alpine version -> Node major cache (populated on demand)
|
||||||
|
declare -A ALPINE_NODE_CACHE
|
||||||
|
|
||||||
|
# Resolve Node.js major version from Alpine package registry
|
||||||
|
# Usage: resolve_alpine_node "3.21" => sets REPLY to major version (e.g. "22")
|
||||||
|
resolve_alpine_node() {
|
||||||
|
local alpine_ver="$1"
|
||||||
|
if [[ -n "${ALPINE_NODE_CACHE[$alpine_ver]+x}" ]]; then
|
||||||
|
REPLY="${ALPINE_NODE_CACHE[$alpine_ver]}"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local url="https://pkgs.alpinelinux.org/package/v${alpine_ver}/main/x86_64/nodejs"
|
||||||
|
local page
|
||||||
|
page=$(curl -sf "$url" 2>/dev/null || echo "")
|
||||||
|
local full_ver=""
|
||||||
|
if [[ -n "$page" ]]; then
|
||||||
|
# Parse: "Version | 24.13.0-r1" or similar table row
|
||||||
|
full_ver=$(echo "$page" | grep -oP 'Version\s*\|\s*\K[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "")
|
||||||
|
if [[ -z "$full_ver" ]]; then
|
||||||
|
# Fallback: look for version pattern after "Version"
|
||||||
|
full_ver=$(echo "$page" | grep -oP '(?<=Version</td><td>)[0-9]+\.[0-9]+\.[0-9]+' | head -1 || echo "")
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
local major=""
|
||||||
|
if [[ -n "$full_ver" ]]; then
|
||||||
|
major="${full_ver%%.*}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ALPINE_NODE_CACHE[$alpine_ver]="$major"
|
||||||
|
REPLY="$major"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Extract Node major from a Dockerfile content
|
||||||
|
# Sets: DF_NODE_MAJOR, DF_SOURCE (description of where we found it)
|
||||||
|
extract_dockerfile_node() {
|
||||||
|
local content="$1"
|
||||||
|
DF_NODE_MAJOR=""
|
||||||
|
DF_SOURCE=""
|
||||||
|
|
||||||
|
# 1) FROM node:XX (e.g. node:24-alpine, node:22.9.0-bookworm-slim, node:20)
|
||||||
|
local node_from
|
||||||
|
node_from=$(echo "$content" | grep -oP '(?i)FROM\s+(--platform=[^\s]+\s+)?node:\K[0-9]+' | head -1 || echo "")
|
||||||
|
if [[ -n "$node_from" ]]; then
|
||||||
|
DF_NODE_MAJOR="$node_from"
|
||||||
|
DF_SOURCE="FROM node:${node_from}"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 2) nodesource/setup_XX.x
|
||||||
|
local nodesource
|
||||||
|
nodesource=$(echo "$content" | grep -oP 'nodesource/setup_\K[0-9]+' | head -1 || echo "")
|
||||||
|
if [[ -n "$nodesource" ]]; then
|
||||||
|
DF_NODE_MAJOR="$nodesource"
|
||||||
|
DF_SOURCE="nodesource/setup_${nodesource}.x"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 3) FROM alpine:X.Y — resolve via Alpine packages
|
||||||
|
local alpine_ver
|
||||||
|
alpine_ver=$(echo "$content" | grep -oP '(?i)FROM\s+(--platform=[^\s]+\s+)?alpine:\K[0-9]+\.[0-9]+' | head -1 || echo "")
|
||||||
|
if [[ -n "$alpine_ver" ]]; then
|
||||||
|
resolve_alpine_node "$alpine_ver"
|
||||||
|
if [[ -n "$REPLY" ]]; then
|
||||||
|
DF_NODE_MAJOR="$REPLY"
|
||||||
|
DF_SOURCE="alpine:${alpine_ver} (pkg: nodejs ${DF_NODE_MAJOR})"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Extract Node major from engines.node in package.json
|
||||||
|
# Sets: ENGINES_NODE_RAW (raw string), ENGINES_MIN_MAJOR, ENGINES_IS_MINIMUM
|
||||||
|
extract_engines_node() {
|
||||||
|
local content="$1"
|
||||||
|
ENGINES_NODE_RAW=""
|
||||||
|
ENGINES_MIN_MAJOR=""
|
||||||
|
ENGINES_IS_MINIMUM="false"
|
||||||
|
|
||||||
|
ENGINES_NODE_RAW=$(echo "$content" | jq -r '.engines.node // empty' 2>/dev/null || echo "")
|
||||||
|
if [[ -z "$ENGINES_NODE_RAW" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Detect if constraint is a minimum (>=, ^) vs exact pinning
|
||||||
|
if [[ "$ENGINES_NODE_RAW" =~ ^(\>=|\^|\~) ]]; then
|
||||||
|
ENGINES_IS_MINIMUM="true"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Extract the first number (major) from the constraint
|
||||||
|
# Handles: ">=24.13.1", "^22", ">=18.0.0", ">=18.15.0 <19 || ^20", etc.
|
||||||
|
ENGINES_MIN_MAJOR=$(echo "$ENGINES_NODE_RAW" | grep -oP '\d+' | head -1 || echo "")
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check if our_version satisfies an engines.node constraint
|
||||||
|
# Returns 0 if satisfied, 1 if not
|
||||||
|
# Usage: version_satisfies_engines "22" ">=18.0.0" "true"
|
||||||
|
version_satisfies_engines() {
|
||||||
|
local our="$1"
|
||||||
|
local min_major="$2"
|
||||||
|
local is_minimum="$3"
|
||||||
|
|
||||||
|
if [[ -z "$min_major" || -z "$our" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$is_minimum" == "true" ]]; then
|
||||||
|
# >= or ^ constraint: our version must be >= min_major
|
||||||
|
if [[ "$our" -ge "$min_major" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Search for files in subdirectories via GitHub API tree
|
||||||
|
# Usage: find_repo_file "owner/repo" "branch" "filename" => sets REPLY to raw URL or empty
|
||||||
|
find_repo_file() {
|
||||||
|
local repo="$1"
|
||||||
|
local branch="$2"
|
||||||
|
local filename="$3"
|
||||||
|
REPLY=""
|
||||||
|
|
||||||
|
# Try root first (fast)
|
||||||
|
local root_url="https://raw.githubusercontent.com/${repo}/${branch}/${filename}"
|
||||||
|
if curl -sfI "$root_url" >/dev/null 2>&1; then
|
||||||
|
REPLY="$root_url"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Search via GitHub API tree (recursive)
|
||||||
|
local tree_url="https://api.github.com/repos/${repo}/git/trees/${branch}?recursive=1"
|
||||||
|
local tree_json
|
||||||
|
tree_json=$(curl -sf -H "Authorization: token $GH_TOKEN" "$tree_url" 2>/dev/null || echo "")
|
||||||
|
if [[ -z "$tree_json" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Find first matching path (prefer shorter/root-level paths)
|
||||||
|
local match_path
|
||||||
|
match_path=$(echo "$tree_json" | jq -r --arg fn "$filename" \
|
||||||
|
'.tree[]? | select(.path | endswith("/" + $fn) or . == $fn) | .path' 2>/dev/null \
|
||||||
|
| sort | head -1 || echo "")
|
||||||
|
|
||||||
|
if [[ -n "$match_path" ]]; then
|
||||||
|
REPLY="https://raw.githubusercontent.com/${repo}/${branch}/${match_path}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Extract Node major from .nvmrc or .node-version
|
||||||
|
# Sets: NVMRC_NODE_MAJOR
|
||||||
|
extract_nvmrc_node() {
|
||||||
|
local content="$1"
|
||||||
|
NVMRC_NODE_MAJOR=""
|
||||||
|
# .nvmrc/.node-version typically has: "v22.9.0", "22", "lts/iron", etc.
|
||||||
|
local ver
|
||||||
|
ver=$(echo "$content" | tr -d '[:space:]' | grep -oP '^v?\K[0-9]+' | head -1 || echo "")
|
||||||
|
NVMRC_NODE_MAJOR="$ver"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Collect results
|
||||||
|
declare -a issue_scripts=()
|
||||||
|
declare -a report_lines=()
|
||||||
|
total=0
|
||||||
|
checked=0
|
||||||
|
drift_count=0
|
||||||
|
|
||||||
|
for script in install/*-install.sh; do
|
||||||
|
[[ ! -f "$script" ]] && continue
|
||||||
|
if ! grep -q 'setup_nodejs' "$script"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
total=$((total + 1))
|
||||||
|
slug=$(basename "$script" | sed 's/-install\.sh$//')
|
||||||
|
|
||||||
|
# Extract Source URL (GitHub only)
|
||||||
|
# Supports both:
|
||||||
|
# # Source: https://github.com/owner/repo
|
||||||
|
# # Source: https://example.com | Github: https://github.com/owner/repo
|
||||||
|
source_url=$(head -20 "$script" | grep -oP 'https://github\.com/[^\s|]+' | head -1 || echo "")
|
||||||
|
if [[ -z "$source_url" ]]; then
|
||||||
|
report_lines+=("| \`$slug\` | — | — | — | — | ⏭️ No GitHub source |")
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
repo=$(echo "$source_url" | sed -E 's|https://github\.com/||; s|/$||; s|\.git$||')
|
||||||
|
if [[ -z "$repo" || "$repo" != */* ]]; then
|
||||||
|
report_lines+=("| \`$slug\` | — | — | — | — | ⏭️ Invalid repo |")
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
checked=$((checked + 1))
|
||||||
|
|
||||||
|
# Extract our NODE_VERSION
|
||||||
|
our_version=$(grep -oP 'NODE_VERSION="(\d+)"' "$script" | head -1 | grep -oP '\d+' || echo "")
|
||||||
|
if [[ -z "$our_version" ]]; then
|
||||||
|
if grep -q 'NODE_VERSION=\$(' "$script"; then
|
||||||
|
our_version="dynamic"
|
||||||
|
else
|
||||||
|
our_version="unset"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine default branch via GitHub API (fast, single call)
|
||||||
|
detected_branch=""
|
||||||
|
api_default=$(curl -sf -H "Authorization: token $GH_TOKEN" \
|
||||||
|
"https://api.github.com/repos/${repo}" 2>/dev/null \
|
||||||
|
| jq -r '.default_branch // empty' 2>/dev/null || echo "")
|
||||||
|
if [[ -n "$api_default" ]]; then
|
||||||
|
detected_branch="$api_default"
|
||||||
|
else
|
||||||
|
detected_branch="main"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fetch upstream Dockerfile (root + subdirectories)
|
||||||
|
df_content=""
|
||||||
|
find_repo_file "$repo" "$detected_branch" "Dockerfile"
|
||||||
|
if [[ -n "$REPLY" ]]; then
|
||||||
|
df_content=$(curl -sf "$REPLY" 2>/dev/null || echo "")
|
||||||
|
fi
|
||||||
|
|
||||||
|
DF_NODE_MAJOR=""
|
||||||
|
DF_SOURCE=""
|
||||||
|
if [[ -n "$df_content" ]]; then
|
||||||
|
extract_dockerfile_node "$df_content"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fetch upstream package.json (root + subdirectories)
|
||||||
|
pkg_content=""
|
||||||
|
find_repo_file "$repo" "$detected_branch" "package.json"
|
||||||
|
if [[ -n "$REPLY" ]]; then
|
||||||
|
pkg_content=$(curl -sf "$REPLY" 2>/dev/null || echo "")
|
||||||
|
fi
|
||||||
|
|
||||||
|
ENGINES_NODE_RAW=""
|
||||||
|
ENGINES_MIN_MAJOR=""
|
||||||
|
ENGINES_IS_MINIMUM="false"
|
||||||
|
if [[ -n "$pkg_content" ]]; then
|
||||||
|
extract_engines_node "$pkg_content"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Fallback: check .nvmrc or .node-version
|
||||||
|
NVMRC_NODE_MAJOR=""
|
||||||
|
if [[ -z "$DF_NODE_MAJOR" && -z "$ENGINES_MIN_MAJOR" ]]; then
|
||||||
|
for nvmfile in .nvmrc .node-version; do
|
||||||
|
find_repo_file "$repo" "$detected_branch" "$nvmfile"
|
||||||
|
if [[ -n "$REPLY" ]]; then
|
||||||
|
nvmrc_content=$(curl -sf "$REPLY" 2>/dev/null || echo "")
|
||||||
|
if [[ -n "$nvmrc_content" ]]; then
|
||||||
|
extract_nvmrc_node "$nvmrc_content"
|
||||||
|
[[ -n "$NVMRC_NODE_MAJOR" ]] && break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine upstream recommended major version
|
||||||
|
upstream_major=""
|
||||||
|
upstream_hint=""
|
||||||
|
|
||||||
|
if [[ -n "$DF_NODE_MAJOR" ]]; then
|
||||||
|
upstream_major="$DF_NODE_MAJOR"
|
||||||
|
upstream_hint="$DF_SOURCE"
|
||||||
|
elif [[ -n "$ENGINES_MIN_MAJOR" ]]; then
|
||||||
|
upstream_major="$ENGINES_MIN_MAJOR"
|
||||||
|
upstream_hint="engines: $ENGINES_NODE_RAW"
|
||||||
|
elif [[ -n "$NVMRC_NODE_MAJOR" ]]; then
|
||||||
|
upstream_major="$NVMRC_NODE_MAJOR"
|
||||||
|
upstream_hint=".nvmrc/.node-version"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Build display values
|
||||||
|
engines_display="${ENGINES_NODE_RAW:-—}"
|
||||||
|
dockerfile_display="${DF_SOURCE:-—}"
|
||||||
|
|
||||||
|
# Compare
|
||||||
|
status="✅"
|
||||||
|
if [[ "$our_version" == "dynamic" ]]; then
|
||||||
|
status="🔄 Dynamic"
|
||||||
|
elif [[ "$our_version" == "unset" ]]; then
|
||||||
|
if [[ -n "$upstream_major" ]]; then
|
||||||
|
status="⚠️ NODE_VERSION not set (upstream=$upstream_major via $upstream_hint)"
|
||||||
|
else
|
||||||
|
status="⚠️ NODE_VERSION not set (no upstream info found)"
|
||||||
|
fi
|
||||||
|
issue_scripts+=("$slug|$our_version|$upstream_major|$upstream_hint|$repo")
|
||||||
|
drift_count=$((drift_count + 1))
|
||||||
|
elif [[ -n "$upstream_major" && "$our_version" != "$upstream_major" ]]; then
|
||||||
|
# Check if engines.node is a minimum constraint that our version satisfies
|
||||||
|
if [[ -z "$DF_NODE_MAJOR" && "$ENGINES_IS_MINIMUM" == "true" ]] && \
|
||||||
|
version_satisfies_engines "$our_version" "$ENGINES_MIN_MAJOR" "$ENGINES_IS_MINIMUM"; then
|
||||||
|
status="✅ (engines: $ENGINES_NODE_RAW — ours: $our_version satisfies)"
|
||||||
|
else
|
||||||
|
status="🔸 Drift → upstream=$upstream_major ($upstream_hint)"
|
||||||
|
issue_scripts+=("$slug|$our_version|$upstream_major|$upstream_hint|$repo")
|
||||||
|
drift_count=$((drift_count + 1))
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
report_lines+=("| \`$slug\` | $our_version | $engines_display | $dockerfile_display | [$repo](https://github.com/$repo) | $status |")
|
||||||
|
|
||||||
|
# Rate-limit to avoid GitHub secondary rate limits
|
||||||
|
sleep 0.3
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
# Print summary
|
||||||
|
echo ""
|
||||||
|
echo "========================================="
|
||||||
|
echo " Total scripts with setup_nodejs: $total"
|
||||||
|
echo " Checked (with GitHub source): $checked"
|
||||||
|
echo " Version drift detected: $drift_count"
|
||||||
|
echo "========================================="
|
||||||
|
|
||||||
|
# Export
|
||||||
|
{
|
||||||
|
echo "drift_count=$drift_count"
|
||||||
|
echo "total=$total"
|
||||||
|
echo "checked=$checked"
|
||||||
|
} >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
# Save issue details for next step
|
||||||
|
printf '%s\n' "${issue_scripts[@]}" > /tmp/drift_scripts.txt 2>/dev/null || touch /tmp/drift_scripts.txt
|
||||||
|
|
||||||
|
# Save full report
|
||||||
|
{
|
||||||
|
echo "## Node.js Version Drift Report"
|
||||||
|
echo ""
|
||||||
|
echo "**Generated:** $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
||||||
|
echo "**Scripts checked:** $total | **With GitHub source:** $checked | **Drift detected:** $drift_count"
|
||||||
|
echo ""
|
||||||
|
echo "| Script | Our Version | engines.node | Dockerfile | Upstream Repo | Status |"
|
||||||
|
echo "|--------|-------------|-------------|------------|---------------|--------|"
|
||||||
|
printf '%s\n' "${report_lines[@]}" | sort
|
||||||
|
} > /tmp/drift_report.md
|
||||||
|
|
||||||
|
cat /tmp/drift_report.md
|
||||||
|
|
||||||
|
- name: Create or update summary issue
|
||||||
|
if: steps.check.outputs.drift_count != '0'
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
TITLE="[Automated] Node.js Version Drift Report"
|
||||||
|
DATE=$(date -u +%Y-%m-%d)
|
||||||
|
DRIFT_COUNT="${{ steps.check.outputs.drift_count }}"
|
||||||
|
TOTAL="${{ steps.check.outputs.total }}"
|
||||||
|
CHECKED="${{ steps.check.outputs.checked }}"
|
||||||
|
|
||||||
|
# Build checklist from drift data
|
||||||
|
CHECKLIST=""
|
||||||
|
while IFS='|' read -r slug our_version upstream_major upstream_hint repo; do
|
||||||
|
[[ -z "$slug" ]] && continue
|
||||||
|
CHECKLIST+="- [ ] **\`${slug}\`** — ours: \`${our_version}\` → upstream: \`${upstream_major}\` (${upstream_hint}) — [repo](https://github.com/${repo})"$'\n'
|
||||||
|
done < /tmp/drift_scripts.txt
|
||||||
|
|
||||||
|
# Build full report table
|
||||||
|
REPORT=$(cat /tmp/drift_report.md)
|
||||||
|
|
||||||
|
BODY=$(cat <<ISSUE_EOF
|
||||||
|
## Node.js Version Drift Report — ${DATE}
|
||||||
|
|
||||||
|
**${DRIFT_COUNT}** script(s) with version drift detected (out of ${CHECKED} checked / ${TOTAL} total).
|
||||||
|
|
||||||
|
### Scripts requiring investigation
|
||||||
|
|
||||||
|
${CHECKLIST}
|
||||||
|
|
||||||
|
### How to resolve
|
||||||
|
|
||||||
|
1. Check upstream Dockerfile / package.json to confirm the required Node.js version
|
||||||
|
2. Test the script with the new Node version
|
||||||
|
3. Update \`NODE_VERSION\` in \`install/<slug>-install.sh\`
|
||||||
|
4. Update \`NODE_VERSION\` in \`ct/<slug>.sh\` (update section) if applicable
|
||||||
|
5. Check off the item above once done
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Full report</summary>
|
||||||
|
|
||||||
|
${REPORT}
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
---
|
||||||
|
*This issue is automatically created/updated weekly by the Node.js version drift check workflow.*
|
||||||
|
*Last updated: ${DATE}*
|
||||||
|
ISSUE_EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check if a matching open issue already exists
|
||||||
|
EXISTING=$(gh issue list --state open --label "automated,dependencies" --search "\"[Automated] Node.js Version Drift Report\"" --json number --jq '.[0].number // empty' 2>/dev/null || echo "")
|
||||||
|
|
||||||
|
if [[ -n "$EXISTING" ]]; then
|
||||||
|
gh issue edit "$EXISTING" --body "$BODY"
|
||||||
|
echo "Updated existing issue #$EXISTING"
|
||||||
|
else
|
||||||
|
gh issue create \
|
||||||
|
--title "$TITLE" \
|
||||||
|
--body "$BODY" \
|
||||||
|
--label "automated,dependencies"
|
||||||
|
echo "Created new summary issue"
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Close issue if no drift
|
||||||
|
if: steps.check.outputs.drift_count == '0'
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: |
|
||||||
|
EXISTING=$(gh issue list --state open --label "automated,dependencies" --search "\"[Automated] Node.js Version Drift Report\"" --json number --jq '.[0].number // empty' 2>/dev/null || echo "")
|
||||||
|
if [[ -n "$EXISTING" ]]; then
|
||||||
|
gh issue close "$EXISTING" --comment "All Node.js versions are in sync with upstream. Closing automatically."
|
||||||
|
echo "Closed issue #$EXISTING"
|
||||||
|
fi
|
||||||
111
.github/workflows/stale_pr_close.yml
generated
vendored
Normal file
111
.github/workflows/stale_pr_close.yml
generated
vendored
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
name: Stale PR Management
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
pull_request_target:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
stale-prs:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
issues: write
|
||||||
|
contents: read
|
||||||
|
steps:
|
||||||
|
- name: Handle stale PRs
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const now = new Date();
|
||||||
|
const owner = context.repo.owner;
|
||||||
|
const repo = context.repo.repo;
|
||||||
|
|
||||||
|
// --- When stale label is added, comment immediately ---
|
||||||
|
if (context.eventName === "pull_request_target" && context.payload.action === "labeled") {
|
||||||
|
const label = context.payload.label?.name;
|
||||||
|
if (label === "stale") {
|
||||||
|
const author = context.payload.pull_request.user.login;
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
issue_number: context.payload.pull_request.number,
|
||||||
|
body: `@${author} This PR has been marked as stale. It will be closed if no new commits are added in 7 days.`
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- Scheduled run: check all stale PRs ---
|
||||||
|
const { data: prs } = await github.rest.pulls.list({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
state: "open",
|
||||||
|
per_page: 100
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const pr of prs) {
|
||||||
|
const hasStale = pr.labels.some(l => l.name === "stale");
|
||||||
|
if (!hasStale) continue;
|
||||||
|
|
||||||
|
// Get timeline events to find when stale label was added
|
||||||
|
const { data: events } = await github.rest.issues.listEvents({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
issue_number: pr.number,
|
||||||
|
per_page: 100
|
||||||
|
});
|
||||||
|
|
||||||
|
// Find the most recent time the stale label was added
|
||||||
|
const staleLabelEvents = events
|
||||||
|
.filter(e => e.event === "labeled" && e.label?.name === "stale")
|
||||||
|
.sort((a, b) => new Date(b.created_at) - new Date(a.created_at));
|
||||||
|
|
||||||
|
if (staleLabelEvents.length === 0) continue;
|
||||||
|
|
||||||
|
const staleLabelDate = new Date(staleLabelEvents[0].created_at);
|
||||||
|
const daysSinceStale = (now - staleLabelDate) / (1000 * 60 * 60 * 24);
|
||||||
|
|
||||||
|
// Check for new commits since stale label was added
|
||||||
|
const { data: commits } = await github.rest.pulls.listCommits({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
pull_number: pr.number
|
||||||
|
});
|
||||||
|
|
||||||
|
const lastCommitDate = new Date(commits[commits.length - 1].commit.author.date);
|
||||||
|
const author = pr.user.login;
|
||||||
|
|
||||||
|
// If there are new commits after the stale label, remove it
|
||||||
|
if (lastCommitDate > staleLabelDate) {
|
||||||
|
await github.rest.issues.removeLabel({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
issue_number: pr.number,
|
||||||
|
name: "stale"
|
||||||
|
});
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
issue_number: pr.number,
|
||||||
|
body: `@${author} Recent activity detected. Removing stale label.`
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// If 7 days have passed since stale label, close the PR
|
||||||
|
else if (daysSinceStale > 7) {
|
||||||
|
await github.rest.pulls.update({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
pull_number: pr.number,
|
||||||
|
state: "closed"
|
||||||
|
});
|
||||||
|
await github.rest.issues.createComment({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
issue_number: pr.number,
|
||||||
|
body: `@${author} Closing stale PR due to inactivity (no commits for 7 days after stale label).`
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
10
.github/workflows/update-versions-github.yml
generated
vendored
10
.github/workflows/update-versions-github.yml
generated
vendored
@@ -89,9 +89,15 @@ jobs:
|
|||||||
slug=$(jq -r '.slug // empty' "$json_file" 2>/dev/null)
|
slug=$(jq -r '.slug // empty' "$json_file" 2>/dev/null)
|
||||||
[[ -z "$slug" ]] && continue
|
[[ -z "$slug" ]] && continue
|
||||||
|
|
||||||
# Find corresponding install script
|
# Find corresponding script (install script or addon script)
|
||||||
|
install_script=""
|
||||||
|
if [[ -f "install/${slug}-install.sh" ]]; then
|
||||||
install_script="install/${slug}-install.sh"
|
install_script="install/${slug}-install.sh"
|
||||||
[[ ! -f "$install_script" ]] && continue
|
elif [[ -f "tools/addon/${slug}.sh" ]]; then
|
||||||
|
install_script="tools/addon/${slug}.sh"
|
||||||
|
else
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
# Look for fetch_and_deploy_gh_release calls
|
# Look for fetch_and_deploy_gh_release calls
|
||||||
# Pattern: fetch_and_deploy_gh_release "app" "owner/repo" ["mode"] ["version"]
|
# Pattern: fetch_and_deploy_gh_release "app" "owner/repo" ["mode"] ["version"]
|
||||||
|
|||||||
863
CHANGELOG.md
863
CHANGELOG.md
@@ -15,6 +15,12 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><h2>📜 History</h2></summary>
|
<summary><h2>📜 History</h2></summary>
|
||||||
|
|
||||||
@@ -24,7 +30,7 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary><h4>February (7 entries)</h4></summary>
|
<summary><h4>February (21 entries)</h4></summary>
|
||||||
|
|
||||||
[View February 2026 Changelog](.github/changelogs/2026/02.md)
|
[View February 2026 Changelog](.github/changelogs/2026/02.md)
|
||||||
|
|
||||||
@@ -401,11 +407,498 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## 2026-02-10
|
## 2026-02-25
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Zerobyte ([#12321](https://github.com/community-scripts/ProxmoxVE/pull/12321))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Passbolt: Update Nginx config `client_max_body_size` [@tremor021](https://github.com/tremor021) ([#12313](https://github.com/community-scripts/ProxmoxVE/pull/12313))
|
||||||
|
- Zammad: configure Elasticsearch before zammad start [@MickLesk](https://github.com/MickLesk) ([#12308](https://github.com/community-scripts/ProxmoxVE/pull/12308))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- OpenProject: Various fixes [@tremor021](https://github.com/tremor021) ([#12246](https://github.com/community-scripts/ProxmoxVE/pull/12246))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Fix detection of ssh keys [@1-tempest](https://github.com/1-tempest) ([#12230](https://github.com/community-scripts/ProxmoxVE/pull/12230))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: remove duplicate traps, consolidate error handling and harden signal traps [@MickLesk](https://github.com/MickLesk) ([#12316](https://github.com/community-scripts/ProxmoxVE/pull/12316))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- github: improvements for node drift wf [@MickLesk](https://github.com/MickLesk) ([#12309](https://github.com/community-scripts/ProxmoxVE/pull/12309))
|
||||||
|
|
||||||
|
## 2026-02-24
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- several scripts: add additional github link in source [@MickLesk](https://github.com/MickLesk) ([#12282](https://github.com/community-scripts/ProxmoxVE/pull/12282))
|
||||||
|
- adds further documentation during the installation script. [@d12rio](https://github.com/d12rio) ([#12248](https://github.com/community-scripts/ProxmoxVE/pull/12248))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- [Fix] PatchMon: remove VITE_API_URL from frontend env [@vhsdream](https://github.com/vhsdream) ([#12294](https://github.com/community-scripts/ProxmoxVE/pull/12294))
|
||||||
|
- fix(searxng): remove orphaned fi causing syntax error [@mark-jeffrey](https://github.com/mark-jeffrey) ([#12283](https://github.com/community-scripts/ProxmoxVE/pull/12283))
|
||||||
|
- Refactor n8n [@MickLesk](https://github.com/MickLesk) ([#12264](https://github.com/community-scripts/ProxmoxVE/pull/12264))
|
||||||
|
- Firefly: PHP bump [@tremor021](https://github.com/tremor021) ([#12247](https://github.com/community-scripts/ProxmoxVE/pull/12247))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Databasus: add mariadb path for mysql/mariadb backups | add mongodb database tools [@MickLesk](https://github.com/MickLesk) ([#12259](https://github.com/community-scripts/ProxmoxVE/pull/12259))
|
||||||
|
- make searxng updateable [@shtefko](https://github.com/shtefko) ([#12207](https://github.com/community-scripts/ProxmoxVE/pull/12207))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- fix: wealthfolio for v3 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11765](https://github.com/community-scripts/ProxmoxVE/pull/11765))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- bump various scripts from Node 22 to 24 [@MickLesk](https://github.com/MickLesk) ([#12265](https://github.com/community-scripts/ProxmoxVE/pull/12265))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- core: fix broken "command not found" after err_trap [@MickLesk](https://github.com/MickLesk) ([#12280](https://github.com/community-scripts/ProxmoxVE/pull/12280))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: add get_latest_gh_tag helper function [@MickLesk](https://github.com/MickLesk) ([#12261](https://github.com/community-scripts/ProxmoxVE/pull/12261))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- Arcane ([#12263](https://github.com/community-scripts/ProxmoxVE/pull/12263))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- github: add weekly Node.js version drift check workflow [@MickLesk](https://github.com/MickLesk) ([#12267](https://github.com/community-scripts/ProxmoxVE/pull/12267))
|
||||||
|
- add: workflow to close stale PRs [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12243](https://github.com/community-scripts/ProxmoxVE/pull/12243))
|
||||||
|
|
||||||
|
## 2026-02-23
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- SeaweedFS ([#12220](https://github.com/community-scripts/ProxmoxVE/pull/12220))
|
||||||
|
- Sonobarr ([#12221](https://github.com/community-scripts/ProxmoxVE/pull/12221))
|
||||||
|
- SparkyFitness ([#12185](https://github.com/community-scripts/ProxmoxVE/pull/12185))
|
||||||
|
- Frigate v16.4 [@MickLesk](https://github.com/MickLesk) ([#11887](https://github.com/community-scripts/ProxmoxVE/pull/11887))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- memos: unpin version due new release artifacts [@MickLesk](https://github.com/MickLesk) ([#12224](https://github.com/community-scripts/ProxmoxVE/pull/12224))
|
||||||
|
- core: Enhance signal handling, reported "status" and logs [@MickLesk](https://github.com/MickLesk) ([#12216](https://github.com/community-scripts/ProxmoxVE/pull/12216))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- booklore v2: embed frontend, bump Java to 25, remove nginx [@MickLesk](https://github.com/MickLesk) ([#12223](https://github.com/community-scripts/ProxmoxVE/pull/12223))
|
||||||
|
|
||||||
### 🗑️ Deleted Scripts
|
### 🗑️ Deleted Scripts
|
||||||
|
|
||||||
- paperless-exporter ([#11737](https://github.com/community-scripts/ProxmoxVE/pull/11737))
|
- Remove: Huntarr (deprecated & Security) [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#12226](https://github.com/community-scripts/ProxmoxVE/pull/12226))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: Improve error handling and logging for LXC builds [@MickLesk](https://github.com/MickLesk) ([#12208](https://github.com/community-scripts/ProxmoxVE/pull/12208))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- calibre-web: update default credentials [@LaevaertK](https://github.com/LaevaertK) ([#12201](https://github.com/community-scripts/ProxmoxVE/pull/12201))
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- chore: update Frigate documentation and website URLs [@JohnICB](https://github.com/JohnICB) ([#12218](https://github.com/community-scripts/ProxmoxVE/pull/12218))
|
||||||
|
|
||||||
|
## 2026-02-22
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Gramps-Web ([#12157](https://github.com/community-scripts/ProxmoxVE/pull/12157))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- fix: Apache Guacamole - bump to Temurin JDK 17 to resolve Debian 13 (Trixie) install failure [@Copilot](https://github.com/Copilot) ([#12161](https://github.com/community-scripts/ProxmoxVE/pull/12161))
|
||||||
|
- Docker-VM: add error handling for virt-customize finalization [@MickLesk](https://github.com/MickLesk) ([#12127](https://github.com/community-scripts/ProxmoxVE/pull/12127))
|
||||||
|
- [Fix] Sure: add Sidekiq service [@vhsdream](https://github.com/vhsdream) ([#12186](https://github.com/community-scripts/ProxmoxVE/pull/12186))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Refactor & Bump to v2: Plex [@MickLesk](https://github.com/MickLesk) ([#12179](https://github.com/community-scripts/ProxmoxVE/pull/12179))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- karakeep: bump to node 24 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12183](https://github.com/community-scripts/ProxmoxVE/pull/12183))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: add GitHub API rate-limit detection and GITHUB_TOKEN support [@MickLesk](https://github.com/MickLesk) ([#12176](https://github.com/community-scripts/ProxmoxVE/pull/12176))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- CR*NMASTER ([#12065](https://github.com/community-scripts/ProxmoxVE/pull/12065))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Update package management commands in clean-lxcs.sh [@heinemannj](https://github.com/heinemannj) ([#12166](https://github.com/community-scripts/ProxmoxVE/pull/12166))
|
||||||
|
|
||||||
|
### ❔ Uncategorized
|
||||||
|
|
||||||
|
- calibre-web: Update logo URL [@MickLesk](https://github.com/MickLesk) ([#12178](https://github.com/community-scripts/ProxmoxVE/pull/12178))
|
||||||
|
|
||||||
|
## 2026-02-21
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Pangolin: restore config before db migration, use drizzle-kit push [@MickLesk](https://github.com/MickLesk) ([#12130](https://github.com/community-scripts/ProxmoxVE/pull/12130))
|
||||||
|
- PLANKA: fix msg's [@danielalanbates](https://github.com/danielalanbates) ([#12143](https://github.com/community-scripts/ProxmoxVE/pull/12143))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- MediaManager: Update documentation URL [@tremor021](https://github.com/tremor021) ([#12154](https://github.com/community-scripts/ProxmoxVE/pull/12154))
|
||||||
|
|
||||||
|
## 2026-02-20
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Sure ([#12114](https://github.com/community-scripts/ProxmoxVE/pull/12114))
|
||||||
|
- Calibre-Web ([#12115](https://github.com/community-scripts/ProxmoxVE/pull/12115))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Zammad: fix Elasticsearch JVM config and add daemon-reload [@MickLesk](https://github.com/MickLesk) ([#12125](https://github.com/community-scripts/ProxmoxVE/pull/12125))
|
||||||
|
- Huntarr: add build-essential for native pip dependencies [@MickLesk](https://github.com/MickLesk) ([#12126](https://github.com/community-scripts/ProxmoxVE/pull/12126))
|
||||||
|
- Dokploy: fix update function [@vhsdream](https://github.com/vhsdream) ([#12116](https://github.com/community-scripts/ProxmoxVE/pull/12116))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- recyclarr: adjust paths for v8.0 breaking changes [@MickLesk](https://github.com/MickLesk) ([#12129](https://github.com/community-scripts/ProxmoxVE/pull/12129))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Planka: migrate data paths to new v2 directory structure [@MickLesk](https://github.com/MickLesk) ([#12128](https://github.com/community-scripts/ProxmoxVE/pull/12128))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- fixen broken link to dawarich documentation [@RiX012](https://github.com/RiX012) ([#12103](https://github.com/community-scripts/ProxmoxVE/pull/12103))
|
||||||
|
|
||||||
|
## 2026-02-19
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- TrueNAS-VM ([#12059](https://github.com/community-scripts/ProxmoxVE/pull/12059))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- add: patchmon breaking change msg [@CrazyWolf13](https://github.com/CrazyWolf13) ([#12075](https://github.com/community-scripts/ProxmoxVE/pull/12075))
|
||||||
|
- LibreNMS: Various fixes [@tremor021](https://github.com/tremor021) ([#12089](https://github.com/community-scripts/ProxmoxVE/pull/12089))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- truenas-vm: slug fix for source code link [@juronja](https://github.com/juronja) ([#12088](https://github.com/community-scripts/ProxmoxVE/pull/12088))
|
||||||
|
|
||||||
|
## 2026-02-18
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- [Fix] PatchMon: use `SERVER_PORT` in Nginx config if set in env [@vhsdream](https://github.com/vhsdream) ([#12053](https://github.com/community-scripts/ProxmoxVE/pull/12053))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- core: Execution ID & Telemetry Improvements [@MickLesk](https://github.com/MickLesk) ([#12041](https://github.com/community-scripts/ProxmoxVE/pull/12041))
|
||||||
|
|
||||||
|
## 2026-02-17
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Databasus ([#12018](https://github.com/community-scripts/ProxmoxVE/pull/12018))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- [Hotfix] Cleanuparr: backup config before update [@vhsdream](https://github.com/vhsdream) ([#12039](https://github.com/community-scripts/ProxmoxVE/pull/12039))
|
||||||
|
- fix: pterodactyl-panel add symlink [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11997](https://github.com/community-scripts/ProxmoxVE/pull/11997))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- core: call get_lxc_ip in start() before updates [@MickLesk](https://github.com/MickLesk) ([#12015](https://github.com/community-scripts/ProxmoxVE/pull/12015))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools/pve: add data analytics / formatting / linting [@MickLesk](https://github.com/MickLesk) ([#12034](https://github.com/community-scripts/ProxmoxVE/pull/12034))
|
||||||
|
- core: smart recovery for failed installs | extend exit_codes [@MickLesk](https://github.com/MickLesk) ([#11221](https://github.com/community-scripts/ProxmoxVE/pull/11221))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: error-handler improvements | better exit_code handling | better tools.func source check [@MickLesk](https://github.com/MickLesk) ([#12019](https://github.com/community-scripts/ProxmoxVE/pull/12019))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Immich Public Proxy: centralize and fix systemd service creation [@MickLesk](https://github.com/MickLesk) ([#12025](https://github.com/community-scripts/ProxmoxVE/pull/12025))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- fix contribution/setup-fork [@andreasabeck](https://github.com/andreasabeck) ([#12047](https://github.com/community-scripts/ProxmoxVE/pull/12047))
|
||||||
|
|
||||||
|
## 2026-02-16
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- RomM ([#11987](https://github.com/community-scripts/ProxmoxVE/pull/11987))
|
||||||
|
- LinkDing ([#11976](https://github.com/community-scripts/ProxmoxVE/pull/11976))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Opencloud: Pin version to 5.1.0 [@vhsdream](https://github.com/vhsdream) ([#12004](https://github.com/community-scripts/ProxmoxVE/pull/12004))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tududi: Fix sed command for DB_FILE configuration [@tremor021](https://github.com/tremor021) ([#11988](https://github.com/community-scripts/ProxmoxVE/pull/11988))
|
||||||
|
- slskd: fix exit position [@MickLesk](https://github.com/MickLesk) ([#11963](https://github.com/community-scripts/ProxmoxVE/pull/11963))
|
||||||
|
- cryptpad: restore config earlier and run onlyoffice upgrade [@MickLesk](https://github.com/MickLesk) ([#11964](https://github.com/community-scripts/ProxmoxVE/pull/11964))
|
||||||
|
- jellyseerr/overseerr: Migrate update script to Seerr; prompt rerun [@MickLesk](https://github.com/MickLesk) ([#11965](https://github.com/community-scripts/ProxmoxVE/pull/11965))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core/vm's: ensure script state is sent on script exit [@MickLesk](https://github.com/MickLesk) ([#11991](https://github.com/community-scripts/ProxmoxVE/pull/11991))
|
||||||
|
- Vaultwarden: export VW_VERSION as version number [@MickLesk](https://github.com/MickLesk) ([#11966](https://github.com/community-scripts/ProxmoxVE/pull/11966))
|
||||||
|
- Zabbix: Improve zabbix-agent service detection [@MickLesk](https://github.com/MickLesk) ([#11968](https://github.com/community-scripts/ProxmoxVE/pull/11968))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: ensure /usr/local/bin PATH persists for pct enter sessions [@MickLesk](https://github.com/MickLesk) ([#11970](https://github.com/community-scripts/ProxmoxVE/pull/11970))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: remove duplicate error handler from alpine-install.func [@MickLesk](https://github.com/MickLesk) ([#11971](https://github.com/community-scripts/ProxmoxVE/pull/11971))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- github: add "website" label if "json" changed [@MickLesk](https://github.com/MickLesk) ([#11975](https://github.com/community-scripts/ProxmoxVE/pull/11975))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Update Wishlist LXC webpage to include reverse proxy info [@summoningpixels](https://github.com/summoningpixels) ([#11973](https://github.com/community-scripts/ProxmoxVE/pull/11973))
|
||||||
|
- Update OpenCloud LXC webpage to include services ports [@summoningpixels](https://github.com/summoningpixels) ([#11969](https://github.com/community-scripts/ProxmoxVE/pull/11969))
|
||||||
|
|
||||||
|
## 2026-02-15
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- ebusd ([#11942](https://github.com/community-scripts/ProxmoxVE/pull/11942))
|
||||||
|
- add: seer script and migrations [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11930](https://github.com/community-scripts/ProxmoxVE/pull/11930))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Fix seerr URL in jellyseerr script [@lucacome](https://github.com/lucacome) ([#11951](https://github.com/community-scripts/ProxmoxVE/pull/11951))
|
||||||
|
- Fix jellyseer and overseer script replacement [@lucacome](https://github.com/lucacome) ([#11949](https://github.com/community-scripts/ProxmoxVE/pull/11949))
|
||||||
|
- Tautulli: Add setuptools < 81 [@tremor021](https://github.com/tremor021) ([#11943](https://github.com/community-scripts/ProxmoxVE/pull/11943))
|
||||||
|
|
||||||
|
- #### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Refactor: Patchmon [@vhsdream](https://github.com/vhsdream) ([#11888](https://github.com/community-scripts/ProxmoxVE/pull/11888))
|
||||||
|
|
||||||
|
## 2026-02-14
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Increase disk allocation for OpenWebUI and Ollama to prevent installation failures [@Copilot](https://github.com/Copilot) ([#11920](https://github.com/community-scripts/ProxmoxVE/pull/11920))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- core: handle missing RAM speed in nested VMs [@MickLesk](https://github.com/MickLesk) ([#11913](https://github.com/community-scripts/ProxmoxVE/pull/11913))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- core: overwriteable app version [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11753](https://github.com/community-scripts/ProxmoxVE/pull/11753))
|
||||||
|
- core: validate container IDs cluster-wide across all nodes [@MickLesk](https://github.com/MickLesk) ([#11906](https://github.com/community-scripts/ProxmoxVE/pull/11906))
|
||||||
|
- core: improve error reporting with structured error strings and better categorization + output formatting [@MickLesk](https://github.com/MickLesk) ([#11907](https://github.com/community-scripts/ProxmoxVE/pull/11907))
|
||||||
|
- core: unified logging system with combined logs [@MickLesk](https://github.com/MickLesk) ([#11761](https://github.com/community-scripts/ProxmoxVE/pull/11761))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- lxc-updater: add patchmon aware [@failure101](https://github.com/failure101) ([#11905](https://github.com/community-scripts/ProxmoxVE/pull/11905))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- Disable UniFi script - APT packages no longer available [@Copilot](https://github.com/Copilot) ([#11898](https://github.com/community-scripts/ProxmoxVE/pull/11898))
|
||||||
|
|
||||||
|
## 2026-02-13
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- OpenWebUI: pin numba constraint [@MickLesk](https://github.com/MickLesk) ([#11874](https://github.com/community-scripts/ProxmoxVE/pull/11874))
|
||||||
|
- Planka: add migrate step to update function [@ZimmermannLeon](https://github.com/ZimmermannLeon) ([#11877](https://github.com/community-scripts/ProxmoxVE/pull/11877))
|
||||||
|
- Pangolin: switch sqlite-specific back to generic [@MickLesk](https://github.com/MickLesk) ([#11868](https://github.com/community-scripts/ProxmoxVE/pull/11868))
|
||||||
|
- [Hotfix] Jotty: Copy contents of config backup into /opt/jotty/config [@vhsdream](https://github.com/vhsdream) ([#11864](https://github.com/community-scripts/ProxmoxVE/pull/11864))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- Refactor: Radicale [@vhsdream](https://github.com/vhsdream) ([#11850](https://github.com/community-scripts/ProxmoxVE/pull/11850))
|
||||||
|
- chore(donetick): add config entry for v0.1.73 [@tomfrenzel](https://github.com/tomfrenzel) ([#11872](https://github.com/community-scripts/ProxmoxVE/pull/11872))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: retry reporting with fallback payloads [@MickLesk](https://github.com/MickLesk) ([#11885](https://github.com/community-scripts/ProxmoxVE/pull/11885))
|
||||||
|
|
||||||
|
### 📡 API
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- error-handler: Implement json_escape and enhance error handling [@MickLesk](https://github.com/MickLesk) ([#11875](https://github.com/community-scripts/ProxmoxVE/pull/11875))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- #### 📝 Script Information
|
||||||
|
|
||||||
|
- SQLServer-2025: add PVE9/Kernel 6.x incompatibility warning [@MickLesk](https://github.com/MickLesk) ([#11829](https://github.com/community-scripts/ProxmoxVE/pull/11829))
|
||||||
|
|
||||||
|
## 2026-02-12
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- EMQX: increase disk to 6GB and add optional MQ disable prompt [@MickLesk](https://github.com/MickLesk) ([#11844](https://github.com/community-scripts/ProxmoxVE/pull/11844))
|
||||||
|
- Increased the Grafana container default disk size. [@shtefko](https://github.com/shtefko) ([#11840](https://github.com/community-scripts/ProxmoxVE/pull/11840))
|
||||||
|
- Pangolin: Update database generation command in install script [@tremor021](https://github.com/tremor021) ([#11825](https://github.com/community-scripts/ProxmoxVE/pull/11825))
|
||||||
|
- Deluge: add python3-setuptools as dep [@MickLesk](https://github.com/MickLesk) ([#11833](https://github.com/community-scripts/ProxmoxVE/pull/11833))
|
||||||
|
- Dispatcharr: migrate to uv sync [@MickLesk](https://github.com/MickLesk) ([#11831](https://github.com/community-scripts/ProxmoxVE/pull/11831))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Archlinux-VM: fix LVM/LVM-thin storage and improve error reporting | VM's add correct exit_code for analytics [@MickLesk](https://github.com/MickLesk) ([#11842](https://github.com/community-scripts/ProxmoxVE/pull/11842))
|
||||||
|
- Debian13-VM: Optimize First Boot & add noCloud/Cloud Selection [@MickLesk](https://github.com/MickLesk) ([#11810](https://github.com/community-scripts/ProxmoxVE/pull/11810))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- tools.func: auto-detect binary vs armored GPG keys in setup_deb822_repo [@MickLesk](https://github.com/MickLesk) ([#11841](https://github.com/community-scripts/ProxmoxVE/pull/11841))
|
||||||
|
- core: remove old Go API and extend misc/api.func with new backend [@MickLesk](https://github.com/MickLesk) ([#11822](https://github.com/community-scripts/ProxmoxVE/pull/11822))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- error_handler: prevent stuck 'installing' status [@MickLesk](https://github.com/MickLesk) ([#11845](https://github.com/community-scripts/ProxmoxVE/pull/11845))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Tailscale: fix DNS check and keyrings directory issues [@MickLesk](https://github.com/MickLesk) ([#11837](https://github.com/community-scripts/ProxmoxVE/pull/11837))
|
||||||
|
|
||||||
|
## 2026-02-11
|
||||||
|
|
||||||
|
### 🆕 New Scripts
|
||||||
|
|
||||||
|
- Draw.io ([#11788](https://github.com/community-scripts/ProxmoxVE/pull/11788))
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- dispatcharr: include port 9191 in success-message [@MickLesk](https://github.com/MickLesk) ([#11808](https://github.com/community-scripts/ProxmoxVE/pull/11808))
|
||||||
|
- fix: make donetick 0.1.71 compatible [@tomfrenzel](https://github.com/tomfrenzel) ([#11804](https://github.com/community-scripts/ProxmoxVE/pull/11804))
|
||||||
|
- Kasm: Support new version URL format without hash suffix [@MickLesk](https://github.com/MickLesk) ([#11787](https://github.com/community-scripts/ProxmoxVE/pull/11787))
|
||||||
|
- LibreTranslate: Remove Torch [@tremor021](https://github.com/tremor021) ([#11783](https://github.com/community-scripts/ProxmoxVE/pull/11783))
|
||||||
|
- Snowshare: fix update script [@TuroYT](https://github.com/TuroYT) ([#11726](https://github.com/community-scripts/ProxmoxVE/pull/11726))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- [Feature] OpenCloud: support PosixFS Collaborative Mode [@vhsdream](https://github.com/vhsdream) ([#11806](https://github.com/community-scripts/ProxmoxVE/pull/11806))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- core: respect EDITOR variable for config editing [@ls-root](https://github.com/ls-root) ([#11693](https://github.com/community-scripts/ProxmoxVE/pull/11693))
|
||||||
|
|
||||||
|
### 📚 Documentation
|
||||||
|
|
||||||
|
- Fix formatting in kutt.json notes section [@tiagodenoronha](https://github.com/tiagodenoronha) ([#11774](https://github.com/community-scripts/ProxmoxVE/pull/11774))
|
||||||
|
|
||||||
|
## 2026-02-10
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Immich: Pin version to 2.5.6 [@vhsdream](https://github.com/vhsdream) ([#11775](https://github.com/community-scripts/ProxmoxVE/pull/11775))
|
||||||
|
- Libretranslate: Fix setuptools [@tremor021](https://github.com/tremor021) ([#11772](https://github.com/community-scripts/ProxmoxVE/pull/11772))
|
||||||
|
- Element Synapse: prevent systemd invoke failure during apt install [@MickLesk](https://github.com/MickLesk) ([#11758](https://github.com/community-scripts/ProxmoxVE/pull/11758))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- Refactor: Slskd & Soularr [@vhsdream](https://github.com/vhsdream) ([#11674](https://github.com/community-scripts/ProxmoxVE/pull/11674))
|
||||||
|
|
||||||
|
### 🗑️ Deleted Scripts
|
||||||
|
|
||||||
|
- move paperless-exporter from LXC to addon ([#11737](https://github.com/community-scripts/ProxmoxVE/pull/11737))
|
||||||
|
|
||||||
|
### 🧰 Tools
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- feat: improve storage parsing & add guestname [@carlosmaroot](https://github.com/carlosmaroot) ([#11752](https://github.com/community-scripts/ProxmoxVE/pull/11752))
|
||||||
|
|
||||||
|
### 📂 Github
|
||||||
|
|
||||||
|
- Github-Version Workflow: include addon scripts in extraction [@MickLesk](https://github.com/MickLesk) ([#11757](https://github.com/community-scripts/ProxmoxVE/pull/11757))
|
||||||
|
|
||||||
### 🌐 Website
|
### 🌐 Website
|
||||||
|
|
||||||
@@ -996,367 +1489,3 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
- #### ✨ New Features
|
- #### ✨ New Features
|
||||||
|
|
||||||
- core: add IPv6 fallback support to get_current_ip functions | add check for SSH_KEYS_FILE in user_defaults [@MickLesk](https://github.com/MickLesk) ([#11067](https://github.com/community-scripts/ProxmoxVE/pull/11067))
|
- core: add IPv6 fallback support to get_current_ip functions | add check for SSH_KEYS_FILE in user_defaults [@MickLesk](https://github.com/MickLesk) ([#11067](https://github.com/community-scripts/ProxmoxVE/pull/11067))
|
||||||
|
|
||||||
## 2026-01-22
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Loki | Alpine-Loki ([#11048](https://github.com/community-scripts/ProxmoxVE/pull/11048))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- Immich: Increase RAM to 6GB [@vhsdream](https://github.com/vhsdream) ([#10965](https://github.com/community-scripts/ProxmoxVE/pull/10965))
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Jotty: Increase default disk size from 6 to 8 [@tremor021](https://github.com/tremor021) ([#11056](https://github.com/community-scripts/ProxmoxVE/pull/11056))
|
|
||||||
- Fix tags in several scripts [@s4dmach1ne](https://github.com/s4dmach1ne) ([#11050](https://github.com/community-scripts/ProxmoxVE/pull/11050))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- tools: use distro packages for MariaDB by default [@MickLesk](https://github.com/MickLesk) ([#11049](https://github.com/community-scripts/ProxmoxVE/pull/11049))
|
|
||||||
|
|
||||||
## 2026-01-21
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Byparr ([#11039](https://github.com/community-scripts/ProxmoxVE/pull/11039))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- fix: Snipe-IT update missing all user uploads (#11032) [@ruanmed](https://github.com/ruanmed) ([#11033](https://github.com/community-scripts/ProxmoxVE/pull/11033))
|
|
||||||
- yubal: fix for v0.2 [@CrazyWolf13](https://github.com/CrazyWolf13) ([#11006](https://github.com/community-scripts/ProxmoxVE/pull/11006))
|
|
||||||
- Joplin-Server: use yarn workspaces focus for faster builds [@MickLesk](https://github.com/MickLesk) ([#11027](https://github.com/community-scripts/ProxmoxVE/pull/11027))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- tools: add ubuntu PHP repository setup [@MickLesk](https://github.com/MickLesk) ([#11034](https://github.com/community-scripts/ProxmoxVE/pull/11034))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- core: allow empty tags & improve template search [@MickLesk](https://github.com/MickLesk) ([#11020](https://github.com/community-scripts/ProxmoxVE/pull/11020))
|
|
||||||
|
|
||||||
### 🌐 Website
|
|
||||||
|
|
||||||
- #### 📝 Script Information
|
|
||||||
|
|
||||||
- Joplin Server: Set disable flag to true in joplin-server.json [@tremor021](https://github.com/tremor021) ([#11008](https://github.com/community-scripts/ProxmoxVE/pull/11008))
|
|
||||||
|
|
||||||
## 2026-01-20
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- dolibarr: switch mirror [@MickLesk](https://github.com/MickLesk) ([#11004](https://github.com/community-scripts/ProxmoxVE/pull/11004))
|
|
||||||
- checkmk: reordner base function [@MickLesk](https://github.com/MickLesk) ([#10990](https://github.com/community-scripts/ProxmoxVE/pull/10990))
|
|
||||||
- Homepage: preserve config directory during updates [@MickLesk](https://github.com/MickLesk) ([#10993](https://github.com/community-scripts/ProxmoxVE/pull/10993))
|
|
||||||
- DiscoPanel: add go for update build process [@miausalvaje](https://github.com/miausalvaje) ([#10991](https://github.com/community-scripts/ProxmoxVE/pull/10991))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- core: add retry logic for template lock in LXC container creation [@MickLesk](https://github.com/MickLesk) ([#11002](https://github.com/community-scripts/ProxmoxVE/pull/11002))
|
|
||||||
- core: implement ensure_profile_loaded function [@MickLesk](https://github.com/MickLesk) ([#10999](https://github.com/community-scripts/ProxmoxVE/pull/10999))
|
|
||||||
- core: add input validations for several functions [@MickLesk](https://github.com/MickLesk) ([#10995](https://github.com/community-scripts/ProxmoxVE/pull/10995))
|
|
||||||
|
|
||||||
## 2026-01-19
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- yubal ([#10955](https://github.com/community-scripts/ProxmoxVE/pull/10955))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Apache-Guacamole: move jdbc cleanup after schema upgrade [@MickLesk](https://github.com/MickLesk) ([#10974](https://github.com/community-scripts/ProxmoxVE/pull/10974))
|
|
||||||
- Outline: prevent corepack interactive prompt blocking installation [@MickLesk](https://github.com/MickLesk) ([#10973](https://github.com/community-scripts/ProxmoxVE/pull/10973))
|
|
||||||
- firefly: prevent nested storage directories during update (#10967) [@MickLesk](https://github.com/MickLesk) ([#10972](https://github.com/community-scripts/ProxmoxVE/pull/10972))
|
|
||||||
- PeaNUT: change default port [@vhsdream](https://github.com/vhsdream) ([#10962](https://github.com/community-scripts/ProxmoxVE/pull/10962))
|
|
||||||
- Update/splunk enterprise [@rcastley](https://github.com/rcastley) ([#10949](https://github.com/community-scripts/ProxmoxVE/pull/10949))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- Pangolin: use dynamic badger plugin version [@MickLesk](https://github.com/MickLesk) ([#10975](https://github.com/community-scripts/ProxmoxVE/pull/10975))
|
|
||||||
- Tautulli: add version detection and add proper update script [@MickLesk](https://github.com/MickLesk) ([#10976](https://github.com/community-scripts/ProxmoxVE/pull/10976))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Refactor: Remove custom IP fetching in scripts [@tremor021](https://github.com/tremor021) ([#10954](https://github.com/community-scripts/ProxmoxVE/pull/10954))
|
|
||||||
- Refactor: Homepage [@tremor021](https://github.com/tremor021) ([#10950](https://github.com/community-scripts/ProxmoxVE/pull/10950))
|
|
||||||
- Refactor: hev-socks5-server [@tremor021](https://github.com/tremor021) ([#10945](https://github.com/community-scripts/ProxmoxVE/pull/10945))
|
|
||||||
|
|
||||||
### 🗑️ Deleted Scripts
|
|
||||||
|
|
||||||
- Remove: phpIPAM [@MickLesk](https://github.com/MickLesk) ([#10939](https://github.com/community-scripts/ProxmoxVE/pull/10939))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- core: add RFC 1123/952 compliant hostname/FQDN validation [@MickLesk](https://github.com/MickLesk) ([#10977](https://github.com/community-scripts/ProxmoxVE/pull/10977))
|
|
||||||
- [core]: Make LXC IP a global variable [@tremor021](https://github.com/tremor021) ([#10951](https://github.com/community-scripts/ProxmoxVE/pull/10951))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Refactor: copyparty [@MickLesk](https://github.com/MickLesk) ([#10941](https://github.com/community-scripts/ProxmoxVE/pull/10941))
|
|
||||||
|
|
||||||
## 2026-01-18
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Termix ([#10887](https://github.com/community-scripts/ProxmoxVE/pull/10887))
|
|
||||||
- ThingsBoard ([#10904](https://github.com/community-scripts/ProxmoxVE/pull/10904))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Fix Patchmon install script (escaping) [@christiaangoossens](https://github.com/christiaangoossens) ([#10920](https://github.com/community-scripts/ProxmoxVE/pull/10920))
|
|
||||||
- refactor: peanut entrypoint [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10902](https://github.com/community-scripts/ProxmoxVE/pull/10902))
|
|
||||||
|
|
||||||
- #### 💥 Breaking Changes
|
|
||||||
|
|
||||||
- Update Patchmon default Nginx config (IPv6 and correct scheme) [@christiaangoossens](https://github.com/christiaangoossens) ([#10917](https://github.com/community-scripts/ProxmoxVE/pull/10917))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Refactor: FluidCalendar [@tremor021](https://github.com/tremor021) ([#10928](https://github.com/community-scripts/ProxmoxVE/pull/10928))
|
|
||||||
|
|
||||||
### 🗑️ Deleted Scripts
|
|
||||||
|
|
||||||
- Remove iVentoy script [@tremor021](https://github.com/tremor021) ([#10924](https://github.com/community-scripts/ProxmoxVE/pull/10924))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- core: improve password handling and validation logic [@MickLesk](https://github.com/MickLesk) ([#10925](https://github.com/community-scripts/ProxmoxVE/pull/10925))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- hwaccel: improve NVIDIA version matching and GPU selection UI [@MickLesk](https://github.com/MickLesk) ([#10901](https://github.com/community-scripts/ProxmoxVE/pull/10901))
|
|
||||||
|
|
||||||
### 📂 Github
|
|
||||||
|
|
||||||
- Fix typo in the New Script request template [@tremor021](https://github.com/tremor021) ([#10891](https://github.com/community-scripts/ProxmoxVE/pull/10891))
|
|
||||||
|
|
||||||
### 🌐 Website
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- fix: preserve newest scripts pagination [@jgrubiox](https://github.com/jgrubiox) ([#10882](https://github.com/community-scripts/ProxmoxVE/pull/10882))
|
|
||||||
|
|
||||||
### ❔ Uncategorized
|
|
||||||
|
|
||||||
- Update qui.json [@GalaxyCatD3v](https://github.com/GalaxyCatD3v) ([#10896](https://github.com/community-scripts/ProxmoxVE/pull/10896))
|
|
||||||
|
|
||||||
## 2026-01-17
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- TRIP ([#10864](https://github.com/community-scripts/ProxmoxVE/pull/10864))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- fix sonarqube update version info (#10870) [@Karlito83](https://github.com/Karlito83) ([#10871](https://github.com/community-scripts/ProxmoxVE/pull/10871))
|
|
||||||
- WGDashboard: Update repo URL [@tremor021](https://github.com/tremor021) ([#10872](https://github.com/community-scripts/ProxmoxVE/pull/10872))
|
|
||||||
|
|
||||||
### 🌐 Website
|
|
||||||
|
|
||||||
- #### 📝 Script Information
|
|
||||||
|
|
||||||
- Disable Palmer [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#10889](https://github.com/community-scripts/ProxmoxVE/pull/10889))
|
|
||||||
|
|
||||||
## 2026-01-16
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Flatnotes ([#10857](https://github.com/community-scripts/ProxmoxVE/pull/10857))
|
|
||||||
- Unifi OS Server ([#10856](https://github.com/community-scripts/ProxmoxVE/pull/10856))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Jotty: increase RAM; cap heap size at 3GB during build [@vhsdream](https://github.com/vhsdream) ([#10868](https://github.com/community-scripts/ProxmoxVE/pull/10868))
|
|
||||||
- SnowShare: Increase default resources [@TuroYT](https://github.com/TuroYT) ([#10865](https://github.com/community-scripts/ProxmoxVE/pull/10865))
|
|
||||||
- postgresql: name of sources file fixed (update check) [@JamborJan](https://github.com/JamborJan) ([#10854](https://github.com/community-scripts/ProxmoxVE/pull/10854))
|
|
||||||
- immich: use dpkg-query to get intel-opencl-icd version [@MickLesk](https://github.com/MickLesk) ([#10848](https://github.com/community-scripts/ProxmoxVE/pull/10848))
|
|
||||||
- domain-monitor: fix: cron user [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10846](https://github.com/community-scripts/ProxmoxVE/pull/10846))
|
|
||||||
- pihole/unbound: create unbound config before apt install to prevent port conflicts [@MickLesk](https://github.com/MickLesk) ([#10839](https://github.com/community-scripts/ProxmoxVE/pull/10839))
|
|
||||||
- zammad: use ln -sf to avoid failure when symlink exists [@MickLesk](https://github.com/MickLesk) ([#10840](https://github.com/community-scripts/ProxmoxVE/pull/10840))
|
|
||||||
|
|
||||||
### ❔ Uncategorized
|
|
||||||
|
|
||||||
- qui: fix: category [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10847](https://github.com/community-scripts/ProxmoxVE/pull/10847))
|
|
||||||
|
|
||||||
## 2026-01-15
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Qui ([#10829](https://github.com/community-scripts/ProxmoxVE/pull/10829))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- Refactor: FreshRSS + Bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#10824](https://github.com/community-scripts/ProxmoxVE/pull/10824))
|
|
||||||
|
|
||||||
## 2026-01-14
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Kutt ([#10812](https://github.com/community-scripts/ProxmoxVE/pull/10812))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Switch Ollama install to .tar.zst and add zstd dependency [@MickLesk](https://github.com/MickLesk) ([#10814](https://github.com/community-scripts/ProxmoxVE/pull/10814))
|
|
||||||
- Immich: Install libde265-dev from Debian Testing [@vhsdream](https://github.com/vhsdream) ([#10810](https://github.com/community-scripts/ProxmoxVE/pull/10810))
|
|
||||||
- nginxproxymanager: allow updates now the build is fixed [@durzo](https://github.com/durzo) ([#10796](https://github.com/community-scripts/ProxmoxVE/pull/10796))
|
|
||||||
- Fixed Apache Guacamole installer [@horvatbenjamin](https://github.com/horvatbenjamin) ([#10798](https://github.com/community-scripts/ProxmoxVE/pull/10798))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- core: Improve NVIDIA GPU setup (5000x Series) [@MickLesk](https://github.com/MickLesk) ([#10807](https://github.com/community-scripts/ProxmoxVE/pull/10807))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- Fix whiptail dialog hanging in Proxmox web console [@comk22](https://github.com/comk22) ([#10794](https://github.com/community-scripts/ProxmoxVE/pull/10794))
|
|
||||||
|
|
||||||
### 🌐 Website
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Add search filtering to CommandDialog for improved script search functionality [@BramSuurdje](https://github.com/BramSuurdje) ([#10800](https://github.com/community-scripts/ProxmoxVE/pull/10800))
|
|
||||||
|
|
||||||
## 2026-01-13
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Investbrain ([#10774](https://github.com/community-scripts/ProxmoxVE/pull/10774))
|
|
||||||
- Fladder ([#10768](https://github.com/community-scripts/ProxmoxVE/pull/10768))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Immich: Fix Intel version check; install legacy Intel packages during new install [@vhsdream](https://github.com/vhsdream) ([#10787](https://github.com/community-scripts/ProxmoxVE/pull/10787))
|
|
||||||
- Openwrt: Remove default VLAN for LAN [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#10782](https://github.com/community-scripts/ProxmoxVE/pull/10782))
|
|
||||||
- Refactor: Joplin Server [@tremor021](https://github.com/tremor021) ([#10769](https://github.com/community-scripts/ProxmoxVE/pull/10769))
|
|
||||||
- Fix Zammad nginx configuration causing installation failure [@Copilot](https://github.com/Copilot) ([#10757](https://github.com/community-scripts/ProxmoxVE/pull/10757))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Backrest: Bump to Trixie [@tremor021](https://github.com/tremor021) ([#10758](https://github.com/community-scripts/ProxmoxVE/pull/10758))
|
|
||||||
- Refactor: Caddy [@tremor021](https://github.com/tremor021) ([#10759](https://github.com/community-scripts/ProxmoxVE/pull/10759))
|
|
||||||
- Refactor: Leantime [@tremor021](https://github.com/tremor021) ([#10760](https://github.com/community-scripts/ProxmoxVE/pull/10760))
|
|
||||||
|
|
||||||
### 🧰 Tools
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- update_lxcs.sh: Add the option to skip stopped LXC [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#10783](https://github.com/community-scripts/ProxmoxVE/pull/10783))
|
|
||||||
|
|
||||||
## 2026-01-12
|
|
||||||
|
|
||||||
### 🆕 New Scripts
|
|
||||||
|
|
||||||
- Jellystat ([#10628](https://github.com/community-scripts/ProxmoxVE/pull/10628))
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- InfluxSB: fix If / fi [@chrnie](https://github.com/chrnie) ([#10753](https://github.com/community-scripts/ProxmoxVE/pull/10753))
|
|
||||||
- Cockpit: Downgrade to Debian 12 Bookworm (45Drives Issue) [@MickLesk](https://github.com/MickLesk) ([#10717](https://github.com/community-scripts/ProxmoxVE/pull/10717))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- InfluxDB: add setup for influxdb v3 [@victorlap](https://github.com/victorlap) ([#10736](https://github.com/community-scripts/ProxmoxVE/pull/10736))
|
|
||||||
- Apache Guacamole: add schema upgrades and extension updates [@MickLesk](https://github.com/MickLesk) ([#10746](https://github.com/community-scripts/ProxmoxVE/pull/10746))
|
|
||||||
- Apache Tomcat: update support and refactor install script + debian 13 [@MickLesk](https://github.com/MickLesk) ([#10739](https://github.com/community-scripts/ProxmoxVE/pull/10739))
|
|
||||||
- Apache Guacamole: Function Bump + update_script [@MickLesk](https://github.com/MickLesk) ([#10728](https://github.com/community-scripts/ProxmoxVE/pull/10728))
|
|
||||||
- Apache CouchDB: bump to debian 13 and add update support [@MickLesk](https://github.com/MickLesk) ([#10721](https://github.com/community-scripts/ProxmoxVE/pull/10721))
|
|
||||||
- Apache Cassandra: bump to debian 13 and add update support [@MickLesk](https://github.com/MickLesk) ([#10720](https://github.com/community-scripts/ProxmoxVE/pull/10720))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Refactor: Booklore [@MickLesk](https://github.com/MickLesk) ([#10742](https://github.com/community-scripts/ProxmoxVE/pull/10742))
|
|
||||||
- Bump Argus to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#10718](https://github.com/community-scripts/ProxmoxVE/pull/10718))
|
|
||||||
- Refactor Docker/Dockge & Bump to Debian 13 [@MickLesk](https://github.com/MickLesk) ([#10719](https://github.com/community-scripts/ProxmoxVE/pull/10719))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- core: remove duplicated pve_version in advanced installs [@MickLesk](https://github.com/MickLesk) ([#10743](https://github.com/community-scripts/ProxmoxVE/pull/10743))
|
|
||||||
|
|
||||||
- #### ✨ New Features
|
|
||||||
|
|
||||||
- core: add storage validation & fix GB/MB display [@MickLesk](https://github.com/MickLesk) ([#10745](https://github.com/community-scripts/ProxmoxVE/pull/10745))
|
|
||||||
- core: validate container ID before pct create to prevent failures [@MickLesk](https://github.com/MickLesk) ([#10729](https://github.com/community-scripts/ProxmoxVE/pull/10729))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Enforce non-interactive apt mode in DB setup scripts [@MickLesk](https://github.com/MickLesk) ([#10714](https://github.com/community-scripts/ProxmoxVE/pull/10714))
|
|
||||||
|
|
||||||
## 2026-01-11
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Fix Invoice Ninja Error 500 by restoring file ownership after artisan commands [@Copilot](https://github.com/Copilot) ([#10709](https://github.com/community-scripts/ProxmoxVE/pull/10709))
|
|
||||||
|
|
||||||
- #### 🔧 Refactor
|
|
||||||
|
|
||||||
- Refactor: Infisical [@tremor021](https://github.com/tremor021) ([#10693](https://github.com/community-scripts/ProxmoxVE/pull/10693))
|
|
||||||
- Refactor: HortusFox [@tremor021](https://github.com/tremor021) ([#10697](https://github.com/community-scripts/ProxmoxVE/pull/10697))
|
|
||||||
- Refactor: Homer [@tremor021](https://github.com/tremor021) ([#10698](https://github.com/community-scripts/ProxmoxVE/pull/10698))
|
|
||||||
|
|
||||||
## 2026-01-10
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- [Endurain] Increase default RAM from 2048 to 4096 [@FutureCow](https://github.com/FutureCow) ([#10690](https://github.com/community-scripts/ProxmoxVE/pull/10690))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- tools.func: hwaccel - make beignet-opencl-icd optional for legacy Intel GPUs [@MickLesk](https://github.com/MickLesk) ([#10677](https://github.com/community-scripts/ProxmoxVE/pull/10677))
|
|
||||||
|
|
||||||
## 2026-01-09
|
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
|
||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
|
||||||
|
|
||||||
- Jenkins: Fix application repository setup [@tremor021](https://github.com/tremor021) ([#10671](https://github.com/community-scripts/ProxmoxVE/pull/10671))
|
|
||||||
- deCONZ: Fix sources check in update script [@tremor021](https://github.com/tremor021) ([#10664](https://github.com/community-scripts/ProxmoxVE/pull/10664))
|
|
||||||
- Remove '--cpu' option from ExecStart command [@sethgregory](https://github.com/sethgregory) ([#10659](https://github.com/community-scripts/ProxmoxVE/pull/10659))
|
|
||||||
|
|
||||||
### 💾 Core
|
|
||||||
|
|
||||||
- #### 💥 Breaking Changes
|
|
||||||
|
|
||||||
- fix: setup_mariadb hangs on [@CrazyWolf13](https://github.com/CrazyWolf13) ([#10672](https://github.com/community-scripts/ProxmoxVE/pull/10672))
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
MONGO_USER=
|
|
||||||
MONGO_PASSWORD=
|
|
||||||
MONGO_IP=
|
|
||||||
MONGO_PORT=
|
|
||||||
MONGO_DATABASE=
|
|
||||||
23
api/go.mod
23
api/go.mod
@@ -1,23 +0,0 @@
|
|||||||
module proxmox-api
|
|
||||||
|
|
||||||
go 1.24.0
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/gorilla/mux v1.8.1
|
|
||||||
github.com/joho/godotenv v1.5.1
|
|
||||||
github.com/rs/cors v1.11.1
|
|
||||||
go.mongodb.org/mongo-driver v1.17.2
|
|
||||||
)
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/golang/snappy v0.0.4 // indirect
|
|
||||||
github.com/klauspost/compress v1.16.7 // indirect
|
|
||||||
github.com/montanaflynn/stats v0.7.1 // indirect
|
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
|
|
||||||
github.com/xdg-go/scram v1.1.2 // indirect
|
|
||||||
github.com/xdg-go/stringprep v1.0.4 // indirect
|
|
||||||
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
|
|
||||||
golang.org/x/crypto v0.45.0 // indirect
|
|
||||||
golang.org/x/sync v0.18.0 // indirect
|
|
||||||
golang.org/x/text v0.31.0 // indirect
|
|
||||||
)
|
|
||||||
56
api/go.sum
56
api/go.sum
@@ -1,56 +0,0 @@
|
|||||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
||||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
|
||||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
|
||||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
|
||||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
|
||||||
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
|
|
||||||
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
|
|
||||||
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
|
|
||||||
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
|
|
||||||
github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
|
|
||||||
github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
|
|
||||||
github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE=
|
|
||||||
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
|
|
||||||
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
|
|
||||||
github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
|
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
|
|
||||||
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
|
|
||||||
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
|
|
||||||
github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
|
|
||||||
github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8=
|
|
||||||
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
|
|
||||||
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM=
|
|
||||||
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI=
|
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
|
||||||
go.mongodb.org/mongo-driver v1.17.2 h1:gvZyk8352qSfzyZ2UMWcpDpMSGEr1eqE4T793SqyhzM=
|
|
||||||
go.mongodb.org/mongo-driver v1.17.2/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
|
||||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
|
||||||
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
|
|
||||||
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
|
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
|
||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
|
||||||
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
|
|
||||||
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
|
||||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|
||||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
|
||||||
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
|
|
||||||
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
|
||||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
|
||||||
450
api/main.go
450
api/main.go
@@ -1,450 +0,0 @@
|
|||||||
// Copyright (c) 2021-2026 community-scripts ORG
|
|
||||||
// Author: Michel Roegl-Brunner (michelroegl-brunner)
|
|
||||||
// License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
||||||
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"net/http"
|
|
||||||
"os"
|
|
||||||
"strconv"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
|
||||||
"github.com/joho/godotenv"
|
|
||||||
"github.com/rs/cors"
|
|
||||||
"go.mongodb.org/mongo-driver/bson"
|
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
||||||
"go.mongodb.org/mongo-driver/mongo"
|
|
||||||
"go.mongodb.org/mongo-driver/mongo/options"
|
|
||||||
)
|
|
||||||
|
|
||||||
var client *mongo.Client
|
|
||||||
var collection *mongo.Collection
|
|
||||||
|
|
||||||
func loadEnv() {
|
|
||||||
if err := godotenv.Load(); err != nil {
|
|
||||||
log.Fatal("Error loading .env file")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// DataModel represents a single document in MongoDB
|
|
||||||
type DataModel struct {
|
|
||||||
ID primitive.ObjectID `json:"id" bson:"_id,omitempty"`
|
|
||||||
CT_TYPE uint `json:"ct_type" bson:"ct_type"`
|
|
||||||
DISK_SIZE float32 `json:"disk_size" bson:"disk_size"`
|
|
||||||
CORE_COUNT uint `json:"core_count" bson:"core_count"`
|
|
||||||
RAM_SIZE uint `json:"ram_size" bson:"ram_size"`
|
|
||||||
OS_TYPE string `json:"os_type" bson:"os_type"`
|
|
||||||
OS_VERSION string `json:"os_version" bson:"os_version"`
|
|
||||||
DISABLEIP6 string `json:"disableip6" bson:"disableip6"`
|
|
||||||
NSAPP string `json:"nsapp" bson:"nsapp"`
|
|
||||||
METHOD string `json:"method" bson:"method"`
|
|
||||||
CreatedAt time.Time `json:"created_at" bson:"created_at"`
|
|
||||||
PVEVERSION string `json:"pve_version" bson:"pve_version"`
|
|
||||||
STATUS string `json:"status" bson:"status"`
|
|
||||||
RANDOM_ID string `json:"random_id" bson:"random_id"`
|
|
||||||
TYPE string `json:"type" bson:"type"`
|
|
||||||
ERROR string `json:"error" bson:"error"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type StatusModel struct {
|
|
||||||
RANDOM_ID string `json:"random_id" bson:"random_id"`
|
|
||||||
ERROR string `json:"error" bson:"error"`
|
|
||||||
STATUS string `json:"status" bson:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type CountResponse struct {
|
|
||||||
TotalEntries int64 `json:"total_entries"`
|
|
||||||
StatusCount map[string]int64 `json:"status_count"`
|
|
||||||
NSAPPCount map[string]int64 `json:"nsapp_count"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// ConnectDatabase initializes the MongoDB connection
|
|
||||||
func ConnectDatabase() {
|
|
||||||
loadEnv()
|
|
||||||
|
|
||||||
mongoURI := fmt.Sprintf("mongodb://%s:%s@%s:%s",
|
|
||||||
os.Getenv("MONGO_USER"),
|
|
||||||
os.Getenv("MONGO_PASSWORD"),
|
|
||||||
os.Getenv("MONGO_IP"),
|
|
||||||
os.Getenv("MONGO_PORT"))
|
|
||||||
|
|
||||||
database := os.Getenv("MONGO_DATABASE")
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
var err error
|
|
||||||
client, err = mongo.Connect(ctx, options.Client().ApplyURI(mongoURI))
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal("Failed to connect to MongoDB!", err)
|
|
||||||
}
|
|
||||||
collection = client.Database(database).Collection("data_models")
|
|
||||||
fmt.Println("Connected to MongoDB on 10.10.10.18")
|
|
||||||
}
|
|
||||||
|
|
||||||
// UploadJSON handles API requests and stores data as a document in MongoDB
|
|
||||||
func UploadJSON(w http.ResponseWriter, r *http.Request) {
|
|
||||||
var input DataModel
|
|
||||||
|
|
||||||
if err := json.NewDecoder(r.Body).Decode(&input); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
input.CreatedAt = time.Now()
|
|
||||||
|
|
||||||
_, err := collection.InsertOne(context.Background(), input)
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("Received data:", input)
|
|
||||||
w.WriteHeader(http.StatusCreated)
|
|
||||||
json.NewEncoder(w).Encode(map[string]string{"message": "Data saved successfully"})
|
|
||||||
}
|
|
||||||
|
|
||||||
// UpdateStatus updates the status of a record based on RANDOM_ID
|
|
||||||
func UpdateStatus(w http.ResponseWriter, r *http.Request) {
|
|
||||||
var input StatusModel
|
|
||||||
|
|
||||||
if err := json.NewDecoder(r.Body).Decode(&input); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
filter := bson.M{"random_id": input.RANDOM_ID}
|
|
||||||
update := bson.M{"$set": bson.M{"status": input.STATUS, "error": input.ERROR}}
|
|
||||||
|
|
||||||
_, err := collection.UpdateOne(context.Background(), filter, update)
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Println("Updated data:", input)
|
|
||||||
w.WriteHeader(http.StatusOK)
|
|
||||||
json.NewEncoder(w).Encode(map[string]string{"message": "Record updated successfully"})
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetDataJSON fetches all data from MongoDB
|
|
||||||
func GetDataJSON(w http.ResponseWriter, r *http.Request) {
|
|
||||||
var records []DataModel
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
cursor, err := collection.Find(ctx, bson.M{})
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer cursor.Close(ctx)
|
|
||||||
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var record DataModel
|
|
||||||
if err := cursor.Decode(&record); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
records = append(records, record)
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(records)
|
|
||||||
}
|
|
||||||
func GetPaginatedData(w http.ResponseWriter, r *http.Request) {
|
|
||||||
page, _ := strconv.Atoi(r.URL.Query().Get("page"))
|
|
||||||
limit, _ := strconv.Atoi(r.URL.Query().Get("limit"))
|
|
||||||
if page < 1 {
|
|
||||||
page = 1
|
|
||||||
}
|
|
||||||
if limit < 1 {
|
|
||||||
limit = 10
|
|
||||||
}
|
|
||||||
skip := (page - 1) * limit
|
|
||||||
var records []DataModel
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
options := options.Find().SetSkip(int64(skip)).SetLimit(int64(limit))
|
|
||||||
cursor, err := collection.Find(ctx, bson.M{}, options)
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer cursor.Close(ctx)
|
|
||||||
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var record DataModel
|
|
||||||
if err := cursor.Decode(&record); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
records = append(records, record)
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(records)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSummary(w http.ResponseWriter, r *http.Request) {
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
totalCount, err := collection.CountDocuments(ctx, bson.M{})
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
statusCount := make(map[string]int64)
|
|
||||||
nsappCount := make(map[string]int64)
|
|
||||||
|
|
||||||
pipeline := []bson.M{
|
|
||||||
{"$group": bson.M{"_id": "$status", "count": bson.M{"$sum": 1}}},
|
|
||||||
}
|
|
||||||
cursor, err := collection.Aggregate(ctx, pipeline)
|
|
||||||
if err == nil {
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var result struct {
|
|
||||||
ID string `bson:"_id"`
|
|
||||||
Count int64 `bson:"count"`
|
|
||||||
}
|
|
||||||
if err := cursor.Decode(&result); err == nil {
|
|
||||||
statusCount[result.ID] = result.Count
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pipeline = []bson.M{
|
|
||||||
{"$group": bson.M{"_id": "$nsapp", "count": bson.M{"$sum": 1}}},
|
|
||||||
}
|
|
||||||
cursor, err = collection.Aggregate(ctx, pipeline)
|
|
||||||
if err == nil {
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var result struct {
|
|
||||||
ID string `bson:"_id"`
|
|
||||||
Count int64 `bson:"count"`
|
|
||||||
}
|
|
||||||
if err := cursor.Decode(&result); err == nil {
|
|
||||||
nsappCount[result.ID] = result.Count
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
response := CountResponse{
|
|
||||||
TotalEntries: totalCount,
|
|
||||||
StatusCount: statusCount,
|
|
||||||
NSAPPCount: nsappCount,
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(response)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetByNsapp(w http.ResponseWriter, r *http.Request) {
|
|
||||||
nsapp := r.URL.Query().Get("nsapp")
|
|
||||||
var records []DataModel
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
cursor, err := collection.Find(ctx, bson.M{"nsapp": nsapp})
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer cursor.Close(ctx)
|
|
||||||
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var record DataModel
|
|
||||||
if err := cursor.Decode(&record); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
records = append(records, record)
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(records)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetByDateRange(w http.ResponseWriter, r *http.Request) {
|
|
||||||
|
|
||||||
startDate := r.URL.Query().Get("start_date")
|
|
||||||
endDate := r.URL.Query().Get("end_date")
|
|
||||||
|
|
||||||
if startDate == "" || endDate == "" {
|
|
||||||
http.Error(w, "Both start_date and end_date are required", http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
start, err := time.Parse("2006-01-02T15:04:05.999999+00:00", startDate+"T00:00:00+00:00")
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, "Invalid start_date format", http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
end, err := time.Parse("2006-01-02T15:04:05.999999+00:00", endDate+"T23:59:59+00:00")
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, "Invalid end_date format", http.StatusBadRequest)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var records []DataModel
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
cursor, err := collection.Find(ctx, bson.M{
|
|
||||||
"created_at": bson.M{
|
|
||||||
"$gte": start,
|
|
||||||
"$lte": end,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer cursor.Close(ctx)
|
|
||||||
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var record DataModel
|
|
||||||
if err := cursor.Decode(&record); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
records = append(records, record)
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(records)
|
|
||||||
}
|
|
||||||
func GetByStatus(w http.ResponseWriter, r *http.Request) {
|
|
||||||
status := r.URL.Query().Get("status")
|
|
||||||
var records []DataModel
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
cursor, err := collection.Find(ctx, bson.M{"status": status})
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer cursor.Close(ctx)
|
|
||||||
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var record DataModel
|
|
||||||
if err := cursor.Decode(&record); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
records = append(records, record)
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(records)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetByOS(w http.ResponseWriter, r *http.Request) {
|
|
||||||
osType := r.URL.Query().Get("os_type")
|
|
||||||
osVersion := r.URL.Query().Get("os_version")
|
|
||||||
var records []DataModel
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
cursor, err := collection.Find(ctx, bson.M{"os_type": osType, "os_version": osVersion})
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer cursor.Close(ctx)
|
|
||||||
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var record DataModel
|
|
||||||
if err := cursor.Decode(&record); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
records = append(records, record)
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(records)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetErrors(w http.ResponseWriter, r *http.Request) {
|
|
||||||
errorCount := make(map[string]int)
|
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
cursor, err := collection.Find(ctx, bson.M{"error": bson.M{"$ne": ""}})
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer cursor.Close(ctx)
|
|
||||||
|
|
||||||
for cursor.Next(ctx) {
|
|
||||||
var record DataModel
|
|
||||||
if err := cursor.Decode(&record); err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if record.ERROR != "" {
|
|
||||||
errorCount[record.ERROR]++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type ErrorCountResponse struct {
|
|
||||||
Error string `json:"error"`
|
|
||||||
Count int `json:"count"`
|
|
||||||
}
|
|
||||||
|
|
||||||
var errorCounts []ErrorCountResponse
|
|
||||||
for err, count := range errorCount {
|
|
||||||
errorCounts = append(errorCounts, ErrorCountResponse{
|
|
||||||
Error: err,
|
|
||||||
Count: count,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
|
||||||
json.NewEncoder(w).Encode(struct {
|
|
||||||
ErrorCounts []ErrorCountResponse `json:"error_counts"`
|
|
||||||
}{
|
|
||||||
ErrorCounts: errorCounts,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
ConnectDatabase()
|
|
||||||
|
|
||||||
router := mux.NewRouter()
|
|
||||||
router.HandleFunc("/upload", UploadJSON).Methods("POST")
|
|
||||||
router.HandleFunc("/upload/updatestatus", UpdateStatus).Methods("POST")
|
|
||||||
router.HandleFunc("/data/json", GetDataJSON).Methods("GET")
|
|
||||||
router.HandleFunc("/data/paginated", GetPaginatedData).Methods("GET")
|
|
||||||
router.HandleFunc("/data/summary", GetSummary).Methods("GET")
|
|
||||||
router.HandleFunc("/data/nsapp", GetByNsapp).Methods("GET")
|
|
||||||
router.HandleFunc("/data/date", GetByDateRange).Methods("GET")
|
|
||||||
router.HandleFunc("/data/status", GetByStatus).Methods("GET")
|
|
||||||
router.HandleFunc("/data/os", GetByOS).Methods("GET")
|
|
||||||
router.HandleFunc("/data/errors", GetErrors).Methods("GET")
|
|
||||||
|
|
||||||
c := cors.New(cors.Options{
|
|
||||||
AllowedOrigins: []string{"*"},
|
|
||||||
AllowedMethods: []string{"GET", "POST"},
|
|
||||||
AllowedHeaders: []string{"Content-Type", "Authorization"},
|
|
||||||
AllowCredentials: true,
|
|
||||||
})
|
|
||||||
|
|
||||||
handler := c.Handler(router)
|
|
||||||
|
|
||||||
fmt.Println("Server running on port 8080")
|
|
||||||
log.Fatal(http.ListenAndServe(":8080", handler))
|
|
||||||
}
|
|
||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: jkrgr0
|
# Author: jkrgr0
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://docs.2fauth.app/
|
# Source: https://docs.2fauth.app/ | Github: https://github.com/Bubka/2FAuth
|
||||||
|
|
||||||
APP="2FAuth"
|
APP="2FAuth"
|
||||||
var_tags="${var_tags:-2fa;authenticator}"
|
var_tags="${var_tags:-2fa;authenticator}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://actualbudget.org/
|
# Source: https://actualbudget.org/ | Github: https://github.com/actualbudget/actual
|
||||||
|
|
||||||
APP="Actual Budget"
|
APP="Actual Budget"
|
||||||
var_tags="${var_tags:-finance}"
|
var_tags="${var_tags:-finance}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://adguard.com/
|
# Source: https://adguard.com/ | Github: https://github.com/AdguardTeam/AdGuardHome
|
||||||
|
|
||||||
APP="Adguard"
|
APP="Adguard"
|
||||||
var_tags="${var_tags:-adblock}"
|
var_tags="${var_tags:-adblock}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 tteck
|
||||||
# Author: MickLesk (Canbiz)
|
# Author: MickLesk (Canbiz)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://adventurelog.app/
|
# Source: https://github.com/seanmorley15/AdventureLog
|
||||||
|
|
||||||
APP="AdventureLog"
|
APP="AdventureLog"
|
||||||
var_tags="${var_tags:-traveling}"
|
var_tags="${var_tags:-traveling}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://gitea.io
|
# Source: https://gitea.io/
|
||||||
|
|
||||||
APP="Alpine-Gitea"
|
APP="Alpine-Gitea"
|
||||||
var_tags="${var_tags:-alpine;git}"
|
var_tags="${var_tags:-alpine;git}"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ APP="Alpine-Grafana"
|
|||||||
var_tags="${var_tags:-alpine;monitoring}"
|
var_tags="${var_tags:-alpine;monitoring}"
|
||||||
var_cpu="${var_cpu:-1}"
|
var_cpu="${var_cpu:-1}"
|
||||||
var_ram="${var_ram:-256}"
|
var_ram="${var_ram:-256}"
|
||||||
var_disk="${var_disk:-1}"
|
var_disk="${var_disk:-2}"
|
||||||
var_os="${var_os:-alpine}"
|
var_os="${var_os:-alpine}"
|
||||||
var_version="${var_version:-3.23}"
|
var_version="${var_version:-3.23}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://komo.do
|
# Source: https://komo.do/
|
||||||
|
|
||||||
APP="Alpine-Komodo"
|
APP="Alpine-Komodo"
|
||||||
var_tags="${var_tags:-docker;alpine}"
|
var_tags="${var_tags:-docker;alpine}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://mariadb.org
|
# Source: https://mariadb.org/
|
||||||
|
|
||||||
APP="Alpine-MariaDB"
|
APP="Alpine-MariaDB"
|
||||||
var_tags="${var_tags:-alpine;database}"
|
var_tags="${var_tags:-alpine;database}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://nodered.org
|
# Source: https://nodered.org/
|
||||||
|
|
||||||
APP="Alpine-Node-RED"
|
APP="Alpine-Node-RED"
|
||||||
var_tags="${var_tags:-alpine;automation}"
|
var_tags="${var_tags:-alpine;automation}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://postgresql.org/
|
# Source: https://www.postgresql.org/
|
||||||
|
|
||||||
APP="Alpine-PostgreSQL"
|
APP="Alpine-PostgreSQL"
|
||||||
var_tags="${var_tags:-alpine;database}"
|
var_tags="${var_tags:-alpine;database}"
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
set +o pipefail && RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.*teamspeak3-server_linux_amd64-\([0-9.]*[0-9]\).*/\1/p' | head -1) && set -o pipefail
|
RELEASE=$(curl -fsSL https://teamspeak.com/en/downloads/#server | sed -n 's/.*teamspeak3-server_linux_amd64-\([0-9.]*[0-9]\).*/\1/p' | awk 'NR==1')
|
||||||
|
|
||||||
if [ "${RELEASE}" != "$(cat ~/.teamspeak-server)" ] || [ ! -f ~/.teamspeak-server ]; then
|
if [ "${RELEASE}" != "$(cat ~/.teamspeak-server)" ] || [ ! -f ~/.teamspeak-server ]; then
|
||||||
msg_info "Updating ${APP} LXC"
|
msg_info "Updating ${APP} LXC"
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
JAVA_VERSION="11" setup_java
|
JAVA_VERSION="17" setup_java
|
||||||
|
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop guacd tomcat
|
systemctl stop guacd tomcat
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 tteck
|
||||||
# Author: tteck
|
# Author: tteck
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://archivebox.io/
|
# Source: https://archivebox.io/ | Github: https://github.com/ArchiveBox/ArchiveBox
|
||||||
|
|
||||||
APP="ArchiveBox"
|
APP="ArchiveBox"
|
||||||
var_tags="${var_tags:-archive;bookmark}"
|
var_tags="${var_tags:-archive;bookmark}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://release-argus.io/
|
# Source: https://release-argus.io/ | Github: https://github.com/release-argus/Argus
|
||||||
|
|
||||||
APP="Argus"
|
APP="Argus"
|
||||||
var_tags="${var_tags:-watcher}"
|
var_tags="${var_tags:-watcher}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://aria2.github.io/
|
# Source: https://aria2.github.io/ | Github: https://github.com/aria2/aria2
|
||||||
|
|
||||||
APP="Aria2"
|
APP="Aria2"
|
||||||
var_tags="${var_tags:-download-utility}"
|
var_tags="${var_tags:-download-utility}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: michelroegl-brunner
|
# Author: michelroegl-brunner
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://asterisk.org/
|
# Source: https://asterisk.org
|
||||||
|
|
||||||
APP="Asterisk"
|
APP="Asterisk"
|
||||||
var_tags="${var_tags:-telephone;pbx}"
|
var_tags="${var_tags:-telephone;pbx}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: thost96 (thost96)
|
# Author: thost96 (thost96)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://www.authelia.com/
|
# Source: https://www.authelia.com/ | Github: https://github.com/authelia/authelia
|
||||||
|
|
||||||
APP="Authelia"
|
APP="Authelia"
|
||||||
var_tags="${var_tags:-authenticator}"
|
var_tags="${var_tags:-authenticator}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://autobrr.com/
|
# Source: https://autobrr.com/ | Github: https://github.com/autobrr/autobrr
|
||||||
|
|
||||||
APP="Autobrr"
|
APP="Autobrr"
|
||||||
var_tags="${var_tags:-arr;}"
|
var_tags="${var_tags:-arr;}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: ksad (enirys31)
|
# Author: ksad (enirys31)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://garethgeorge.github.io/backrest/
|
# Source: https://garethgeorge.github.io/backrest/ | Github: https://github.com/garethgeorge/backrest
|
||||||
|
|
||||||
APP="Backrest"
|
APP="Backrest"
|
||||||
var_tags="${var_tags:-backup}"
|
var_tags="${var_tags:-backup}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: bvdberg01
|
# Author: bvdberg01
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://sabre.io/baikal/
|
# Source: https://sabre.io/baikal/ | Github: https://github.com/sabre-io/Baikal
|
||||||
|
|
||||||
APP="Baikal"
|
APP="Baikal"
|
||||||
var_tags="${var_tags:-Dav}"
|
var_tags="${var_tags:-Dav}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://www.bazarr.media/
|
# Source: https://www.bazarr.media/ | Github: https://github.com/morpheus65535/bazarr
|
||||||
|
|
||||||
APP="Bazarr"
|
APP="Bazarr"
|
||||||
var_tags="${var_tags:-arr}"
|
var_tags="${var_tags:-arr}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: Michelle Zitzerman (Sinofage)
|
# Author: Michelle Zitzerman (Sinofage)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://beszel.dev/
|
# Source: https://beszel.dev/ | Github: https://github.com/henrygd/beszel
|
||||||
|
|
||||||
APP="Beszel"
|
APP="Beszel"
|
||||||
var_tags="${var_tags:-monitoring}"
|
var_tags="${var_tags:-monitoring}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: Slaviša Arežina (tremor021)
|
# Author: Slaviša Arežina (tremor021)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://github.com/bitmagnet/bitmagnet
|
# Source: https://github.com/bitmagnet-io/bitmagnet
|
||||||
|
|
||||||
APP="Bitmagnet"
|
APP="Bitmagnet"
|
||||||
var_tags="${var_tags:-os}"
|
var_tags="${var_tags:-os}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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
|
# Source: https://0xerr0r.github.io/blocky | Github: https://github.com/0xERR0R/blocky
|
||||||
|
|
||||||
APP="Blocky"
|
APP="Blocky"
|
||||||
var_tags="${var_tags:-adblock}"
|
var_tags="${var_tags:-adblock}"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if check_for_gh_release "booklore" "booklore-app/BookLore"; then
|
if check_for_gh_release "booklore" "booklore-app/BookLore"; then
|
||||||
JAVA_VERSION="21" setup_java
|
JAVA_VERSION="25" setup_java
|
||||||
NODE_VERSION="22" setup_nodejs
|
NODE_VERSION="22" setup_nodejs
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
setup_yq
|
setup_yq
|
||||||
@@ -60,11 +60,16 @@ function update_script() {
|
|||||||
$STD npm run build --configuration=production
|
$STD npm run build --configuration=production
|
||||||
msg_ok "Built Frontend"
|
msg_ok "Built Frontend"
|
||||||
|
|
||||||
|
msg_info "Embedding Frontend into Backend"
|
||||||
|
mkdir -p /opt/booklore/booklore-api/src/main/resources/static
|
||||||
|
cp -r /opt/booklore/booklore-ui/dist/booklore/browser/* /opt/booklore/booklore-api/src/main/resources/static/
|
||||||
|
msg_ok "Embedded Frontend into Backend"
|
||||||
|
|
||||||
msg_info "Building Backend"
|
msg_info "Building Backend"
|
||||||
cd /opt/booklore/booklore-api
|
cd /opt/booklore/booklore-api
|
||||||
APP_VERSION=$(get_latest_github_release "booklore-app/BookLore")
|
APP_VERSION=$(get_latest_github_release "booklore-app/BookLore")
|
||||||
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
|
yq eval ".app.version = \"${APP_VERSION}\"" -i src/main/resources/application.yaml
|
||||||
$STD ./gradlew clean build --no-daemon
|
$STD ./gradlew clean build -x test --no-daemon
|
||||||
mkdir -p /opt/booklore/dist
|
mkdir -p /opt/booklore/dist
|
||||||
JAR_PATH=$(find /opt/booklore/booklore-api/build/libs -maxdepth 1 -type f -name "booklore-api-*.jar" ! -name "*plain*" | head -n1)
|
JAR_PATH=$(find /opt/booklore/booklore-api/build/libs -maxdepth 1 -type f -name "booklore-api-*.jar" ! -name "*plain*" | head -n1)
|
||||||
if [[ -z "$JAR_PATH" ]]; then
|
if [[ -z "$JAR_PATH" ]]; then
|
||||||
@@ -74,9 +79,22 @@ function update_script() {
|
|||||||
cp "$JAR_PATH" /opt/booklore/dist/app.jar
|
cp "$JAR_PATH" /opt/booklore/dist/app.jar
|
||||||
msg_ok "Built Backend"
|
msg_ok "Built Backend"
|
||||||
|
|
||||||
|
if systemctl is-active --quiet nginx 2>/dev/null; then
|
||||||
|
msg_info "Removing Nginx (no longer needed)"
|
||||||
|
systemctl disable --now nginx
|
||||||
|
$STD apt-get purge -y nginx nginx-common
|
||||||
|
msg_ok "Removed Nginx"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! grep -q "^SERVER_PORT=" /opt/booklore_storage/.env 2>/dev/null; then
|
||||||
|
echo "SERVER_PORT=6060" >>/opt/booklore_storage/.env
|
||||||
|
fi
|
||||||
|
|
||||||
|
sed -i 's|ExecStart=/usr/bin/java -jar|ExecStart=/usr/bin/java -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+UseCompactObjectHeaders -jar|' /etc/systemd/system/booklore.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start booklore
|
systemctl start booklore
|
||||||
systemctl reload nginx
|
|
||||||
rm -rf /opt/booklore_bak
|
rm -rf /opt/booklore_bak
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://caddyserver.com/
|
# Source: https://caddyserver.com/ | Github: https://github.com/caddyserver/caddy
|
||||||
|
|
||||||
APP="Caddy"
|
APP="Caddy"
|
||||||
var_tags="${var_tags:-webserver}"
|
var_tags="${var_tags:-webserver}"
|
||||||
|
|||||||
73
ct/calibre-web.sh
Normal file
73
ct/calibre-web.sh
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: mikolaj92
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/janeczku/calibre-web
|
||||||
|
|
||||||
|
APP="calibre-web"
|
||||||
|
var_tags="${var_tags:-media;books}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-8}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/calibre-web ]]; then
|
||||||
|
msg_error "No Calibre-Web Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "Calibre-Web" "janeczku/calibre-web"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop calibre-web
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Backing up Data"
|
||||||
|
cp -r /opt/calibre-web/app.db /opt/app.db_backup
|
||||||
|
cp -r /opt/calibre-web/data /opt/data_backup
|
||||||
|
msg_ok "Backed up Data"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Calibre-Web" "janeczku/calibre-web" "prebuild" "latest" "/opt/calibre-web" "calibre-web*.tar.gz"
|
||||||
|
setup_uv
|
||||||
|
|
||||||
|
msg_info "Installing Dependencies"
|
||||||
|
cd /opt/calibre-web
|
||||||
|
$STD uv venv
|
||||||
|
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir --upgrade pip setuptools wheel
|
||||||
|
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir -r requirements.txt
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Restoring Data"
|
||||||
|
cp /opt/app.db_backup /opt/calibre-web/app.db 2>/dev/null
|
||||||
|
cp -r /opt/data_backup /opt/calibre-web/data 2>/dev/null
|
||||||
|
rm -rf /opt/app.db_backup /opt/data_backup
|
||||||
|
msg_ok "Restored Data"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start calibre-web
|
||||||
|
msg_ok "Started Service"
|
||||||
|
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}"
|
||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://changedetection.io/
|
# Source: https://changedetection.io/ | Github: https://github.com/dgtlmoon/changedetection.io
|
||||||
|
|
||||||
APP="Change Detection"
|
APP="Change Detection"
|
||||||
var_tags="${var_tags:-monitoring;crawler}"
|
var_tags="${var_tags:-monitoring;crawler}"
|
||||||
|
|||||||
@@ -32,8 +32,17 @@ function update_script() {
|
|||||||
systemctl stop cleanuparr
|
systemctl stop cleanuparr
|
||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
msg_info "Backing up config"
|
||||||
|
cp -r /opt/cleanuparr/config /opt/cleanuparr_config_backup
|
||||||
|
msg_ok "Backed up config"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||||
|
|
||||||
|
msg_info "Restoring config"
|
||||||
|
[[ -d /opt/cleanuparr/config ]] && rm -rf /opt/cleanuparr/config
|
||||||
|
mv /opt/cleanuparr_config_backup /opt/cleanuparr/config
|
||||||
|
msg_ok "Restored config"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start cleanuparr
|
systemctl start cleanuparr
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://cloudreve.org/
|
# Source: https://cloudreve.org/ | Github: https://github.com/cloudreve/cloudreve
|
||||||
|
|
||||||
APP="Cloudreve"
|
APP="Cloudreve"
|
||||||
var_tags="${var_tags:-cloud}"
|
var_tags="${var_tags:-cloud}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 tteck
|
||||||
# Author: tteck | Co-Author: havardthom
|
# Author: tteck | Co-Author: havardthom
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://cockpit-project.org/
|
# Source: https://github.com/cockpit-project/cockpit
|
||||||
|
|
||||||
APP="Cockpit"
|
APP="Cockpit"
|
||||||
var_tags="${var_tags:-monitoring;network}"
|
var_tags="${var_tags:-monitoring;network}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://www.commafeed.com/#/welcome
|
# Source: https://www.commafeed.com/#/welcome | Github: https://github.com/Athou/commafeed
|
||||||
|
|
||||||
APP="CommaFeed"
|
APP="CommaFeed"
|
||||||
var_tags="${var_tags:-rss-reader}"
|
var_tags="${var_tags:-rss-reader}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: Michel Roegl-Brunner (michelroegl-brunner)
|
# Author: Michel Roegl-Brunner (michelroegl-brunner)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://https://cosmos-cloud.io/
|
# Source: https://cosmos-cloud.io/ | Github: https://github.com/azukaar/Cosmos-Server
|
||||||
|
|
||||||
APP="Cosmos"
|
APP="Cosmos"
|
||||||
var_tags="${var_tags:-cloud;docker}"
|
var_tags="${var_tags:-cloud;docker}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: CrazyWolf13
|
# Author: CrazyWolf13
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://gitlab.com/crafty-controller/crafty-4
|
# Source: https://docs.craftycontrol.com/pages/getting-started/installation/linux/
|
||||||
|
|
||||||
APP="Crafty-Controller"
|
APP="Crafty-Controller"
|
||||||
var_tags="${var_tags:-gaming}"
|
var_tags="${var_tags:-gaming}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://cronicle.net/
|
# Source: https://cronicle.net/ | Github: https://github.com/jhuckaby/Cronicle
|
||||||
|
|
||||||
APP="Cronicle"
|
APP="Cronicle"
|
||||||
var_tags="${var_tags:-task-scheduler}"
|
var_tags="${var_tags:-task-scheduler}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: Jakub Matraszek (jmatraszek)
|
# Author: Jakub Matraszek (jmatraszek)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://www.cross-seed.org
|
# Source: https://www.cross-seed.org | Github: https://github.com/cross-seed/cross-seed
|
||||||
|
|
||||||
APP="cross-seed"
|
APP="cross-seed"
|
||||||
var_tags="${var_tags:-arr}"
|
var_tags="${var_tags:-arr}"
|
||||||
@@ -24,6 +24,8 @@ function update_script() {
|
|||||||
check_container_storage
|
check_container_storage
|
||||||
check_container_resources
|
check_container_resources
|
||||||
|
|
||||||
|
NODE_VERSION="24" setup_nodejs
|
||||||
|
|
||||||
if command -v cross-seed &>/dev/null; then
|
if command -v cross-seed &>/dev/null; then
|
||||||
current_version=$(cross-seed --version)
|
current_version=$(cross-seed --version)
|
||||||
latest_version=$(npm show cross-seed version)
|
latest_version=$(npm show cross-seed version)
|
||||||
|
|||||||
@@ -39,17 +39,20 @@ function update_script() {
|
|||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
|
||||||
|
|
||||||
|
msg_info "Restoring configuration"
|
||||||
|
mv /opt/config.js /opt/cryptpad/config/
|
||||||
|
msg_ok "Configuration restored"
|
||||||
|
|
||||||
msg_info "Updating CryptaPad"
|
msg_info "Updating CryptaPad"
|
||||||
cd /opt/cryptpad
|
cd /opt/cryptpad
|
||||||
$STD npm ci
|
$STD npm ci
|
||||||
$STD npm run install:components
|
$STD npm run install:components
|
||||||
|
if [ -f "/opt/cryptpad/install-onlyoffice.sh" ]; then
|
||||||
|
$STD bash /opt/cryptpad/install-onlyoffice.sh --accept-license
|
||||||
|
fi
|
||||||
$STD npm run build
|
$STD npm run build
|
||||||
msg_ok "Updated CryptaPad"
|
msg_ok "Updated CryptaPad"
|
||||||
|
|
||||||
msg_info "Restoring configuration"
|
|
||||||
mv /opt/config.js /opt/cryptpad/config/
|
|
||||||
msg_ok "Configuration restored"
|
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
systemctl start cryptpad
|
systemctl start cryptpad
|
||||||
msg_ok "Started Service"
|
msg_ok "Started Service"
|
||||||
|
|||||||
104
ct/databasus.sh
Normal file
104
ct/databasus.sh
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/databasus/databasus
|
||||||
|
|
||||||
|
APP="Databasus"
|
||||||
|
var_tags="${var_tags:-backup;postgresql;database}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-8}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -f /opt/databasus/databasus ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "databasus" "databasus/databasus"; then
|
||||||
|
msg_info "Stopping Databasus"
|
||||||
|
$STD systemctl stop databasus
|
||||||
|
msg_ok "Stopped Databasus"
|
||||||
|
|
||||||
|
msg_info "Backing up Configuration"
|
||||||
|
cp /opt/databasus/.env /opt/databasus.env.bak
|
||||||
|
msg_ok "Backed up Configuration"
|
||||||
|
|
||||||
|
msg_info "Ensuring Database Clients"
|
||||||
|
# Create PostgreSQL version symlinks for compatibility
|
||||||
|
for v in 12 13 14 15 16 18; do
|
||||||
|
ln -sf /usr/lib/postgresql/17 /usr/lib/postgresql/$v
|
||||||
|
done
|
||||||
|
# Install MongoDB Database Tools via direct .deb (no APT repo for Debian 13)
|
||||||
|
if ! command -v mongodump &>/dev/null; then
|
||||||
|
[[ "$(get_os_info id)" == "ubuntu" ]] && MONGO_DIST="ubuntu2204" || MONGO_DIST="debian12"
|
||||||
|
fetch_and_deploy_from_url "https://fastdl.mongodb.org/tools/db/mongodb-database-tools-${MONGO_DIST}-x86_64-100.14.1.deb"
|
||||||
|
fi
|
||||||
|
[[ -f /usr/bin/mongodump ]] && ln -sf /usr/bin/mongodump /usr/local/mongodb-database-tools/bin/mongodump
|
||||||
|
[[ -f /usr/bin/mongorestore ]] && ln -sf /usr/bin/mongorestore /usr/local/mongodb-database-tools/bin/mongorestore
|
||||||
|
# Create MariaDB and MySQL client symlinks for compatibility
|
||||||
|
ensure_dependencies mariadb-client
|
||||||
|
mkdir -p /usr/local/mariadb-{10.6,12.1}/bin /usr/local/mysql-{5.7,8.0,8.4,9}/bin /usr/local/mongodb-database-tools/bin
|
||||||
|
for dir in /usr/local/mariadb-{10.6,12.1}/bin; do
|
||||||
|
ln -sf /usr/bin/mariadb-dump "$dir/mariadb-dump"
|
||||||
|
ln -sf /usr/bin/mariadb "$dir/mariadb"
|
||||||
|
done
|
||||||
|
for dir in /usr/local/mysql-{5.7,8.0,8.4,9}/bin; do
|
||||||
|
ln -sf /usr/bin/mariadb-dump "$dir/mysqldump"
|
||||||
|
ln -sf /usr/bin/mariadb "$dir/mysql"
|
||||||
|
done
|
||||||
|
msg_ok "Ensured Database Clients"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "databasus" "databasus/databasus" "tarball" "latest" "/opt/databasus"
|
||||||
|
|
||||||
|
msg_info "Updating Databasus"
|
||||||
|
cd /opt/databasus/frontend
|
||||||
|
$STD npm ci
|
||||||
|
$STD npm run build
|
||||||
|
cd /opt/databasus/backend
|
||||||
|
$STD go mod download
|
||||||
|
$STD /root/go/bin/swag init -g cmd/main.go -o swagger
|
||||||
|
$STD env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o databasus ./cmd/main.go
|
||||||
|
mv /opt/databasus/backend/databasus /opt/databasus/databasus
|
||||||
|
mkdir -p /opt/databasus/ui/build
|
||||||
|
cp -r /opt/databasus/frontend/dist/* /opt/databasus/ui/build/
|
||||||
|
cp -r /opt/databasus/backend/migrations /opt/databasus/
|
||||||
|
chown -R postgres:postgres /opt/databasus
|
||||||
|
msg_ok "Updated Databasus"
|
||||||
|
|
||||||
|
msg_info "Restoring Configuration"
|
||||||
|
cp /opt/databasus.env.bak /opt/databasus/.env
|
||||||
|
rm -f /opt/databasus.env.bak
|
||||||
|
chown postgres:postgres /opt/databasus/.env
|
||||||
|
msg_ok "Restored Configuration"
|
||||||
|
|
||||||
|
msg_info "Starting Databasus"
|
||||||
|
$STD systemctl start databasus
|
||||||
|
msg_ok "Started Databasus"
|
||||||
|
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}"
|
||||||
@@ -28,6 +28,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
msg_info "Updating Deluge"
|
msg_info "Updating Deluge"
|
||||||
|
ensure_dependencies python3-setuptools
|
||||||
$STD apt update
|
$STD apt update
|
||||||
$STD pip3 install deluge[all] --upgrade
|
$STD pip3 install deluge[all] --upgrade
|
||||||
msg_ok "Updated Deluge"
|
msg_ok "Updated Deluge"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: DragoQC
|
# Author: DragoQC
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://discopanel.app/
|
# Source: https://discopanel.app/ | Github: https://github.com/nickheyer/discopanel
|
||||||
|
|
||||||
APP="DiscoPanel"
|
APP="DiscoPanel"
|
||||||
var_tags="${var_tags:-gaming}"
|
var_tags="${var_tags:-gaming}"
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ function update_script() {
|
|||||||
cd /opt/dispatcharr
|
cd /opt/dispatcharr
|
||||||
rm -rf .venv
|
rm -rf .venv
|
||||||
$STD uv venv --clear
|
$STD uv venv --clear
|
||||||
$STD uv pip install -r requirements.txt --index-strategy unsafe-best-match
|
$STD uv sync
|
||||||
$STD uv pip install gunicorn gevent celery redis daphne
|
$STD uv pip install gunicorn gevent celery redis daphne
|
||||||
msg_ok "Updated Dispatcharr Backend"
|
msg_ok "Updated Dispatcharr Backend"
|
||||||
|
|
||||||
@@ -144,4 +144,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}${CL}"
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9191${CL}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://docmost.com/
|
# Source: https://docmost.com/ | Github: https://github.com/docmost/docmost
|
||||||
|
|
||||||
APP="Docmost"
|
APP="Docmost"
|
||||||
var_tags="${var_tags:-documents}"
|
var_tags="${var_tags:-documents}"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ function update_script() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Updating Dokploy"
|
msg_info "Updating Dokploy"
|
||||||
$STD bash <(curl -sSL https://dokploy.com/install.sh)
|
curl -sSL https://dokploy.com/install.sh | $STD bash -s update
|
||||||
msg_ok "Updated Dokploy"
|
msg_ok "Updated Dokploy"
|
||||||
msg_ok "Updated successfully!"
|
msg_ok "Updated successfully!"
|
||||||
exit
|
exit
|
||||||
|
|||||||
@@ -35,13 +35,15 @@ function update_script() {
|
|||||||
msg_ok "Stopped Service"
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
msg_info "Backing Up Configurations"
|
msg_info "Backing Up Configurations"
|
||||||
mv /opt/donetick/config/selfhosted.yml /opt/donetick/donetick.db /opt
|
mv /opt/donetick/config/selfhosted.yaml /opt/donetick/donetick.db /opt
|
||||||
msg_ok "Backed Up Configurations"
|
msg_ok "Backed Up Configurations"
|
||||||
|
|
||||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "/opt/donetick" "donetick_Linux_x86_64.tar.gz"
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "donetick" "donetick/donetick" "prebuild" "latest" "/opt/donetick" "donetick_Linux_x86_64.tar.gz"
|
||||||
|
|
||||||
msg_info "Restoring Configurations"
|
msg_info "Restoring Configurations"
|
||||||
mv /opt/selfhosted.yml /opt/donetick/config
|
mv /opt/selfhosted.yaml /opt/donetick/config
|
||||||
|
grep -q 'http://localhost"$' /opt/donetick/config/selfhosted.yaml || sed -i '/https:\/\/localhost"$/a\ - "http://localhost"' /opt/donetick/config/selfhosted.yaml
|
||||||
|
grep -q 'capacitor://localhost' /opt/donetick/config/selfhosted.yaml || sed -i '/http:\/\/localhost"$/a\ - "capacitor://localhost"' /opt/donetick/config/selfhosted.yaml
|
||||||
mv /opt/donetick.db /opt/donetick
|
mv /opt/donetick.db /opt/donetick
|
||||||
msg_ok "Restored Configurations"
|
msg_ok "Restored Configurations"
|
||||||
|
|
||||||
|
|||||||
58
ct/drawio.sh
Normal file
58
ct/drawio.sh
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: Slaviša Arežina (tremor021)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.drawio.com/ | Github: https://github.com/jgraph/drawio
|
||||||
|
|
||||||
|
APP="DrawIO"
|
||||||
|
var_tags="${var_tags:-diagrams}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-2048}"
|
||||||
|
var_disk="${var_disk:-4}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -f /var/lib/tomcat11/webapps/draw.war ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "drawio" "jgraph/drawio"; then
|
||||||
|
msg_info "Stopping service"
|
||||||
|
systemctl stop tomcat11
|
||||||
|
msg_ok "Service stopped"
|
||||||
|
|
||||||
|
msg_info "Updating Debian LXC"
|
||||||
|
$STD apt update
|
||||||
|
$STD apt upgrade -y
|
||||||
|
msg_ok "Updated Debian LXC"
|
||||||
|
|
||||||
|
USE_ORIGINAL_FILENAME=true fetch_and_deploy_gh_release "drawio" "jgraph/drawio" "singlefile" "latest" "/var/lib/tomcat11/webapps" "draw.war"
|
||||||
|
|
||||||
|
msg_info "Starting service"
|
||||||
|
systemctl start tomcat11
|
||||||
|
msg_ok "Service started"
|
||||||
|
msg_ok "Updated successfully!"
|
||||||
|
fi
|
||||||
|
exit
|
||||||
|
}
|
||||||
|
|
||||||
|
start
|
||||||
|
build_container
|
||||||
|
description
|
||||||
|
|
||||||
|
msg_ok "Completed Successfully!\n"
|
||||||
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
||||||
|
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080/draw${CL}"
|
||||||
50
ct/ebusd.sh
Normal file
50
ct/ebusd.sh
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: Joerg Heinemann (heinemannj)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://github.com/john30/ebusd
|
||||||
|
|
||||||
|
APP="ebusd"
|
||||||
|
var_tags="${var_tags:-automation}"
|
||||||
|
var_cpu="${var_cpu:-1}"
|
||||||
|
var_ram="${var_ram:-512}"
|
||||||
|
var_disk="${var_disk:-2}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -f /etc/default/ebusd ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
if check_for_gh_release "ebusd" "john30/ebusd"; then
|
||||||
|
msg_info "Stopping Services"
|
||||||
|
systemctl stop ebusd
|
||||||
|
msg_ok "Stopped Services"
|
||||||
|
|
||||||
|
fetch_and_deploy_gh_release "ebusd" "john30/ebusd" "binary" "latest" "/opt/ebusd" "ebusd-*_amd64-trixie_mqtt1.deb"
|
||||||
|
|
||||||
|
msg_info "Starting Services"
|
||||||
|
systemctl start ebusd
|
||||||
|
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}"
|
||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://emby.media/
|
# Source: https://emby.media/ | Github: https://github.com/MediaBrowser/Emby.Releases
|
||||||
|
|
||||||
APP="Emby"
|
APP="Emby"
|
||||||
var_tags="${var_tags:-media}"
|
var_tags="${var_tags:-media}"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ APP="EMQX"
|
|||||||
var_tags="${var_tags:-mqtt}"
|
var_tags="${var_tags:-mqtt}"
|
||||||
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:-6}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 tteck
|
||||||
# Author: MickLesk (Canbiz)
|
# Author: MickLesk (Canbiz)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://ersatztv.org/
|
# Source: https://ersatztv.org/ | Github: https://github.com/ErsatzTV/ErsatzTV
|
||||||
|
|
||||||
APP="ErsatzTV"
|
APP="ErsatzTV"
|
||||||
var_tags="${var_tags:-iptv}"
|
var_tags="${var_tags:-iptv}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 tteck
|
||||||
# Author: MickLesk (Canbiz)
|
# Author: MickLesk (Canbiz)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://evcc.io/en/
|
# Source: https://github.com/evcc-io/evcc
|
||||||
|
|
||||||
APP="evcc"
|
APP="evcc"
|
||||||
var_tags="${var_tags:-solar;ev;automation}"
|
var_tags="${var_tags:-solar;ev;automation}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: quantumryuu | Co-Author: Slaviša Arežina (tremor021)
|
# Author: quantumryuu | Co-Author: Slaviša Arežina (tremor021)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://firefly-iii.org/
|
# Source: https://firefly-iii.org/ | Github: https://github.com/firefly-iii/firefly-iii
|
||||||
|
|
||||||
APP="Firefly"
|
APP="Firefly"
|
||||||
var_tags="${var_tags:-finance}"
|
var_tags="${var_tags:-finance}"
|
||||||
@@ -28,7 +28,10 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
setup_mariadb
|
setup_mariadb
|
||||||
|
PHP_VERSION="8.5" PHP_APACHE="YES" setup_php
|
||||||
|
|
||||||
if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
|
if check_for_gh_release "firefly" "firefly-iii/firefly-iii"; then
|
||||||
systemctl stop apache2
|
systemctl stop apache2
|
||||||
cp /opt/firefly/.env /opt/.env
|
cp /opt/firefly/.env /opt/.env
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://flowiseai.com/
|
# Source: https://flowiseai.com/ | Github: https://github.com/FlowiseAI/Flowise
|
||||||
|
|
||||||
APP="FlowiseAI"
|
APP="FlowiseAI"
|
||||||
var_tags="${var_tags:-low-code}"
|
var_tags="${var_tags:-low-code}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: vhsdream
|
# Author: vhsdream
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://fluidcalendar.com
|
# Source: https://github.com/dotnetfactory/fluid-calendar
|
||||||
|
|
||||||
APP="fluid-calendar"
|
APP="fluid-calendar"
|
||||||
var_tags="${var_tags:-calendar;tasks}"
|
var_tags="${var_tags:-calendar;tasks}"
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#!/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://git.community-scripts.org/community-scripts/ProxmoxVE/raw/branch/main/misc/build.func)
|
||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Authors: tteck (tteckster)
|
# Authors: MickLesk (CanbiZ) | Co-Author: remz1337
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://frigate.video/
|
# Source: https://frigate.video/ | Github: https://github.com/blakeblackshear/frigate
|
||||||
|
|
||||||
APP="Frigate"
|
APP="Frigate"
|
||||||
var_tags="${var_tags:-nvr}"
|
var_tags="${var_tags:-nvr}"
|
||||||
@@ -11,7 +11,7 @@ var_cpu="${var_cpu:-4}"
|
|||||||
var_ram="${var_ram:-4096}"
|
var_ram="${var_ram:-4096}"
|
||||||
var_disk="${var_disk:-20}"
|
var_disk="${var_disk:-20}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-11}"
|
var_version="${var_version:-12}"
|
||||||
var_unprivileged="${var_unprivileged:-0}"
|
var_unprivileged="${var_unprivileged:-0}"
|
||||||
var_gpu="${var_gpu:-yes}"
|
var_gpu="${var_gpu:-yes}"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://github.com/fuma-nama/fumadoc
|
# Source: https://fumadocs.vercel.app/ | Github: https://github.com/fuma-nama/fumadocs
|
||||||
|
|
||||||
APP="Fumadocs"
|
APP="Fumadocs"
|
||||||
var_tags="${var_tags:-documentation}"
|
var_tags="${var_tags:-documentation}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: fabrice1236
|
# Author: fabrice1236
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://ghost.org/
|
# Source: https://ghost.org/ | Github: https://github.com/TryGhost/Ghost
|
||||||
|
|
||||||
APP="Ghost"
|
APP="Ghost"
|
||||||
var_tags="${var_tags:-cms;blog}"
|
var_tags="${var_tags:-cms;blog}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: lucasfell
|
# Author: lucasfell
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://ghostfol.io/
|
# Source: https://ghostfol.io/ | Github: https://github.com/ghostfolio/ghostfolio
|
||||||
|
|
||||||
APP="Ghostfolio"
|
APP="Ghostfolio"
|
||||||
var_tags="${var_tags:-finance;investment}"
|
var_tags="${var_tags:-finance;investment}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 tteck
|
||||||
# Author: tteck (tteckster) | Co-Author: Rogue-King
|
# Author: tteck (tteckster) | Co-Author: Rogue-King
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://about.gitea.com/
|
# Source: https://about.gitea.com/ | Github: https://github.com/go-gitea/gitea
|
||||||
|
|
||||||
APP="Gitea"
|
APP="Gitea"
|
||||||
var_tags="${var_tags:-git}"
|
var_tags="${var_tags:-git}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://gotify.net/
|
# Source: https://gotify.net/ | Github: https://github.com/gotify/server
|
||||||
|
|
||||||
APP="Gotify"
|
APP="Gotify"
|
||||||
var_tags="${var_tags:-notification}"
|
var_tags="${var_tags:-notification}"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ APP="Grafana"
|
|||||||
var_tags="${var_tags:-monitoring;visualization}"
|
var_tags="${var_tags:-monitoring;visualization}"
|
||||||
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:-4}"
|
||||||
var_os="${var_os:-debian}"
|
var_os="${var_os:-debian}"
|
||||||
var_version="${var_version:-13}"
|
var_version="${var_version:-13}"
|
||||||
var_unprivileged="${var_unprivileged:-1}"
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|||||||
93
ct/gramps-web.sh
Normal file
93
ct/gramps-web.sh
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||||
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
|
# Author: MickLesk (CanbiZ)
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://www.grampsweb.org/ | Github: https://github.com/gramps-project/gramps-web
|
||||||
|
|
||||||
|
APP="gramps-web"
|
||||||
|
var_tags="${var_tags:-genealogy;family;collaboration}"
|
||||||
|
var_cpu="${var_cpu:-2}"
|
||||||
|
var_ram="${var_ram:-4096}"
|
||||||
|
var_disk="${var_disk:-20}"
|
||||||
|
var_os="${var_os:-debian}"
|
||||||
|
var_version="${var_version:-13}"
|
||||||
|
var_unprivileged="${var_unprivileged:-1}"
|
||||||
|
|
||||||
|
header_info "$APP"
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
|
||||||
|
if [[ ! -d /opt/gramps-web-api ]] || [[ ! -d /opt/gramps-web/frontend ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
NODE_VERSION="22" setup_nodejs
|
||||||
|
|
||||||
|
if check_for_gh_release "gramps-web-api" "gramps-project/gramps-web-api"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop gramps-web
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "gramps-web-api" "gramps-project/gramps-web-api" "tarball" "latest" "/opt/gramps-web-api"
|
||||||
|
|
||||||
|
msg_info "Updating Gramps Web API"
|
||||||
|
$STD uv venv -c -p python3.12 /opt/gramps-web/venv
|
||||||
|
source /opt/gramps-web/venv/bin/activate
|
||||||
|
$STD uv pip install --no-cache-dir --upgrade pip setuptools wheel
|
||||||
|
$STD uv pip install --no-cache-dir gunicorn
|
||||||
|
$STD uv pip install --no-cache-dir /opt/gramps-web-api
|
||||||
|
msg_ok "Updated Gramps Web API"
|
||||||
|
|
||||||
|
msg_info "Applying Database Migration"
|
||||||
|
cd /opt/gramps-web-api
|
||||||
|
GRAMPS_API_CONFIG=/opt/gramps-web/config/config.cfg \
|
||||||
|
ALEMBIC_CONFIG=/opt/gramps-web-api/alembic.ini \
|
||||||
|
GRAMPSHOME=/opt/gramps-web/data/gramps \
|
||||||
|
GRAMPS_DATABASE_PATH=/opt/gramps-web/data/gramps/grampsdb \
|
||||||
|
$STD /opt/gramps-web/venv/bin/python3 -m gramps_webapi user migrate
|
||||||
|
msg_ok "Applied Database Migration"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start gramps-web
|
||||||
|
msg_ok "Started Service"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if check_for_gh_release "gramps-web" "gramps-project/gramps-web"; then
|
||||||
|
msg_info "Stopping Service"
|
||||||
|
systemctl stop gramps-web
|
||||||
|
msg_ok "Stopped Service"
|
||||||
|
|
||||||
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "gramps-web" "gramps-project/gramps-web" "tarball" "latest" "/opt/gramps-web/frontend"
|
||||||
|
|
||||||
|
msg_info "Updating Gramps Web Frontend"
|
||||||
|
cd /opt/gramps-web/frontend
|
||||||
|
export COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||||
|
$STD corepack enable
|
||||||
|
$STD npm install
|
||||||
|
$STD npm run build
|
||||||
|
msg_ok "Updated Gramps Web Frontend"
|
||||||
|
|
||||||
|
msg_info "Starting Service"
|
||||||
|
systemctl start gramps-web
|
||||||
|
msg_ok "Started Service"
|
||||||
|
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}:5000${CL}"
|
||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://grocy.info/
|
# Source: https://grocy.info/ | Github: https://github.com/grocy/grocy
|
||||||
|
|
||||||
APP="grocy"
|
APP="grocy"
|
||||||
var_tags="${var_tags:-grocery;household}"
|
var_tags="${var_tags:-grocery;household}"
|
||||||
|
|||||||
6
ct/headers/calibre-web
Normal file
6
ct/headers/calibre-web
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ __
|
||||||
|
_________ _/ (_) /_ ________ _ _____ / /_
|
||||||
|
/ ___/ __ `/ / / __ \/ ___/ _ \_____| | /| / / _ \/ __ \
|
||||||
|
/ /__/ /_/ / / / /_/ / / / __/_____/ |/ |/ / __/ /_/ /
|
||||||
|
\___/\__,_/_/_/_.___/_/ \___/ |__/|__/\___/_.___/
|
||||||
|
|
||||||
6
ct/headers/databasus
Normal file
6
ct/headers/databasus
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
____ __ __
|
||||||
|
/ __ \____ _/ /_____ _/ /_ ____ ________ _______
|
||||||
|
/ / / / __ `/ __/ __ `/ __ \/ __ `/ ___/ / / / ___/
|
||||||
|
/ /_/ / /_/ / /_/ /_/ / /_/ / /_/ (__ ) /_/ (__ )
|
||||||
|
/_____/\__,_/\__/\__,_/_.___/\__,_/____/\__,_/____/
|
||||||
|
|
||||||
6
ct/headers/drawio
Normal file
6
ct/headers/drawio
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
____ ________
|
||||||
|
/ __ \_________ __ __/ _/ __ \
|
||||||
|
/ / / / ___/ __ `/ | /| / // // / / /
|
||||||
|
/ /_/ / / / /_/ /| |/ |/ // // /_/ /
|
||||||
|
/_____/_/ \__,_/ |__/|__/___/\____/
|
||||||
|
|
||||||
6
ct/headers/ebusd
Normal file
6
ct/headers/ebusd
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__ __
|
||||||
|
___ / /_ __ ___________/ /
|
||||||
|
/ _ \/ __ \/ / / / ___/ __ /
|
||||||
|
/ __/ /_/ / /_/ (__ ) /_/ /
|
||||||
|
\___/_.___/\__,_/____/\__,_/
|
||||||
|
|
||||||
6
ct/headers/gramps-web
Normal file
6
ct/headers/gramps-web
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__
|
||||||
|
____ __________ _____ ___ ____ _____ _ _____ / /_
|
||||||
|
/ __ `/ ___/ __ `/ __ `__ \/ __ \/ ___/____| | /| / / _ \/ __ \
|
||||||
|
/ /_/ / / / /_/ / / / / / / /_/ (__ )_____/ |/ |/ / __/ /_/ /
|
||||||
|
\__, /_/ \__,_/_/ /_/ /_/ .___/____/ |__/|__/\___/_.___/
|
||||||
|
/____/ /_/
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
__ __
|
|
||||||
/ /_ __ ______ / /_____ ___________
|
|
||||||
/ __ \/ / / / __ \/ __/ __ `/ ___/ ___/
|
|
||||||
/ / / / /_/ / / / / /_/ /_/ / / / /
|
|
||||||
/_/ /_/\__,_/_/ /_/\__/\__,_/_/ /_/
|
|
||||||
|
|
||||||
6
ct/headers/linkding
Normal file
6
ct/headers/linkding
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
___ __ ___
|
||||||
|
/ (_)___ / /______/ (_)___ ____ _
|
||||||
|
/ / / __ \/ //_/ __ / / __ \/ __ `/
|
||||||
|
/ / / / / / ,< / /_/ / / / / / /_/ /
|
||||||
|
/_/_/_/ /_/_/|_|\__,_/_/_/ /_/\__, /
|
||||||
|
/____/
|
||||||
6
ct/headers/romm
Normal file
6
ct/headers/romm
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
____ __ ___
|
||||||
|
/ __ \____ ____ ___ / |/ /
|
||||||
|
/ /_/ / __ \/ __ `__ \/ /|_/ /
|
||||||
|
/ _, _/ /_/ / / / / / / / / /
|
||||||
|
/_/ |_|\____/_/ /_/ /_/_/ /_/
|
||||||
|
|
||||||
6
ct/headers/seaweedfs
Normal file
6
ct/headers/seaweedfs
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_____ _____________
|
||||||
|
/ ___/___ ____ __ _____ ___ ____/ / ____/ ___/
|
||||||
|
\__ \/ _ \/ __ `/ | /| / / _ \/ _ \/ __ / /_ \__ \
|
||||||
|
___/ / __/ /_/ /| |/ |/ / __/ __/ /_/ / __/ ___/ /
|
||||||
|
/____/\___/\__,_/ |__/|__/\___/\___/\__,_/_/ /____/
|
||||||
|
|
||||||
6
ct/headers/seerr
Normal file
6
ct/headers/seerr
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_____
|
||||||
|
/ ___/___ ___ __________
|
||||||
|
\__ \/ _ \/ _ \/ ___/ ___/
|
||||||
|
___/ / __/ __/ / / /
|
||||||
|
/____/\___/\___/_/ /_/
|
||||||
|
|
||||||
6
ct/headers/sonobarr
Normal file
6
ct/headers/sonobarr
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
__
|
||||||
|
_________ ____ ____ / /_ ____ ___________
|
||||||
|
/ ___/ __ \/ __ \/ __ \/ __ \/ __ `/ ___/ ___/
|
||||||
|
(__ ) /_/ / / / / /_/ / /_/ / /_/ / / / /
|
||||||
|
/____/\____/_/ /_/\____/_.___/\__,_/_/ /_/
|
||||||
|
|
||||||
6
ct/headers/sparkyfitness
Normal file
6
ct/headers/sparkyfitness
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_____ __ _______ __
|
||||||
|
/ ___/____ ____ ______/ /____ __/ ____(_) /_____ ___ __________
|
||||||
|
\__ \/ __ \/ __ `/ ___/ //_/ / / / /_ / / __/ __ \/ _ \/ ___/ ___/
|
||||||
|
___/ / /_/ / /_/ / / / ,< / /_/ / __/ / / /_/ / / / __(__ |__ )
|
||||||
|
/____/ .___/\__,_/_/ /_/|_|\__, /_/ /_/\__/_/ /_/\___/____/____/
|
||||||
|
/_/ /____/
|
||||||
6
ct/headers/sure
Normal file
6
ct/headers/sure
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_____
|
||||||
|
/ ___/__ __________
|
||||||
|
\__ \/ / / / ___/ _ \
|
||||||
|
___/ / /_/ / / / __/
|
||||||
|
/____/\__,_/_/ \___/
|
||||||
|
|
||||||
6
ct/headers/zerobyte
Normal file
6
ct/headers/zerobyte
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
_____ __ __
|
||||||
|
/__ / ___ _________ / /_ __ __/ /____
|
||||||
|
/ / / _ \/ ___/ __ \/ __ \/ / / / __/ _ \
|
||||||
|
/ /__/ __/ / / /_/ / /_/ / /_/ / /_/ __/
|
||||||
|
/____/\___/_/ \____/_.___/\__, /\__/\___/
|
||||||
|
/____/
|
||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://healthchecks.io/
|
# Source: https://healthchecks.io/ | Github: https://github.com/healthchecks/healthchecks
|
||||||
|
|
||||||
APP="healthchecks"
|
APP="healthchecks"
|
||||||
var_tags="${var_tags:-monitoring}"
|
var_tags="${var_tags:-monitoring}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://heimdall.site/
|
# Source: https://heimdall.site/ | Github: https://github.com/linuxserver/Heimdall
|
||||||
|
|
||||||
APP="Heimdall-Dashboard"
|
APP="Heimdall-Dashboard"
|
||||||
var_tags="${var_tags:-dashboard}"
|
var_tags="${var_tags:-dashboard}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://www.hivemq.com/
|
# Source: https://www.hivemq.com/ | Github: https://github.com/hivemq/hivemq-community-edition
|
||||||
|
|
||||||
APP="HiveMQ"
|
APP="HiveMQ"
|
||||||
var_tags="${var_tags:-mqtt}"
|
var_tags="${var_tags:-mqtt}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ) | Co-Author: CrazyWolf13
|
# Author: MickLesk (CanbiZ) | Co-Author: CrazyWolf13
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://homarr.dev/
|
# Source: https://github.com/homarr-labs/homarr
|
||||||
|
|
||||||
APP="homarr"
|
APP="homarr"
|
||||||
var_tags="${var_tags:-arr;dashboard}"
|
var_tags="${var_tags:-arr;dashboard}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 tteck
|
||||||
# Author: tteck | Co-Author: MickLesk (Canbiz)
|
# Author: tteck | Co-Author: MickLesk (Canbiz)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://homebox.software/en/
|
# Source: https://github.com/sysadminsmedia/homebox
|
||||||
|
|
||||||
APP="HomeBox"
|
APP="HomeBox"
|
||||||
var_tags="${var_tags:-inventory;household}"
|
var_tags="${var_tags:-inventory;household}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://gethomepage.dev/
|
# Source: https://gethomepage.dev/ | Github: https://github.com/gethomepage/homepage
|
||||||
|
|
||||||
APP="Homepage"
|
APP="Homepage"
|
||||||
var_tags="${var_tags:-dashboard}"
|
var_tags="${var_tags:-dashboard}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: vhsdream
|
# Author: vhsdream
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://immich.app
|
# Source: https://immich.app | Github: https://github.com/immich-app/immich
|
||||||
|
|
||||||
APP="immich"
|
APP="immich"
|
||||||
var_tags="${var_tags:-photos}"
|
var_tags="${var_tags:-photos}"
|
||||||
@@ -105,7 +105,7 @@ EOF
|
|||||||
msg_ok "Image-processing libraries up to date"
|
msg_ok "Image-processing libraries up to date"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
RELEASE="2.5.5"
|
RELEASE="2.5.6"
|
||||||
if check_for_gh_release "Immich" "immich-app/immich" "${RELEASE}"; then
|
if check_for_gh_release "Immich" "immich-app/immich" "${RELEASE}"; then
|
||||||
if [[ $(cat ~/.immich) > "2.5.1" ]]; then
|
if [[ $(cat ~/.immich) > "2.5.1" ]]; then
|
||||||
msg_info "Enabling Maintenance Mode"
|
msg_info "Enabling Maintenance Mode"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: kristocopani
|
# Author: kristocopani
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://www.inspircd.org/
|
# Source: https://www.inspircd.org/ | Github: https://github.com/inspircd/inspircd
|
||||||
|
|
||||||
APP="InspIRCd"
|
APP="InspIRCd"
|
||||||
var_tags="${var_tags:-IRC}"
|
var_tags="${var_tags:-IRC}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: MickLesk (CanbiZ)
|
# Author: MickLesk (CanbiZ)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://invoiceninja.com/
|
# Source: https://invoiceninja.com/ | Github: https://github.com/invoiceninja/invoiceninja
|
||||||
|
|
||||||
APP="InvoiceNinja"
|
APP="InvoiceNinja"
|
||||||
var_tags="${var_tags:-invoicing;business}"
|
var_tags="${var_tags:-invoicing;business}"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 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://www.iobroker.net/#en/intro
|
# Source: https://www.iobroker.net/#en/intro | Github: https://github.com/ioBroker/ioBroker.js-controller
|
||||||
|
|
||||||
APP="ioBroker"
|
APP="ioBroker"
|
||||||
var_tags="${var_tags:-automtation}"
|
var_tags="${var_tags:-automtation}"
|
||||||
|
|||||||
@@ -29,47 +29,48 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$(node -v | cut -c2-3)" -ne 22 ]; then
|
if [[ -f "/opt/jellyseerr/package.json" ]] && [[ "$(grep -m1 '"version"' /opt/jellyseerr/package.json | awk -F'"' '{print $4}')" == "2.7.3" ]]; then
|
||||||
msg_info "Updating Node.js Repository"
|
echo
|
||||||
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
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||||
msg_ok "Updating Node.js Repository"
|
echo "Jellyseerr v2.7.3 detected."
|
||||||
|
echo
|
||||||
msg_info "Updating Packages"
|
echo "Seerr is the new unified Jellyseerr and Overseerr."
|
||||||
$STD apt-get update
|
echo "More info: https://docs.seerr.dev/blog/seerr-release"
|
||||||
$STD apt-get -y upgrade
|
echo
|
||||||
msg_ok "Updating Packages"
|
read -rp "Do you want to migrate to Seerr now? (y/N): " MIGRATE
|
||||||
|
echo
|
||||||
|
if [[ ! "$MIGRATE" =~ ^[Yy]$ ]]; then
|
||||||
|
msg_info "Migration cancelled. Exiting."
|
||||||
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd /opt/jellyseerr
|
msg_info "Switching update script to Seerr"
|
||||||
output=$(git pull --no-rebase)
|
cat <<'EOF' >/usr/bin/update
|
||||||
|
#!/usr/bin/env bash
|
||||||
pnpm_current=$(pnpm --version 2>/dev/null)
|
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/seerr.sh)"
|
||||||
pnpm_desired=$(grep -Po '"pnpm":\s*"\K[^"]+' /opt/jellyseerr/package.json)
|
EOF
|
||||||
|
chmod +x /usr/bin/update
|
||||||
if [ -z "$pnpm_current" ]; then
|
msg_ok "Switched update script to Seerr"
|
||||||
msg_error "pnpm not found. Installing version $pnpm_desired..."
|
msg_warn "Please type 'update' again to complete the migration"
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
exit
|
||||||
elif ! node -e "const semver = require('semver'); process.exit(semver.satisfies('$pnpm_current', '$pnpm_desired') ? 0 : 1)"; then
|
|
||||||
msg_error "Updating pnpm from version $pnpm_current to $pnpm_desired..."
|
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
|
||||||
else
|
|
||||||
msg_ok "pnpm is already installed and satisfies version $pnpm_desired."
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Updating Jellyseerr"
|
msg_info "Updating Jellyseerr"
|
||||||
|
cd /opt/jellyseerr
|
||||||
|
systemctl stop jellyseerr
|
||||||
|
output=$(git pull --no-rebase)
|
||||||
|
pnpm_desired=$(grep -Po '"pnpm":\s*"\K[^"]+' /opt/jellyseerr/package.json)
|
||||||
|
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
||||||
if echo "$output" | grep -q "Already up to date."; then
|
if echo "$output" | grep -q "Already up to date."; then
|
||||||
msg_ok "$APP is already up to date."
|
msg_ok "$APP is already up to date."
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
systemctl stop jellyseerr
|
|
||||||
rm -rf dist .next node_modules
|
rm -rf dist .next node_modules
|
||||||
export CYPRESS_INSTALL_BINARY=0
|
export CYPRESS_INSTALL_BINARY=0
|
||||||
cd /opt/jellyseerr
|
cd /opt/jellyseerr
|
||||||
$STD pnpm install --frozen-lockfile
|
$STD pnpm install --frozen-lockfile
|
||||||
export NODE_OPTIONS="--max-old-space-size=3072"
|
export NODE_OPTIONS="--max-old-space-size=3072"
|
||||||
$STD pnpm build
|
$STD pnpm build
|
||||||
|
|
||||||
cat <<EOF >/etc/systemd/system/jellyseerr.service
|
cat <<EOF >/etc/systemd/system/jellyseerr.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=jellyseerr Service
|
Description=jellyseerr Service
|
||||||
@@ -85,7 +86,6 @@ ExecStart=/usr/bin/node dist/index.js
|
|||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl start jellyseerr
|
systemctl start jellyseerr
|
||||||
msg_ok "Updated Jellyseerr"
|
msg_ok "Updated Jellyseerr"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 community-scripts ORG
|
# Copyright (c) 2021-2026 community-scripts ORG
|
||||||
# Author: Slaviša Arežina (tremor021)
|
# Author: Slaviša Arežina (tremor021)
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://joplinapp.org/
|
# Source: https://joplinapp.org/ | Github: https://github.com/laurent22/joplin
|
||||||
|
|
||||||
APP="Joplin-Server"
|
APP="Joplin-Server"
|
||||||
var_tags="${var_tags:-notes}"
|
var_tags="${var_tags:-notes}"
|
||||||
@@ -28,7 +28,7 @@ function update_script() {
|
|||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
NODE_VERSION=24 NODE_MODULE="yarn,npm,pm2" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="yarn,npm,pm2" setup_nodejs
|
||||||
|
|
||||||
if check_for_gh_release "joplin-server" "laurent22/joplin"; then
|
if check_for_gh_release "joplin-server" "laurent22/joplin"; then
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ function update_script() {
|
|||||||
msg_info "Restoring configuration & data"
|
msg_info "Restoring configuration & data"
|
||||||
mv /opt/app.env /opt/jotty/.env
|
mv /opt/app.env /opt/jotty/.env
|
||||||
[[ -d /opt/data ]] && mv /opt/data /opt/jotty/data
|
[[ -d /opt/data ]] && mv /opt/data /opt/jotty/data
|
||||||
[[ -d /opt/jotty/config ]] && mv /opt/config/* /opt/jotty/config
|
[[ -d /opt/jotty/config ]] && cp -a /opt/config/* /opt/jotty/config && rm -rf /opt/config
|
||||||
msg_ok "Restored configuration & data"
|
msg_ok "Restored configuration & data"
|
||||||
|
|
||||||
msg_info "Starting Service"
|
msg_info "Starting Service"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxV
|
|||||||
# Copyright (c) 2021-2026 tteck
|
# Copyright (c) 2021-2026 tteck
|
||||||
# Author: MickLesk (Canbiz) & vhsdream
|
# Author: MickLesk (Canbiz) & vhsdream
|
||||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
# Source: https://karakeep.app/
|
# Source: https://karakeep.app/ | Github: https://github.com/karakeep-app/karakeep
|
||||||
|
|
||||||
APP="karakeep"
|
APP="karakeep"
|
||||||
var_tags="${var_tags:-bookmark}"
|
var_tags="${var_tags:-bookmark}"
|
||||||
@@ -60,7 +60,7 @@ function update_script() {
|
|||||||
$STD corepack disable
|
$STD corepack disable
|
||||||
fi
|
fi
|
||||||
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
|
MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)"
|
||||||
NODE_VERSION="22" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
|
NODE_VERSION="24" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs
|
||||||
setup_meilisearch
|
setup_meilisearch
|
||||||
|
|
||||||
msg_info "Updating Karakeep"
|
msg_info "Updating Karakeep"
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user