Skip to content

Releases: devnullvoid/pvetui

v0.9.0

16 Jul 04:55

Choose a tag to compare

πŸš€ Release 0.9.0

Changed

  • Major Refactor: Split context menu, VM operations, and refresh logic into separate files for improved maintainability and DRYness.
  • Improved form and modal UX, including better keyboard navigation and consistent input handling.
  • Async feedback and pending state for all VM operations, including migration, with robust UI refresh and error handling.
  • Robust selection restoration for both node and VM lists after refresh (fixes selection jump issues).
  • Fixed linter/code-quality issues and removed duplicate or unused code.
  • Updated and consolidated helpers for refresh and selection logic.
  • All changes maintain code quality and pass all tests.

Added

  • Guest configuration editor: Edit CPU, memory, and description for both QEMU and LXC guests.
  • Storage volume resize: Resize disks from the config editor, with robust filtering for resizable volumes only.
  • Interactive First-Run Setup: Added user-friendly configuration wizard for new users
    • Automatically detects when configuration is missing or incomplete
    • Prompts users to create a default configuration file in the XDG config directory
    • Embeds the configuration template directly in the binary for offline setup
    • Provides clear, friendly messaging with proper spacing and visual indicators
    • Supports both .yml and .yaml file extensions for configuration discovery
    • Eliminates the need for users to manually create configuration files or read documentation first
  • Startup Connectivity Verification: Added comprehensive startup sequence with real-time feedback
    • Tests network connectivity and authentication before loading the main interface
    • Clear console progress messages showing each startup step (config loading, client initialization, connection testing, authentication verification)
    • Intelligent error categorization with specific suggestions for different failure types
    • Prevents users from waiting at "Loading..." screens when configuration issues exist
    • Helpful error messages pointing users to the exact config file and suggesting fixes for connection or authentication problems
  • Added a reusable custom FormItem (FormButton) for use in forms.

Fixed

  • VNC Connectivity: Fixed issue where VNC failed to connect when using SSH port forwarding (e.g., in VS Code). The noVNC client now uses a relative URL, allowing it to connect correctly through forwarded ports.
  • Fixed: Auto-refresh countdown and periodic refresh now work correctly after a manual refresh or config edit. Enabling auto-refresh after a manual refresh no longer leaves the UI stuck in 'Refreshing...' state.
  • Cleaned up auto-refresh logic: startAutoRefresh only starts ticker/goroutines if not already running, and toggleAutoRefresh only calls stopAutoRefresh when disabling.
  • Fixed: Node details (kernel version, CPU model, load average, version) are now preserved after a manual refresh, matching auto-refresh behavior. Previously, these fields would disappear after manual refresh.

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows AMD64: proxmox-tui-windows-amd64.zip
  • Windows ARM64: proxmox-tui-windows-arm64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

v0.8.1

11 Jul 01:18

Choose a tag to compare

πŸš€ Release 0.8.1

Added

  • Docker Image: Added openssh-client to support the shell feature.

Fixed

  • Configuration: The application now automatically discovers and loads the default configuration file (config.yml or config.yaml) from the XDG config directory (~/.config/proxmox-tui/) without requiring the --config flag.
  • Search: Pressing ESC in the search bar now clears the filter text in addition to closing the bar, providing a more intuitive, VIM-like experience.

Improved

  • Docker: The Docker instructions have been completely revamped for clarity and correctness, now recommending docker compose run --rm proxmox-tui for an improved user experience.
  • Robust selection restoration for both VM and Node lists after per-item and global refreshes. Selection is now always restored by name, not index, fixing issues with selection jumping to the top after refreshes.

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows AMD64: proxmox-tui-windows-amd64.zip
  • Windows ARM64: proxmox-tui-windows-arm64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

v0.8.0

08 Jul 23:43

Choose a tag to compare

πŸš€ Release 0.8.0

