Skip to content

Admin Panel

Open http://your-server:8080 in any modern browser (Chrome 80+, Firefox 75+, Safari 14+, Edge 80+).

  1. Enter your username and password.
  2. Click Sign In or press Enter.
  1. Click Sign in with Passkey.
  2. Follow your browser or device prompt (fingerprint, face ID, PIN, or hardware key).

Register a passkey at Account & Security → Security Keys after logging in with your password.


Sessions dashboard showing the client table with status, OS, IP Address, connected time and duration columns

ColumnDescription
Client NameDisplay name set at client install time
NotesPreview of the latest admin note for this client (amber text)
StatusCurrent connection state (see below)
OSOperating system reported by the client (linux, windows)
IP AddressClient’s IP address and port at the time of connection
AdminUsername of the admin who currently has the session claimed
ConnectedTime when the client last connected
DurationHow long the current connection has been active
BadgeMeaning
WaitingClient connected — available to claim
ActiveClaimed by an admin
DisconnectedClient offline — historical record
ControlEffect
All tabEvery session including disconnected
Active tabCurrently claimed sessions only
Waiting tabConnected but unclaimed sessions
My servers toggle (pin icon)Show only sessions previously claimed by your account

Claim a session before opening a terminal or file browser — this prevents two admins from working on the same machine.

Click Claim on a Waiting row, or open the detail panel and click the green Claim button.

Click Release on the session row or in the detail panel. Sessions are also released automatically on logout or when the browser tab closes.


Click any row to open the detail panel.

Session detail panel showing system stats, client notes, and Claim button

FieldDescription
Session IDUnique ID for the current connection (changes on reconnect)
IP AddressClient’s IP address and ephemeral port
Client IDPersistent UUID that identifies this machine across reinstalls (click the copy icon to copy)
OSOperating system
HostnameOS-reported hostname
AdminWhich admin has claimed this session
ConnectedTime the client connected
DurationHow long the connection has been active

Real-time system metrics:

MetricExample
CPU1.6%
RAM20.6% 3.2 / 15.6 GB
Disk3.6% 34.0 / 1006.9 GB
Uptime4d 5h 32m
Network↑ 0.00 / ↓ 0.00 Mbps

Timestamped notes left by any admin. Notes persist across disconnects and are visible to all admins.


ShortcutAction
Alt+TNew SSH (terminal) tab
Alt+WNew WebProxy (web proxy) tab
Alt+CNew SCP (file browser) tab
Alt+NOpen Templates picker
F3View file in read-only mode (SCP tab)
F4Edit file (SCP tab)
Ctrl+SSave file (editor)
F6Rename file
F8Delete file

Client not appearing in the sessions table

Section titled “Client not appearing in the sessions table”
  • Confirm the client service is running:
    Terminal window
    systemctl status woho-client # Linux
    Get-Service woho-client # Windows PowerShell
  • Check client logs: journalctl -u woho-client -n 50
  • Confirm outbound TCP port 9000 is not blocked by a firewall.
  • If Pre-Shared Keys are enabled, verify the key has not been revoked — see Pre-Shared Keys.
  • Check that the session is Waiting or Active on the dashboard.
  • Open a new SSH tab (Alt+T) — the previous tab may be stuck.
  • Check resource usage in the detail panel; a CPU/memory spike can delay PTY responses.
  • Release and re-claim the session, then open a fresh SSH tab.
  • Verify available disk space on the destination.
  • Check that the client agent has read/write permission for the target path.
  • Avoid special characters in filenames, particularly on Windows.

Cannot open a file in the viewer or editor

Section titled “Cannot open a file in the viewer or editor”
SymptomFix
”File too large”Files over 5 MB cannot be opened — download to inspect locally
”Binary file”Binary files cannot be edited in the browser; download then re-upload after editing
”Permission denied”The client agent may not have read access to that path
Page goes blankThe session may have been released; re-claim and reopen
  • Confirm the service is listening on localhost:<port> on the client.
  • Test from the client: curl -s http://localhost:<port>
  • Some applications reject modified Host headers — check origin/CORS settings.