secubox-openwrt/package/secubox/secubox-console/files/install.sh
CyberMind-FR d1e713e282 feat(console): Add Linux host frontend with modern TUI
- secubox_frontend.py: Full-featured Textual TUI application
  - Multi-device dashboard with real-time status monitoring
  - Device discovery (network scan, mDNS, mesh API)
  - SSH-based remote command execution and backup orchestration
  - Tabbed interface: Dashboard, Alerts, Mesh, Settings
  - Graceful degradation: Textual → Rich → Simple CLI

- Support files:
  - install.sh: One-line installer with dependency handling
  - requirements.txt: Python dependencies (textual, paramiko, httpx, rich)
  - secubox-frontend: Launcher script with path detection

- Updated README.md: Documents both CLI console and TUI frontend

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 19:46:28 +01:00

85 lines
2.7 KiB
Bash

#!/bin/bash
# SecuBox Frontend Installer
# One-line install: curl -sL URL | bash
set -e
VERSION="1.0.0"
INSTALL_DIR="${INSTALL_DIR:-$HOME/.local/share/secubox-frontend}"
BIN_DIR="${BIN_DIR:-$HOME/.local/bin}"
echo "╔══════════════════════════════════════════════════════════════╗"
echo "║ SecuBox Frontend Installer v$VERSION"
echo "╚══════════════════════════════════════════════════════════════╝"
echo ""
# Check Python
if ! command -v python3 &>/dev/null; then
echo "❌ Python 3 required. Install with:"
echo " sudo apt install python3 python3-pip"
exit 1
fi
PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
echo "✅ Python $PYTHON_VERSION found"
# Create directories
mkdir -p "$INSTALL_DIR" "$BIN_DIR"
# Download or copy files
echo "📦 Installing files..."
if [ -f "secubox_frontend.py" ]; then
# Local install
cp secubox_frontend.py "$INSTALL_DIR/"
cp secubox_console.py "$INSTALL_DIR/" 2>/dev/null || true
else
# Download from mesh/repo
echo " Downloading from repository..."
# Would download from GitHub or mesh here
cat > "$INSTALL_DIR/secubox_frontend.py" << 'PYEOF'
# Placeholder - replace with actual download
print("SecuBox Frontend - Download full version from repository")
PYEOF
fi
# Create launcher
cat > "$BIN_DIR/secubox-frontend" << EOF
#!/usr/bin/env python3
import sys
sys.path.insert(0, "$INSTALL_DIR")
from secubox_frontend import main
main()
EOF
chmod +x "$BIN_DIR/secubox-frontend"
# Install Python dependencies
echo "📦 Installing Python dependencies..."
python3 -m pip install --user --quiet textual paramiko httpx rich 2>/dev/null || {
echo "⚠️ Some dependencies failed. Try:"
echo " pip install textual paramiko httpx rich"
}
# Add to PATH if needed
if [[ ":$PATH:" != *":$BIN_DIR:"* ]]; then
echo ""
echo "⚠️ Add to your PATH:"
echo " export PATH=\"\$PATH:$BIN_DIR\""
echo ""
echo " Or add to ~/.bashrc:"
echo " echo 'export PATH=\"\$PATH:$BIN_DIR\"' >> ~/.bashrc"
fi
echo ""
echo "✅ Installation complete!"
echo ""
echo "Usage:"
echo " secubox-frontend # Launch TUI"
echo " secubox-frontend --add mybox 192.168.255.1"
echo " secubox-frontend --list"
echo " secubox-frontend --simple # Simple CLI mode"
echo ""
echo "First, add a SecuBox device:"
echo " secubox-frontend --add main 192.168.255.1"
echo ""