fix(metablogizer): Skip frontend HTTP checks for DNS mismatch sites

When a site's DNS doesn't point to our public IP, skip the external
HTTP check to avoid 5-second timeouts. This significantly speeds up
the get_hosting_status API call which was causing XHR timeouts in
the LuCI frontend.

Sites with DNS mismatch now show frontend_status: "dns_mismatch"
instead of timing out.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2026-01-30 20:43:56 +01:00
parent 374803715f
commit 97790f0dcb
79 changed files with 170 additions and 152 deletions

View File

@ -193,7 +193,14 @@
"Bash(SSH_AUTH_SOCK=\"\" ssh -i ~/.ssh/id_ed25519 root@192.168.255.1 'grep \"\"s.anonymous\"\" /www/luci-static/resources/view/cdn-cache/settings.js; rm -f /tmp/luci-indexcache*')",
"Bash(SSH_AUTH_SOCK=\"\" ssh -i ~/.ssh/id_ed25519 root@192.168.255.1 'echo \"\"=== CrowdSec Decisions ===\"\"; cscli decisions list 2>/dev/null | head -10; echo \"\"\"\"; echo \"\"=== Auth Guardian Status ===\"\"; ubus call luci.auth-guardian status 2>/dev/null | head -20')",
"Bash(for:*)",
"Bash(if [ -d \"package/secubox/$pkg\" ])"
"Bash(if [ -d \"package/secubox/$pkg\" ])",
"Bash(SSH_ASKPASS=\"\" SSH_AUTH_SOCK=\"\" ssh:*)",
"Bash(.venv/bin/python:*)",
"Bash(git -C /home/reepost/CyberMindStudio/secubox-openwrt log --oneline -3)",
"Bash(git -C /home/reepost/CyberMindStudio/secubox-openwrt push origin master)",
"Bash(git -C /home/reepost/CyberMindStudio/secubox-openwrt pull --rebase origin master)",
"Bash(git -C /home/reepost/CyberMindStudio/secubox-openwrt stash)",
"Bash(git -C /home/reepost/CyberMindStudio/secubox-openwrt stash pop)"
]
}
}

View File

