This document explains the new interactive installation and menu system for RBT (Tunnel Orchestration Platform).
The interactive installer will guide you through the RBT setup process, collecting all required configuration variables:
# Make the installer executable
chmod +x install-interactive.sh
# Run the interactive installer
./install-interactive.sh- Admin Username: Default is 'admin', but you can choose any username (3+ characters)
- Admin Password: Must be at least 8 characters with uppercase, lowercase, numbers, and special characters
- Dashboard Port: Default is 3000, but you can choose any port between 1024-65535
- JWT Secret: Automatically generated 64-byte secure key (you can provide your own 32+ character secret)
- hCaptcha Protection: Enable/disable hCaptcha for login protection
- Site Key: Your hCaptcha site key
- Secret Key: Your hCaptcha secret key
- Email Notifications: Enable/disable SMTP for notifications
- SMTP Host: Your SMTP server (e.g., smtp.gmail.com)
- SMTP Port: Usually 587 for TLS
- SMTP Username: Your email address
- SMTP Password: Your email password or app password
- Notification Email: Email address for receiving notifications
- System Check: Verifies Node.js is installed
- Dependency Installation: Installs required npm packages
- Configuration Collection: Interactive prompts for all settings
- File Generation: Creates
.envandconfig.tomlfiles - System Installation: Runs the original RBT installation
The new interactive menu system provides a user-friendly numbered menu interface.
# Using npm script
npm run rbt-menu
# Or directly with npx
npx tsx scripts/rbt-menu.ts
# Or if RBT is installed
rbt- 🚀 Quick Start - Initialize RBT and create your first tunnel
- 🔧 Configuration - Configure RBT settings and options
- 🔗 Tunnel Management - Add, remove, and manage tunnels
- 📊 Monitoring & Analytics - View traffic statistics and logs
- 🔐 Security & Certificates - Manage certificates and security settings
- ⚙️ System Tools - System utilities and maintenance
- 📚 Documentation - View help and documentation
- 🔄 Update RBT - Check for updates and upgrade RBT
- ❓ Troubleshooting - Diagnose and fix common issues
- 🚪 Exit - Exit the RBT menu
- General Settings: Port, bind address
- hCaptcha Settings: Enable/disable, site key, secret key
- SMTP Settings: Email notifications configuration
- Security Settings: Session timeout, login attempts
- View Current Config: Display current configuration
- Add New Tunnel: Create a new tunnel with interactive prompts
- List Tunnels: Display all configured tunnels
- Remove Tunnel: Delete a tunnel by name
- Tunnel Statistics: View traffic and connection stats
- Real-time Traffic: Live traffic monitoring
- System Logs: View and follow logs
- Connection Statistics: Connection metrics
- Performance Metrics: CPU, memory usage
- Generate Certificate: Create new TLS certificates
- Security Audit: Run security assessment
- Update Security Settings: Modify security parameters
- System Information: Platform, architecture, versions
- Network Diagnostics: Network connectivity tests
- Service Management: Start/stop/restart RBT service
- Backup & Restore: Configuration backup and restore
- Getting Started: Basic setup guide
- Tunnel Configuration: Advanced tunnel setup
- Security Best Practices: Security recommendations
- Troubleshooting Guide: Common issues and solutions
- Advanced Features: Power user features
- RBT Won't Start: Startup issues
- Tunnels Not Working: Connection problems
- Certificate Issues: TLS/SSL problems
- Performance Problems: Performance optimization
- Login Issues: Authentication problems
The interactive menu integrates with the RBT backend through:
- Direct shell commands to
rbtCLI - API calls to the RBT server
- Configuration file manipulation
- Reads from
.envandconfig.tomlfiles - Updates configuration through the ConfigService
- Validates settings before applying
- Password strength validation
- JWT secret generation
- Certificate management
- Security auditing
- Node.js 16+ with TypeScript support
- RBT installed and configured
- Network access for updates and diagnostics
scripts/
├── interactive-installer.ts # Interactive installation script
├── rbt-menu.ts # Main interactive menu
└── setup-hcaptcha.ts # hCaptcha configuration helper
- Graceful fallbacks to built-in menu
- Comprehensive error messages
- Recovery suggestions
- Logging for debugging
# Run interactive installer
./install-interactive.sh
# Follow prompts to configure:
# - Admin credentials
# - Dashboard port
# - Optional hCaptcha and SMTP
# Start RBT menu
npm run rbt-menu
# Choose option 1 (Quick Start)
# Follow wizard to create first tunnel# Start menu
npm run rbt-menu
# Choose option 3 (Tunnel Management)
# Choose option 1 (Add New Tunnel)
# Enter tunnel details:
# - Name: my-app-tunnel
# - Listen: 0.0.0.0:8080
# - Target: localhost:3000
# - Protocol: tcp# Start menu
npm run rbt-menu
# Choose option 2 (Configuration)
# Choose option 4 (Security Settings)
# Configure:
# - Session timeout: 24h
# - Max login attempts: 5
# - Certificate settings- The interactive installer creates secure defaults
- All passwords must meet complexity requirements
- Configuration files are automatically backed up
- The menu system provides contextual help
- Error messages include recovery suggestions