Skip to content

Releases: Mrdindon/proxhawk-tui

proxhawk-tui 2.2.1

Choose a tag to compare

@Mrdindon Mrdindon released this 11 Oct 00:49

Fix

  • Linux console (screen and keyboard of the node, IPMI / KVM, noVNC): the keys F1 to F5 did 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 later

From 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

Choose a tag to compare

@Mrdindon Mrdindon released this 10 Oct 21:47

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.0

From 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

Choose a tag to compare

@Mrdindon Mrdindon released this 07 Oct 01:19

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

Choose a tag to compare

@Mrdindon Mrdindon released this 07 Oct 01:09

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 fr or F4 › 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-tui

Installing the package removes pvetty if it is installed. Full list: CHANGELOG.

pvetty 1.3.1

Choose a tag to compare

@Mrdindon Mrdindon released this 06 Oct 23:03

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@pam was 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@pam was the only user). Other user accepts any user ID and asks again when it does not exist. Disable it with ask_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) and v opens 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 pam user that is root, or may run useradd with 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 right Realm.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

Choose a tag to compare

@Mrdindon Mrdindon released this 06 Oct 21:30

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 the pve realm.

Other

  • The README states that pvetty is developed with Claude Code.

Full list: CHANGELOG.

pvetty 1.2.1

Choose a tag to compare

@Mrdindon Mrdindon released this 06 Oct 20:43

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: Enter on Ok toggled the selected plugin again instead of closing. It is now a checklist (Space ticks, Enter validates), and pvetty offers to restart to apply the change, keeping the current selection.

Dialogs

  • Action menus name their buttons: Settings Change / Close, forms Select / 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.deb

Full list: CHANGELOG.

pvetty 1.2.0

Choose a tag to compare

@Mrdindon Mrdindon released this 06 Oct 18:46

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
pvetty

or 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.