mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-24 06:25:15 +00:00
Compare commits
9 Commits
2025-09-04
...
2025-09-05
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bbe71cbbb9 | ||
|
|
9b6a736c8c | ||
|
|
c395ccc270 | ||
|
|
3dd72e08e9 | ||
|
|
1d989bea73 | ||
|
|
f881b88344 | ||
|
|
06dbad83ef | ||
|
|
7ff966b042 | ||
|
|
62264f37a6 |
14
CHANGELOG.md
14
CHANGELOG.md
@@ -10,8 +10,22 @@
|
|||||||
> [!CAUTION]
|
> [!CAUTION]
|
||||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||||
|
|
||||||
|
## 2025-09-06
|
||||||
|
|
||||||
## 2025-09-05
|
## 2025-09-05
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Tududi: Pin version to 0.80 [@vhsdream](https://github.com/vhsdream) ([#7420](https://github.com/community-scripts/ProxmoxVE/pull/7420))
|
||||||
|
|
||||||
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- AdventureLog: Update dependencies [@tremor021](https://github.com/tremor021) ([#7404](https://github.com/community-scripts/ProxmoxVE/pull/7404))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state [@BramSuurdje](https://github.com/BramSuurdje) ([#7405](https://github.com/community-scripts/ProxmoxVE/pull/7405))
|
||||||
|
|
||||||
## 2025-09-04
|
## 2025-09-04
|
||||||
|
|
||||||
### 🚀 Updated Scripts
|
### 🚀 Updated Scripts
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ function update_script() {
|
|||||||
msg_error "No ${APP} Installation Found!"
|
msg_error "No ${APP} Installation Found!"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
if ! command -v memcached >/dev/null 2>&1; then
|
||||||
|
$STD apt-get update
|
||||||
|
$STD apt-get install -y memcached libmemcached-tools
|
||||||
|
fi
|
||||||
if check_for_gh_release "adventurelog" "seanmorley15/adventurelog"; then
|
if check_for_gh_release "adventurelog" "seanmorley15/adventurelog"; then
|
||||||
msg_info "Stopping Services"
|
msg_info "Stopping Services"
|
||||||
systemctl stop adventurelog-backend
|
systemctl stop adventurelog-backend
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ function update_script() {
|
|||||||
rm -rf /opt/tududi/backend/dist
|
rm -rf /opt/tududi/backend/dist
|
||||||
msg_ok "Backup and removed Files"
|
msg_ok "Backup and removed Files"
|
||||||
|
|
||||||
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi"
|
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi" "tarball" "v0.80" "/opt/tududi"
|
||||||
|
|
||||||
msg_info "Updating ${APP}"
|
msg_info "Updating ${APP}"
|
||||||
cd /opt/tududi
|
cd /opt/tududi
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ const nextConfig = {
|
|||||||
BASE_PATH: "ProxmoxVE",
|
BASE_PATH: "ProxmoxVE",
|
||||||
},
|
},
|
||||||
|
|
||||||
|
eslint: {
|
||||||
|
ignoreDuringBuilds: true,
|
||||||
|
},
|
||||||
|
|
||||||
output: "export",
|
output: "export",
|
||||||
basePath: `/ProxmoxVE`,
|
basePath: `/ProxmoxVE`,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,114 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "moghtech/komodo",
|
||||||
|
"version": "v1.19.3",
|
||||||
|
"date": "2025-09-05T21:32:38Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "homarr-labs/homarr",
|
||||||
|
"version": "v1.36.1",
|
||||||
|
"date": "2025-09-05T21:14:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "booklore-app/booklore",
|
||||||
|
"version": "v1.2.0",
|
||||||
|
"date": "2025-09-05T20:43:03Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "immich-app/immich",
|
||||||
|
"version": "v1.141.1",
|
||||||
|
"date": "2025-09-05T19:44:39Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "gtsteffaniak/filebrowser",
|
||||||
|
"version": "v0.8.4-beta",
|
||||||
|
"date": "2025-09-05T19:34:44Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Stirling-Tools/Stirling-PDF",
|
||||||
|
"version": "v1.3.2",
|
||||||
|
"date": "2025-09-05T18:44:15Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "diced/zipline",
|
||||||
|
"version": "v4.3.0",
|
||||||
|
"date": "2025-09-05T18:43:28Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "rcourtman/Pulse",
|
||||||
|
"version": "v4.14.0",
|
||||||
|
"date": "2025-09-05T18:28:28Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "henrygd/beszel",
|
||||||
|
"version": "v0.12.7",
|
||||||
|
"date": "2025-09-05T18:11:36Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Brandawg93/PeaNUT",
|
||||||
|
"version": "v5.14.2",
|
||||||
|
"date": "2025-09-05T17:24:12Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "fuma-nama/fumadocs",
|
||||||
|
"version": "create-fumadocs-app@15.7.9",
|
||||||
|
"date": "2025-09-05T14:33:41Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wizarrrr/wizarr",
|
||||||
|
"version": "2025.9.0",
|
||||||
|
"date": "2025-09-05T14:21:34Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "cross-seed/cross-seed",
|
||||||
|
"version": "v6.13.2",
|
||||||
|
"date": "2025-08-19T18:18:40Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "chrisvel/tududi",
|
||||||
|
"version": "v0.80",
|
||||||
|
"date": "2025-07-24T14:12:39Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "home-assistant/core",
|
||||||
|
"version": "2025.9.1",
|
||||||
|
"date": "2025-09-05T11:15:21Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "syncthing/syncthing",
|
||||||
|
"version": "v2.0.7",
|
||||||
|
"date": "2025-09-05T10:18:24Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "zitadel/zitadel",
|
||||||
|
"version": "v4.1.2",
|
||||||
|
"date": "2025-09-05T08:23:30Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jackett/Jackett",
|
||||||
|
"version": "v0.22.2429",
|
||||||
|
"date": "2025-09-05T06:05:30Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CrazyWolf13/streamlink-webui",
|
||||||
|
"version": "0.6",
|
||||||
|
"date": "2025-09-05T06:05:04Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "louislam/uptime-kuma",
|
||||||
|
"version": "2.0.0-beta.2-temp",
|
||||||
|
"date": "2025-03-28T08:45:58Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "jeedom/core",
|
||||||
|
"version": "4.4.19",
|
||||||
|
"date": "2025-09-05T00:27:15Z"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "steveiliop56/tinyauth",
|
||||||
|
"version": "v3.6.2",
|
||||||
|
"date": "2025-07-17T12:08:03Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "wazuh/wazuh",
|
"name": "wazuh/wazuh",
|
||||||
"version": "coverity-w36-4.13.0",
|
"version": "coverity-w36-4.13.0",
|
||||||
@@ -19,11 +129,6 @@
|
|||||||
"version": "v1.0.0-beta17",
|
"version": "v1.0.0-beta17",
|
||||||
"date": "2025-09-04T21:30:14Z"
|
"date": "2025-09-04T21:30:14Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "rcourtman/Pulse",
|
|
||||||
"version": "v4.13.0",
|
|
||||||
"date": "2025-09-03T13:48:17Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "TandoorRecipes/recipes",
|
"name": "TandoorRecipes/recipes",
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
@@ -34,11 +139,6 @@
|
|||||||
"version": "r7.0.24",
|
"version": "r7.0.24",
|
||||||
"date": "2025-09-04T19:50:49Z"
|
"date": "2025-09-04T19:50:49Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "immich-app/immich",
|
|
||||||
"version": "v1.141.0",
|
|
||||||
"date": "2025-09-04T19:42:02Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Cleanuparr/Cleanuparr",
|
"name": "Cleanuparr/Cleanuparr",
|
||||||
"version": "v2.2.3",
|
"version": "v2.2.3",
|
||||||
@@ -49,6 +149,11 @@
|
|||||||
"version": "v5.40.1",
|
"version": "v5.40.1",
|
||||||
"date": "2025-09-04T19:10:45Z"
|
"date": "2025-09-04T19:10:45Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "runtipi/runtipi",
|
||||||
|
"version": "nightly",
|
||||||
|
"date": "2025-09-04T18:29:10Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "AdguardTeam/AdGuardHome",
|
"name": "AdguardTeam/AdGuardHome",
|
||||||
"version": "v0.107.65",
|
"version": "v0.107.65",
|
||||||
@@ -74,6 +179,11 @@
|
|||||||
"version": "v4.5.1",
|
"version": "v4.5.1",
|
||||||
"date": "2025-09-04T16:02:49Z"
|
"date": "2025-09-04T16:02:49Z"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "keycloak/keycloak",
|
||||||
|
"version": "26.0.15",
|
||||||
|
"date": "2025-08-27T12:12:03Z"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "semaphoreui/semaphore",
|
"name": "semaphoreui/semaphore",
|
||||||
"version": "v2.16.19",
|
"version": "v2.16.19",
|
||||||
@@ -114,56 +224,21 @@
|
|||||||
"version": "v1.5.3-beta.10",
|
"version": "v1.5.3-beta.10",
|
||||||
"date": "2025-07-15T06:07:03Z"
|
"date": "2025-07-15T06:07:03Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Jackett/Jackett",
|
|
||||||
"version": "v0.22.2418",
|
|
||||||
"date": "2025-09-04T05:53:46Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "actualbudget/actual",
|
"name": "actualbudget/actual",
|
||||||
"version": "v25.9.0",
|
"version": "v25.9.0",
|
||||||
"date": "2025-09-04T01:12:37Z"
|
"date": "2025-09-04T01:12:37Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "jeedom/core",
|
|
||||||
"version": "4.4.19",
|
|
||||||
"date": "2025-09-04T00:27:08Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "hyperion-project/hyperion.ng",
|
"name": "hyperion-project/hyperion.ng",
|
||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"date": "2025-06-14T17:45:06Z"
|
"date": "2025-06-14T17:45:06Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "steveiliop56/tinyauth",
|
|
||||||
"version": "v3.6.2",
|
|
||||||
"date": "2025-07-17T12:08:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "VictoriaMetrics/VictoriaMetrics",
|
"name": "VictoriaMetrics/VictoriaMetrics",
|
||||||
"version": "pmm-6401-v1.125.1",
|
"version": "pmm-6401-v1.125.1",
|
||||||
"date": "2025-09-03T20:17:18Z"
|
"date": "2025-09-03T20:17:18Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "keycloak/keycloak",
|
|
||||||
"version": "26.0.15",
|
|
||||||
"date": "2025-08-27T12:12:03Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "homarr-labs/homarr",
|
|
||||||
"version": "v1.35.1",
|
|
||||||
"date": "2025-09-03T18:53:36Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "home-assistant/core",
|
|
||||||
"version": "2025.9.0",
|
|
||||||
"date": "2025-09-03T17:58:41Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "zitadel/zitadel",
|
|
||||||
"version": "v4.1.1",
|
|
||||||
"date": "2025-09-03T15:12:56Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Graylog2/graylog2-server",
|
"name": "Graylog2/graylog2-server",
|
||||||
"version": "6.1.15",
|
"version": "6.1.15",
|
||||||
@@ -214,26 +289,11 @@
|
|||||||
"version": "cassandra-4.1.10",
|
"version": "cassandra-4.1.10",
|
||||||
"date": "2025-09-03T08:46:02Z"
|
"date": "2025-09-03T08:46:02Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "syncthing/syncthing",
|
|
||||||
"version": "v2.0.6",
|
|
||||||
"date": "2025-09-03T07:55:14Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "booklore-app/booklore",
|
|
||||||
"version": "v1.1.2",
|
|
||||||
"date": "2025-09-03T03:18:53Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "crafty-controller/crafty-4",
|
"name": "crafty-controller/crafty-4",
|
||||||
"version": "v4.5.3",
|
"version": "v4.5.3",
|
||||||
"date": "2025-09-02T23:52:26Z"
|
"date": "2025-09-02T23:52:26Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "runtipi/runtipi",
|
|
||||||
"version": "nightly",
|
|
||||||
"date": "2025-09-02T19:26:18Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Luligu/matterbridge",
|
"name": "Luligu/matterbridge",
|
||||||
"version": "3.2.5",
|
"version": "3.2.5",
|
||||||
@@ -259,11 +319,6 @@
|
|||||||
"version": "10.1.45",
|
"version": "10.1.45",
|
||||||
"date": "2025-09-02T12:46:34Z"
|
"date": "2025-09-02T12:46:34Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "fuma-nama/fumadocs",
|
|
||||||
"version": "fumadocs-ui@15.7.8",
|
|
||||||
"date": "2025-09-02T11:29:00Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Dolibarr/dolibarr",
|
"name": "Dolibarr/dolibarr",
|
||||||
"version": "22.0.1",
|
"version": "22.0.1",
|
||||||
@@ -354,21 +409,11 @@
|
|||||||
"version": "0.20.1",
|
"version": "0.20.1",
|
||||||
"date": "2025-09-01T07:35:48Z"
|
"date": "2025-09-01T07:35:48Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "moghtech/komodo",
|
|
||||||
"version": "v1.19.2",
|
|
||||||
"date": "2025-09-01T02:33:52Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "YunoHost/yunohost",
|
"name": "YunoHost/yunohost",
|
||||||
"version": "debian/12.1.17.1",
|
"version": "debian/12.1.17.1",
|
||||||
"date": "2025-08-31T21:38:21Z"
|
"date": "2025-08-31T21:38:21Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "wizarrrr/wizarr",
|
|
||||||
"version": "2025.8.5",
|
|
||||||
"date": "2025-08-31T17:56:37Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "karakeep-app/karakeep",
|
"name": "karakeep-app/karakeep",
|
||||||
"version": "ios/v1.8.0-1",
|
"version": "ios/v1.8.0-1",
|
||||||
@@ -399,21 +444,11 @@
|
|||||||
"version": "v0.9.91",
|
"version": "v0.9.91",
|
||||||
"date": "2025-08-30T21:49:57Z"
|
"date": "2025-08-30T21:49:57Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Brandawg93/PeaNUT",
|
|
||||||
"version": "v5.14.0",
|
|
||||||
"date": "2025-08-30T18:41:03Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "bunkerity/bunkerweb",
|
"name": "bunkerity/bunkerweb",
|
||||||
"version": "v1.6.4",
|
"version": "v1.6.4",
|
||||||
"date": "2025-08-18T20:22:07Z"
|
"date": "2025-08-18T20:22:07Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "henrygd/beszel",
|
|
||||||
"version": "v0.12.6",
|
|
||||||
"date": "2025-08-29T21:40:09Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "msgbyte/tianji",
|
"name": "msgbyte/tianji",
|
||||||
"version": "v1.24.26",
|
"version": "v1.24.26",
|
||||||
@@ -499,11 +534,6 @@
|
|||||||
"version": "v0.37.0",
|
"version": "v0.37.0",
|
||||||
"date": "2025-08-27T20:03:52Z"
|
"date": "2025-08-27T20:03:52Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "gtsteffaniak/filebrowser",
|
|
||||||
"version": "v0.8.3-beta",
|
|
||||||
"date": "2025-08-27T18:18:48Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "zwave-js/zwave-js-ui",
|
"name": "zwave-js/zwave-js-ui",
|
||||||
"version": "v11.2.1",
|
"version": "v11.2.1",
|
||||||
@@ -679,21 +709,11 @@
|
|||||||
"version": "v5.23.2",
|
"version": "v5.23.2",
|
||||||
"date": "2025-08-19T21:24:45Z"
|
"date": "2025-08-19T21:24:45Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "cross-seed/cross-seed",
|
|
||||||
"version": "v6.13.2",
|
|
||||||
"date": "2025-08-19T18:18:40Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "karlomikus/bar-assistant",
|
"name": "karlomikus/bar-assistant",
|
||||||
"version": "v5.8.0",
|
"version": "v5.8.0",
|
||||||
"date": "2025-08-19T16:46:00Z"
|
"date": "2025-08-19T16:46:00Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "chrisvel/tududi",
|
|
||||||
"version": "v0.80",
|
|
||||||
"date": "2025-07-24T14:12:39Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "oauth2-proxy/oauth2-proxy",
|
"name": "oauth2-proxy/oauth2-proxy",
|
||||||
"version": "v7.12.0",
|
"version": "v7.12.0",
|
||||||
@@ -794,16 +814,6 @@
|
|||||||
"version": "1012-08-09",
|
"version": "1012-08-09",
|
||||||
"date": "2025-08-10T13:50:58Z"
|
"date": "2025-08-10T13:50:58Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "diced/zipline",
|
|
||||||
"version": "v4.2.3",
|
|
||||||
"date": "2025-08-10T05:53:43Z"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Stirling-Tools/Stirling-PDF",
|
|
||||||
"version": "v1.2.0",
|
|
||||||
"date": "2025-08-09T14:30:52Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "kimai/kimai",
|
"name": "kimai/kimai",
|
||||||
"version": "2.38.0",
|
"version": "2.38.0",
|
||||||
@@ -1134,11 +1144,6 @@
|
|||||||
"version": "v0.14.1",
|
"version": "v0.14.1",
|
||||||
"date": "2025-06-04T08:57:15Z"
|
"date": "2025-06-04T08:57:15Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "louislam/uptime-kuma",
|
|
||||||
"version": "2.0.0-beta.2-temp",
|
|
||||||
"date": "2025-03-28T08:45:58Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Pf2eToolsOrg/Pf2eTools",
|
"name": "Pf2eToolsOrg/Pf2eTools",
|
||||||
"version": "v0.9.0",
|
"version": "v0.9.0",
|
||||||
@@ -1159,11 +1164,6 @@
|
|||||||
"version": "v0.26.2",
|
"version": "v0.26.2",
|
||||||
"date": "2025-05-22T05:24:42Z"
|
"date": "2025-05-22T05:24:42Z"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "CrazyWolf13/streamlink-webui",
|
|
||||||
"version": "0.5",
|
|
||||||
"date": "2025-05-21T20:19:14Z"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "hansmi/prometheus-paperless-exporter",
|
"name": "hansmi/prometheus-paperless-exporter",
|
||||||
"version": "v0.0.8",
|
"version": "v0.0.8",
|
||||||
|
|||||||
@@ -73,7 +73,13 @@ function CategoryView() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleScriptClick = (scriptSlug: string) => {
|
const handleScriptClick = (scriptSlug: string) => {
|
||||||
router.push(`/scripts?id=${scriptSlug}`);
|
// Include category context when navigating to scripts
|
||||||
|
const categoryName = selectedCategoryIndex !== null ? categories[selectedCategoryIndex]?.name : null;
|
||||||
|
const queryParams = new URLSearchParams({ id: scriptSlug });
|
||||||
|
if (categoryName) {
|
||||||
|
queryParams.append("category", categoryName);
|
||||||
|
}
|
||||||
|
router.push(`/scripts?${queryParams.toString()}`);
|
||||||
};
|
};
|
||||||
|
|
||||||
const navigateCategory = (direction: "prev" | "next") => {
|
const navigateCategory = (direction: "prev" | "next") => {
|
||||||
|
|||||||
@@ -4,12 +4,7 @@ import Link from "next/link";
|
|||||||
|
|
||||||
import type { Category } from "@/lib/types";
|
import type { Category } from "@/lib/types";
|
||||||
|
|
||||||
import {
|
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion";
|
||||||
Accordion,
|
|
||||||
AccordionContent,
|
|
||||||
AccordionItem,
|
|
||||||
AccordionTrigger,
|
|
||||||
} from "@/components/ui/accordion";
|
|
||||||
import { formattedBadge } from "@/components/command-menu";
|
import { formattedBadge } from "@/components/command-menu";
|
||||||
import { basePath } from "@/config/site-config";
|
import { basePath } from "@/config/site-config";
|
||||||
import { cn } from "@/lib/utils";
|
import { cn } from "@/lib/utils";
|
||||||
@@ -18,14 +13,16 @@ export default function ScriptAccordion({
|
|||||||
items,
|
items,
|
||||||
selectedScript,
|
selectedScript,
|
||||||
setSelectedScript,
|
setSelectedScript,
|
||||||
|
selectedCategory,
|
||||||
|
setSelectedCategory,
|
||||||
}: {
|
}: {
|
||||||
items: Category[];
|
items: Category[];
|
||||||
selectedScript: string | null;
|
selectedScript: string | null;
|
||||||
setSelectedScript: (script: string | null) => void;
|
setSelectedScript: (script: string | null) => void;
|
||||||
|
selectedCategory: string | null;
|
||||||
|
setSelectedCategory: (category: string | null) => void;
|
||||||
}) {
|
}) {
|
||||||
const [expandedItem, setExpandedItem] = useState<string | undefined>(
|
const [expandedItem, setExpandedItem] = useState<string | undefined>(undefined);
|
||||||
undefined,
|
|
||||||
);
|
|
||||||
const linkRefs = useRef<{ [key: string]: HTMLAnchorElement | null }>({});
|
const linkRefs = useRef<{ [key: string]: HTMLAnchorElement | null }>({});
|
||||||
|
|
||||||
const handleAccordionChange = (value: string | undefined) => {
|
const handleAccordionChange = (value: string | undefined) => {
|
||||||
@@ -41,15 +38,27 @@ export default function ScriptAccordion({
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (selectedScript) {
|
if (selectedScript) {
|
||||||
const category = items.find(category =>
|
let category;
|
||||||
category.scripts.some(script => script.slug === selectedScript),
|
|
||||||
|
// If we have a selected category, try to find the script in that specific category
|
||||||
|
if (selectedCategory) {
|
||||||
|
category = items.find(
|
||||||
|
cat => cat.name === selectedCategory && cat.scripts.some(script => script.slug === selectedScript),
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback: if no category is selected or script not found in selected category,
|
||||||
|
// use the first category containing the script (backward compatibility)
|
||||||
|
if (!category) {
|
||||||
|
category = items.find(category => category.scripts.some(script => script.slug === selectedScript));
|
||||||
|
}
|
||||||
|
|
||||||
if (category) {
|
if (category) {
|
||||||
setExpandedItem(category.name);
|
setExpandedItem(category.name);
|
||||||
handleSelected(selectedScript);
|
handleSelected(selectedScript);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [selectedScript, items, handleSelected]);
|
}, [selectedScript, selectedCategory, items, handleSelected]);
|
||||||
return (
|
return (
|
||||||
<Accordion
|
<Accordion
|
||||||
type="single"
|
type="single"
|
||||||
@@ -82,10 +91,7 @@ export default function ScriptAccordion({
|
|||||||
</div>
|
</div>
|
||||||
{" "}
|
{" "}
|
||||||
</AccordionTrigger>
|
</AccordionTrigger>
|
||||||
<AccordionContent
|
<AccordionContent data-state={expandedItem === category.name ? "open" : "closed"} className="pt-0">
|
||||||
data-state={expandedItem === category.name ? "open" : "closed"}
|
|
||||||
className="pt-0"
|
|
||||||
>
|
|
||||||
{category.scripts
|
{category.scripts
|
||||||
.slice()
|
.slice()
|
||||||
.sort((a, b) => a.name.localeCompare(b.name))
|
.sort((a, b) => a.name.localeCompare(b.name))
|
||||||
@@ -94,7 +100,7 @@ export default function ScriptAccordion({
|
|||||||
<Link
|
<Link
|
||||||
href={{
|
href={{
|
||||||
pathname: "/scripts",
|
pathname: "/scripts",
|
||||||
query: { id: script.slug },
|
query: { id: script.slug, category: category.name },
|
||||||
}}
|
}}
|
||||||
prefetch={false}
|
prefetch={false}
|
||||||
className={`flex cursor-pointer items-center justify-between gap-1 px-1 py-1 text-muted-foreground hover:rounded-lg hover:bg-accent/60 hover:dark:bg-accent/20 ${
|
className={`flex cursor-pointer items-center justify-between gap-1 px-1 py-1 text-muted-foreground hover:rounded-lg hover:bg-accent/60 hover:dark:bg-accent/20 ${
|
||||||
@@ -102,7 +108,10 @@ export default function ScriptAccordion({
|
|||||||
? "rounded-lg bg-accent font-semibold dark:bg-accent/30 dark:text-white"
|
? "rounded-lg bg-accent font-semibold dark:bg-accent/30 dark:text-white"
|
||||||
: ""
|
: ""
|
||||||
}`}
|
}`}
|
||||||
onClick={() => handleSelected(script.slug)}
|
onClick={() => {
|
||||||
|
handleSelected(script.slug);
|
||||||
|
setSelectedCategory(category.name);
|
||||||
|
}}
|
||||||
ref={(el) => {
|
ref={(el) => {
|
||||||
linkRefs.current[script.slug] = el;
|
linkRefs.current[script.slug] = el;
|
||||||
}}
|
}}
|
||||||
@@ -113,15 +122,11 @@ export default function ScriptAccordion({
|
|||||||
height={16}
|
height={16}
|
||||||
width={16}
|
width={16}
|
||||||
unoptimized
|
unoptimized
|
||||||
onError={e =>
|
onError={e => ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)}
|
||||||
((e.currentTarget as HTMLImageElement).src
|
|
||||||
= `/${basePath}/logo.png`)}
|
|
||||||
alt={script.name}
|
alt={script.name}
|
||||||
className="mr-1 w-4 h-4 rounded-full"
|
className="mr-1 w-4 h-4 rounded-full"
|
||||||
/>
|
/>
|
||||||
<span className="flex items-center gap-2">
|
<span className="flex items-center gap-2">{script.name}</span>
|
||||||
{script.name}
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
{formattedBadge(script.type)}
|
{formattedBadge(script.type)}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -8,10 +8,14 @@ function Sidebar({
|
|||||||
items,
|
items,
|
||||||
selectedScript,
|
selectedScript,
|
||||||
setSelectedScript,
|
setSelectedScript,
|
||||||
|
selectedCategory,
|
||||||
|
setSelectedCategory,
|
||||||
}: {
|
}: {
|
||||||
items: Category[];
|
items: Category[];
|
||||||
selectedScript: string | null;
|
selectedScript: string | null;
|
||||||
setSelectedScript: (script: string | null) => void;
|
setSelectedScript: (script: string | null) => void;
|
||||||
|
selectedCategory: string | null;
|
||||||
|
setSelectedCategory: (category: string | null) => void;
|
||||||
}) {
|
}) {
|
||||||
const uniqueScripts = items.reduce((acc, category) => {
|
const uniqueScripts = items.reduce((acc, category) => {
|
||||||
for (const script of category.scripts) {
|
for (const script of category.scripts) {
|
||||||
@@ -37,6 +41,8 @@ function Sidebar({
|
|||||||
items={items}
|
items={items}
|
||||||
selectedScript={selectedScript}
|
selectedScript={selectedScript}
|
||||||
setSelectedScript={setSelectedScript}
|
setSelectedScript={setSelectedScript}
|
||||||
|
selectedCategory={selectedCategory}
|
||||||
|
setSelectedCategory={setSelectedCategory}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,16 +8,14 @@ import type { Category, Script } from "@/lib/types";
|
|||||||
import { ScriptItem } from "@/app/scripts/_components/script-item";
|
import { ScriptItem } from "@/app/scripts/_components/script-item";
|
||||||
import { fetchCategories } from "@/lib/data";
|
import { fetchCategories } from "@/lib/data";
|
||||||
|
|
||||||
import {
|
import { LatestScripts, MostViewedScripts } from "./_components/script-info-blocks";
|
||||||
LatestScripts,
|
|
||||||
MostViewedScripts,
|
|
||||||
} from "./_components/script-info-blocks";
|
|
||||||
import Sidebar from "./_components/sidebar";
|
import Sidebar from "./_components/sidebar";
|
||||||
|
|
||||||
export const dynamic = "force-static";
|
export const dynamic = "force-static";
|
||||||
|
|
||||||
function ScriptContent() {
|
function ScriptContent() {
|
||||||
const [selectedScript, setSelectedScript] = useQueryState("id");
|
const [selectedScript, setSelectedScript] = useQueryState("id");
|
||||||
|
const [selectedCategory, setSelectedCategory] = useQueryState("category");
|
||||||
const [links, setLinks] = useState<Category[]>([]);
|
const [links, setLinks] = useState<Category[]>([]);
|
||||||
const [item, setItem] = useState<Script>();
|
const [item, setItem] = useState<Script>();
|
||||||
|
|
||||||
@@ -47,6 +45,8 @@ function ScriptContent() {
|
|||||||
items={links}
|
items={links}
|
||||||
selectedScript={selectedScript}
|
selectedScript={selectedScript}
|
||||||
setSelectedScript={setSelectedScript}
|
setSelectedScript={setSelectedScript}
|
||||||
|
selectedCategory={selectedCategory}
|
||||||
|
setSelectedCategory={setSelectedCategory}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="mx-4 w-full sm:mx-0 sm:ml-4">
|
<div className="mx-4 w-full sm:mx-0 sm:ml-4">
|
||||||
|
|||||||
@@ -17,7 +17,9 @@ msg_info "Installing Dependencies"
|
|||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
gdal-bin \
|
gdal-bin \
|
||||||
libgdal-dev \
|
libgdal-dev \
|
||||||
git
|
git \
|
||||||
|
memcached \
|
||||||
|
libmemcached-tools
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
PYTHON_VERSION="3.12" setup_uv
|
PYTHON_VERSION="3.12" setup_uv
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ $STD apt-get install -y \
|
|||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
NODE_VERSION="20" setup_nodejs
|
NODE_VERSION="20" setup_nodejs
|
||||||
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi"
|
fetch_and_deploy_gh_release "tududi" "chrisvel/tududi" "tarball" "v0.80" "/opt/tududi"
|
||||||
|
|
||||||
msg_info "Configuring Tududi"
|
msg_info "Configuring Tududi"
|
||||||
cd /opt/tududi
|
cd /opt/tududi
|
||||||
|
|||||||
Reference in New Issue
Block a user