@ -1089,6 +1089,7 @@ _add_site_health() {
json_add_string "runtime" "$runtime"
# DNS check
local dns_status="none"
if [ -n "$domain" ]; then
local resolved_ip
resolved_ip=$(check_dns_resolution "$domain")
@ -1097,19 +1098,20 @@ _add_site_health() {
# Check if resolves to public IP
case "$resolved_ip" in
10.*|172.16.*|172.17.*|172.18.*|172.19.*|172.2*|172.30.*|172.31.*|192.168.*)
json_add_string "dns_status" "private"
dns_status="private"
;;
*)
if [ "$resolved_ip" = "$public_ip" ]; then
json_add_string "dns_status" "ok"
dns_status="ok"
else
json_add_string "dns_status" "mismatch"
dns_status="mismatch"
fi
;;
esac
else
json_add_string "dns_status" "failed"
dns_status="failed"
fi
json_add_string "dns_status" "$dns_status"
# Certificate check
if [ "$ssl" = "1" ]; then
@ -1138,9 +1140,12 @@ _add_site_health() {
fi
# HTTP health check (backend and frontend)
if [ -n "$port" ] || [ -n "$domain" ]; then
# Skip frontend check if DNS is not pointing to us (avoids timeouts)
local check_domain=""
[ "$dns_status" = "ok" ] && check_domain="$domain"
if [ -n "$port" ] || [ -n "$check_domain" ]; then
local http_result backend_code frontend_code
http_result=$(check_site_http_health "$port" "$domain" "$ssl")
http_result=$(check_site_http_health "$port" "$check_domain" "$ssl")
backend_code="${http_result%%:*}"
frontend_code="${http_result##*:}"
@ -1158,21 +1163,27 @@ _add_site_health() {
# Frontend status (HAProxy)
if [ -n "$domain" ]; then
json_add_int "http_frontend" "$frontend_code"
if [ "$frontend_code" = "200" ]; then
json_add_string "frontend_status" "ok"
elif [ "$frontend_code" = "0" ]; then
json_add_string "frontend_status" "down"
elif [ "$frontend_code" = "503" ]; then
json_add_string "frontend_status" "unavailable"
elif [ "$frontend_code" -ge 500 ] 2>/dev/null; then
json_add_string "frontend_status" "error"
elif [ "$frontend_code" -ge 400 ] 2>/dev/null; then
json_add_string "frontend_status" "client_error"
elif [ "$frontend_code" -ge 300 ] 2>/dev/null; then
json_add_string "frontend_status" "redirect"
if [ -n "$check_domain" ]; then
json_add_int "http_frontend" "$frontend_code"
if [ "$frontend_code" = "200" ]; then
json_add_string "frontend_status" "ok"
elif [ "$frontend_code" = "0" ]; then
json_add_string "frontend_status" "down"
elif [ "$frontend_code" = "503" ]; then
json_add_string "frontend_status" "unavailable"
elif [ "$frontend_code" -ge 500 ] 2>/dev/null; then
json_add_string "frontend_status" "error"
elif [ "$frontend_code" -ge 400 ] 2>/dev/null; then
json_add_string "frontend_status" "client_error"
elif [ "$frontend_code" -ge 300 ] 2>/dev/null; then
json_add_string "frontend_status" "redirect"
else
json_add_string "frontend_status" "unknown"
fi
else
json_add_string "frontend_status" "unknown"
# DNS mismatch - skip external check to avoid timeout
json_add_int "http_frontend" 0
json_add_string "frontend_status" "dns_mismatch"
fi
fi
fi

View File

@ -8,7 +8,7 @@ Architecture: all
Installed-Size: 71680
Description: Comprehensive authentication and session management with captive portal, OAuth2/OIDC integration, voucher system, and time-based access control
Filename: luci-app-auth-guardian_0.4.0-r3_all.ipk
Size: 12078
Size: 12080
Package: luci-app-bandwidth-manager
Version: 0.5.0-r2
@ -20,7 +20,7 @@ Architecture: all
Installed-Size: 378880
Description: Advanced bandwidth management with QoS rules, client quotas, and SQM integration
Filename: luci-app-bandwidth-manager_0.5.0-r2_all.ipk
Size: 66970
Size: 66969
Package: luci-app-cdn-cache
Version: 0.5.0-r3
@ -32,7 +32,7 @@ Architecture: all
Installed-Size: 122880
Description: Dashboard for managing local CDN caching proxy on OpenWrt
Filename: luci-app-cdn-cache_0.5.0-r3_all.ipk
Size: 23189
Size: 23191
Package: luci-app-client-guardian
Version: 0.4.0-r7
@ -68,7 +68,7 @@ Architecture: all
Installed-Size: 71680
Description: Cyberpunk-themed RSS feed aggregator dashboard with social media support
Filename: luci-app-cyberfeed_0.1.1-r1_all.ipk
Size: 12840
Size: 12836
Package: luci-app-exposure
Version: 1.0.0-r3
@ -80,7 +80,7 @@ Architecture: all
Installed-Size: 153600
Description: LuCI SecuBox Service Exposure Manager
Filename: luci-app-exposure_1.0.0-r3_all.ipk
Size: 20534
Size: 20535
Package: luci-app-gitea
Version: 1.0.0-r2
@ -92,7 +92,7 @@ Architecture: all
Installed-Size: 92160
Description: Modern dashboard for Gitea Platform management on OpenWrt
Filename: luci-app-gitea_1.0.0-r2_all.ipk
Size: 15587
Size: 15586
Package: luci-app-glances
Version: 1.0.0-r2
@ -104,7 +104,7 @@ Architecture: all
Installed-Size: 40960
Description: Modern dashboard for Glances system monitoring with SecuBox theme
Filename: luci-app-glances_1.0.0-r2_all.ipk
Size: 6966
Size: 6963
Package: luci-app-haproxy
Version: 1.0.0-r8
@ -116,7 +116,7 @@ Architecture: all
Installed-Size: 204800
Description: Web interface for managing HAProxy load balancer with vhosts, SSL certificates, and backend routing
Filename: luci-app-haproxy_1.0.0-r8_all.ipk
Size: 34167
Size: 34164
Package: luci-app-hexojs
Version: 1.0.0-r3
@ -128,7 +128,7 @@ Architecture: all
Installed-Size: 215040
Description: Modern dashboard for Hexo static site generator on OpenWrt
Filename: luci-app-hexojs_1.0.0-r3_all.ipk
Size: 32976
Size: 32974
Package: luci-app-ksm-manager
Version: 0.4.0-r2
@ -140,7 +140,7 @@ Architecture: all
Installed-Size: 112640
Description: Centralized cryptographic key management with hardware security module (HSM) support for Nitrokey and YubiKey devices. Provides secure key storage, certificate management, SSH key handling, and secret storage with audit logging.
Filename: luci-app-ksm-manager_0.4.0-r2_all.ipk
Size: 18721
Size: 18720
Package: luci-app-localai
Version: 0.1.0-r15
@ -152,7 +152,7 @@ Architecture: all
Installed-Size: 81920
Description: Modern dashboard for LocalAI LLM management on OpenWrt
Filename: luci-app-localai_0.1.0-r15_all.ipk
Size: 14363
Size: 14361
Package: luci-app-lyrion
Version: 1.0.0-r1
@ -164,7 +164,7 @@ Architecture: all
Installed-Size: 40960
Description: LuCI support for Lyrion Music Server
Filename: luci-app-lyrion_1.0.0-r1_all.ipk
Size: 6726
Size: 6722
Package: luci-app-magicmirror2
Version: 0.4.0-r6
@ -188,7 +188,7 @@ Architecture: all
Installed-Size: 30720
Description: LuCI support for Mail-in-a-Box
Filename: luci-app-mailinabox_1.0.0-r1_all.ipk
Size: 5478
Size: 5484
Package: luci-app-media-flow
Version: 0.6.4-r1
@ -200,7 +200,7 @@ Architecture: all
Installed-Size: 102400
Description: Real-time detection and monitoring of streaming services (Netflix, YouTube, Spotify, etc.) with quality estimation, history tracking, and alerts. Supports nDPId local DPI and netifyd.
Filename: luci-app-media-flow_0.6.4-r1_all.ipk
Size: 19122
Size: 19124
Package: luci-app-metablogizer
Version: 1.0.0-r3
@ -212,7 +212,7 @@ Architecture: all
Installed-Size: 112640
Description: LuCI support for MetaBlogizer Static Site Publisher
Filename: luci-app-metablogizer_1.0.0-r3_all.ipk
Size: 23227
Size: 23506
Package: luci-app-metabolizer
Version: 1.0.0-r2
@ -224,7 +224,7 @@ Architecture: all
Installed-Size: 30720
Description: LuCI support for Metabolizer CMS
Filename: luci-app-metabolizer_1.0.0-r2_all.ipk
Size: 4759
Size: 4763
Package: luci-app-mitmproxy
Version: 0.4.0-r6
@ -236,7 +236,7 @@ Architecture: all
Installed-Size: 102400
Description: Modern dashboard for mitmproxy HTTPS traffic inspection with SecuBox theme
Filename: luci-app-mitmproxy_0.4.0-r6_all.ipk
Size: 18932
Size: 18934
Package: luci-app-mmpm
Version: 0.2.0-r3
@ -248,7 +248,7 @@ Architecture: all
Installed-Size: 51200
Description: Web interface for MMPM - MagicMirror Package Manager
Filename: luci-app-mmpm_0.2.0-r3_all.ipk
Size: 7902
Size: 7903
Package: luci-app-mqtt-bridge
Version: 0.4.0-r4
@ -260,7 +260,7 @@ Architecture: all
Installed-Size: 122880
Description: USB-to-MQTT IoT hub with SecuBox theme
Filename: luci-app-mqtt-bridge_0.4.0-r4_all.ipk
Size: 22779
Size: 22780
Package: luci-app-ndpid
Version: 1.1.2-r2
@ -272,7 +272,7 @@ Architecture: all
Installed-Size: 122880
Description: Modern dashboard for nDPId deep packet inspection on OpenWrt
Filename: luci-app-ndpid_1.1.2-r2_all.ipk
Size: 22457
Size: 22454
Package: luci-app-netdata-dashboard
Version: 0.5.0-r2
@ -296,7 +296,7 @@ Architecture: all
Installed-Size: 307200
Description: Configure OpenWrt for different network modes: Sniffer, Access Point, Relay, Router
Filename: luci-app-network-modes_0.5.0-r3_all.ipk
Size: 55609
Size: 55610
Package: luci-app-network-tweaks
Version: 1.0.0-r7
@ -308,7 +308,7 @@ Architecture: all
Installed-Size: 81920
Description: Unified network services dashboard with DNS/hosts sync, CDN cache control, and WPAD auto-proxy configuration
Filename: luci-app-network-tweaks_1.0.0-r7_all.ipk
Size: 15464
Size: 15465
Package: luci-app-nextcloud
Version: 1.0.0-r1
@ -320,7 +320,7 @@ Architecture: all
Installed-Size: 30720
Description: LuCI support for Nextcloud
Filename: luci-app-nextcloud_1.0.0-r1_all.ipk
Size: 6487
Size: 6488
Package: luci-app-ollama
Version: 0.1.0-r1
@ -332,7 +332,7 @@ Architecture: all
Installed-Size: 71680
Description: Modern dashboard for Ollama LLM management on OpenWrt
Filename: luci-app-ollama_0.1.0-r1_all.ipk
Size: 11996
Size: 11994
Package: luci-app-picobrew
Version: 1.0.0-r1
@ -356,7 +356,7 @@ Architecture: all
Installed-Size: 266240
Description: Central control hub for all SecuBox modules. Provides unified dashboard, module status, system health monitoring, and quick actions.
Filename: luci-app-secubox_0.7.1-r4_all.ipk
Size: 49903
Size: 49904
Package: luci-app-secubox-admin
Version: 1.0.0-r19
@ -367,7 +367,7 @@ Architecture: all
Installed-Size: 337920
Description: Unified admin control center for SecuBox appstore plugins with system monitoring
Filename: luci-app-secubox-admin_1.0.0-r19_all.ipk
Size: 57096
Size: 57098
Package: luci-app-secubox-crowdsec
Version: 1.0.0-r3
@ -379,7 +379,7 @@ Architecture: all
Installed-Size: 81920
Description: LuCI SecuBox CrowdSec Dashboard
Filename: luci-app-secubox-crowdsec_1.0.0-r3_all.ipk
Size: 13915
Size: 13923
Package: luci-app-secubox-netdiag
Version: 1.0.0-r1
@ -391,7 +391,7 @@ Architecture: all
Installed-Size: 61440
Description: Real-time DSA switch port statistics, error monitoring, and network health diagnostics
Filename: luci-app-secubox-netdiag_1.0.0-r1_all.ipk
Size: 11998
Size: 12000
Package: luci-app-secubox-netifyd
Version: 1.2.1-r1
@ -403,7 +403,7 @@ Architecture: all
Installed-Size: 215040
Description: Complete LuCI interface for netifyd DPI engine with real-time flow monitoring, application detection, network analytics, and flow action plugins
Filename: luci-app-secubox-netifyd_1.2.1-r1_all.ipk
Size: 39497
Size: 39500
Package: luci-app-secubox-portal
Version: 0.7.0-r2
@ -415,7 +415,7 @@ Architecture: all
Installed-Size: 163840
Description: Unified entry point for all SecuBox applications with tabbed navigation
Filename: luci-app-secubox-portal_0.7.0-r2_all.ipk
Size: 32227
Size: 32228
Package: luci-app-secubox-security-threats
Version: 1.0.0-r4
@ -427,7 +427,7 @@ Architecture: all
Installed-Size: 71680
Description: Unified dashboard integrating netifyd DPI threats with CrowdSec intelligence for real-time threat monitoring and automated blocking
Filename: luci-app-secubox-security-threats_1.0.0-r4_all.ipk
Size: 13902
Size: 13904
Package: luci-app-service-registry
Version: 1.0.0-r1
@ -439,7 +439,7 @@ Architecture: all
Installed-Size: 194560
Description: Unified service aggregation with HAProxy vhosts, Tor hidden services, and QR-coded landing page
Filename: luci-app-service-registry_1.0.0-r1_all.ipk
Size: 39612
Size: 39826
Package: luci-app-streamlit
Version: 1.0.0-r9
@ -451,7 +451,7 @@ Architecture: all
Installed-Size: 122880
Description: Modern dashboard for Streamlit Platform management on OpenWrt
Filename: luci-app-streamlit_1.0.0-r9_all.ipk
Size: 20470
Size: 20471
Package: luci-app-system-hub
Version: 0.5.1-r4
@ -463,7 +463,7 @@ Architecture: all
Installed-Size: 358400
Description: Central system control with monitoring, services, logs, and backup
Filename: luci-app-system-hub_0.5.1-r4_all.ipk
Size: 66350
Size: 66351
Package: luci-app-tor-shield
Version: 1.0.0-r10
@ -499,7 +499,7 @@ Architecture: all
Installed-Size: 153600
Description: Nginx reverse proxy manager with Let's Encrypt SSL certificates, authentication, and WebSocket support
Filename: luci-app-vhost-manager_0.5.0-r5_all.ipk
Size: 26196
Size: 26200
Package: luci-app-wireguard-dashboard
Version: 0.7.0-r5
@ -523,7 +523,7 @@ Architecture: all
Installed-Size: 40960
Description: Graphical interface for managing the Zigbee2MQTT docker application.
Filename: luci-app-zigbee2mqtt_1.0.0-r2_all.ipk
Size: 7090
Size: 7088
Package: luci-theme-secubox
Version: 0.4.7-r1
@ -535,7 +535,7 @@ Architecture: all
Installed-Size: 460800
Description: Global CyberMood design system (CSS/JS/i18n) shared by all SecuBox dashboards.
Filename: luci-theme-secubox_0.4.7-r1_all.ipk
Size: 111797
Size: 111798
Package: secubox-app
Version: 1.0.0-r2
@ -546,7 +546,7 @@ Installed-Size: 92160
Description: Command line helper for SecuBox App Store manifests. Installs /usr/sbin/secubox-app
and ships the default manifests under /usr/share/secubox/plugins/.
Filename: secubox-app_1.0.0-r2_all.ipk
Size: 11187
Size: 11181
Package: secubox-app-adguardhome
Version: 1.0.0-r2
@ -560,7 +560,7 @@ Description: Installer, configuration, and service manager for running AdGuard
inside Docker on SecuBox-powered OpenWrt systems. Network-wide ad blocker
with DNS-over-HTTPS/TLS support and detailed analytics.
Filename: secubox-app-adguardhome_1.0.0-r2_all.ipk
Size: 2882
Size: 2886
Package: secubox-app-auth-logger
Version: 1.2.2-r1
@ -578,7 +578,7 @@ Description: Logs authentication failures from LuCI/rpcd and Dropbear SSH
- JavaScript hook to intercept login failures
- CrowdSec parser and bruteforce scenario
Filename: secubox-app-auth-logger_1.2.2-r1_all.ipk
Size: 9380
Size: 9379
Package: secubox-app-crowdsec-custom
Version: 1.1.0-r1
@ -601,7 +601,7 @@ Description: Custom CrowdSec configurations for SecuBox web interface protectio
- Webapp generic auth bruteforce protection
- Whitelist for trusted networks
Filename: secubox-app-crowdsec-custom_1.1.0-r1_all.ipk
Size: 5766
Size: 5765
Package: secubox-app-cs-firewall-bouncer
Version: 0.0.31-r4
@ -628,7 +628,7 @@ Description: SecuBox CrowdSec Firewall Bouncer for OpenWrt.
- Automatic restart on firewall reload
- procd service management
Filename: secubox-app-cs-firewall-bouncer_0.0.31-r4_aarch64_cortex-a72.ipk
Size: 5049322
Size: 5049324
Package: secubox-app-cyberfeed
Version: 0.2.1-r1
@ -642,7 +642,7 @@ Description: Cyberpunk-themed RSS feed aggregator for OpenWrt/SecuBox.
Features emoji injection, neon styling, and RSS-Bridge support
for social media feeds (Facebook, Twitter, Mastodon).
Filename: secubox-app-cyberfeed_0.2.1-r1_all.ipk
Size: 12454
Size: 12453
Package: secubox-app-domoticz
Version: 1.0.0-r2
@ -655,7 +655,7 @@ Installed-Size: 10240
Description: Installer, configuration, and service manager for running Domoticz
inside Docker on SecuBox-powered OpenWrt systems.
Filename: secubox-app-domoticz_1.0.0-r2_all.ipk
Size: 2544
Size: 2546
Package: secubox-app-exposure
Version: 1.0.0-r1
@ -670,7 +670,7 @@ Description: Unified service exposure manager for SecuBox.
- Dynamic Tor hidden service management
- HAProxy SSL reverse proxy configuration
Filename: secubox-app-exposure_1.0.0-r1_all.ipk
Size: 6837
Size: 6831
Package: secubox-app-gitea
Version: 1.0.0-r5
@ -693,7 +693,7 @@ Description: Gitea Git Platform - Self-hosted lightweight Git service
Runs in LXC container with Alpine Linux.
Configure in /etc/config/gitea.
Filename: secubox-app-gitea_1.0.0-r5_all.ipk
Size: 9407
Size: 9406
Package: secubox-app-glances
Version: 1.0.0-r1
@ -716,7 +716,7 @@ Description: Glances - Cross-platform system monitoring tool for SecuBox.
Runs in LXC container for isolation and security.
Configure in /etc/config/glances.
Filename: secubox-app-glances_1.0.0-r1_all.ipk
Size: 5538
Size: 5540
Package: secubox-app-haproxy
Version: 1.0.0-r23
@ -736,7 +736,7 @@ Description: HAProxy load balancer and reverse proxy running in an LXC containe
- Stats dashboard
- Rate limiting and ACLs
Filename: secubox-app-haproxy_1.0.0-r23_all.ipk
Size: 15682
Size: 15680
Package: secubox-app-hexojs
Version: 1.0.0-r8
@ -760,7 +760,7 @@ Description: Hexo CMS - Self-hosted static blog generator for OpenWrt
Runs in LXC container with Alpine Linux.
Configure in /etc/config/hexojs.
Filename: secubox-app-hexojs_1.0.0-r8_all.ipk
Size: 94937
Size: 94933
Package: secubox-app-localai
Version: 2.25.0-r1
@ -782,7 +782,7 @@ Description: LocalAI native binary package for OpenWrt.
API: http://<router-ip>:8081/v1
Filename: secubox-app-localai_2.25.0-r1_all.ipk
Size: 5726
Size: 5727
Package: secubox-app-localai-wb
Version: 2.25.0-r1
@ -806,7 +806,7 @@ Description: LocalAI native binary package for OpenWrt.
API: http://<router-ip>:8080/v1
Filename: secubox-app-localai-wb_2.25.0-r1_all.ipk
Size: 7956
Size: 7950
Package: secubox-app-lyrion
Version: 2.0.2-r1
@ -826,7 +826,7 @@ Description: Lyrion Media Server (formerly Logitech Media Server / Squeezebox S
Auto-detects available runtime, preferring LXC for lower resource usage.
Configure runtime in /etc/config/lyrion.
Filename: secubox-app-lyrion_2.0.2-r1_all.ipk
Size: 7285
Size: 7291
Package: secubox-app-magicmirror2
Version: 0.4.0-r8
@ -848,7 +848,7 @@ Description: MagicMirror² - Open source modular smart mirror platform for Secu
Runs in LXC container for isolation and security.
Configure in /etc/config/magicmirror2.
Filename: secubox-app-magicmirror2_0.4.0-r8_all.ipk
Size: 9244
Size: 9253
Package: secubox-app-mailinabox
Version: 2.0.0-r1
@ -873,7 +873,7 @@ Description: Complete email server solution using docker-mailserver for SecuBox
Commands: mailinaboxctl --help
Filename: secubox-app-mailinabox_2.0.0-r1_all.ipk
Size: 7570
Size: 7572
Package: secubox-app-metabolizer
Version: 1.0.0-r3
@ -894,7 +894,7 @@ Description: Metabolizer Blog Pipeline - Integrated CMS with Git-based workflow
Pipeline: Edit in Streamlit -> Push to Gitea -> Build with Hexo -> Publish
Filename: secubox-app-metabolizer_1.0.0-r3_all.ipk
Size: 13976
Size: 13981
Package: secubox-app-mitmproxy
Version: 0.4.0-r16
@ -936,7 +936,7 @@ Description: MMPM (MagicMirror Package Manager) for SecuBox.
Runs inside the MagicMirror2 LXC container.
Filename: secubox-app-mmpm_0.2.0-r5_all.ipk
Size: 3979
Size: 3980
Package: secubox-app-nextcloud
Version: 1.0.0-r2
@ -950,7 +950,7 @@ Description: Installer, configuration, and service manager for running Nextclou
inside Docker on SecuBox-powered OpenWrt systems. Self-hosted file
sync and share with calendar, contacts, and collaboration.
Filename: secubox-app-nextcloud_1.0.0-r2_all.ipk
Size: 2957
Size: 2959
Package: secubox-app-ollama
Version: 0.1.0-r1
@ -972,7 +972,7 @@ Description: Ollama - Simple local LLM runtime for SecuBox-powered OpenWrt syst
Runs in Docker/Podman container.
Configure in /etc/config/ollama.
Filename: secubox-app-ollama_0.1.0-r1_all.ipk
Size: 5737
Size: 5736
Package: secubox-app-picobrew
Version: 1.0.0-r7
@ -994,7 +994,7 @@ Description: PicoBrew Server - Self-hosted brewing controller for PicoBrew devi
Runs in LXC container with Python/Flask backend.
Configure in /etc/config/picobrew.
Filename: secubox-app-picobrew_1.0.0-r7_all.ipk
Size: 5535
Size: 5539
Package: secubox-app-streamlit
Version: 1.0.0-r5
@ -1021,7 +1021,7 @@ Description: Streamlit App Platform - Self-hosted Python data app platform
Configure in /etc/config/streamlit.
Filename: secubox-app-streamlit_1.0.0-r5_all.ipk
Size: 11719
Size: 11720
Package: secubox-app-tor
Version: 1.0.0-r1
@ -1044,7 +1044,7 @@ Description: SecuBox Tor Shield - One-click Tor anonymization for OpenWrt
Configure in /etc/config/tor-shield.
Filename: secubox-app-tor_1.0.0-r1_all.ipk
Size: 7379
Size: 7381
Package: secubox-app-webapp
Version: 1.5.0-r7
@ -1062,7 +1062,7 @@ Description: SecuBox Control Center Dashboard - A web-based dashboard for monit
- Service management
- Network interface control
Filename: secubox-app-webapp_1.5.0-r7_all.ipk
Size: 39171
Size: 39168
Package: secubox-app-zigbee2mqtt
Version: 1.0.0-r3
@ -1075,7 +1075,7 @@ Installed-Size: 20480
Description: Installer, configuration, and service manager for running Zigbee2MQTT
inside Docker on SecuBox-powered OpenWrt systems.
Filename: secubox-app-zigbee2mqtt_1.0.0-r3_all.ipk
Size: 3548
Size: 3542
Package: secubox-core
Version: 0.10.0-r9
@ -1095,7 +1095,7 @@ Description: SecuBox Core Framework provides the foundational infrastructure fo
- Unified CLI interface
- ubus RPC backend
Filename: secubox-core_0.10.0-r9_all.ipk
Size: 80069
Size: 80070
Package: secubox-p2p
Version: 0.2.0-r1
@ -1109,5 +1109,5 @@ Description: SecuBox P2P Hub backend providing peer discovery, mesh networking
DNS federation, and distributed service management. Includes mDNS
service announcement and REST API on port 7331 for mesh visibility.
Filename: secubox-p2p_0.2.0-r1_all.ipk
Size: 15590
Size: 15588

View File

@ -1,12 +1,12 @@
{
"feed_url": "/secubox-feed",
"generated": "2026-01-30T19:06:08+01:00",
"generated": "2026-01-30T19:09:00+01:00",
"packages": [
{
"name": "luci-app-auth-guardian",
"version": "0.4.0-r3",
"filename": "luci-app-auth-guardian_0.4.0-r3_all.ipk",
"size": 12078,
"size": 12080,
"category": "security",
"icon": "key",
"description": "Authentication management",
@ -18,7 +18,7 @@
"name": "luci-app-bandwidth-manager",
"version": "0.5.0-r2",
"filename": "luci-app-bandwidth-manager_0.5.0-r2_all.ipk",
"size": 66970,
"size": 66969,
"category": "network",
"icon": "activity",
"description": "Bandwidth monitoring and control",
@ -30,7 +30,7 @@
"name": "luci-app-cdn-cache",
"version": "0.5.0-r3",
"filename": "luci-app-cdn-cache_0.5.0-r3_all.ipk",
"size": 23189,
"size": 23191,
"category": "network",
"icon": "globe",
"description": "CDN caching",
@ -66,7 +66,7 @@
"name": "luci-app-cyberfeed",
"version": "0.1.1-r1",
"filename": "luci-app-cyberfeed_0.1.1-r1_all.ipk",
"size": 12840,
"size": 12836,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -78,7 +78,7 @@
"name": "luci-app-exposure",
"version": "1.0.0-r3",
"filename": "luci-app-exposure_1.0.0-r3_all.ipk",
"size": 20534,
"size": 20535,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -90,7 +90,7 @@
"name": "luci-app-gitea",
"version": "1.0.0-r2",
"filename": "luci-app-gitea_1.0.0-r2_all.ipk",
"size": 15587,
"size": 15586,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -102,7 +102,7 @@
"name": "luci-app-glances",
"version": "1.0.0-r2",
"filename": "luci-app-glances_1.0.0-r2_all.ipk",
"size": 6966,
"size": 6963,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -114,7 +114,7 @@
"name": "luci-app-haproxy",
"version": "1.0.0-r8",
"filename": "luci-app-haproxy_1.0.0-r8_all.ipk",
"size": 34167,
"size": 34164,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -126,7 +126,7 @@
"name": "luci-app-hexojs",
"version": "1.0.0-r3",
"filename": "luci-app-hexojs_1.0.0-r3_all.ipk",
"size": 32976,
"size": 32974,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -138,7 +138,7 @@
"name": "luci-app-ksm-manager",
"version": "0.4.0-r2",
"filename": "luci-app-ksm-manager_0.4.0-r2_all.ipk",
"size": 18721,
"size": 18720,
"category": "system",
"icon": "cpu",
"description": "Kernel memory management",
@ -150,7 +150,7 @@
"name": "luci-app-localai",
"version": "0.1.0-r15",
"filename": "luci-app-localai_0.1.0-r15_all.ipk",
"size": 14363,
"size": 14361,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -162,7 +162,7 @@
"name": "luci-app-lyrion",
"version": "1.0.0-r1",
"filename": "luci-app-lyrion_1.0.0-r1_all.ipk",
"size": 6726,
"size": 6722,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -186,7 +186,7 @@
"name": "luci-app-mailinabox",
"version": "1.0.0-r1",
"filename": "luci-app-mailinabox_1.0.0-r1_all.ipk",
"size": 5478,
"size": 5484,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -198,7 +198,7 @@
"name": "luci-app-media-flow",
"version": "0.6.4-r1",
"filename": "luci-app-media-flow_0.6.4-r1_all.ipk",
"size": 19122,
"size": 19124,
"category": "media",
"icon": "film",
"description": "Media streaming",
@ -210,7 +210,7 @@
"name": "luci-app-metablogizer",
"version": "1.0.0-r3",
"filename": "luci-app-metablogizer_1.0.0-r3_all.ipk",
"size": 23227,
"size": 23506,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -222,7 +222,7 @@
"name": "luci-app-metabolizer",
"version": "1.0.0-r2",
"filename": "luci-app-metabolizer_1.0.0-r2_all.ipk",
"size": 4759,
"size": 4763,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -234,7 +234,7 @@
"name": "luci-app-mitmproxy",
"version": "0.4.0-r6",
"filename": "luci-app-mitmproxy_0.4.0-r6_all.ipk",
"size": 18932,
"size": 18934,
"category": "security",
"icon": "lock",
"description": "HTTPS proxy and traffic inspection",
@ -246,7 +246,7 @@
"name": "luci-app-mmpm",
"version": "0.2.0-r3",
"filename": "luci-app-mmpm_0.2.0-r3_all.ipk",
"size": 7902,
"size": 7903,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -258,7 +258,7 @@
"name": "luci-app-mqtt-bridge",
"version": "0.4.0-r4",
"filename": "luci-app-mqtt-bridge_0.4.0-r4_all.ipk",
"size": 22779,
"size": 22780,
"category": "iot",
"icon": "message-square",
"description": "MQTT bridge",
@ -270,7 +270,7 @@
"name": "luci-app-ndpid",
"version": "1.1.2-r2",
"filename": "luci-app-ndpid_1.1.2-r2_all.ipk",
"size": 22457,
"size": 22454,
"category": "security",
"icon": "eye",
"description": "Deep packet inspection",
@ -294,7 +294,7 @@
"name": "luci-app-network-modes",
"version": "0.5.0-r3",
"filename": "luci-app-network-modes_0.5.0-r3_all.ipk",
"size": 55609,
"size": 55610,
"category": "network",
"icon": "wifi",
"description": "Network configuration",
@ -306,7 +306,7 @@
"name": "luci-app-network-tweaks",
"version": "1.0.0-r7",
"filename": "luci-app-network-tweaks_1.0.0-r7_all.ipk",
"size": 15464,
"size": 15465,
"category": "network",
"icon": "wifi",
"description": "Network configuration",
@ -318,7 +318,7 @@
"name": "luci-app-nextcloud",
"version": "1.0.0-r1",
"filename": "luci-app-nextcloud_1.0.0-r1_all.ipk",
"size": 6487,
"size": 6488,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -330,7 +330,7 @@
"name": "luci-app-ollama",
"version": "0.1.0-r1",
"filename": "luci-app-ollama_0.1.0-r1_all.ipk",
"size": 11996,
"size": 11994,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -354,7 +354,7 @@
"name": "luci-app-secubox",
"version": "0.7.1-r4",
"filename": "luci-app-secubox_0.7.1-r4_all.ipk",
"size": 49903,
"size": 49904,
"category": "system",
"icon": "box",
"description": "SecuBox system component",
@ -366,7 +366,7 @@
"name": "luci-app-secubox-admin",
"version": "1.0.0-r19",
"filename": "luci-app-secubox-admin_1.0.0-r19_all.ipk",
"size": 57096,
"size": 57098,
"category": "system",
"icon": "box",
"description": "SecuBox system component",
@ -378,7 +378,7 @@
"name": "luci-app-secubox-crowdsec",
"version": "1.0.0-r3",
"filename": "luci-app-secubox-crowdsec_1.0.0-r3_all.ipk",
"size": 13915,
"size": 13923,
"category": "system",
"icon": "box",
"description": "SecuBox system component",
@ -390,7 +390,7 @@
"name": "luci-app-secubox-netdiag",
"version": "1.0.0-r1",
"filename": "luci-app-secubox-netdiag_1.0.0-r1_all.ipk",
"size": 11998,
"size": 12000,
"category": "system",
"icon": "box",
"description": "SecuBox system component",
@ -402,7 +402,7 @@
"name": "luci-app-secubox-netifyd",
"version": "1.2.1-r1",
"filename": "luci-app-secubox-netifyd_1.2.1-r1_all.ipk",
"size": 39497,
"size": 39500,
"category": "system",
"icon": "box",
"description": "SecuBox system component",
@ -414,7 +414,7 @@
"name": "luci-app-secubox-portal",
"version": "0.7.0-r2",
"filename": "luci-app-secubox-portal_0.7.0-r2_all.ipk",
"size": 32227,
"size": 32228,
"category": "system",
"icon": "box",
"description": "SecuBox system component",
@ -426,7 +426,7 @@
"name": "luci-app-secubox-security-threats",
"version": "1.0.0-r4",
"filename": "luci-app-secubox-security-threats_1.0.0-r4_all.ipk",
"size": 13902,
"size": 13904,
"category": "system",
"icon": "box",
"description": "SecuBox system component",
@ -438,7 +438,7 @@
"name": "luci-app-service-registry",
"version": "1.0.0-r1",
"filename": "luci-app-service-registry_1.0.0-r1_all.ipk",
"size": 39612,
"size": 39826,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -450,7 +450,7 @@
"name": "luci-app-streamlit",
"version": "1.0.0-r9",
"filename": "luci-app-streamlit_1.0.0-r9_all.ipk",
"size": 20470,
"size": 20471,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -462,7 +462,7 @@
"name": "luci-app-system-hub",
"version": "0.5.1-r4",
"filename": "luci-app-system-hub_0.5.1-r4_all.ipk",
"size": 66350,
"size": 66351,
"category": "system",
"icon": "settings",
"description": "System management",
@ -498,7 +498,7 @@
"name": "luci-app-vhost-manager",
"version": "0.5.0-r5",
"filename": "luci-app-vhost-manager_0.5.0-r5_all.ipk",
"size": 26196,
"size": 26200,
"category": "network",
"icon": "server",
"description": "Virtual host management",
@ -522,7 +522,7 @@
"name": "luci-app-zigbee2mqtt",
"version": "1.0.0-r2",
"filename": "luci-app-zigbee2mqtt_1.0.0-r2_all.ipk",
"size": 7090,
"size": 7088,
"category": "iot",
"icon": "radio",
"description": "Zigbee device management",
@ -534,7 +534,7 @@
"name": "luci-theme-secubox",
"version": "0.4.7-r1",
"filename": "luci-theme-secubox_0.4.7-r1_all.ipk",
"size": 111797,
"size": 111798,
"category": "theme",
"icon": "palette",
"description": "LuCI theme",
@ -546,7 +546,7 @@
"name": "secubox-app",
"version": "1.0.0-r2",
"filename": "secubox-app_1.0.0-r2_all.ipk",
"size": 11187,
"size": 11181,
"category": "utility",
"icon": "package",
"description": "SecuBox package",
@ -558,7 +558,7 @@
"name": "secubox-app-adguardhome",
"version": "1.0.0-r2",
"filename": "secubox-app-adguardhome_1.0.0-r2_all.ipk",
"size": 2882,
"size": 2886,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -570,7 +570,7 @@
"name": "secubox-app-auth-logger",
"version": "1.2.2-r1",
"filename": "secubox-app-auth-logger_1.2.2-r1_all.ipk",
"size": 9380,
"size": 9379,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -582,7 +582,7 @@
"name": "secubox-app-crowdsec-custom",
"version": "1.1.0-r1",
"filename": "secubox-app-crowdsec-custom_1.1.0-r1_all.ipk",
"size": 5766,
"size": 5765,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -594,7 +594,7 @@
"name": "secubox-app-cs-firewall-bouncer",
"version": "0.0.31-r4_aarch64",
"filename": "secubox-app-cs-firewall-bouncer_0.0.31-r4_aarch64_cortex-a72.ipk",
"size": 5049322,
"size": 5049324,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -606,7 +606,7 @@
"name": "secubox-app-cyberfeed",
"version": "0.2.1-r1",
"filename": "secubox-app-cyberfeed_0.2.1-r1_all.ipk",
"size": 12454,
"size": 12453,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -618,7 +618,7 @@
"name": "secubox-app-domoticz",
"version": "1.0.0-r2",
"filename": "secubox-app-domoticz_1.0.0-r2_all.ipk",
"size": 2544,
"size": 2546,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -630,7 +630,7 @@
"name": "secubox-app-exposure",
"version": "1.0.0-r1",
"filename": "secubox-app-exposure_1.0.0-r1_all.ipk",
"size": 6837,
"size": 6831,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -642,7 +642,7 @@
"name": "secubox-app-gitea",
"version": "1.0.0-r5",
"filename": "secubox-app-gitea_1.0.0-r5_all.ipk",
"size": 9407,
"size": 9406,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -654,7 +654,7 @@
"name": "secubox-app-glances",
"version": "1.0.0-r1",
"filename": "secubox-app-glances_1.0.0-r1_all.ipk",
"size": 5538,
"size": 5540,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -666,7 +666,7 @@
"name": "secubox-app-haproxy",
"version": "1.0.0-r23",
"filename": "secubox-app-haproxy_1.0.0-r23_all.ipk",
"size": 15682,
"size": 15680,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -678,7 +678,7 @@
"name": "secubox-app-hexojs",
"version": "1.0.0-r8",
"filename": "secubox-app-hexojs_1.0.0-r8_all.ipk",
"size": 94937,
"size": 94933,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -690,7 +690,7 @@
"name": "secubox-app-localai",
"version": "2.25.0-r1",
"filename": "secubox-app-localai_2.25.0-r1_all.ipk",
"size": 5726,
"size": 5727,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -702,7 +702,7 @@
"name": "secubox-app-localai-wb",
"version": "2.25.0-r1",
"filename": "secubox-app-localai-wb_2.25.0-r1_all.ipk",
"size": 7956,
"size": 7950,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -714,7 +714,7 @@
"name": "secubox-app-lyrion",
"version": "2.0.2-r1",
"filename": "secubox-app-lyrion_2.0.2-r1_all.ipk",
"size": 7285,
"size": 7291,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -726,7 +726,7 @@
"name": "secubox-app-magicmirror2",
"version": "0.4.0-r8",
"filename": "secubox-app-magicmirror2_0.4.0-r8_all.ipk",
"size": 9244,
"size": 9253,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -738,7 +738,7 @@
"name": "secubox-app-mailinabox",
"version": "2.0.0-r1",
"filename": "secubox-app-mailinabox_2.0.0-r1_all.ipk",
"size": 7570,
"size": 7572,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -750,7 +750,7 @@
"name": "secubox-app-metabolizer",
"version": "1.0.0-r3",
"filename": "secubox-app-metabolizer_1.0.0-r3_all.ipk",
"size": 13976,
"size": 13981,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -774,7 +774,7 @@
"name": "secubox-app-mmpm",
"version": "0.2.0-r5",
"filename": "secubox-app-mmpm_0.2.0-r5_all.ipk",
"size": 3979,
"size": 3980,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -786,7 +786,7 @@
"name": "secubox-app-nextcloud",
"version": "1.0.0-r2",
"filename": "secubox-app-nextcloud_1.0.0-r2_all.ipk",
"size": 2957,
"size": 2959,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -798,7 +798,7 @@
"name": "secubox-app-ollama",
"version": "0.1.0-r1",
"filename": "secubox-app-ollama_0.1.0-r1_all.ipk",
"size": 5737,
"size": 5736,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -810,7 +810,7 @@
"name": "secubox-app-picobrew",
"version": "1.0.0-r7",
"filename": "secubox-app-picobrew_1.0.0-r7_all.ipk",
"size": 5535,
"size": 5539,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -822,7 +822,7 @@
"name": "secubox-app-streamlit",
"version": "1.0.0-r5",
"filename": "secubox-app-streamlit_1.0.0-r5_all.ipk",
"size": 11719,
"size": 11720,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -834,7 +834,7 @@
"name": "secubox-app-tor",
"version": "1.0.0-r1",
"filename": "secubox-app-tor_1.0.0-r1_all.ipk",
"size": 7379,
"size": 7381,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -846,7 +846,7 @@
"name": "secubox-app-webapp",
"version": "1.5.0-r7",
"filename": "secubox-app-webapp_1.5.0-r7_all.ipk",
"size": 39171,
"size": 39168,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -858,7 +858,7 @@
"name": "secubox-app-zigbee2mqtt",
"version": "1.0.0-r3",
"filename": "secubox-app-zigbee2mqtt_1.0.0-r3_all.ipk",
"size": 3548,
"size": 3542,
"category": "secubox",
"icon": "package",
"description": "SecuBox backend service",
@ -870,7 +870,7 @@
"name": "secubox-core",
"version": "0.10.0-r9",
"filename": "secubox-core_0.10.0-r9_all.ipk",
"size": 80069,
"size": 80070,
"category": "system",
"icon": "box",
"description": "SecuBox core components",
@ -882,7 +882,7 @@
"name": "secubox-p2p",
"version": "0.2.0-r1",
"filename": "secubox-p2p_0.2.0-r1_all.ipk",
"size": 15590,
"size": 15588,
"category": "utility",
"icon": "package",
"description": "SecuBox package",