Skip to content

Web Dashboard

The Web Dashboard lets you monitor and control your virtual machines from any browser on your local network β€” no VirtualProg app window required. Access it from another Mac, iPad, or any device connected to the same network.


πŸ”§ Enabling the Dashboard

Before using the Web Dashboard, enable the CLI Server in VirtualProg:

  1. Open VirtualProg β†’ Settings β†’ CLI
  2. Enable CLI Server
  3. Enable External Access to allow connections from other devices on your network
  4. Note your token β€” you will need it to log in

🌐 Accessing the Dashboard

Open a browser and navigate to:

http://<your-mac-ip>:<port>/dashboard

To find your Mac's IP address, go to Settings β†’ CLI β€” the full address is shown there.

If you are accessing from the same Mac:

http://127.0.0.1:<port>/dashboard

πŸ” Login

On first visit, you are prompted for your token. Enter the token from Settings β†’ CLI and click Sign In.

The token is saved in your browser β€” you will not need to enter it again unless you sign out or clear your browser data.


πŸ–₯️ Virtual Machines

The Virtual Machines tab is the default view. It shows all your VMs as cards.

Web Dashboard - Virtual Machines

Summary Bar

At the top, four summary tiles show the total count of VMs in each state at a glance:

  • Total β€” all VMs
  • Running β€” currently active
  • Stopped β€” powered off
  • Paused / Suspended β€” frozen or saved to disk

Search, Filter & Sort

Above the VM grid, a toolbar lets you narrow down the list:

  • Search β€” type any part of a VM name to filter cards instantly
  • State pills β€” click All, Running, Stopped, or Paused to show only VMs in that state
  • Sort β€” choose Name A–Z, Name Z–A, or By State

Filters and sorting are preserved during auto-refresh.

Grid and List View

Use the ⊞ / ≑ toggle buttons in the toolbar to switch between the default card grid and a compact table view. The table view shows all VMs in a single scrollable list with columns for name, distro, status, CPU/RAM, and uptime β€” useful when you have many VMs. Your preference is saved and remembered across sessions.

VM Cards

Each card shows the VM name, OS/distro, current state, CPU, and memory. Action buttons are shown directly on the card and update based on the VM state:

State Available Actions
Stopped β–Ά Start, πŸ—‘ Delete
Running β–  Shutdown, ⏻ Stop, ⏸ Pause, β†Ί Restart, πŸ’Ύ Suspend
Paused / Suspended β–Ά Resume

Running VMs show β–Ά Running for Xh Ym on the card so you can see at a glance how long a VM has been up.

Bulk Actions

You can act on multiple VMs at once:

  1. Hover a card to reveal its checkbox, then check the VMs you want to select. In list view, checkboxes are always visible.
  2. A bar slides up from the bottom showing how many VMs are selected, with Start, Shutdown, Stop, and Clear buttons.
  3. Actions are smart β€” Start only applies to stopped or suspended VMs; Shutdown and Stop only apply to running VMs.

VM Detail Panel

Click any VM card to open the detail panel on the right. It shows full configuration and hardware details, uptime statistics, and snapshot management.

From the detail panel you can also:

βš™οΈ

Action Description
πŸ“¦ Create Template Save a stopped VM as a reusable template
🧬 Clone Duplicate a stopped VM under a new name
✏️ Rename Rename the VM β€” enter the new name in the dialog
βš™οΈ Configure Configure CPU and memory of the VM
πŸ–₯ Connect Remote Control the VM from your browser

Snapshots

The detail panel includes a Snapshots section. You can:

  • View all existing snapshots
  • Create a new snapshot by entering a name and clicking + Create
  • Restore or delete any snapshot

Console Ports

If a VM has one or more serial ports configured in Console mode, a Console Ports section appears in the detail panel. Each port shows an Open Web Console button that launches the browser-based terminal for that port.

To configure a serial port as a console port, open the VM configuration in the VirtualProg app, go to Serial Ports, and set the mode to Console.

Auto-Refresh

The dashboard refreshes automatically in the background. Use the β†Ί Refresh button in the header to refresh immediately.

