Web Terminal
Vapor provides a fully-featured web-based terminal that allows secure shell access directly from your browser. Execute commands, manage files, and administer your system without needing a separate SSH client.
Features
- Full terminal emulation in the browser
- Multiple concurrent sessions
- Session persistence and recovery
- Copy/paste support
- Customizable appearance
- File upload/download
- Session recording and playback
Prerequisites
- Valid Vapor user account
- Appropriate shell access permissions
- WebSocket support in browser
- System shell (bash, zsh, sh) installed
Accessing the Terminal
Opening Terminal
- From the main menu, click on Terminal
- Or use the keyboard shortcut
Ctrl+``
(backtick) - Terminal opens in a new tab or drawer
Quick Access
- Click the terminal icon in the top toolbar
- Right-click on any server/container for "Open Terminal"
- Use command palette:
Ctrl+Shift+P
→ "Open Terminal"
Terminal Interface
Main Components
- Terminal Window: Main shell interface
- Tab Bar: Multiple terminal sessions
- Toolbar: Terminal controls and options
- Status Bar: Connection status and session info
Terminal Controls
Toolbar Buttons
- New Tab: Open additional terminal session
- Split: Split terminal horizontally/vertically
- Full Screen: Maximize terminal view
- Settings: Configure terminal preferences
- Upload: Upload files to current directory
- Download: Download files from server
- Record: Start/stop session recording
- Clear: Clear terminal screen
Keyboard Shortcuts
Ctrl+Shift+T
: New terminal tabCtrl+Shift+W
: Close current tabCtrl+Shift+C
: Copy selected textCtrl+Shift+V
: Paste clipboard contentCtrl+D
: Close terminal sessionCtrl+L
: Clear screenCtrl+Plus/Minus
: Zoom in/outAlt+Number
: Switch to tab number
Session Management
Creating Sessions
Each terminal session runs as the authenticated user:
- Authentication verified via JWT token
- Shell spawned with user privileges
- Session ID assigned for tracking
- WebSocket connection established
Multiple Sessions
Open multiple terminal sessions:
- Each tab is an independent session
- Sessions run in parallel
- Switch between tabs seamlessly
- Close individual sessions without affecting others
Session Persistence
Terminal sessions can persist across browser refreshes:
- Enable Persistent Sessions in settings
- Sessions remain active on server
- Reconnect automatically on return
- Resume exactly where you left off
Session Recovery
If connection is lost:
- Vapor attempts automatic reconnection
- Session state preserved on server
- Command history maintained
- Running processes continue
Terminal Features
Copy and Paste
Copying Text
- Mouse Selection: Click and drag to select
- Keyboard:
Ctrl+Shift+C
to copy - Right-Click: Context menu → Copy
- Touch: Long press and select on mobile
Pasting Text
- Keyboard:
Ctrl+Shift+V
- Right-Click: Context menu → Paste
- Middle Click: Paste selection (Linux)
- Browser Paste:
Ctrl+V
may work
Command History
Navigate command history:
- Up/Down Arrows: Previous/next command
- Ctrl+R: Reverse search history
- !!: Repeat last command
- !n: Execute command number n
- History saved per user session
Auto-completion
Tab completion support:
- Tab: Complete commands/paths
- Double Tab: Show all options
- Works for:
- Commands in PATH
- File and directory names
- Command options
- Environment variables
File Transfer
Upload Files
- Click Upload button or drag files
- Select files to upload
- Files uploaded to current directory
- Progress shown for large files
- Resume support for interrupted uploads
Download Files
- Click Download button
- Enter file path or browse
- File downloaded to browser
- Supports large file downloads
- Resume capability
Terminal Splitting
Split terminal for multiple views:
- Click Split button
- Choose horizontal or vertical split
- Each pane is independent
- Resize panes by dragging divider
- Close individual panes
Customization
Appearance Settings
Configure terminal appearance:
Theme
- Dark Theme: Default dark background
- Light Theme: Light background
- High Contrast: Enhanced visibility
- Custom Theme: Define your own colors
Font Settings
- Font Family: Choose monospace font
- Font Size: Adjust text size
- Line Height: Spacing between lines
- Font Weight: Regular, bold options
Colors
- Foreground: Text color
- Background: Terminal background
- Cursor: Cursor color and style
- Selection: Highlight color
- ANSI Colors: 16-color palette
Behavior Settings
Configure terminal behavior:
Scrolling
- Scrollback Lines: History buffer size
- Smooth Scrolling: Enable/disable
- Scroll on Output: Auto-scroll on new output
- Scroll on Input: Scroll to bottom on typing
Bell
- Audible Bell: Sound alert
- Visual Bell: Flash screen
- Bell Style: System, custom sound
Cursor
- Cursor Style: Block, underline, bar
- Blinking Cursor: Enable/disable
- Cursor Blink Rate: Speed adjustment
Profile Management
Save and load terminal profiles:
- Configure desired settings
- Click Save Profile
- Name the profile
- Load profiles from dropdown
- Set default profile
Advanced Features
Session Recording
Record terminal sessions:
- Click Record button
- Session recording starts
- All input/output captured
- Click Stop to end recording
- Download or playback recording
Playback Controls
For recorded sessions:
- Play/Pause: Control playback
- Speed: Adjust playback speed
- Seek: Jump to specific time
- Export: Save as video file
Multiplexing
Terminal multiplexer integration:
- tmux Support: Attach to tmux sessions
- screen Support: Connect to GNU screen
- Session Sharing: Multiple users can view
- Detach/Reattach: Persistent sessions
SSH Tunneling
Connect to remote servers:
- Use SSH command within terminal
- SSH agent forwarding supported
- Key-based authentication
- ProxyJump support
- Port forwarding available
Security Features
Authentication
- JWT token required for access
- Session tied to authenticated user
- Automatic logout on token expiry
- Re-authentication for expired sessions
Encryption
- WebSocket over TLS (WSS)
- End-to-end encryption available
- No plain-text transmission
- Certificate validation
Audit Logging
All terminal sessions logged:
- User identification
- Session start/end times
- Commands executed (optional)
- IP address tracking
- Audit trail maintained
Access Control
- User-based permissions
- Shell restrictions per user
- Command filtering available
- Resource limits enforced
Container and VM Terminals
Docker Container Access
- Navigate to Docker container
- Click Terminal button
- Executes
docker exec -it
- Interactive shell in container
Kubernetes Pod Access
- Select Kubernetes pod
- Click Terminal
- Choose container if multiple
- Opens kubectl exec session
Virtual Machine Console
- Select VM in Virtualization
- Click Console
- Choose VNC or Serial console
- Direct VM access
Troubleshooting
Connection Issues
Terminal Won't Connect
- Check WebSocket support in browser
- Verify firewall allows WebSocket
- Ensure authentication is valid
- Check server logs for errors
Connection Drops
- Check network stability
- Increase timeout settings
- Enable connection keep-alive
- Review proxy/firewall settings
Display Problems
Garbled Characters
- Check terminal encoding (UTF-8)
- Verify locale settings
- Try different terminal type
- Adjust font settings
Resize Issues
- Manually trigger resize
- Check browser zoom level
- Try different terminal emulator
- Verify TERM environment variable
Performance Issues
Slow Response
- Check network latency
- Reduce scrollback buffer
- Disable smooth scrolling
- Close unused sessions
High CPU Usage
- Limit terminal output rate
- Reduce animation effects
- Close background tabs
- Check for runaway processes
Best Practices
Security
- Logout When Done: Don't leave sessions open
- Use Strong Passwords: Protect your account
- Avoid Sensitive Data: Be careful with passwords
- Check URLs: Ensure HTTPS connection
- Regular Updates: Keep browser updated
Productivity
- Use Shortcuts: Learn keyboard shortcuts
- Multiple Tabs: Organize work in tabs
- Save Profiles: Create profiles for different tasks
- Session Names: Name tabs descriptively
- Command Aliases: Create shortcuts for common commands
Resource Management
- Close Unused Tabs: Free up resources
- Limit Scrollback: Reduce memory usage
- Disconnect Idle: Set idle timeout
- Monitor Usage: Check resource consumption
- Clean Up: Remove old recordings
Terminal Commands Reference
Navigation
bash
cd /path # Change directory
ls -la # List files
pwd # Print working directory
tree # Directory tree view
File Operations
bash
cp source dest # Copy files
mv old new # Move/rename
rm file # Delete file
mkdir dir # Create directory
Process Management
bash
ps aux # List processes
top # Process monitor
kill PID # Terminate process
jobs # List jobs
Network
bash
ip addr # Network interfaces
ss -tulpn # Network connections
ping host # Test connectivity
curl URL # HTTP requests