hwdpanel server panel
Operate the HWD POS server from a text menu, without using the web interface.
The installer creates the hwdpanel command on the server (/usr/local/bin/hwdpanel). It is a local text menu for day-to-day server operation: restarting services, resetting passwords, viewing credentials, diagnostics and more, all without opening the web interface.
Opening the panel
sudo hwdpanelThe top of the screen shows the project folder, the PHP version and the status of the services. Type an option number and press Enter.
If hwdpanel does not exist (for example after a partial installation), check.sh can reinstall it from its Admin panel option.
Menu options
| Group | Option | What it does |
|---|---|---|
| Website | 1 / 2 / 3 | Restart, start or stop the web server and PHP-FPM. |
| Printing | 4 / 5 / 6 | Restart, start or stop the print worker (hwpos-print). |
| Administration | 7 | Reset the password of any user or administrator (lists users and their roles). |
| 8 | Show the database credentials (read from the application's actual configuration). | |
| 9 | Show the environment. | |
| 10 | Run the check.sh diagnostics. | |
| 11 | Show the server IP and the access URL. | |
| 12 | Update the panel itself from the network. | |
| AI | 13 | Install or update the AI environment (optional, see below). |
| Search | 14 | Install or update the search service (Typesense, with auto-start). |
| 15 | Manage search API keys (list, create, delete). | |
| Services | 16 | Install or reinstall the background services (printing + plugins). |
| 17 | Restart everything (site + PHP + workers). | |
| 18 | View the background-service logs. | |
| Capacity | 19 | Database connections and PHP request capacity. |
| Repair | 20 | Apache: fix the header used by the delivery app (when it says "No connection" / Sin conexión). |
| 0 | Exit. |
Connection capacity (option 19)
The installer sizes the number of PHP processes from the server's memory (about 60 MB per process, between 10 and 80) and always keeps it below the database connection limit. Option 19 shows the current values and lets you apply the recommended values, enter them by hand, or reset the peak counter to start measuring from today. The same information is available inside HWD POS under System → Connection capacity (Sistema → Capacidad de conexiones).
After an update
If an update changes the background services, restart them once with option 17.
AI environment (option 13)
Creates a Python virtual environment with CatBoost, registers the interpreter in the application and installs and starts the retraining service (hwpos-ai.service, which starts automatically after a reboot). Then enable it in HWD POS at /admin/ai. It is optional and not installed by default because the AI packages are large.
Search service (options 14 and 15)
See Typesense search.
Resetting a password
From the panel, choose option 7, select the user and type the new password.
You can also use the admin tool directly:
php /var/www/HWDPOS/scripts/hwd-admin.php list-users
php /var/www/HWDPOS/scripts/hwd-admin.php reset-password admin
php /var/www/HWDPOS/scripts/hwd-admin.php reset-password admin YOUR_NEW_PASSWORDThe second command asks for the new password interactively. The third sets the given password directly.
Passing a password on the command line leaves it in the shell history. Prefer the interactive form.
Other admin commands
scripts/hwd-admin.php boots the application and uses its own database connection, so it always reads the current configuration:
php /var/www/HWDPOS/scripts/hwd-admin.php db-info # database connection details
php /var/www/HWDPOS/scripts/hwd-admin.php env # environment
php /var/www/HWDPOS/scripts/hwd-admin.php list-users # users and rolesUpdating the panel
The panel can download its latest version and replace the local copy. Before replacing it, it:
- creates a backup copy with the
.bakextension; - checks the syntax of the new file;
- replaces the local version only if the check passes.
To update, choose option 12 in the panel, or run:
sudo bash /var/www/HWDPOS/deploy/check.sh --update-panelIn the check.sh menu you can also use option U.