To change the refresh interval, click the βš™ icon in the header and choose from 5 seconds up to 5 minutes, or select Manual only to disable auto-refresh entirely. Your preference is saved across sessions.


πŸ“¦ Templates

The Templates tab shows all your saved VM templates as cards.

Web Dashboard - Templates

Each card shows the template name, OS/distro, CPU, memory, and creation date.

Use the search bar to filter templates by name, or the sort dropdown to order by Name A–Z, Name Z–A, Newest first, or Oldest first. Use the ⊞ / ≑ toggle to switch between card grid and list view.

Click a template card to open the detail panel, which shows the full template configuration including source VM, OS, and hardware specs.

Template Actions

Action Description
+ Create VM Create a new virtual machine from this template
πŸ—‘ Delete Permanently delete the template

🌐 Networks

The Networks tab shows all custom networks configured in VirtualProg.

Web Dashboard - Networks

Each card shows the network name, type, enabled/disabled status, subnet, and MTU.

Use the search bar to filter networks by name, or the sort dropdown to order by Name A–Z, Name Z–A, By Type, or By Status. Use the ⊞ / ≑ toggle to switch between card grid and list view.

Click a card to open the detail panel showing the full network configuration including subnet, mask, MTU, IPv6, and IPv6 prefix.

Networks are read-only in the dashboard. To create or modify networks, use the VirtualProg app.


πŸ“‹ Logs

The Logs tab is available in the dashboard when Logs is enabled in Settings β†’ Advanced β†’ Logs. If the setting is off, the tab is not shown.

Web Dashboard - Logs

The tab provides a unified view of all log entries written by VirtualProg β€” both application-level events and per-VM activity β€” in one place.

Selecting a Source

Use the source dropdown at the top of the toolbar to choose which logs to display:

  • VirtualProg β€” general application events (server start/stop, settings changes, network activity, and other system-level messages)
  • VM name β€” events specific to that virtual machine (start, stop, pause, resume, errors, and other VM-level activity)

Switching the dropdown immediately fetches and displays the selected source's log entries.

Filtering Logs

Filter Description
Search Type any text to filter entries by message content β€” results update as you type
Info / Error Toggle checkboxes to show or hide entries of each severity
From / To Date range pickers β€” only entries within the selected window are shown. Defaults to the last 7 days

All filters work together on the already-fetched data β€” no extra network request is needed when changing filters.

Log Entries

Each entry shows:

  • A coloured dot indicating severity β€” blue for info, red for error
  • The log message
  • The timestamp β€” formatted as date and time (e.g. Apr 19, 2025 at 2:34:56 PM)

Entries are displayed newest first.

Refreshing

Click β†Ί Refresh to re-fetch the latest entries for the currently selected source.

Logs are only written when Settings β†’ Advanced β†’ Logs is enabled. If log entries are missing, verify the setting is on.


πŸ–₯️ Web Console

The Web Console lets you interact with a VM's serial console directly from your browser β€” no SSH, no app window required. It uses xterm.js for full terminal emulation with ANSI colour support, connected over WebSocket.

Requirements

  • The CLI Server must be running (Settings β†’ CLI β†’ Enable CLI Server)
  • The VM must have at least one serial port configured in Console mode

Opening the Console

  1. Open the Web Dashboard in your browser
  2. Click any running VM card to open the detail panel
  3. Scroll to the Console Ports section
  4. Click Open Web Console next to the port you want

The console opens in a small popup window (720 Γ— 520 px). Each serial port gets its own button and its own popup β€” you can open multiple consoles simultaneously.

Terminal Features

Feature Detail
Terminal emulator xterm.js 5.3 β€” full VT100/xterm with ANSI colours
Scrollback 5 000 lines
Keyboard input Fully supported β€” type commands, use arrow keys, Ctrl+C, etc.
History replay The last 64 KB of VM output is delivered immediately on connect, so the login prompt appears without waiting
Font Menlo / Courier New, 14 pt

Connection Status

A status badge in the toolbar shows the current state:

Badge Meaning
Connecting… (amber) WebSocket handshake in progress
Connected (green) Live session β€” output and input are flowing
Disconnected (red) Connection dropped unexpectedly β€” auto-reconnects in 3 seconds
VM stopped (red) The VM was shut down β€” the connection closed cleanly and will not reconnect

