fix(secubox): rename .appstore to appstore to fix package build

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 <noreply@anthropic.com>
This commit is contained in:
CyberMind-FR 2025-12-31 12:38:47 +01:00
parent 086e62584e
commit b00d13b84a
4 changed files with 214 additions and 3 deletions

View File

@ -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

View File

@ -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-<name>/`
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

View File

@ -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"
}
}

View File

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