PanelicaDocs
panelica.com
Docs / SSH & Terminal / Web Terminal

Web Terminal

Panelica 1.0.375 Verified 2026-07-24 SSH & Terminal

The Web Terminal is a full command line to the server, inside your browser: a real shell, no SSH client, no separate login. It is a power tool for the server owner, and because it opens a genuine root shell, it is walled off behind several locks that this page explains plainly.

Panel locationTools → Web Terminalhttps://YOUR-SERVER-IP:8443/tools/terminal (ROOT only)
 Web Terminal
root@server
:~# systemctl status panelica-server
panelica-server.service — active (running)
root@server
:~#  

What it is

The terminal is a real xterm.js console wired to the server over an encrypted WebSocket (WSS), authenticated with your session token. Behind it, the panel opens a genuine PTY running /bin/bash as root. That is the whole point and the whole risk: what you type runs on the server with full privileges, exactly as if you had SSH'd in as root. There is no sandbox, no chroot, no throttle, because this is the administrator's own shell, not a customer feature.

You can open multiple tabs (each its own independent session), resize freely, and click links in output. Copy and paste work as they do in any terminal.

This is a root shell, treated accordingly. It is not for hosting customers and not exposed to them; it exists so the server owner can administer the machine without leaving the panel. Everything you would be careful about in an SSH root session applies here, verbatim.

The three locks

Access is enforced independently at three layers, so a gap in one does not open the door:

  1. ROOT only. The menu entry, the page and every backend endpoint each require the ROOT role. Administrators, resellers and users never see it and cannot reach it, even by typing the URL.
  2. A licensed feature. The terminal is the web_terminal license feature. It ships enabled so existing servers are not broken by the gate, but a provider can switch it off centrally, and when off it disappears for everyone, ROOT included.
  3. High Security 2FA. When High Security Mode is enabled, opening the terminal demands a fresh two-factor code for the session before the shell appears. This is the defense against a stolen ROOT session: a hijacked cookie alone no longer opens a root shell.

On top of these, the terminal is completely disabled in demo mode, and the WebSocket checks the request origin to block cross-site connection attempts.

Two honest gaps worth knowing. First, the web terminal does not record command-level audit logs: sessions leave system log lines (who connected, when) but the commands you run are not captured to an audit trail. Second, the High Security check fails open if the backend is unreachable, though the backend's own ROOT-role gate on the connection still stands. If you need a tamper-evident record of every command, drive the server over logged SSH instead.

Saved connections: reach other servers

The terminal doubles as an SSH client to remote servers. Save a connection (name, host, port, username, and either a password or an SSH private key) and open a tab straight into that machine. Your saved credentials are encrypted at rest and never returned to the browser, so an edit form shows only that a secret is set, never the secret itself, and each connection is private to the ROOT user who created it.

Behind the scenes: a saved connection makes the panel act as an SSH client: your browser talks to the panel over WSS, and the panel opens a real SSH session to the remote host and bridges the two. One caveat to be aware of: remote host keys are not yet verified, so treat a saved connection to an untrusted network the way you would treat SSH with strict host checking turned off.

Access

Strictly ROOT, at the menu, route and backend alike, behind the web_terminal license feature and, when enabled, High Security Mode 2FA. The same root-shell capability is available to the Panelica mobile app and to External API clients through their own ROOT-gated, short-lived-ticket channels; those variants do record a session entry, while this in-panel terminal does not.

Panelica Documentation · Written and verified against the live panel. · Last verified 2026-07-24 on Panelica 1.0.375