Commit Graph

8 Commits

Author SHA1 Message Date
ac7912e0a1 feat(rtty): Add remote package installation for mesh nodes
Add rttyctl commands for remote package deployment:
- rttyctl install <node|all> <app_id> - Install package on node(s)
- rttyctl install-status <node> [app] - Check package status
- rttyctl deploy-ttyd <node|all> - Deploy ttyd web terminal

RPCD methods added:
- install_remote, install_mesh, deploy_ttyd, install_status

Features:
- Node discovery from master-link, WireGuard, P2P mesh
- Auto-enables and starts ttyd after installation
- Batch install with summary stats (installed/skipped/failed)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-15 15:10:32 +01:00
9f7717d148 feat(rtty-remote): Add Session Replay (Phase 4)
Avatar-Tap integration for HTTP session capture and replay:

CLI (rttyctl):
- tap-sessions: List captured sessions
- tap-show: View session details
- tap-replay: Replay to target node
- tap-export/tap-import: JSON export/import

RPCD (6 new methods):
- get_tap_status: Capture status and session count
- get_tap_sessions/get_tap_session: List and detail views
- replay_to_node: Execute replay to mesh node
- export_session/import_session: JSON transfer

LuCI (session-replay.js):
- Stats cards: sessions, domains, recent activity
- Sessions table with filters (domain, method)
- Replay panel with node selector
- Import/Export functionality
- View modal with masked auth data

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-12 06:48:13 +01:00
fe762b6eb1 feat(system-hub): Add HAProxy routes health check panel
- Add get_service_health RPCD method to check all HAProxy routes
- Integrate /usr/sbin/service-health-check for backend HTTP probing
- Add health panel in services.js with up/down stats and health %
- Display down services list with tooltips showing IP:port
- Add refresh button for manual health check trigger
- Update ACL with get_service_health read permission
- 5-minute cache for health data with force-refresh option

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-09 13:28:06 +01:00
bc3be1709b feat(rtty-remote): Add Web Terminal view (Phase 3)
Integrates ttyd WebSocket terminal into RTTY Remote module:
- New "Web Terminal" menu item in System Hub
- Iframe-based terminal embedding ttyd on port 7681
- Node selector for local/remote terminal access
- Remote node detection (direct ttyd or SSH fallback)
- Fullscreen and refresh controls
- RPCD method: start_terminal for remote node terminal info

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 17:54:30 +01:00
0290aa39db feat(rtty-remote): Add token-based shared access for support sessions
Implements token-based authentication that grants RPC and terminal access
without requiring LuCI credentials. Support technicians can connect using
a short 6-character code.

CLI commands:
- rttyctl token generate [ttl] [permissions]
- rttyctl token list
- rttyctl token validate <code>
- rttyctl token revoke <code>
- rttyctl token-rpc <code> <object> <method> [params]

RPCD methods:
- token_generate: Create support token with TTL
- token_list: List active tokens
- token_validate: Check token validity
- token_revoke: Revoke a token
- token_rpc: Execute RPC with token auth (no LuCI session needed)

LuCI Support Panel:
- Generate code with selectable validity (30m/1h/2h/4h)
- Enter code to connect to remote node
- Token-authenticated RPC execution
- Live token list with copy/revoke actions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 17:17:58 +01:00
02ed4f3b34 fix(rtty-remote): Fix RPCD rpc_call JSON response format
- jshn cannot embed raw JSON in objects, use printf instead
- Return proper {"success":true,"result":{...}} format
- Handle error cases with escaped error messages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 17:06:32 +01:00
8b65bd64e9 fix(rtty-remote): Add null checks and move to KISS UI System Hub
- Fix TypeError in support.js: add null checks for DOM elements
- Move menu entries from Services to System Hub (KISS UI)
- Menu paths: admin/secubox/system/system-hub/rtty-remote
- Menu paths: admin/secubox/system/system-hub/support

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 17:01:43 +01:00
2c763c3583 feat(rtty-remote): Add RTTY Remote Control module with support panel
New packages:
- secubox-app-rtty-remote: Backend with rttyctl CLI
- luci-app-rtty-remote: LuCI dashboard with KISS theme

Features:
- RPCD Proxy: Execute remote ubus calls to mesh nodes over HTTP
- Support Panel: Remote assistance with shareable session codes
- Session tracking: SQLite database for audit trail
- Quick actions: System info, network, services, vhosts, reboot
- RPC Console: Execute arbitrary ubus commands

CLI commands:
- rttyctl nodes - List mesh nodes
- rttyctl rpc <node> <object> <method> - Execute remote RPCD
- rttyctl rpc-list <node> - List available objects
- rttyctl sessions - Show session history

LuCI views:
- dashboard.js: Node management, stats, RPC console
- support.js: Remote assistance with session codes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-08 11:17:08 +01:00