Compare commits

...

18 Commits

Author SHA1 Message Date
bbe71cbbb9 Update CHANGELOG.md (#7428)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 00:12:58 +00:00
9b6a736c8c Update versions.json (#7427)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-06 02:12:30 +02:00
c395ccc270 Update CHANGELOG.md (#7421)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 17:28:01 +00:00
3dd72e08e9 Pin version to 0.80 (#7420)
- a lot of changes in next version
2025-09-05 19:27:40 +02:00
1d989bea73 Update versions.json (#7417)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 14:05:32 +02:00
f881b88344 Update CHANGELOG.md (#7411)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 06:07:57 +00:00
06dbad83ef AdventureLog: Update dependencies (#7404)
* Update adventurelog-install.sh

* Check and install memcached if not present

---------

Co-authored-by: CanbiZ <47820557+MickLesk@users.noreply.github.com>
2025-09-05 08:07:34 +02:00
7ff966b042 Update CHANGELOG.md (#7410)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 05:24:44 +00:00
62264f37a6 refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state (#7405)
* refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state

* lint

* chore: Add ESLint configuration to ignore errors during builds in next.config.mjs
2025-09-05 07:24:19 +02:00
bf05dabc4c Update CHANGELOG.md (#7407)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 00:13:38 +00:00
bc229d9738 Update versions.json (#7406)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-05 02:13:07 +02:00
969b08caa8 Update CHANGELOG.md (#7399)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 14:23:31 +00:00
c1c43ed2cb fix: Syntax error in Immich scripts (#7398)
* fix: Syntax error in Immich scripts

* fix: Remove exit pipes
2025-09-04 16:22:47 +02:00
e74767d1a4 Update CHANGELOG.md (#7396)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 12:46:19 +00:00
e9e17f4f51 Immich: pin compiled photo library revisions (#7395)
- Immich base has already switched to Trixie; until we get a Trixie LXC
any further updates to the base image might conflict with our Bookworm
LXC
2025-09-04 14:45:55 +02:00
2c1b15a40e Update versions.json (#7394)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 14:05:20 +02:00
a4bfaf1646 Update CHANGELOG.md (#7393)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-09-04 08:28:32 +00:00
6fa12cc814 Netdata: Fix pve_check for 8 (#7392) 2025-09-04 10:28:09 +02:00
14 changed files with 358 additions and 296 deletions

View File

@ -10,8 +10,35 @@
> [!CAUTION]
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
### 🚀 Updated Scripts
- Tududi: Pin version to 0.80 [@vhsdream](https://github.com/vhsdream) ([#7420](https://github.com/community-scripts/ProxmoxVE/pull/7420))
- #### 🐞 Bug Fixes
- AdventureLog: Update dependencies [@tremor021](https://github.com/tremor021) ([#7404](https://github.com/community-scripts/ProxmoxVE/pull/7404))
### 🌐 Website
- refactor: Enhance ScriptAccordion and Sidebar components to support selectedCategory state [@BramSuurdje](https://github.com/BramSuurdje) ([#7405](https://github.com/community-scripts/ProxmoxVE/pull/7405))
## 2025-09-04
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- fix: Syntax error in Immich scripts [@henworth](https://github.com/henworth) ([#7398](https://github.com/community-scripts/ProxmoxVE/pull/7398))
- Netdata: Fix pve_check for 8 [@MickLesk](https://github.com/MickLesk) ([#7392](https://github.com/community-scripts/ProxmoxVE/pull/7392))
- #### 🔧 Refactor
- Immich: pin compiled photo library revisions [@vhsdream](https://github.com/vhsdream) ([#7395](https://github.com/community-scripts/ProxmoxVE/pull/7395))
## 2025-09-03
### 🚀 Updated Scripts

View File

@ -27,6 +27,10 @@ function update_script() {
msg_error "No ${APP} Installation Found!"
exit
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
msg_info "Stopping Services"
systemctl stop adventurelog-backend

View File

@ -206,7 +206,8 @@ function compile_libjxl() {
SOURCE=${SOURCE_DIR}/libjxl
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
: "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)}"
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
if [[ "${update:-}" ]] || [[ "$LIBJXL_REVISION" != "$(grep 'libjxl' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libjxl"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@ -253,7 +254,8 @@ function compile_libheif() {
$STD apt-get install -y libaom-dev
local update="required"
fi
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libheif.json)}"
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
if [[ "${update:-}" ]] || [[ "$LIBHEIF_REVISION" != "$(grep 'libheif' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libheif"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@ -285,7 +287,8 @@ function compile_libheif() {
function compile_libraw() {
SOURCE=${SOURCE_DIR}/libraw
local update
: "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libraw.json)}"
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
if [[ "${update:-}" ]] || [[ "$LIBRAW_REVISION" != "$(grep 'libraw' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libraw"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@ -306,7 +309,8 @@ function compile_libraw() {
function compile_imagemagick() {
SOURCE=$SOURCE_DIR/imagemagick
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/imagemagick.json)}"
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
if [[ "${update:-}" ]] || [[ "$IMAGEMAGICK_REVISION" != "$(grep 'imagemagick' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling ImageMagick"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi
@ -326,7 +330,8 @@ function compile_imagemagick() {
function compile_libvips() {
SOURCE=$SOURCE_DIR/libvips
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' "$BASE_DIR"/server/sources/libvips.json)}"
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
if [[ "${update:-}" ]] || [[ "$LIBVIPS_REVISION" != "$(grep 'libvips' ~/.immich_library_revisions | awk '{print $2}')" ]]; then
msg_info "Recompiling libvips"
if [[ -d "$SOURCE" ]]; then rm -rf "$SOURCE"; fi

View File

@ -37,7 +37,7 @@ function update_script() {
rm -rf /opt/tududi/backend/dist
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}"
cd /opt/tududi

View File

@ -18,6 +18,10 @@ const nextConfig = {
BASE_PATH: "ProxmoxVE",
},
eslint: {
ignoreDuringBuilds: true,
},
output: "export",
basePath: `/ProxmoxVE`,
};

View File

@ -1,49 +1,249 @@
[
{
"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",
"version": "coverity-w36-4.13.0",
"date": "2025-09-01T11:40:11Z"
},
{
"name": "docmost/docmost",
"version": "v0.23.0",
"date": "2025-09-04T22:40:29Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta25",
"date": "2025-09-04T21:42:46Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta17",
"date": "2025-09-04T21:30:14Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.1.0",
"date": "2025-09-04T20:24:47Z"
},
{
"name": "mongodb/mongo",
"version": "r7.0.24",
"date": "2025-09-04T19:50:49Z"
},
{
"name": "Cleanuparr/Cleanuparr",
"version": "v2.2.2",
"date": "2025-09-03T20:58:13Z"
"version": "v2.2.3",
"date": "2025-09-04T19:24:39Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.40.1",
"date": "2025-09-04T19:10:45Z"
},
{
"name": "runtipi/runtipi",
"version": "nightly",
"date": "2025-09-04T18:29:10Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.65",
"date": "2025-08-20T14:02:28Z"
},
{
"name": "webmin/webmin",
"version": "2.500",
"date": "2025-09-04T17:44:27Z"
},
{
"name": "ollama/ollama",
"version": "v0.11.10",
"date": "2025-09-04T17:27:40Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
"date": "2025-06-26T22:08:00Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.5.1",
"date": "2025-09-04T16:02:49Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.15",
"date": "2025-08-27T12:12:03Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.19",
"date": "2025-09-04T14:22:02Z"
},
{
"name": "raydak-labs/configarr",
"version": "v1.15.1",
"date": "2025-09-04T14:00:59Z"
},
{
"name": "plankanban/planka",
"version": "planka-1.0.4",
"date": "2025-09-04T13:49:40Z"
},
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.15.1",
"date": "2025-09-04T10:37:23Z"
},
{
"name": "esphome/esphome",
"version": "2025.8.3",
"date": "2025-09-04T10:09:47Z"
},
{
"name": "emqx/emqx",
"version": "v5.8.8",
"date": "2025-09-04T08:35:36Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3-beta.10",
"date": "2025-07-15T06:07:03Z"
},
{
"name": "actualbudget/actual",
"version": "v25.9.0",
"date": "2025-09-04T01:12:37Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "VictoriaMetrics/VictoriaMetrics",
"version": "pmm-6401-v1.125.1",
"date": "2025-09-03T20:17:18Z"
},
{
"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": "NodeBB/NodeBB",
"version": "v4.5.0",
"date": "2025-09-03T17:42:18Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.1.1",
"date": "2025-09-03T15:12:56Z"
},
{
"name": "Graylog2/graylog2-server",
"version": "6.1.15",
"date": "2025-09-03T14:51:37Z"
},
{
"name": "emqx/emqx",
"version": "v5.8.8",
"date": "2025-09-03T14:25:26Z"
},
{
"name": "rcourtman/Pulse",
"version": "v4.13.0",
"date": "2025-09-03T13:48:17Z"
},
{
"name": "glpi-project/glpi",
"version": "10.0.19",
@ -54,6 +254,11 @@
"version": "v5.27.5.10198",
"date": "2025-09-03T12:08:43Z"
},
{
"name": "neo4j/neo4j",
"version": "5.26.12",
"date": "2025-09-03T12:03:22Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@1.109.2",
@ -84,61 +289,11 @@
"version": "cassandra-4.1.10",
"date": "2025-09-03T08:46:02Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.6",
"date": "2025-09-03T07:55:14Z"
},
{
"name": "morpheus65535/bazarr",
"version": "v1.5.3-beta.10",
"date": "2025-07-15T06:07:03Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.22.2411",
"date": "2025-09-03T05:51:25Z"
},
{
"name": "booklore-app/booklore",
"version": "v1.1.2",
"date": "2025-09-03T03:18:53Z"
},
{
"name": "jeedom/core",
"version": "4.4.19",
"date": "2025-09-03T00:27:10Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v3.6.2",
"date": "2025-07-17T12:08:03Z"
},
{
"name": "crafty-controller/crafty-4",
"version": "v4.5.3",
"date": "2025-09-02T23:52:26Z"
},
{
"name": "mongodb/mongo",
"version": "r8.0.14-rc0",
"date": "2025-09-02T22:46:40Z"
},
{
"name": "keycloak/keycloak",
"version": "26.0.15",
"date": "2025-08-27T12:12:03Z"
},
{
"name": "ollama/ollama",
"version": "v0.11.8",
"date": "2025-08-28T19:27:13Z"
},
{
"name": "runtipi/runtipi",
"version": "nightly",
"date": "2025-09-02T19:26:18Z"
},
{
"name": "Luligu/matterbridge",
"version": "3.2.5",
@ -159,21 +314,11 @@
"version": "v4.1.4",
"date": "2025-09-02T14:26:24Z"
},
{
"name": "HabitRPG/habitica",
"version": "v5.40.0",
"date": "2025-09-02T14:09:11Z"
},
{
"name": "apache/tomcat",
"version": "10.1.45",
"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",
"version": "22.0.1",
@ -204,11 +349,6 @@
"version": "v4.39.8",
"date": "2025-09-02T00:44:45Z"
},
{
"name": "MediaBrowser/Emby.Releases",
"version": "4.9.1.2",
"date": "2025-06-26T22:08:00Z"
},
{
"name": "postgres/postgres",
"version": "REL_18_RC1",
@ -254,11 +394,6 @@
"version": "v25.3",
"date": "2025-09-01T09:47:06Z"
},
{
"name": "wazuh/wazuh",
"version": "coverity-w36-4.13.0",
"date": "2025-09-01T11:40:11Z"
},
{
"name": "grokability/snipe-it",
"version": "v8.3.1",
@ -274,21 +409,11 @@
"version": "0.20.1",
"date": "2025-09-01T07:35:48Z"
},
{
"name": "moghtech/komodo",
"version": "v1.19.2",
"date": "2025-09-01T02:33:52Z"
},
{
"name": "YunoHost/yunohost",
"version": "debian/12.1.17.1",
"date": "2025-08-31T21:38:21Z"
},
{
"name": "wizarrrr/wizarr",
"version": "2025.8.5",
"date": "2025-08-31T17:56:37Z"
},
{
"name": "karakeep-app/karakeep",
"version": "ios/v1.8.0-1",
@ -319,26 +444,11 @@
"version": "v0.9.91",
"date": "2025-08-30T21:49:57Z"
},
{
"name": "immich-app/immich",
"version": "v1.140.1",
"date": "2025-08-30T19:46:34Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.14.0",
"date": "2025-08-30T18:41:03Z"
},
{
"name": "bunkerity/bunkerweb",
"version": "v1.6.4",
"date": "2025-08-18T20:22:07Z"
},
{
"name": "henrygd/beszel",
"version": "v0.12.6",
"date": "2025-08-29T21:40:09Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.24.26",
@ -354,26 +464,11 @@
"version": "v2.1.0",
"date": "2025-08-29T12:56:13Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.16.19",
"date": "2025-08-29T05:53:48Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.15.0",
"date": "2025-08-29T03:01:23Z"
},
{
"name": "saltstack/salt",
"version": "v3007.7",
"date": "2025-08-29T01:19:08Z"
},
{
"name": "esphome/esphome",
"version": "2025.8.2",
"date": "2025-08-29T00:38:54Z"
},
{
"name": "9001/copyparty",
"version": "v1.19.7",
@ -419,11 +514,6 @@
"version": "v0.6.26",
"date": "2025-08-28T10:40:30Z"
},
{
"name": "neo4j/neo4j",
"version": "4.4.45",
"date": "2025-08-28T10:12:16Z"
},
{
"name": "garethgeorge/backrest",
"version": "v1.9.2",
@ -444,16 +534,6 @@
"version": "v0.37.0",
"date": "2025-08-27T20:03:52Z"
},
{
"name": "gtsteffaniak/filebrowser",
"version": "v0.8.3-beta",
"date": "2025-08-27T18:18:48Z"
},
{
"name": "raydak-labs/configarr",
"version": "v1.15.0",
"date": "2025-08-27T17:12:03Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v11.2.1",
@ -489,11 +569,6 @@
"version": "v1.12.2-rc.6",
"date": "2025-08-26T01:17:43Z"
},
{
"name": "hyperion-project/hyperion.ng",
"version": "2.1.1",
"date": "2025-06-14T17:45:06Z"
},
{
"name": "coder/code-server",
"version": "v4.103.2",
@ -559,11 +634,6 @@
"version": "v0.306.0-rc.0",
"date": "2025-08-21T13:31:03Z"
},
{
"name": "TandoorRecipes/recipes",
"version": "2.0.3",
"date": "2025-08-23T07:08:13Z"
},
{
"name": "pocketbase/pocketbase",
"version": "v0.29.3",
@ -624,11 +694,6 @@
"version": "v1.4.6",
"date": "2025-08-21T14:05:58Z"
},
{
"name": "AdguardTeam/AdGuardHome",
"version": "v0.107.65",
"date": "2025-08-20T14:02:28Z"
},
{
"name": "openhab/openhab-core",
"version": "4.3.7",
@ -644,21 +709,11 @@
"version": "v5.23.2",
"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",
"version": "v5.8.0",
"date": "2025-08-19T16:46:00Z"
},
{
"name": "chrisvel/tududi",
"version": "v0.80",
"date": "2025-07-24T14:12:39Z"
},
{
"name": "oauth2-proxy/oauth2-proxy",
"version": "v7.12.0",
@ -709,11 +764,6 @@
"version": "v0.8.3",
"date": "2025-08-17T06:24:54Z"
},
{
"name": "blakeblackshear/frigate",
"version": "v0.14.1",
"date": "2024-08-29T22:32:51Z"
},
{
"name": "intri-in/manage-my-damn-life-nextjs",
"version": "v0.8.0-release",
@ -749,16 +799,6 @@
"version": "v1.14.0",
"date": "2025-08-12T13:58:46Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta24",
"date": "2025-08-11T21:22:01Z"
},
{
"name": "pelican-dev/wings",
"version": "v1.0.0-beta16",
"date": "2025-08-11T21:19:48Z"
},
{
"name": "FlowiseAI/Flowise",
"version": "flowise@3.0.5",
@ -774,16 +814,6 @@
"version": "1012-08-09",
"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",
"version": "2.38.0",
@ -849,11 +879,6 @@
"version": "v2.7.4",
"date": "2025-08-02T16:51:19Z"
},
{
"name": "actualbudget/actual",
"version": "v25.8.0",
"date": "2025-08-02T16:17:45Z"
},
{
"name": "inspircd/inspircd",
"version": "v4.8.0",
@ -864,11 +889,6 @@
"version": "v4.2.5",
"date": "2025-08-02T08:58:21Z"
},
{
"name": "docmost/docmost",
"version": "v0.22.2",
"date": "2025-08-01T23:27:06Z"
},
{
"name": "alexta69/metube",
"version": "2025.07.31",
@ -1089,11 +1109,6 @@
"version": "v5.6.0",
"date": "2025-06-18T12:19:54Z"
},
{
"name": "webmin/webmin",
"version": "2.402",
"date": "2025-06-17T05:20:42Z"
},
{
"name": "TriliumNext/Notes",
"version": "v0.95.0",
@ -1124,21 +1139,11 @@
"version": "v0.26.1",
"date": "2025-06-06T11:22:02Z"
},
{
"name": "plankanban/planka",
"version": "planka-1.0.3",
"date": "2025-06-04T10:26:07Z"
},
{
"name": "C4illin/ConvertX",
"version": "v0.14.1",
"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",
"version": "v0.9.0",
@ -1159,11 +1164,6 @@
"version": "v0.26.2",
"date": "2025-05-22T05:24:42Z"
},
{
"name": "CrazyWolf13/streamlink-webui",
"version": "0.5",
"date": "2025-05-21T20:19:14Z"
},
{
"name": "hansmi/prometheus-paperless-exporter",
"version": "v0.0.8",

View File

@ -73,7 +73,13 @@ function CategoryView() {
};
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") => {

View File

@ -4,12 +4,7 @@ import Link from "next/link";
import type { Category } from "@/lib/types";
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion";
import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion";
import { formattedBadge } from "@/components/command-menu";
import { basePath } from "@/config/site-config";
import { cn } from "@/lib/utils";
@ -18,14 +13,16 @@ export default function ScriptAccordion({
items,
selectedScript,
setSelectedScript,
selectedCategory,
setSelectedCategory,
}: {
items: Category[];
selectedScript: string | null;
setSelectedScript: (script: string | null) => void;
selectedCategory: string | null;
setSelectedCategory: (category: string | null) => void;
}) {
const [expandedItem, setExpandedItem] = useState<string | undefined>(
undefined,
);
const [expandedItem, setExpandedItem] = useState<string | undefined>(undefined);
const linkRefs = useRef<{ [key: string]: HTMLAnchorElement | null }>({});
const handleAccordionChange = (value: string | undefined) => {
@ -41,15 +38,27 @@ export default function ScriptAccordion({
useEffect(() => {
if (selectedScript) {
const category = items.find(category =>
category.scripts.some(script => script.slug === selectedScript),
);
let category;
// 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) {
setExpandedItem(category.name);
handleSelected(selectedScript);
}
}
}, [selectedScript, items, handleSelected]);
}, [selectedScript, selectedCategory, items, handleSelected]);
return (
<Accordion
type="single"
@ -82,10 +91,7 @@ export default function ScriptAccordion({
</div>
{" "}
</AccordionTrigger>
<AccordionContent
data-state={expandedItem === category.name ? "open" : "closed"}
className="pt-0"
>
<AccordionContent data-state={expandedItem === category.name ? "open" : "closed"} className="pt-0">
{category.scripts
.slice()
.sort((a, b) => a.name.localeCompare(b.name))
@ -94,7 +100,7 @@ export default function ScriptAccordion({
<Link
href={{
pathname: "/scripts",
query: { id: script.slug },
query: { id: script.slug, category: category.name },
}}
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 ${
@ -102,7 +108,10 @@ export default function ScriptAccordion({
? "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) => {
linkRefs.current[script.slug] = el;
}}
@ -113,15 +122,11 @@ export default function ScriptAccordion({
height={16}
width={16}
unoptimized
onError={e =>
((e.currentTarget as HTMLImageElement).src
= `/${basePath}/logo.png`)}
onError={e => ((e.currentTarget as HTMLImageElement).src = `/${basePath}/logo.png`)}
alt={script.name}
className="mr-1 w-4 h-4 rounded-full"
/>
<span className="flex items-center gap-2">
{script.name}
</span>
<span className="flex items-center gap-2">{script.name}</span>
</div>
{formattedBadge(script.type)}
</Link>

View File

@ -8,10 +8,14 @@ function Sidebar({
items,
selectedScript,
setSelectedScript,
selectedCategory,
setSelectedCategory,
}: {
items: Category[];
selectedScript: string | null;
setSelectedScript: (script: string | null) => void;
selectedCategory: string | null;
setSelectedCategory: (category: string | null) => void;
}) {
const uniqueScripts = items.reduce((acc, category) => {
for (const script of category.scripts) {
@ -37,6 +41,8 @@ function Sidebar({
items={items}
selectedScript={selectedScript}
setSelectedScript={setSelectedScript}
selectedCategory={selectedCategory}
setSelectedCategory={setSelectedCategory}
/>
</div>
</div>

View File

@ -8,16 +8,14 @@ import type { Category, Script } from "@/lib/types";
import { ScriptItem } from "@/app/scripts/_components/script-item";
import { fetchCategories } from "@/lib/data";
import {
LatestScripts,
MostViewedScripts,
} from "./_components/script-info-blocks";
import { LatestScripts, MostViewedScripts } from "./_components/script-info-blocks";
import Sidebar from "./_components/sidebar";
export const dynamic = "force-static";
function ScriptContent() {
const [selectedScript, setSelectedScript] = useQueryState("id");
const [selectedCategory, setSelectedCategory] = useQueryState("category");
const [links, setLinks] = useState<Category[]>([]);
const [item, setItem] = useState<Script>();
@ -47,6 +45,8 @@ function ScriptContent() {
items={links}
selectedScript={selectedScript}
setSelectedScript={setSelectedScript}
selectedCategory={selectedCategory}
setSelectedCategory={setSelectedCategory}
/>
</div>
<div className="mx-4 w-full sm:mx-0 sm:ml-4">

View File

@ -17,7 +17,9 @@ msg_info "Installing Dependencies"
$STD apt-get install -y \
gdal-bin \
libgdal-dev \
git
git \
memcached \
libmemcached-tools
msg_ok "Installed Dependencies"
PYTHON_VERSION="3.12" setup_uv

View File

@ -169,7 +169,8 @@ cd "$STAGING_DIR"
SOURCE=${SOURCE_DIR}/libjxl
JPEGLI_LIBJPEG_LIBRARY_SOVERSION="62"
JPEGLI_LIBJPEG_LIBRARY_VERSION="62.3.0"
: "${LIBJXL_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libjxl.json)}"
# : "${LIBJXL_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libjxl.json)}"
: "${LIBJXL_REVISION:=794a5dcf0d54f9f0b20d288a12e87afb91d20dfc}"
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBJXL_REVISION"
@ -204,7 +205,8 @@ cd "$STAGING_DIR"
rm -rf "$SOURCE"/{build,third_party}
SOURCE=${SOURCE_DIR}/libheif
: "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
# : "${LIBHEIF_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libheif.json)}"
: "${LIBHEIF_REVISION:=35dad50a9145332a7bfdf1ff6aef6801fb613d68}"
$STD git clone https://github.com/strukturag/libheif.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBHEIF_REVISION"
@ -227,7 +229,8 @@ cd "$STAGING_DIR"
rm -rf "$SOURCE"/build
SOURCE=${SOURCE_DIR}/libraw
: "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
# : "${LIBRAW_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libraw.json)}"
: "${LIBRAW_REVISION:=09bea31181b43e97959ee5452d91e5bc66365f1f}"
$STD git clone https://github.com/libraw/libraw.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBRAW_REVISION"
@ -240,7 +243,8 @@ $STD make clean
cd "$STAGING_DIR"
SOURCE=$SOURCE_DIR/imagemagick
: "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/imagemagick.json)}"
# : "${IMAGEMAGICK_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/imagemagick.json)}"
: "${IMAGEMAGICK_REVISION:=8289a3388a085ad5ae81aa6812f21554bdfd54f2}"
$STD git clone https://github.com/ImageMagick/ImageMagick.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$IMAGEMAGICK_REVISION"
@ -252,7 +256,8 @@ $STD make clean
cd "$STAGING_DIR"
SOURCE=$SOURCE_DIR/libvips
: "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
# : "${LIBVIPS_REVISION:=$(jq -cr '.revision' $BASE_DIR/server/sources/libvips.json)}"
: "${LIBVIPS_REVISION:=8fa37a64547e392d3808eed8d72adab7e02b3d00}"
$STD git clone https://github.com/libvips/libvips.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBVIPS_REVISION"

View File

@ -20,7 +20,7 @@ $STD apt-get install -y \
msg_ok "Installed Dependencies"
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"
cd /opt/tududi

View File

@ -41,39 +41,37 @@ function msg_ok() {
function msg_error() { echo -e "${RD}$1${CL}"; }
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
# Supported: Proxmox VE 8.0.x 8.9.x and 9.0 (NOT 9.1+)
pve_check() {
if ! command -v pveversion >/dev/null 2>&1; then
msg_error "This script can only be run on a Proxmox VE host."
exit 1
fi
local PVE_VER
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
# Proxmox VE 8.x: allow 8.0 8.9
if [[ "$PVE_VER" =~ ^9\.([0-9]+)(\.[0-9]+)?$ ]]; then
# Check for Proxmox VE 8.x: allow 8.08.9
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
local MINOR="${BASH_REMATCH[1]}"
if ((MINOR != 0)); then
msg_error "Unsupported Proxmox VE version: $PVE_VER"
msg_error "Supported versions: 8.0 8.9 or 9.0.x"
if ((MINOR < 0 || MINOR > 9)); then
msg_error "This version of Proxmox VE is not supported."
msg_error "Supported: Proxmox VE version 8.0 8.9"
exit 1
fi
return 0
fi
# Proxmox VE 9.x: allow only 9.0
if [[ "$PVE_VER" =~ ^9\.([0-9]+)$ ]]; then
# Check for Proxmox VE 9.x: allow ONLY 9.0
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
local MINOR="${BASH_REMATCH[1]}"
if ((MINOR != 0)); then
msg_error "Unsupported Proxmox VE version: $PVE_VER"
msg_error "Supported versions: 8.0 8.9 or 9.0"
msg_error "This version of Proxmox VE is not yet supported."
msg_error "Supported: Proxmox VE version 9.0"
exit 1
fi
return 0
fi
msg_error "Unsupported Proxmox VE version: $PVE_VER"
msg_error "Supported versions: 8.0 8.9 or 9.0"
# All other unsupported versions
msg_error "This version of Proxmox VE is not supported."
msg_error "Supported versions: Proxmox VE 8.0 8.x or 9.0"
exit 1
}