Command line
The deckpa command lets you get access back, audit the server, and manage services even when the panel is down.
Running the command
The deckpa command is installed together with the panel (/usr/local/bin/deckpa). Connect to the server over SSH as root and run it; a user who is not root must type sudo deckpa .... The command cannot be called over the network. It lets you administer the server without opening the panel when the panel is down, a password is forgotten, or an IP rule has locked you out.
deckpa # shows the command list deckpa version # product name, version, and install time deckpa info # panel address, hostname, and SSH port
Command output is in English; the panel's language setting does not carry over to the command line. For commands that take a user name, the command asks for it if you leave it out, and lists the existing panel users if the name is not found. Commands that change a user or an access rule (reset-user, disable-2fa, unlock, unsuspend, clear-allowlist) write the action to the audit record, which you can see on the Audit tab of the Logs page.
Getting access back
The commands below are the way out for an administrator who is locked out. They talk to the panel's local database and its system service, and do not need an internet connection.
deckpa infoprints the panel address (https://<ip>:<port>), the server's hostname, and the SSH port from the configuration. It is the first command to try if you forgot the address or the port.deckpa list-userslists panel users with their role, suspension state, and two-factor authentication state.deckpa reset-user [user]asks for a new password twice (at least 12 characters) and saves it. All of that user's open panel sessions and the phpMyAdmin and OpenLiteSpeed admin sessions are closed. It then asks whether to reset two-factor authentication too; if you answery, a new secret is generated and printed, and the old recovery codes are deleted.deckpa disable-2fa [user]turns two-factor authentication off completely and deletes the recovery codes; the user then signs in with the password only. Use it when the authentication device is lost.deckpa unlock [user]removes the sign-in lockout caused by failed attempts. The lockout starts after 5 failed attempts within 15 minutes.deckpa unsuspend [user]re-enables a suspended panel user.deckpa setup-linkreprints a lost first-setup link while no user exists yet. If an administrator account has already been created, it tells you to usereset-userinstead.deckpa clear-allowlistempties the panel's IP allow list. While the list is empty, the panel is reachable from every IP address. If a bad rule locked you out, this is the only way back into the Network & Access page.deckpa set-port [port]changes the panel port with the same steps as the panel screen (see Panel settings). Use it if you entered the wrong port and can no longer reach the panel. The panel restarts on the new port a few seconds later.deckpa fix-ssh-portmakes the SSH port recorded inconfig.yamlmatch the port the SSH service is actually listening on.
reset-user command. Because the command runs on the server with root rights, protect SSH access to the server at least as carefully as the panel.
deckpa doctor: server audit
It measures whether the server is in the expected security and configuration state, using the same checks as the panel's Health Check page. The command changes nothing. It measures fresh on every run, and the measurement is done by the system service, which runs as root.
deckpa doctor # full report deckpa doctor --quiet # hides the rows that pass deckpa doctor --tier host # one layer deckpa doctor --only ssh-hardening,disk-free deckpa doctor --json # machine-readable output
The checks are grouped into five layers; the valid names for --tier are host, privilege, tenant, service, and panel. --only takes one or more check IDs, which appear in the report rows (for example firewall-ports, cert-expiry, backup-freshness). The report starts with a summary of the server, shows the results layer by layer, and ends with a single block of fix commands in order of importance.
The exit code can be used in scripts:
0: no critical or warning-level problem.1: at least one critical check failed.3: no critical problem, but there is a warning.2: an unrecognized option was given.
Checks that could not be measured are marked as skipped and do not affect the exit code. If the command cannot reach the system service, that is an error too: if you see a message like executor unreachable, first confirm with deckpa status that the services are running.
deckpa top: what is happening now
doctor shows whether the server is configured correctly; top shows what is happening at that moment: the load average (together with the core count), memory, swap, disk wait share, and the processes using the most resources. The table has columns for PID, user, CPU percentage, RSS memory, thread count, elapsed time, and command.
deckpa top # the 50 heaviest processes deckpa top -n 100 # a longer list deckpa top --watch # live screen, refreshed every 2 seconds deckpa top --watch --interval 5 # every 5 seconds deckpa top --json # a single sample, machine-readable
If the list is cut off, the command prints how many processes it shows and the total; use -n for more. --watch works only in a terminal; the interval must be between 1 and 60 seconds, and it cannot be combined with --json. Press Ctrl-C to leave the live screen. Reading process information needs root rights, so the system service does the measuring here as well.
deckpa vhost-custom: per-site OpenLiteSpeed configuration
If you need to add sections to a site's OpenLiteSpeed configuration that the panel does not generate, write them in files named like /usr/local/lsws/conf/vhosts/<domain>/custom.d/NN-name.conf (owned by root, mode 0644). This command checks and activates those files.
deckpa vhost-custom check # checks all sites deckpa vhost-custom check example.com # one site deckpa vhost-custom apply example.com # includes the files in the site, reloads OpenLiteSpeed if needed deckpa vhost-custom restore example.com # activates pending files that came from a backup deckpa vhost-custom discard example.com # deletes pending files that came from a backup
The check looks at each file's name, type, owner, permissions, size, and syntax. A file is accepted when:
- Its name contains letters, digits,
.,_, and-and ends in.conf. Symbolic links are refused. - It is owned by root or
lsadmand is not writable by the group or others (chmod 644). The same rule applies to thecustom.ddirectory with mode 755. - At the top level it contains only
extprocessor,context,websocket,realm, andaccessControlsections;includeis refused. Context paths the panel reserves (certificate validation, suspension, and error pages) cannot be used. - Curly braces are balanced and every opened
<<<block is closed.
Custom configuration files restored from a backup do not become active on their own: they wait in the site's custom.d.restored/ directory. After you review them, activate them with restore or throw them away with discard. When a problem is found, the command exits with code 1.
Service commands and updating
These commands call systemctl and journalctl directly, need root, and work even when the panel does not.
deckpa restart,start, andstopmanage the panel's two system services (deckpa-executoranddeckpa-api) together and print the state of each at the end.deckpa statusanddeckpa logsshow the service state and follow the panel logs live.deckpa lockdown [on|off]is the emergency command.on(the default) takes the panel offline while SSH and these commands keep working.offbrings the panel back.deckpa banslists the IP addresses blocked byfail2banin the panel and SSH protection rules.deckpa unban [ip]removes one block; without an IP, it removes all blocks.deckpa rebootrestarts the server. It asks for confirmation first;-yor--yesskips the question.deckpa updatedownloads, verifies, and installs the latest version in the channel, the same way as the button on the panel's Update page (see Updates and release channels).
If you cannot reach the panel at all, a sensible order is: check the services with deckpa status, confirm the address with deckpa info, remove blocks with deckpa unban and deckpa clear-allowlist if needed, and finally renew the password with deckpa reset-user.