Repository navigation
Releases: Mrdindon/proxhawk-tui
Release list
proxhawk-tui 2.2.1
Fix
- Linux console (screen and keyboard of the node, IPMI / KVM, noVNC): the keys
F1toF5did nothing. The console sends its own codes for these keys (ESC [ [ A..E), which were read as an unknown key followed by a letter.
The keys with a letter equivalent (? help, V create VM, C create CT, U user menu, r refresh, q quit) were not affected.
Update
proxhawk-tui upgrade # from 2.1.0 or laterFrom an older version (or from pvetty): run the install line once.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Mrdindon/proxhawk-tui/main/install.sh)"proxhawk-tui 2.2.0
Linux console of the node (screen and keyboard, IPMI / KVM)
On the console of the node itself (TERM=linux) the kernel draws text with a bitmap font of at most 512 characters: a Nerd Font cannot be used there, and the default console fonts lack most symbols and every braille pattern, so the interface showed squares instead of icons and graphs.
proxhawk-tui now:
- loads its own console font while it runs (icons as small symbols, gauges, braille graphs, letters of 24 languages) and puts the previous font back when it quits;
- replaces whatever the console font cannot draw (icons by letters, graphs by dots) when the font is not loaded (
console_font = off, or no display attached); - uses English on that console for the languages it cannot draw (Chinese, Japanese, Korean, Arabic, Hebrew...), with a message.
Setting console_font: auto (default), 256, 512, off. Nothing changes over SSH, where the terminal of your computer draws the text. Details: docs/CONFIGURATION.md.
The fonts are built from GNU Unifont (GPL-2+ with the font embedding exception / OFL 1.1).
The console mode was checked by simulation and by rendering the fonts; loading the font by the kernel could not be tested on the development node (no display attached). Feedback from a real console is welcome.
Update
proxhawk-tui upgrade # from 2.1.0From an older version (or from pvetty): run the install line once.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Mrdindon/proxhawk-tui/main/install.sh)"proxhawk-tui 2.1.0
New: proxhawk-tui upgrade
Update proxhawk-tui from GitHub with one command, whatever the install method:
proxhawk-tui upgrade --check # is a new version available? (exit code 10 if so)
proxhawk-tui upgrade # update (asks for confirmation; --yes to skip)| Installed with | What upgrade does |
|---|---|
the one-line install (.deb package) |
downloads the .deb of the latest release, checks its SHA-256 and installs it with apt |
git clone |
git fetch, shows the new version and its commits, then git pull --ff-only (refused when there are local changes) |
| an archive unpacked by hand | shows the available version and how to install it |
--version X.Y.Z installs a given release.
Updating from 2.0.0 or older
Those versions do not have the command yet: update once with the one-line install (or git pull for a clone), then use proxhawk-tui upgrade.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Mrdindon/proxhawk-tui/main/install.sh)"proxhawk-tui 2.0.0
pvetty is now proxhawk-tui
The project, the command, the files and the package are renamed:
| before (pvetty 1.2 – 1.3) | now | |
|---|---|---|
| command | pvetty |
proxhawk-tui |
| settings | ~/.config/pvetty/pvetty.conf, /etc/pvetty.conf |
~/.config/proxhawk-tui/proxhawk-tui.conf, /etc/proxhawk-tui.conf |
| variables | PVETTY_* |
PROXHAWK_TUI_* |
| package | pvetty |
proxhawk-tui (replaces pvetty and pvetui) |
The settings, plugins and state of pvetty (and of pvetui) are moved automatically at the first start; /etc/pvetty.conf is still read while /etc/proxhawk-tui.conf does not exist. The old PVETTY_* variables are no longer read. The old GitHub address redirects to the new one.
New: languages
- French, Spanish, German, Chinese (simplified) and Russian (about 93 %; the rest are names such as ZFS or SPICE).
- The official translations of the Proxmox VE web interface installed on the node are used at run time: the same words as the GUI, and 34 languages available (12 to 51 % for the languages without a proxhawk-tui file).
language = auto: the terminal locale when it is not English, else the datacenter language (Datacenter › Options › Language), else English.--lang frorF4› Language to choose.- Chinese, Japanese and Korean double width characters are laid out correctly.
Install or update
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Mrdindon/proxhawk-tui/main/install.sh)"
proxhawk-tuiInstalling the package removes pvetty if it is installed. Full list: CHANGELOG.
pvetty 1.3.1
Recommended update for 1.3.0 when running as a user other than root@pam.
Fixes
- Running as another user: in 1.3.0, every write by a user other than
root@pamwas refused (Permission check failed (user != root@pam)), even with the right permissions. Writes now follow the user's Proxmox VE permissions, like in the web UI. - The start-up question "run as which user" is now always asked (it was skipped when
root@pamwas the only user). Other user accepts any user ID and asks again when it does not exist. Disable it withask_user = 0. - Ansible inventory plugin:
s(save) wrote nothing; it now writes the YAML file (creating the folders, asking before replacing a file). The lines are selectable (a cursor shows the position when scrolling) andvopens the inventory in the pager.
New
- PAM users: when the Linux account does not exist, pvetty offers to create it if the user it runs as may create Linux accounts (a
pamuser that is root, or may runuseraddwith sudo). The account is created through that user's sudo (its rules apply, sudo may ask its password and logs the action), after checking the Proxmox VE rightRealm.AllocateUser. - New demo in the README.
Install or update
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Mrdindon/pvetty/main/install.sh)"Full list: CHANGELOG.
pvetty 1.3.0
Install or update in one line
On a Proxmox VE node, as root:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Mrdindon/pvetty/main/install.sh)"The script downloads the .deb of the latest release, checks its SHA-256 and installs it with apt. Remove with apt remove pvetty.
New: run as another Proxmox VE user
At start-up pvetty asks which Proxmox VE user to run as (or use --user name@realm, also for the CLI commands). That user's permissions apply like in the web UI:
- every API call is checked with the same function as the API server (
check_api2_permissions) and lists are filtered for the user; - refused calls show the Proxmox VE message, e.g.
Permission check failed (/nodes/pve1, Sys.Console); - tasks are logged under the user's name; consoles need
VM.Console/Sys.Console.
No password is asked (pvetty already runs as root on the node): it limits what pvetty does, it is not a security boundary. Disable the question with ask_user = 0.
Fixes
- Adding a user failed with "change password failed: user 'test' does not exist": the API wants
name@realm. Add now asks the realm and the name like the web UI; the password is only set for thepverealm.
Other
- The README states that pvetty is developed with Claude Code.
Full list: CHANGELOG.
pvetty 1.2.1
Bug fixes and dialog improvements.
Fixes
- pvetty kept running at full CPU after its terminal was closed (SSH disconnect, killed tmux session) or on SIGTERM while a dialog or the help window was open. It now exits and cleans up. Recommended update.
- Plugins dialog:
Enteron Ok toggled the selected plugin again instead of closing. It is now a checklist (Spaceticks,Entervalidates), and pvetty offers to restart to apply the change, keeping the current selection.
Dialogs
- Action menus name their buttons: Settings
Change/Close, formsSelect/Cancel. - Menus fit the width of their longest line; message, question and input boxes take the size of their text (long errors were cut).
Demo
- The README shows a demo of the interface, made from a storyboard on demo data with
tools/demo-video.sh.
Install
apt install ./pvetty_1.2.1_all.debFull list: CHANGELOG.
pvetty 1.2.0
First public release of pvetty, a text console for Proxmox VE: the menus, panels, forms and tasks of the web interface (port 8006) in a terminal, running on a cluster node with the local API.
Highlights
- Same layout and menus as the web UI: resource tree, per-object menus, toolbars, Tasks / Cluster log panel.
- Read and write everywhere: Add / Edit / Remove on every configuration table, dialogs generated from the API schema.
- Datacenter, nodes, VMs, containers, storage of every type, SDN, HA, permissions, firewall, ACME, Ceph, disks.
- Task viewer that follows a task live, action queue, batch actions on marked guests.
- Serial console, SSH for Linux VMs,
pct enter, browser console URL (noVNC / xterm.js). - Non-interactive commands with JSON or table output:
pvetty guests list,pvetty api get /version... - Themes, configurable keys and colours, Nerd Font / Unicode / ASCII icons, plugins.
- Pure bash + what Proxmox VE already ships; no daemon.
Install (on a Proxmox VE node, as root)
apt install ./pvetty_1.2.0_all.deb
pvettyor extract pvetty-1.2.0.tar.gz and run ./pvetty (or ./install.sh).
See the README and CHANGELOG. pvetty was developed as pvetui (internal releases 1.0.0 and 1.1.0).
Licence: AGPL-3.0-or-later. Proxmox® is a registered trademark of Proxmox Server Solutions GmbH; pvetty is not affiliated with it.