Added

  • Configurable Key Bindings: Added support for customizing all major actions via the key_bindings section in the config file.
  • View Switching with Brackets: Changed default view switching keys to ] (forward) and [ (reverse) for better reliability across terminals.
  • Support for SOPS/age encrypted configuration files with automatic key lookup
  • .sops.yaml for convenient encryption of config files with SOPS
  • Log message when encrypted config is decrypted
  • NixOS LXC Container Support: Added automatic detection and proper shell access for NixOS containers
    • Detects NixOS containers based on OSType configuration ("nixos" or "nix")
    • Uses pct exec with environment setup for NixOS containers instead of standard pct enter
    • Automatically sources /etc/set-environment if present for proper NixOS environment initialization
    • Maintains backward compatibility with standard LXC containers
    • Enhanced user feedback showing "NixOS LXC container" vs "LXC container" during connection
    • Comprehensive test coverage for all container types

Fixed

  • Keybinding Reliability: Overhauled the keybinding system to correctly handle modifier keys (Ctrl, Alt, Shift), fixing numerous issues with custom shortcuts.
  • Shell Connection Issues: Fixed VM shell connections that were failing due to broken QEMU guest agent approach.
  • GitHub Workflow Fixes: Added submodules: recursive to all GitHub Actions checkout steps to properly handle noVNC submodule during builds.
  • Windows ARM64 Support: Added Windows ARM64 build target to both Makefile and GitHub release workflow.
  • VM/Container Restart: Fixed 500 error when restarting VMs and containers by using correct /status/reboot endpoint (both QEMU and LXC use this endpoint, not /status/restart)
  • CI Linting: Fixed golangci-lint configuration compatibility issues by migrating to v2 format
  • Code Quality: Fixed variable shadowing issues in app initialization and cache tests
  • Refresh VNC session LastUsed timestamp on all WebSocket proxy traffic to prevent unexpected timeouts
  • noVNC Files Embedding: Fixed noVNC files to be properly embedded in compiled binary using Go's //go:embed directive instead of runtime filesystem access
  • Windows URL Truncation: Fixed VNC URLs being truncated in Windows browser address bar by replacing cmd /c start with rundll32 url.dll,FileProtocolHandler to avoid command line length limitations

Improved

  • Code Quality Workflow: Added go vet to CI pipeline and development workflow for enhanced static analysis
    • New make vet target for running Go's built-in static analyzer
    • New make code-quality target combining go vet and golangci-lint for comprehensive checks
    • CI now runs go vet before golangci-lint to catch additional issues early

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows AMD64: proxmox-tui-windows-amd64.zip
  • Windows ARM64: proxmox-tui-windows-arm64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

v0.8.0-rc1

05 Jul 00:17

Choose a tag to compare

v0.8.0-rc1 Pre-release
Pre-release

πŸš€ Release 0.8.0-rc1

Added

  • View Switching with Brackets: Changed default view switching keys to ] (forward) and [ (reverse) for better reliability across terminals.
  • Configurable Key Bindings: Added support for customizing all major actions via the key_bindings section in the config file.

Fixed

  • Keybinding Reliability: Overhauled the keybinding system to correctly handle modifier keys (Ctrl, Alt, Shift), fixing numerous issues with custom shortcuts.
  • Shell Connection Issues: Fixed VM shell connections that were failing due to broken QEMU guest agent approach.
  • GitHub Workflow Fixes: Added submodules: recursive to all GitHub Actions checkout steps to properly handle noVNC submodule during builds.
  • Windows ARM64 Support: Added Windows ARM64 build target to both Makefile and GitHub release workflow.

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows AMD64: proxmox-tui-windows-amd64.zip
  • Windows ARM64: proxmox-tui-windows-arm64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

v0.7.1

01 Jul 17:40

Choose a tag to compare

πŸš€ Release 0.7.1

Fixed

  • noVNC Files Embedding: Fixed noVNC files to be properly embedded in compiled binary using Go's //go:embed directive instead of runtime filesystem access
  • Windows URL Truncation: Fixed VNC URLs being truncated in Windows browser address bar by replacing cmd /c start with rundll32 url.dll,FileProtocolHandler to avoid command line length limitations

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows: proxmox-tui-windows-amd64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

v0.7.0

30 Jun 19:26

Choose a tag to compare

πŸš€ Release 0.7.0

Fixed

  • Search Filter Persistence: Fixed issue where search/filtered lists would reset to unfiltered state during auto-refresh and after guest agent data loading
    • Search filters now properly preserved across all refresh operations (manual, auto-refresh, and guest agent enrichment)
    • Fixed key mismatch between search state storage and retrieval (was using lowercase strings instead of proper page constants)
    • Initial data loading now respects existing search filters instead of always showing unfiltered data
    • VM enrichment callback now preserves active search filters when updating with guest agent data

Added

  • VM/Container Migration: Added comprehensive migration functionality
    • Context Menu Integration: Added "Migrate" option to VM context menu (accessible via 'M' key)
    • Simplified Migration Dialog: Streamlined dialog matching Proxmox UI design
      • Target node selection (shows only online nodes excluding current host)
      • Smart migration mode defaults: "restart" for LXC, "online/offline" for QEMU based on VM status
      • Clean confirmation dialog with migration summary
      • Removed complex advanced options in favor of sensible defaults
    • Enhanced API Implementation: Full migration API support with improved error handling
      • POST to /nodes/{node}/{vmtype}/{vmid}/migrate with detailed response logging
      • Support for both QEMU and LXC migration with type-specific parameters
      • Smart defaults: online migration for running VMs, offline for stopped VMs
      • LXC containers use "restart" migration parameter (restart=1) instead of online parameter
      • Fixed LXC migration API compatibility by removing unsupported migration_type parameter
      • Fixed LXC migration errors by using correct restart parameter for LXC containers
      • Comprehensive error feedback with detailed API response logging
      • Automatic validation of target node availability
    • Improved User Experience: Better feedback and error handling
      • Detailed error messages with migration context (VM name, target, mode)
      • API response logging for troubleshooting migration issues
      • Asynchronous operation with progress feedback
      • Automatic refresh after migration to show updated VM location and tasks
      • Migration dialog with minimum height for better visibility on smaller terminals
      • Consistent 2-second refresh delay matching other VM operations
      • Manual refresh (R key) now properly refreshes tasks in addition to nodes/VMs
      • Migration status visible in Tasks tab for monitoring progress
      • Help documentation updated to include migration information

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows: proxmox-tui-windows-amd64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

v0.6.0

23 Jun 15:55

Choose a tag to compare

πŸš€ Release 0.6.0

Added

  • Automated release script with full workflow automation
  • Makefile integration for release commands
  • VM/Container Deletion: Added delete option to VM/LXC context menu with confirmation
    • Delete option available for all VMs and containers regardless of state
    • Comprehensive confirmation dialog warns about irreversible data destruction
    • Uses DELETE method on /nodes/{node}/{type}/{vmid} endpoint as specified
    • Smart Running VM Handling: Detects running VMs and offers direct force deletion
    • Simplified Approach: Uses force deletion directly for running VMs (no stop-and-delete)
    • Force Delete Options: Supports force deletion with force, destroy-unreferenced-disks, and purge parameters
    • Cache Invalidation: Clears API cache after deletion to ensure VM is removed from list immediately
    • Delayed Refresh: Waits 3 seconds after deletion before refreshing to allow server processing
    • Proper error handling and success feedback with status messages
    • Automatic VM list refresh after successful deletion
    • Specialized delete operation handler that refreshes entire VM list instead of trying to refresh deleted VM
  • Enhanced VM Operations: Improved all VM operations (start/stop/restart) with auto-refresh
    • Cache Invalidation: Clears API cache after each operation for fresh state data
    • Delayed Refresh: Waits 2 seconds after operations before refreshing VM data
    • DRY Implementation: Unified approach across all VM operations for consistency
    • Targeted Refresh: Uses VM-specific refresh to preserve selection and context
    • Immediate success feedback with automatic state updates
  • Cluster Tasks Page: New dedicated page for viewing recent cluster tasks
    • Access via Tab navigation or F3 key
    • Shows task history with timestamps, status, duration, and details
    • Automatic sorting by newest tasks first
    • Colored status indicators (green for OK, red for errors, yellow for running)
    • Friendly task type formatting (e.g., "VM Start" instead of "qmstart")
    • Auto-refresh integration when tasks page is active
    • Comprehensive task type support for VMs, containers, backups, and system operations
      • VM Operations: Start, Stop, Restart, Shutdown, Reset, Reboot, Create, Delete, Clone, Migrate, Restore, Template
      • Container Operations: PCT and LXC variants (Start, Stop, Create, Delete, etc.)
      • System Operations: APT Update/Upgrade, Service management, Image operations, File transfers
      • Legacy LXC: vzcreate, vzstart, vzstop, vzdestroy and other vz* operations
    • Search Filtering: Full search support with / key activation
      • Real-time filtering across task ID, node, type, status, user, and UPID
      • Search state preservation during auto-refresh operations
      • Integrated with existing search system used by Nodes and Guests pages

Fixed

  • TUI Suspend/Resume Issue: Fixed critical issue where users couldn't return to TUI after script installation or SSH sessions
    • Added app.Sync() calls after app.Suspend() to properly restore terminal state
    • Resolves the problem where "Press Enter to return to the TUI..." would not work
    • Applied fix to both script installation and SSH shell functionality
    • Based on known tview issue where terminal state doesn't restore properly after suspension
    • Users can now successfully return to the application after all suspend operations
  • Unified Logging System: Fixed all packages to use unified log file instead of separate log files
    • Implemented global logger system that all packages (scripts, VNC services, etc.) now use
    • All components now log to the same proxmox-tui.log file in the configured cache directory
    • Eliminated multiple log files being created in current directory (scripts, VNC components)
    • Proper cache directory initialization ensures consistent logging location across all packages

Enhanced

  • Press Enter to Return: Re-implemented "Press Enter to return to TUI" functionality for both script installation and SSH sessions
    • Users can now see complete script output and error messages before returning to the application
    • Status messages show success (βœ…) or failure (❌) with clear feedback
    • Applied to all SSH session types: node shells, LXC containers, QEMU VMs, and guest agent shells
    • Maintains the working suspend/resume pattern while providing better user control
    • Allows users to troubleshoot issues or verify successful installations before continuing
  • Community Script Selector UI: Converted from modal to full-page view for better usability
    • Provides more screen real estate for script browsing and selection
    • Improved responsive layout that adapts to terminal size
    • Better integration with the overall application navigation flow
  • Community Script Search: Added search functionality to the script selector
    • Real-time search filtering as you type in the search input field
    • Searches across script names, descriptions, and types (container/VM)
    • Press / or Tab to activate search mode from the script list
    • Press Escape to clear search and return to full script list
    • Press Enter or Tab to move from search field back to script list
    • Maintains all existing navigation (hjkl, arrows, backspace to go back)
    • Filtered results update instantly and preserve selection behavior

Improved

  • Release process now fully automated from changelog to GitHub release

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows: proxmox-tui-windows-amd64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

v0.5.0

22 Jun 20:22

Choose a tag to compare

πŸš€ Release 0.5.0

Added

  • Guest data loading indicator on app startup
  • Enhanced VM details panel with network interface and storage configuration
  • Quit confirmation for active VNC sessions
  • Auto-refresh functionality with 'A' hotkey toggle (10-second interval)
  • Always-visible status indicators in footer (VNC sessions and auto-refresh status)
  • Workflow testing integration in Makefile with targets for local CI testing
  • Build tags for examples to prevent linting conflicts

Fixed

  • VM selection and search filter preservation during operations and refreshes
    • VM operations (start/stop/restart) now preserve selected VM position even when status changes
    • Search filters remain active after VM operations and manual refreshes
    • Startup enrichment process preserves user's VM selection if they navigate during loading
    • Selection tracking by VM ID and node instead of list position prevents losing selection when VMs move due to status sorting
  • Auto-refresh cache bypass for real-time performance data updates
  • Node list ordering consistency during auto-refresh operations
  • Manual refresh (R hotkey) VM selection preservation using correct sorted slice
  • Logger test panic with nil pointer dereference handling
  • Config integration tests with proper environment variable isolation
  • Boolean field merging logic in configuration file processing
  • Container runtime prioritization (Podman first, Docker fallback)

Improved

  • Network interface display layout in VM details
  • Storage configuration display layout
  • Footer layout with right-aligned status indicators
  • Consistent node list sorting (alphabetical by name)
  • Test infrastructure with comprehensive fixes and improvements

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows: proxmox-tui-windows-amd64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

v0.4.0

20 Jun 14:53

Choose a tag to compare

πŸš€ Release 0.4.0

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows: proxmox-tui-windows-amd64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

πŸ”„ Changelog

See the changelog for details on what's new in this release.

Full Changelog: v0.3.0...v0.4.0

v0.3.0

20 Jun 11:07

Choose a tag to compare

πŸš€ Release 0.3.0

πŸ“¦ Downloads

Choose the appropriate binary for your platform:

  • Linux AMD64: proxmox-tui-linux-amd64.tar.gz
  • Linux ARM64: proxmox-tui-linux-arm64.tar.gz
  • macOS Intel: proxmox-tui-darwin-amd64.tar.gz
  • macOS Apple Silicon: proxmox-tui-darwin-arm64.tar.gz
  • Windows: proxmox-tui-windows-amd64.zip

πŸ” Verification

Verify your download with the provided checksums.txt file:

shasum -a 256 -c checksums.txt

πŸ“‹ Installation

  1. Download the appropriate archive for your platform
  2. Extract the binary: tar -xzf proxmox-tui-*.tar.gz (or unzip for Windows)
  3. Make executable (Unix): chmod +x proxmox-tui-*
  4. Run: ./proxmox-tui-* --help

πŸ”„ Changelog

See the changelog for details on what's new in this release.

Full Changelog: v0.2.0...v0.3.0