From e2e5997a768af944295dfae9a3e3c119fc1b715c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joda=20Sto=CC=88=C3=9Fer?= Date: Sat, 22 Nov 2025 00:09:26 +0100 Subject: [PATCH 1/9] feature(script): add nextcloud --- docs/public/install-scripts/nextcloud.json | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 docs/public/install-scripts/nextcloud.json diff --git a/docs/public/install-scripts/nextcloud.json b/docs/public/install-scripts/nextcloud.json new file mode 100644 index 00000000..3fc21aea --- /dev/null +++ b/docs/public/install-scripts/nextcloud.json @@ -0,0 +1,134 @@ +{ + "version": 2, + "installation_questions": [ + { + "question": "Nextcloud admin user", + "description": "The admin user for Nextcloud.", + "type": "text", + "key": "admin_user" + }, + { + "question": "Nextcloud admin password", + "description": "The admin password for Nextcloud.", + "type": "text", + "key": "admin_password", + "default": "$RANDOM_STRING(10)" + }, + { + "question": "Enable Imaginary", + "description": "Imaginary can help improve performance for generating image previews.", + "type": "boolean", + "key": "imaginary_enabled", + "default": false, + "required": false + }, + { + "question": "Host", + "description": "Nextcloud host to create application URLs. Examples: cloud.domain.com:443, cloud.domain.com:30001, 192.168.1.100:9001 (replace ip and port with your own).", + "type": "text", + "key": "host", + "required": false + }, + { + "question": "Redis password", + "description": "The password for Redis.", + "type": "text", + "key": "redis_password", + "default": "$RANDOM_STRING(10)" + }, + { + "question": "Database password", + "description": "The password for the database.", + "type": "text", + "key": "db_password", + "default": "$RANDOM_STRING(10)" + }, + { + "question": "Cron", + "description": "Enable cron.", + "type": "boolean", + "key": "cron_enabled", + "default": false, + "required": false + }, + { + "question": "Cron Schedule", + "description": "The cron schedule, if enabled.", + "type": "text", + "key": "cron_schedule", + "default": "*/5 * * * *", + "required": false + } + ], + "ensure_directories_exists": [ + { + "path": "$LOCATION(ApplicationsPerformance)", + "network_share": true + }, + { + "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", + "posix": true + }, + "$LOCATION(ApplicationsPerformance)/nextcloud/html", + { + "path": "$LOCATION(ApplicationsCapacity)", + "network_share": true + }, + "$LOCATION(ApplicationsCapacity)/nextcloud/data" + ], + "ensure_permissions_exists": [ + { + "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", + "username": "netdata", + "access": "read", + "posix": { + "groupname": "docker" + } + } + ], + "app_values": { + "nextcloud": { + "admin_user": "$QUESTION(admin_user)", + "admin_password": "$QUESTION(admin_password)", + "apt_packages": [ + "ffmpeg", + "smbclient", + "ocrmypdf", + "libreoffice" + ], + "tesseract_languages": [ + "eng" + ], + "imaginary": { + "enabled": "$QUESTION(imaginary_enabled)" + }, + "host": "$QUESTION(host)", + "redis_password": "$QUESTION(redis_password)", + "db_password": "$QUESTION(db_password)", + "cron": { + "enabled": "$QUESTION(cron_enabled)", + "schedule": "$QUESTION(cron_schedule)" + } + }, + "network": { + "web_port": { + "bind_mode": "published", + "port_number": 30027 + } + }, + "storage": { + "html": "$HOST_PATH($LOCATION(ApplicationsPerformance)/nextcloud/html)", + "data": "$HOST_PATH($LOCATION(ApplicationsCapacity)/nextcloud/data)", + "postgres_data": "$HOST_PATH($LOCATION(ApplicationsPerformance)/nextcloud/postgres_data)" + }, + "resources": { + "limits": { + "cpus": 2, + "memory": "$MEMORY(10%, 4096)" + }, + "gpus": { + "use_all_gpus": false + } + } + } +} From 7021fa2ea5a8920eb92a5ae0128ce7cdf6d441f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joda=20Sto=CC=88=C3=9Fer?= Date: Sat, 22 Nov 2025 00:45:05 +0100 Subject: [PATCH 2/9] feature(script): remove nextcloud GPU config it doesn't provide any value out-of-the-box --- docs/public/install-scripts/nextcloud.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/public/install-scripts/nextcloud.json b/docs/public/install-scripts/nextcloud.json index 3fc21aea..a96d3284 100644 --- a/docs/public/install-scripts/nextcloud.json +++ b/docs/public/install-scripts/nextcloud.json @@ -125,9 +125,6 @@ "limits": { "cpus": 2, "memory": "$MEMORY(10%, 4096)" - }, - "gpus": { - "use_all_gpus": false } } } From db6aa7e841d8bbbaa8b8fcf63cb80e048d83cda0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joda=20Sto=CC=88=C3=9Fer?= Date: Sat, 22 Nov 2025 00:59:41 +0100 Subject: [PATCH 3/9] feature(script): make nextcloud web port configurable --- docs/public/install-scripts/nextcloud.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/public/install-scripts/nextcloud.json b/docs/public/install-scripts/nextcloud.json index a96d3284..2a279612 100644 --- a/docs/public/install-scripts/nextcloud.json +++ b/docs/public/install-scripts/nextcloud.json @@ -58,6 +58,13 @@ "key": "cron_schedule", "default": "*/5 * * * *", "required": false + }, + { + "question": "Web Port", + "type": "number", + "key": "web_port", + "default": 30027, + "required": true } ], "ensure_directories_exists": [ @@ -113,7 +120,7 @@ "network": { "web_port": { "bind_mode": "published", - "port_number": 30027 + "port_number": "$QUESTION(web_port)" } }, "storage": { From 25de0a97db99509fb6d4fae8d5dc7959b8ad15ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joda=20Sto=CC=88=C3=9Fer?= Date: Sun, 23 Nov 2025 02:44:51 +0100 Subject: [PATCH 4/9] fix(script): disable network share from some storages nextcloud --- docs/public/install-scripts/nextcloud.json | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/public/install-scripts/nextcloud.json b/docs/public/install-scripts/nextcloud.json index 2a279612..08df1df7 100644 --- a/docs/public/install-scripts/nextcloud.json +++ b/docs/public/install-scripts/nextcloud.json @@ -68,19 +68,13 @@ } ], "ensure_directories_exists": [ - { - "path": "$LOCATION(ApplicationsPerformance)", - "network_share": true - }, + "$LOCATION(ApplicationsPerformance)", { "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", "posix": true }, "$LOCATION(ApplicationsPerformance)/nextcloud/html", - { - "path": "$LOCATION(ApplicationsCapacity)", - "network_share": true - }, + "$LOCATION(ApplicationsCapacity)", "$LOCATION(ApplicationsCapacity)/nextcloud/data" ], "ensure_permissions_exists": [ From 2e52b0fb17482701401dce2f8cc432f7838947e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joda=20Sto=CC=88=C3=9Fer?= Date: Sun, 23 Nov 2025 02:47:39 +0100 Subject: [PATCH 5/9] feature(script): use posix for nextcloud storages --- docs/public/install-scripts/nextcloud.json | 26 ++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/docs/public/install-scripts/nextcloud.json b/docs/public/install-scripts/nextcloud.json index 08df1df7..9da2a9f5 100644 --- a/docs/public/install-scripts/nextcloud.json +++ b/docs/public/install-scripts/nextcloud.json @@ -73,11 +73,33 @@ "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", "posix": true }, - "$LOCATION(ApplicationsPerformance)/nextcloud/html", + { + "path": "$LOCATION(ApplicationsPerformance)/nextcloud/html", + "posix": true + }, "$LOCATION(ApplicationsCapacity)", - "$LOCATION(ApplicationsCapacity)/nextcloud/data" + { + "path": "$LOCATION(ApplicationsCapacity)/nextcloud/data", + "posix": true + } ], "ensure_permissions_exists": [ + { + "path": "$LOCATION(ApplicationsPerformance)/nextcloud/html", + "username": "www-data", + "access": "write", + "posix": { + "groupname": "www-data" + } + }, + { + "path": "$LOCATION(ApplicationsCapacity)/nextcloud/data", + "username": "www-data", + "access": "write", + "posix": { + "groupname": "www-data" + } + }, { "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", "username": "netdata", From 76db241322804f1b4b7628a087c6ed2ccba56bbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joda=20Sto=CC=88=C3=9Fer?= Date: Sun, 23 Nov 2025 04:01:44 +0100 Subject: [PATCH 6/9] feature(script): make admin_user required for nextcloud --- docs/public/install-scripts/nextcloud.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/public/install-scripts/nextcloud.json b/docs/public/install-scripts/nextcloud.json index 9da2a9f5..88a79483 100644 --- a/docs/public/install-scripts/nextcloud.json +++ b/docs/public/install-scripts/nextcloud.json @@ -5,7 +5,8 @@ "question": "Nextcloud admin user", "description": "The admin user for Nextcloud.", "type": "text", - "key": "admin_user" + "key": "admin_user", + "required": true }, { "question": "Nextcloud admin password", From 9a0304105435da8a5dfbab47e7e53f5511bc3adb Mon Sep 17 00:00:00 2001 From: Jerod Fritz Date: Sat, 27 Dec 2025 21:11:58 -0500 Subject: [PATCH 7/9] updates for v3 and common defaults consolidating contributions from @SimJoSt @acknologia and @Mkayyyyyy --- docs/public/install-scripts/nextcloud.json | 168 ++++++--------------- 1 file changed, 47 insertions(+), 121 deletions(-) diff --git a/docs/public/install-scripts/nextcloud.json b/docs/public/install-scripts/nextcloud.json index 88a79483..1dc31156 100644 --- a/docs/public/install-scripts/nextcloud.json +++ b/docs/public/install-scripts/nextcloud.json @@ -1,108 +1,43 @@ { - "version": 2, - "installation_questions": [ - { - "question": "Nextcloud admin user", - "description": "The admin user for Nextcloud.", - "type": "text", - "key": "admin_user", - "required": true - }, - { - "question": "Nextcloud admin password", - "description": "The admin password for Nextcloud.", - "type": "text", - "key": "admin_password", - "default": "$RANDOM_STRING(10)" - }, - { - "question": "Enable Imaginary", - "description": "Imaginary can help improve performance for generating image previews.", - "type": "boolean", - "key": "imaginary_enabled", - "default": false, - "required": false - }, - { - "question": "Host", - "description": "Nextcloud host to create application URLs. Examples: cloud.domain.com:443, cloud.domain.com:30001, 192.168.1.100:9001 (replace ip and port with your own).", - "type": "text", - "key": "host", - "required": false - }, - { - "question": "Redis password", - "description": "The password for Redis.", - "type": "text", - "key": "redis_password", - "default": "$RANDOM_STRING(10)" - }, - { - "question": "Database password", - "description": "The password for the database.", - "type": "text", - "key": "db_password", - "default": "$RANDOM_STRING(10)" - }, - { - "question": "Cron", - "description": "Enable cron.", - "type": "boolean", - "key": "cron_enabled", - "default": false, - "required": false - }, - { - "question": "Cron Schedule", - "description": "The cron schedule, if enabled.", - "type": "text", - "key": "cron_schedule", - "default": "*/5 * * * *", - "required": false - }, - { - "question": "Web Port", - "type": "number", - "key": "web_port", - "default": 30027, - "required": true - } - ], + "version": 3, + "script": { + "version": "1.0.0", + "changeLog": "Upgraded Immich install script to be compatible with latest HexOS script changes" + }, + "requirements": { + "locations": [ + "ApplicationsPerformance", + "Photos" + ], + "specifications": [ + "2CORE", + "200MB" + ], + "permissions": [ + "READ_WRITE_LOCATIONS" + ], + "ports": [ + 2283 + ] + }, "ensure_directories_exists": [ - "$LOCATION(ApplicationsPerformance)", { - "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", - "posix": true + "path": "$LOCATION(ApplicationsPerformance)", + "network_share": true }, { - "path": "$LOCATION(ApplicationsPerformance)/nextcloud/html", - "posix": true + "path": "$LOCATION(Photos)", + "network_share": true }, - "$LOCATION(ApplicationsCapacity)", + "$LOCATION(Photos)/immich", { - "path": "$LOCATION(ApplicationsCapacity)/nextcloud/data", + "path": "$LOCATION(ApplicationsPerformance)/immich/postgres_data", "posix": true } ], "ensure_permissions_exists": [ { - "path": "$LOCATION(ApplicationsPerformance)/nextcloud/html", - "username": "www-data", - "access": "write", - "posix": { - "groupname": "www-data" - } - }, - { - "path": "$LOCATION(ApplicationsCapacity)/nextcloud/data", - "username": "www-data", - "access": "write", - "posix": { - "groupname": "www-data" - } - }, - { - "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", + "path": "$LOCATION(ApplicationsPerformance)/immich/postgres_data", "username": "netdata", "access": "read", "posix": { @@ -111,45 +46,36 @@ } ], "app_values": { - "nextcloud": { - "admin_user": "$QUESTION(admin_user)", - "admin_password": "$QUESTION(admin_password)", - "apt_packages": [ - "ffmpeg", - "smbclient", - "ocrmypdf", - "libreoffice" - ], - "tesseract_languages": [ - "eng" - ], - "imaginary": { - "enabled": "$QUESTION(imaginary_enabled)" - }, - "host": "$QUESTION(host)", - "redis_password": "$QUESTION(redis_password)", - "db_password": "$QUESTION(db_password)", - "cron": { - "enabled": "$QUESTION(cron_enabled)", - "schedule": "$QUESTION(cron_schedule)" - } + "release_name": "immich", + "immich": { + "enable_ml": true, + "ml_image_selector": "ml_image", + "db_password": "$RANDOM_STRING(7)", + "redis_password": "$RANDOM_STRING(7)", + "log_level": "log", + "hugging_face_endpoint": "", + "db_storage_type": "SSD", + "additional_envs": [] }, "network": { "web_port": { "bind_mode": "published", - "port_number": "$QUESTION(web_port)" + "port_number": 2283 } }, "storage": { - "html": "$HOST_PATH($LOCATION(ApplicationsPerformance)/nextcloud/html)", - "data": "$HOST_PATH($LOCATION(ApplicationsCapacity)/nextcloud/data)", - "postgres_data": "$HOST_PATH($LOCATION(ApplicationsPerformance)/nextcloud/postgres_data)" + "data": "$HOST_PATH($LOCATION(Photos)/immich)", + "ml_cache": { + "type": "temporary" + }, + "postgres_data": "$HOST_PATH($LOCATION(ApplicationsPerformance)/immich/postgres_data)" }, "resources": { "limits": { "cpus": 2, "memory": "$MEMORY(10%, 4096)" - } + }, + "gpus": "$GPU_CONFIG()" } } -} +} \ No newline at end of file From 2e3157c3886bbb406b612f239d1f697837aee81f Mon Sep 17 00:00:00 2001 From: Jerod Fritz Date: Sun, 28 Dec 2025 14:39:24 -0500 Subject: [PATCH 8/9] HotFix : Apps Overhaul - Release Note Adds release note for recent hotfix addresssing CPU spikes and other Apps Overhaul related issues. --- docs/.vitepress/sidebar.ts | 1 + .../apps/install-scripts/curated/index.md | 2 +- docs/public/install-scripts/nextcloud.json | 130 +++++++++++++----- docs/release-notes/command-deck/2025-12-28.md | 5 + docs/release-notes/command-deck/index.md | 1 + 5 files changed, 105 insertions(+), 34 deletions(-) create mode 100644 docs/release-notes/command-deck/2025-12-28.md diff --git a/docs/.vitepress/sidebar.ts b/docs/.vitepress/sidebar.ts index 79911361..a943b2de 100644 --- a/docs/.vitepress/sidebar.ts +++ b/docs/.vitepress/sidebar.ts @@ -130,6 +130,7 @@ const sidebar: DefaultTheme.SidebarItem[] = [ collapsed: true, items: [ // auto-generated-release-notes-start + { text: '2025-12-28', link: '/release-notes/command-deck/2025-12-28' }, { text: '2025-12-26', link: '/release-notes/command-deck/2025-12-26' }, { text: '2025-11-25', link: '/release-notes/command-deck/2025-11-25' }, { text: '2025-11-12', link: '/release-notes/command-deck/2025-11-12' }, diff --git a/docs/features/apps/install-scripts/curated/index.md b/docs/features/apps/install-scripts/curated/index.md index 79b059e4..9faed7a7 100644 --- a/docs/features/apps/install-scripts/curated/index.md +++ b/docs/features/apps/install-scripts/curated/index.md @@ -11,7 +11,7 @@ | `immich` | [immich.json](/install-scripts/immich.json) | 1.7 KB | 2025-12-12 | | `jellyfin` | [jellyfin.json](/install-scripts/jellyfin.json) | 2.2 KB | 2025-12-12 | | `lidarr` | [lidarr.json](/install-scripts/lidarr.json) | 1.3 KB | 2025-12-25 | -| `nextcloud` | [nextcloud.json](/install-scripts/nextcloud.json) | 3.4 KB | 2025-12-25 | +| `nextcloud` | [nextcloud.json](/install-scripts/nextcloud.json) | 3.4 KB | 2025-12-28 | | `peanut` | [peanut.json](/install-scripts/peanut.json) | 823 B | 2025-12-25 | | `plex` | [plex.json](/install-scripts/plex.json) | 3.4 KB | 2025-12-12 | | `prowlarr` | [prowlarr.json](/install-scripts/prowlarr.json) | 766 B | 2025-12-04 | diff --git a/docs/public/install-scripts/nextcloud.json b/docs/public/install-scripts/nextcloud.json index d5262522..dd261082 100644 --- a/docs/public/install-scripts/nextcloud.json +++ b/docs/public/install-scripts/nextcloud.json @@ -2,32 +2,65 @@ "version": 3, "script": { "version": "1.0.0", - "changeLog": "Upgraded Immich install script to be compatible with latest HexOS script changes" + "changeLog": "Initial Script" }, "requirements": { - "locations": ["ApplicationsPerformance", "Photos"], - "specifications": ["2CORE", "200MB"], - "permissions": ["READ_WRITE_LOCATIONS"], - "ports": [2283] + "locations": [ + "ApplicationsPerformance", + "ApplicationsCapacity" + ], + "specifications": [ + "2CORE", + "2048MB" + ], + "permissions": [ + "READ_WRITE_LOCATIONS" + ], + "ports": [] }, + "installation_questions": [ + { + "question": "Nextcloud Username", + "description": "Create a username for the admin account. You'll use this to log in via web and mobile apps.", + "type": "text", + "key": "admin_user", + "required": true + }, + { + "question": "Nextcloud Password", + "description": "Create a password for the admin account. You'll need this to log in via web browser and mobile apps. Choose something secure but memorable!", + "type": "text", + "key": "admin_password", + "required": true + }, + { + "question": "Default Phone Region", + "description": "Two-letter country code (US, CA, GB, DE, FR, AU, etc.). This helps format phone numbers correctly. Common codes: US (United States), CA (Canada), GB (United Kingdom), DE (Germany), FR (France), AU (Australia). Leave blank if unsure.", + "type": "text", + "key": "phone_region", + "required": false, + "default": "US" + } + ], "ensure_directories_exists": [ { "path": "$LOCATION(ApplicationsPerformance)", "network_share": true }, + "$LOCATION(ApplicationsPerformance)/nextcloud/html", { - "path": "$LOCATION(Photos)", - "network_share": true + "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", + "posix": true }, - "$LOCATION(Photos)/immich", { - "path": "$LOCATION(ApplicationsPerformance)/immich/postgres_data", - "posix": true - } + "path": "$LOCATION(ApplicationsCapacity)", + "network_share": true + }, + "$LOCATION(ApplicationsCapacity)/nextcloud/data" ], "ensure_permissions_exists": [ { - "path": "$LOCATION(ApplicationsPerformance)/immich/postgres_data", + "path": "$LOCATION(ApplicationsPerformance)/nextcloud/postgres_data", "username": "netdata", "access": "read", "posix": { @@ -36,36 +69,67 @@ } ], "app_values": { - "release_name": "immich", - "immich": { - "enable_ml": true, - "ml_image_selector": "ml_image", - "db_password": "$RANDOM_STRING(7)", - "redis_password": "$RANDOM_STRING(7)", - "log_level": "log", - "hugging_face_endpoint": "", - "db_storage_type": "SSD", - "additional_envs": [] + "nextcloud": { + "admin_user": "$QUESTION(admin_user)", + "admin_password": "$QUESTION(admin_password)", + "redis_password": "$RANDOM_STRING(16)", + "db_password": "$RANDOM_STRING(16)", + "host": "$SERVER_LAN_IP", + "postgres_image_selector": "postgres_17_image", + "apt_packages": [ + "ffmpeg", + "smbclient", + "ocrmypdf", + "libreoffice" + ], + "tesseract_languages": [ + "eng", + "spa", + "fra", + "deu", + "por", + "ita", + "nld", + "pol", + "rus", + "jpn", + "chi_sim", + "ara" + ], + "imaginary": { + "enabled": true + }, + "cron": { + "enabled": true, + "schedule": "*/5 * * * *" + }, + "additional_envs": [ + { + "name": "NC_default_phone_region", + "value": "$QUESTION(phone_region)" + }, + { + "name": "NC_maintenance_window_start", + "value": "1" + } + ] + }, + "storage": { + "html": "$HOST_PATH($LOCATION(ApplicationsPerformance)/nextcloud/html)", + "data": "$HOST_PATH($LOCATION(ApplicationsCapacity)/nextcloud/data)", + "postgres_data": "$HOST_PATH($LOCATION(ApplicationsPerformance)/nextcloud/postgres_data)" }, "network": { "web_port": { "bind_mode": "published", - "port_number": 2283 + "port_number": 30027 } }, - "storage": { - "data": "$HOST_PATH($LOCATION(Photos)/immich)", - "ml_cache": { - "type": "temporary" - }, - "postgres_data": "$HOST_PATH($LOCATION(ApplicationsPerformance)/immich/postgres_data)" - }, "resources": { "limits": { "cpus": 2, - "memory": "$MEMORY(10%, 4096)" - }, - "gpus": "$GPU_CONFIG()" + "memory": "$MEMORY(10%, 2048)" + } } } } \ No newline at end of file diff --git a/docs/release-notes/command-deck/2025-12-28.md b/docs/release-notes/command-deck/2025-12-28.md new file mode 100644 index 00000000..5023524e --- /dev/null +++ b/docs/release-notes/command-deck/2025-12-28.md @@ -0,0 +1,5 @@ +# December 26, 2025 - Hotfix : Apps Overhaul + +This hotfix fixes CPU spikes and performance issues when browsing installed apps following the Apps Overhaul. It also improves compatibility for users who installed apps or modified settings in TrueNAS before updating or resetting app configurations. + +If you experienced issues during a configuration update, please run **Options → Reset | Update** from Deck on the affected app. Support is always available free of charge to lend you a hand if you need assistance. \ No newline at end of file diff --git a/docs/release-notes/command-deck/index.md b/docs/release-notes/command-deck/index.md index 07ae41ec..c4032a58 100644 --- a/docs/release-notes/command-deck/index.md +++ b/docs/release-notes/command-deck/index.md @@ -11,6 +11,7 @@ For users who are actively connected during an update, there may be a brief down ## 2025 Releases +- [**2025-12-28**](./2025-12-28) - Hotfix : Apps Overhaul - [**2025-12-26**](./2025-12-26) - Apps Overhaul, 2FA, GPU Detection, Goldeye Compatibility - [**2025-11-25**](./2025-11-25) - New Apps Sonarr, Radarr and Prowlarr - [**2025-11-12**](./2025-11-12) - Hotfix : Fangtooth Compatiblity, Server Actions From 8dc89fea1a09b9344e7e92b4337d6ab35a0ba5f3 Mon Sep 17 00:00:00 2001 From: Jerod Fritz Date: Sun, 28 Dec 2025 14:43:29 -0500 Subject: [PATCH 9/9] missing sidebar link for latest blog --- docs/.vitepress/sidebar.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/.vitepress/sidebar.ts b/docs/.vitepress/sidebar.ts index a943b2de..da79f595 100644 --- a/docs/.vitepress/sidebar.ts +++ b/docs/.vitepress/sidebar.ts @@ -112,6 +112,7 @@ const sidebar: DefaultTheme.SidebarItem[] = [ collapsed: true, items: [ { text: 'All Posts', link: '/blog/' }, + { text: 'Apps Overhaul', link: '/blog/2025-12-26' }, { text: 'HexOS Roadmap Update', link: '/blog/2025-11-26' }, { text: 'Introducing HexOS Local', link: '/blog/2025-11-25' }, { text: 'E2E Testing Suite', link: '/blog/2025-10-21' },