2026-01-04 13:42:34 +00:00
|
|
|
# Deploy SecuBox AppStore Updates
|
|
|
|
|
|
|
|
|
|
## Quick Deploy (All Packages)
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 1. Rebuild all affected packages
|
|
|
|
|
cd /home/reepost/CyberMindStudio/_files/secubox-openwrt
|
|
|
|
|
./secubox-tools/local-build.sh secubox-core luci-app-secubox-admin
|
|
|
|
|
|
|
|
|
|
# 2. Copy packages to router
|
|
|
|
|
scp bin/packages/x86_64/secubox/secubox-core_*.ipk \
|
|
|
|
|
bin/packages/x86_64/secubox/luci-app-secubox-admin_*.ipk \
|
|
|
|
|
root@192.168.8.191:/tmp/
|
|
|
|
|
|
|
|
|
|
# 3. Install on router
|
|
|
|
|
ssh root@192.168.8.191 << 'ENDSSH'
|
|
|
|
|
# Install packages (force-reinstall to update)
|
|
|
|
|
opkg install --force-reinstall /tmp/secubox-core_*.ipk
|
|
|
|
|
opkg install --force-reinstall /tmp/luci-app-secubox-admin_*.ipk
|
|
|
|
|
|
|
|
|
|
# Restart RPCD to reload ACLs
|
|
|
|
|
/etc/init.d/rpcd restart
|
|
|
|
|
|
|
|
|
|
# Verify ACL file is in place
|
|
|
|
|
ls -l /usr/share/rpcd/acl.d/luci-app-secubox-admin.json
|
|
|
|
|
|
|
|
|
|
echo "Installation complete!"
|
|
|
|
|
ENDSSH
|
|
|
|
|
|
|
|
|
|
# 4. Clear browser cache and reload
|
|
|
|
|
# - Press Ctrl+Shift+R in browser
|
|
|
|
|
# - Or clear cache manually in browser settings
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Verify Installation
|
|
|
|
|
|
|
|
|
|
On the router:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Check installed versions
|
|
|
|
|
opkg list-installed | grep secubox
|
|
|
|
|
|
|
|
|
|
# Verify ACL file contents
|
|
|
|
|
cat /usr/share/rpcd/acl.d/luci-app-secubox-admin.json
|
|
|
|
|
|
|
|
|
|
# Test RPC methods directly
|
|
|
|
|
ubus -S call luci.secubox get_catalog_sources
|
|
|
|
|
ubus -S call luci.secubox check_updates
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## What Was Fixed
|
|
|
|
|
|
|
|
|
|
### ACL Permissions Added
|
|
|
|
|
|
|
|
|
|
**Read permissions** (5 new methods):
|
|
|
|
|
- `get_catalog_sources`
|
|
|
|
|
- `check_updates`
|
|
|
|
|
- `get_app_versions`
|
|
|
|
|
- `get_changelog`
|
|
|
|
|
- `get_widget_data`
|
|
|
|
|
|
|
|
|
|
**Write permissions** (2 new methods):
|
|
|
|
|
- `set_catalog_source`
|
|
|
|
|
- `sync_catalog`
|
|
|
|
|
|
|
|
|
|
**UCI access**:
|
|
|
|
|
- `secubox-appstore` config
|
|
|
|
|
|
|
|
|
|
### Package Versions
|
|
|
|
|
|
|
|
|
|
- `secubox-core`: 0.8.0-6
|
2026-01-04 13:44:49 +00:00
|
|
|
- `luci-app-secubox-admin`: 1.0.0-5
|
2026-01-04 13:42:34 +00:00
|
|
|
|
|
|
|
|
### Recent Fixes
|
|
|
|
|
|
2026-01-04 13:44:49 +00:00
|
|
|
**v1.0.0-5** (Latest):
|
|
|
|
|
- Added graceful RPC fallback with L.resolveDefault()
|
|
|
|
|
- Pages now load with empty data instead of crashing when backend not deployed
|
|
|
|
|
- Fixes "No related RPC reply" errors
|
|
|
|
|
|
|
|
|
|
**v1.0.0-4**:
|
2026-01-04 13:42:34 +00:00
|
|
|
- Fixed WidgetRenderer undefined options TypeError
|
|
|
|
|
- Added defensive check: `options = options || {};`
|
|
|
|
|
|
|
|
|
|
**v1.0.0-3**:
|
|
|
|
|
- Added ACL permissions for new RPC methods
|
|
|
|
|
- Added UCI access to `secubox-appstore` config
|
|
|
|
|
|
|
|
|
|
## Troubleshooting
|
|
|
|
|
|
2026-01-04 13:44:49 +00:00
|
|
|
### Getting "No related RPC reply" errors?
|
|
|
|
|
|
|
|
|
|
This means the backend (secubox-core) hasn't been deployed yet with the new RPCD methods.
|
|
|
|
|
|
|
|
|
|
**Solution**: Deploy BOTH packages:
|
|
|
|
|
```bash
|
|
|
|
|
./deploy-to-router.sh
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
With v1.0.0-5, pages will load gracefully with empty data until backend is deployed.
|
|
|
|
|
|
|
|
|
|
**What you'll see**:
|
|
|
|
|
- Catalog Sources page: "No sources configured"
|
|
|
|
|
- Updates page: "All applications are up to date"
|
|
|
|
|
- Apps page: Works normally (uses existing RPC methods)
|
|
|
|
|
|
|
|
|
|
After deploying secubox-core, these pages will populate with real data.
|
|
|
|
|
|
2026-01-04 13:42:34 +00:00
|
|
|
### Still Getting "Access Denied"?
|
|
|
|
|
|
|
|
|
|
1. **Verify ACL file was installed**:
|
|
|
|
|
```bash
|
|
|
|
|
ssh root@192.168.8.191 "cat /usr/share/rpcd/acl.d/luci-app-secubox-admin.json | grep get_catalog_sources"
|
|
|
|
|
```
|
|
|
|
|
Should show the method name in the file.
|
|
|
|
|
|
|
|
|
|
2. **Check RPCD is running**:
|
|
|
|
|
```bash
|
|
|
|
|
ssh root@192.168.8.191 "ps | grep rpcd"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. **Restart RPCD**:
|
|
|
|
|
```bash
|
|
|
|
|
ssh root@192.168.8.191 "/etc/init.d/rpcd restart"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4. **Check for ACL conflicts**:
|
|
|
|
|
```bash
|
|
|
|
|
ssh root@192.168.8.191 "grep -r 'luci.secubox' /usr/share/rpcd/acl.d/"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
5. **Clear browser cache completely**:
|
|
|
|
|
- Close all browser windows
|
|
|
|
|
- Clear cache and cookies for router IP
|
|
|
|
|
- Reopen browser
|
|
|
|
|
|
|
|
|
|
### Test Individual Methods
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# On router, test each method:
|
|
|
|
|
ubus -S call luci.secubox get_catalog_sources
|
|
|
|
|
ubus -S call luci.secubox check_updates
|
|
|
|
|
ubus -S call luci.secubox get_app_versions '{"app_id":"luci-app-auth-guardian"}'
|
|
|
|
|
ubus -S call luci.secubox get_changelog '{"app_id":"luci-app-auth-guardian"}'
|
|
|
|
|
ubus -S call luci.secubox get_widget_data '{"app_id":"luci-app-auth-guardian"}'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
If these work via `ubus` but not in browser, it's a browser cache issue.
|
|
|
|
|
|
|
|
|
|
## Files Changed in This Update
|
|
|
|
|
|
|
|
|
|
1. `/usr/share/rpcd/acl.d/luci-app-secubox-admin.json` - ACL permissions
|
|
|
|
|
2. `/usr/libexec/rpcd/luci.secubox` - RPCD methods (already has the methods from Phase 2)
|
|
|
|
|
3. `/usr/sbin/secubox-catalog-sync` - New sync script
|
|
|
|
|
4. `/usr/sbin/secubox-appstore` - Enhanced CLI
|
|
|
|
|
5. `/etc/config/secubox-appstore` - New UCI config
|
|
|
|
|
6. All new LuCI views and widget system files
|