docs: Add LuCI screenshots and update HISTORY.md
- Add 92 LuCI module screenshots to docs/screenshots/router/ - Document haproxyctl generate bug fix in HISTORY.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ -1,6 +1,46 @@
|
||||
# SecuBox UI & Theme History
|
||||
|
||||
_Last updated: 2026-03-26 (Wiki Documentation)_
|
||||
_Last updated: 2026-03-27 (HAProxy Generate Bug Fix)_
|
||||
|
||||
0. **HAProxy Config Generation Bug Fix (2026-03-27)**
|
||||
- **Root cause**: Nested `config_foreach` calls in `_generate_backend()` corrupted UCI iteration state
|
||||
- **Symptoms**: Server lines appearing in wrong sections (userlist, global), backends before defaults
|
||||
- **Fix in `haproxyctl`**:
|
||||
- Pre-collect all server sections into temp file before iterating backends
|
||||
- Removed nested `config_foreach _check_server_sections server` and `config_foreach _add_server_to_backend server`
|
||||
- Server data now read from temp file using grep + while loop
|
||||
- Double-buffering pattern prevents output interleaving
|
||||
- **Files modified**: `package/secubox/secubox-app-haproxy/files/usr/sbin/haproxyctl`
|
||||
- **Testing**: Config validates cleanly, HAProxy restarts successfully
|
||||
|
||||
0. **Master-Link OpenWRT Client (2026-03-26)**
|
||||
- **New package**: `luci-app-masterlink` - Mesh enrollment client for OpenWRT
|
||||
- **RPCD handler** (`/usr/libexec/rpcd/luci.masterlink`):
|
||||
- `status`: Current mesh membership (enabled, role, master_ip, fingerprint)
|
||||
- `join`: Join mesh with master_ip and token
|
||||
- `leave`: Leave current mesh
|
||||
- `info`: Local node info (fingerprint, hostname, IP, model)
|
||||
- `verify`: Verify master before joining
|
||||
- **CLI tool** (`/usr/bin/sbx-mesh-join`):
|
||||
- Supports URL parsing: `sbx-mesh-join 'http://ip:7331/master-link/?token=xxx'`
|
||||
- Supports direct args: `sbx-mesh-join 192.168.1.1 abc123token`
|
||||
- Auto-generates node fingerprint from MAC address
|
||||
- Saves config to UCI on success
|
||||
- **LuCI interface** (`/view/masterlink/join.js`):
|
||||
- Status display (connected/pending/disconnected)
|
||||
- Invite URL/token input with Verify and Join buttons
|
||||
- Leave mesh button when connected
|
||||
- CLI help section
|
||||
- **UCI config** (`/etc/config/masterlink`):
|
||||
- Settings: enabled, role, status, master_ip, master_fingerprint, depth, joined_at
|
||||
- **Files created**: Makefile, RPCD handler, menu.json, ACL, JS view, CLI tool, UCI config
|
||||
|
||||
0. **LuCI Screenshot Capture (2026-03-26)**
|
||||
- **Puppeteer script** (`scripts/screenshot-capture.js`) for automated LuCI screenshots
|
||||
- Form-based authentication with temporary password
|
||||
- Captures 92 modules to `docs/screenshots/router/`
|
||||
- Screenshots show actual module content (varying file sizes 55KB-203KB)
|
||||
- Support for single module or full capture
|
||||
|
||||
0. **Comprehensive Wiki Documentation (2026-03-26)**
|
||||
- **Wiki structure** created at `docs/wiki/`:
|
||||
|
||||
BIN
docs/screenshots/router/admin.png
Normal file
|
After Width: | Height: | Size: 232 KiB |
BIN
docs/screenshots/router/ai-gateway.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/ai-insights.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/anomaly.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/auth.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/avatar-tap.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/backup.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/bandwidth.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/cdn.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/clients.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/cloner.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/screenshots/router/config-advisor.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/config-vault.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/cookies.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/crowdsec.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/cve.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/cyberfeed.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/device-intel.png
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
docs/screenshots/router/dns-provider.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/dns.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/dnsguard.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/domoticz.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/dpi-dual.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
docs/screenshots/router/dpi.png
Normal file
|
After Width: | Height: | Size: 325 KiB |
BIN
docs/screenshots/router/droplet.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/exposure.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/gitea.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/glances.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/haproxy.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/hexo.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/screenshots/router/hub.png
Normal file
|
After Width: | Height: | Size: 124 KiB |
BIN
docs/screenshots/router/interceptor.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
docs/screenshots/router/iot.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/ipblocklist.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/jabber.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/jellyfin.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/jitsi.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/screenshots/router/lan-flows.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/localai.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/localrecall.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/login.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
docs/screenshots/router/lyrion.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/screenshots/router/mac.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/magicmirror.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/mailserver.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/master-link.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/matrix.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/screenshots/router/mediaflow.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/mesh.png
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
docs/screenshots/router/meshname.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/metablogizer.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/metacatalog.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
docs/screenshots/router/metrics.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/mirror.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/screenshots/router/mqtt.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/netdata.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/netdiag.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/netmodes.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/nextcloud.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/ollama.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/screenshots/router/p2p.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/peertube.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/photoprism.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/portal.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
docs/screenshots/router/reporter.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/rezapp.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/routes.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/rtty.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/settings.png
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
docs/screenshots/router/simplex.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/smtp.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/streamforge.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/streamlit.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/theme.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
docs/screenshots/router/threat-analyst.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/threats.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/tor-services.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/screenshots/router/tor.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/torrent.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/traffic.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/turn.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/tweaks.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/users.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/vhost.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/voip.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/vortex-dns.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/waf.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/watchdog.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/webradio.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/wireguard.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/screenshots/router/zigbee.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
docs/screenshots/router/zkp.png
Normal file
|
After Width: | Height: | Size: 55 KiB |