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() {