Skip to content

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 ​

  1. From the main menu, click on Terminal
  2. Or use the keyboard shortcut Ctrl+`` (backtick)
  3. 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 tab
  • Ctrl+Shift+W: Close current tab
  • Ctrl+Shift+C: Copy selected text
  • Ctrl+Shift+V: Paste clipboard content
  • Ctrl+D: Close terminal session
  • Ctrl+L: Clear screen
  • Ctrl+Plus/Minus: Zoom in/out
  • Alt+Number: Switch to tab number

Session Management ​

Creating Sessions ​

Each terminal session runs as the authenticated user:

  1. Authentication verified via JWT token
  2. Shell spawned with user privileges
  3. Session ID assigned for tracking
  4. 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:

  1. Enable Persistent Sessions in settings
  2. Sessions remain active on server
  3. Reconnect automatically on return
  4. Resume exactly where you left off

Session Recovery ​

If connection is lost:

  1. Vapor attempts automatic reconnection
  2. Session state preserved on server
  3. Command history maintained
  4. 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 ​

  1. Click Upload button or drag files
  2. Select files to upload
  3. Files uploaded to current directory
  4. Progress shown for large files
  5. Resume support for interrupted uploads

Download Files ​

  1. Click Download button
  2. Enter file path or browse
  3. File downloaded to browser
  4. Supports large file downloads
  5. Resume capability

Terminal Splitting ​

Split terminal for multiple views:

  1. Click Split button
  2. Choose horizontal or vertical split
  3. Each pane is independent
  4. Resize panes by dragging divider
  5. 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:

  1. Configure desired settings
  2. Click Save Profile
  3. Name the profile
  4. Load profiles from dropdown
  5. Set default profile

Advanced Features ​

Session Recording ​

Record terminal sessions:

  1. Click Record button
  2. Session recording starts
  3. All input/output captured
  4. Click Stop to end recording
  5. 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:

  1. Use SSH command within terminal
  2. SSH agent forwarding supported
  3. Key-based authentication
  4. ProxyJump support
  5. 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 ​

  1. Navigate to Docker container
  2. Click Terminal button
  3. Executes docker exec -it
  4. Interactive shell in container

Kubernetes Pod Access ​

  1. Select Kubernetes pod
  2. Click Terminal
  3. Choose container if multiple
  4. Opens kubectl exec session

Virtual Machine Console ​

  1. Select VM in Virtualization
  2. Click Console
  3. Choose VNC or Serial console
  4. 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 ​

  1. Logout When Done: Don't leave sessions open
  2. Use Strong Passwords: Protect your account
  3. Avoid Sensitive Data: Be careful with passwords
  4. Check URLs: Ensure HTTPS connection
  5. Regular Updates: Keep browser updated

Productivity ​

  1. Use Shortcuts: Learn keyboard shortcuts
  2. Multiple Tabs: Organize work in tabs
  3. Save Profiles: Create profiles for different tasks
  4. Session Names: Name tabs descriptively
  5. Command Aliases: Create shortcuts for common commands

Resource Management ​

  1. Close Unused Tabs: Free up resources
  2. Limit Scrollback: Reduce memory usage
  3. Disconnect Idle: Set idle timeout
  4. Monitor Usage: Check resource consumption
  5. Clean Up: Remove old recordings

Terminal Commands Reference ​

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

Dibuat dengan semangat gotong royong demi kemajuan bangsa 🇮🇩