Multiple Connections

Several browser tabs or devices can connect to the same serial port at the same time. All connections receive the same VM output independently; keyboard input from each connection is forwarded to the VM.

When the VM Stops

When the VM shuts down or is stopped from the dashboard, the console displays:

[Connection closed β€” VM stopped]

The connection closes cleanly and the console does not attempt to reconnect.


πŸ–₯ Connect

Remote Control of running VM's graphical display directly in your browser, with mouse and keyboard input forwarded back to the VM β€” no VNC, no additional setup required.

Remote Control

Note: It works well for mouse interaction and simple text input. for Modifier key combinations (such as Cmd+Space, Ctrl+Alt+Del, or Alt+F4) use the keys panel in the VM window.

Requirements

  • The CLI Server must be running (Settings β†’ CLI β†’ Enable CLI Server)
  • The VM must be running β€” the button is not shown for stopped or paused VMs
  • The VM window must be open in the VirtualProg app for live capture and input; if the window is closed, the last captured frame is shown and input is not forwarded

Opening Remote Control

  1. Open the Web Dashboard in your browser
  2. Click a running VM card to open the detail panel
  3. Click πŸ–₯ Connect

The viewer opens in a new popup window (1024 Γ— 768 px, resizable). Each VM gets its own named window β€” clicking the button again brings the existing window to the front rather than opening a duplicate.

Viewer Controls

Control Description
VM action buttons Control the VM directly from the toolbar β€” buttons change based on the current VM state (see below)
Refresh rate selector Choose how often the display is refreshed: 1, 3, 5, 10, 15, 30 fps
Quality selector Set the JPEG capture quality β€” High (1.0), Medium (0.8), Low (0.6). Use a lower setting on slow networks to reduce bandwidth
πŸ”’ Lock Mouse Captures the mouse pointer inside the viewer for smooth, uninterrupted mouse control β€” press Esc to release
β›Ά Fullscreen Enter or exit fullscreen mode
Keys Send special key combinations to the VM window

VM Action Buttons

The toolbar shows action buttons that update automatically based on the VM's current state:

VM State Buttons available
Running β–  Shutdown, ⏻ Stop, ⏸ Pause, β†Ί Restart, πŸŒ™ Suspend (Apple Silicon only)
Paused / Suspended β–Ά Resume
Stopped β–Ά Start

Mouse & Keyboard Input

Click anywhere inside the viewer to focus it and start sending input to the VM:

  • Mouse β€” move, left/right click, scroll, and drag all work as normal
  • Keyboard β€” standard keys and text input work; for modifier key combinations use the keys panel in the VM window
  • Pointer lock β€” click πŸ”’ Lock Mouse to capture the pointer inside the viewer for precision mouse work; press Esc to release

Connection Status

A dot in the top-left of the toolbar shows the state of the connection to VirtualProg:

Dot Meaning
Green VM is running; live display active
Amber (pulsing) Refreshing display, or VM is paused / suspended
Red VM is stopped or display unavailable

VM State Changes

The viewer continues checking the VM state even when it is paused, suspended, or stopped. The display area shows a status message and the toolbar updates to show the appropriate action buttons. When the VM resumes or starts again, the viewer automatically detects the change and resumes live display β€” no need to reopen the window.


πŸŒ™ Dark & Light Theme

The dashboard follows your device's appearance setting by default. Use the πŸŒ™ / β˜€οΈ button in the header to switch between dark and light themes manually. Your preference is saved and remembered across sessions.


🟒 Connection Status

A small dot in the header shows the state of the connection to VirtualProg at a glance:

Dot Meaning
Green Last refresh succeeded
Amber (pulsing) Refresh in progress
Red Last refresh failed β€” check that VirtualProg is running

⌨️ Keyboard Shortcuts

Shortcut Action
/ or Cmd+K Focus the VM search box
R Refresh immediately
Esc Close any open panel or dialog

πŸ”’ Sign Out

Click Sign out in the top-right corner to end your session. Your token is cleared from the browser.