From b00d13b84aa014064d053a626658e63ae0750ea4 Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Wed, 31 Dec 2025 12:38:47 +0100 Subject: [PATCH] fix(secubox): rename .appstore to appstore to fix package build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Renamed .appstore directory to appstore (without dot prefix) to ensure proper inclusion in OpenWrt package builds. Hidden directories (starting with .) can be problematic during tarball creation and package installation. Changes: - Renamed .appstore/ to appstore/ - Updated Makefile install path references - Updated RPCD script APPSTORE_JSON path - Fixed file permissions to 644 for apps.json This fixes the issue where appstore appears empty on fresh firmware installations. New path: /usr/share/secubox/appstore/apps.json Old path: /usr/share/secubox/.appstore/apps.json 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- luci-app-secubox/Makefile | 4 +- luci-app-secubox/appstore/README.md | 73 +++++++++ luci-app-secubox/appstore/apps.json | 138 ++++++++++++++++++ .../root/usr/libexec/rpcd/luci.secubox | 2 +- 4 files changed, 214 insertions(+), 3 deletions(-) create mode 100644 luci-app-secubox/appstore/README.md create mode 100644 luci-app-secubox/appstore/apps.json diff --git a/luci-app-secubox/Makefile b/luci-app-secubox/Makefile index 5308599a..b2ca4317 100644 --- a/luci-app-secubox/Makefile +++ b/luci-app-secubox/Makefile @@ -28,8 +28,8 @@ define Package/$(PKG_NAME)/install for file in $(CURDIR)/profiles/*.json; do \ $(INSTALL_DATA) $$file $(1)/usr/share/secubox/profiles/$$(basename $$file); \ done - $(INSTALL_DIR) $(1)/usr/share/secubox/.appstore - $(INSTALL_DATA) $(CURDIR)/.appstore/apps.json $(1)/usr/share/secubox/.appstore/apps.json + $(INSTALL_DIR) $(1)/usr/share/secubox/appstore + $(INSTALL_DATA) $(CURDIR)/appstore/apps.json $(1)/usr/share/secubox/appstore/apps.json endef # call BuildPackage - OpenWrt buildroot diff --git a/luci-app-secubox/appstore/README.md b/luci-app-secubox/appstore/README.md new file mode 100644 index 00000000..87cf1b25 --- /dev/null +++ b/luci-app-secubox/appstore/README.md @@ -0,0 +1,73 @@ +# SecuBox App Store Metadata + +This directory contains metadata for all SecuBox applications available in the app store. + +## Structure + +- `apps.json` - Master catalog of all available SecuBox applications +- Individual app directories with detailed metadata + +## App Categories + +### 🔒 Security +Applications focused on security, threat detection, and network protection. + +### 🌐 Network +Network services, utilities, and infrastructure applications. + +### 🏠 IoT & Home Automation +Smart home devices, automation systems, and IoT integration. + +### 🎬 Media +Media streaming, entertainment, and content management. + +## Application Status + +- **stable** - Production-ready, tested and stable +- **beta** - Functional but may have minor issues +- **alpha** - Early development, experimental +- **dev** - Under active development + +## Adding New Applications + +To add a new application to the app store: + +1. Create the package in `package/secubox/secubox-app-/` +2. Add metadata entry in `apps.json` +3. Ensure proper tagging and categorization +4. Add dependencies and conflicts if any +5. Link to LuCI app if available + +## Metadata Fields + +Each app entry includes: + +- **id**: Unique package identifier +- **name**: Display name +- **version**: Current version +- **category**: Primary category +- **description**: Brief description +- **icon**: Emoji or icon identifier +- **author**: Package maintainer +- **license**: Software license +- **url**: Upstream project URL +- **tags**: Searchable tags +- **requires**: System requirements +- **status**: Development status +- **luci_app**: Associated LuCI interface (if any) +- **dependencies**: Required packages +- **conflicts**: Conflicting packages + +## Integration + +The app store metadata is used by: + +- **luci-app-secubox** - Main SecuBox interface +- **Build system** - Package management and dependency resolution +- **Documentation** - Automated documentation generation +- **CI/CD** - Automated testing and deployment + +## Versioning + +App store metadata version: 1.0 +Last updated: 2024-12-30 diff --git a/luci-app-secubox/appstore/apps.json b/luci-app-secubox/appstore/apps.json new file mode 100644 index 00000000..79e4acb2 --- /dev/null +++ b/luci-app-secubox/appstore/apps.json @@ -0,0 +1,138 @@ +{ + "apps": [ + { + "id": "secubox-app-crowdsec", + "name": "CrowdSec", + "version": "1.7.4", + "category": "security", + "description": "CrowdSec is an open-source, lightweight security engine that detects and responds to malicious behaviors", + "icon": "🛡️", + "author": "CyberMind.fr", + "license": "MIT", + "url": "https://github.com/crowdsecurity/crowdsec", + "tags": ["security", "ids", "ips", "firewall", "threat-detection"], + "requires": { + "go": "1.23+", + "memory": "128MB", + "storage": "50MB", + "build": "full" + }, + "status": "dev", + "luci_app": "luci-app-crowdsec-dashboard", + "dependencies": ["iptables-nft"], + "conflicts": [], + "notes": "Requires full OpenWrt build environment (not SDK). Go 1.23.12 available in OpenWrt 24.10." + }, + { + "id": "secubox-app-nodogsplash", + "name": "NoDogSplash", + "version": "5.0.2", + "category": "network", + "description": "Captive portal solution that intercepts HTTP traffic and serves a customizable splash page before granting network access", + "icon": "🌐", + "author": "CyberMind.fr", + "license": "GPL-2.0-or-later", + "url": "https://github.com/nodogsplash/nodogsplash", + "tags": ["captive-portal", "hotspot", "guest-network", "access-control"], + "requires": { + "memory": "32MB", + "storage": "5MB" + }, + "status": "stable", + "luci_app": null, + "dependencies": ["libmicrohttpd", "libjson-c", "iptables-nft"], + "conflicts": [] + }, + { + "id": "secubox-app-domoticz", + "name": "Domoticz", + "version": "1.0.0", + "category": "iot", + "description": "Home automation system with support for various devices and protocols", + "icon": "🏠", + "author": "CyberMind.fr", + "license": "GPL-3.0", + "url": "https://www.domoticz.com/", + "tags": ["home-automation", "iot", "smart-home", "docker"], + "requires": { + "docker": true, + "memory": "256MB", + "storage": "100MB" + }, + "status": "stable", + "luci_app": null, + "dependencies": ["docker", "dockerd"], + "conflicts": [] + }, + { + "id": "secubox-app-lyrion", + "name": "Lyrion Music Server", + "version": "1.0.0", + "category": "media", + "description": "Multi-room audio streaming server (formerly Logitech Media Server)", + "icon": "🎵", + "author": "CyberMind.fr", + "license": "GPL-2.0", + "url": "https://lyrion.org/", + "tags": ["music", "streaming", "multi-room", "audio", "docker"], + "requires": { + "docker": true, + "memory": "128MB", + "storage": "50MB" + }, + "status": "stable", + "luci_app": null, + "dependencies": ["docker", "dockerd"], + "conflicts": [] + }, + { + "id": "secubox-app-zigbee2mqtt", + "name": "Zigbee2MQTT", + "version": "1.0.0", + "category": "iot", + "description": "Zigbee to MQTT bridge allowing you to use Zigbee devices without proprietary hubs", + "icon": "📡", + "author": "CyberMind.fr", + "license": "GPL-3.0", + "url": "https://www.zigbee2mqtt.io/", + "tags": ["zigbee", "mqtt", "iot", "smart-home", "docker"], + "requires": { + "docker": true, + "zigbee_adapter": true, + "memory": "128MB", + "storage": "50MB" + }, + "status": "stable", + "luci_app": "luci-app-zigbee2mqtt", + "dependencies": ["docker", "dockerd", "mqtt-broker"], + "conflicts": [] + } + ], + "categories": { + "security": { + "name": "Security", + "icon": "🔒", + "description": "Security and threat detection applications" + }, + "network": { + "name": "Network", + "icon": "🌐", + "description": "Network services and utilities" + }, + "iot": { + "name": "IoT & Home Automation", + "icon": "🏠", + "description": "Internet of Things and home automation" + }, + "media": { + "name": "Media", + "icon": "🎬", + "description": "Media streaming and entertainment" + } + }, + "metadata": { + "version": "1.0", + "last_updated": "2024-12-30", + "repository": "https://github.com/cybermind-studio/secubox-openwrt" + } +} diff --git a/luci-app-secubox/root/usr/libexec/rpcd/luci.secubox b/luci-app-secubox/root/usr/libexec/rpcd/luci.secubox index ee5e6303..cab428fd 100755 --- a/luci-app-secubox/root/usr/libexec/rpcd/luci.secubox +++ b/luci-app-secubox/root/usr/libexec/rpcd/luci.secubox @@ -1545,7 +1545,7 @@ rollback_profile() { # App Store Functions # ============================================================================ -APPSTORE_JSON="/usr/share/secubox/.appstore/apps.json" +APPSTORE_JSON="/usr/share/secubox/appstore/apps.json" # Get all apps from app store catalog get_appstore_apps() {