Releases: devnullvoid/pvetui
Releases Β· devnullvoid/pvetui
v1.0.6
π Release v1.0.6
Added
- VM Action Protection System: Comprehensive protection mechanism to prevent VM actions while operations are pending
- Context Menu Protection: Lifecycle actions (start, stop, restart, delete, migrate) are hidden when VMs have pending operations
- Keyboard Shortcut Protection: Shell, VNC, and context menu shortcuts are blocked for VMs with pending operations
- Visual Indicators: Pending VMs show dimmed status with special indicators
- Menu Title Updates: Context menu titles show current pending operation status (e.g., "Guest Actions (Starting)")
- Snapshot Protection: Create, delete, and rollback snapshot operations are blocked while VMs have pending operations
- Configuration Protection: VM config editing and storage resizing are blocked during pending operations
- Migration Protection: Migration dialog is blocked for VMs with pending operations
- Refresh Protection: Individual VM refresh and global refresh are blocked while operations are pending
- Auto-Refresh Protection: Auto-refresh cannot be enabled while there are pending operations
- Helper Functions: Added
CanVMPerformActions()andGetVMPendingOperation()for easier pending state checking - Thread-Safe Operations: All pending state operations use proper mutex protection for concurrent access
Fixed
- VM Pending State Timing: Fixed visual glitch where deleted VMs would briefly return to "normal" state before being removed
- Delete Operations: VMs now stay in pending state until refresh completes and they're removed from the UI
- Migration Operations: VMs stay in pending state until refresh shows them in their new location
- Consistent Behavior: All operations now maintain pending state until refresh operations complete
- Better User Experience: Users can see VMs remain in pending state until operations truly complete
Dependencies
- Core Dependencies: Updated key dependencies to latest versions
- github.com/stretchr/testify: bumped from 1.10.0 to 1.11.1
- github.com/rivo/tview: bumped to 0.42.0
- github.com/spf13/cobra: bumped from 1.9.1 to 1.10.1
- golang.org/x/term: bumped from 0.34.0 to 0.35.0
- github.com/gdamore/tcell/v2: bumped from 2.8.1 to 2.9.0
- Build Dependencies: Updated build and CI dependencies
- golang: bumped from 1.24.5-alpine to 1.25.1-alpine
- actions/setup-go: bumped from 5 to 6
- actions/checkout: bumped from 4 to 5
Refactored
- VM Migration Code Organization: Moved migration-specific functions to dedicated file
- New File:
vm_migration.gocreated to house all VM migration functionality - Moved Functions:
showMigrationDialog()andperformMigrationOperation()relocated fromdialogs.go - Clean Separation: Migration logic now properly separated from general dialog functions
- Better Maintainability: Migration features can now be developed and maintained independently
- New File:
v1.0.5
π Release v1.0.5
MAJOR BREAKING CHANGE
- Project Renamed to pvetui
- Rename was necessary in order to remain compliant with Proxmox trademark
- Old paths referencing
proxmox-tuimust be renamed topvetui. For example:mv ~/.config/proxmox-tui ~/.config/pvetui - Additional migration steps:
- Update any shell aliases or scripts referencing the old binary name
- Update any systemd service files or cron jobs
- Update any documentation or bookmarks referencing the old project name
- Environment Variables: Change prefix from
PROXMOX_toPVETUI_(e.g.,PROXMOX_HOSTβPVETUI_HOST)
- Impact: This change affects configuration paths, binary names, environment variables, and all project references
Added
- 32-bit builds: Add official 32-bit binaries by request in #25
- Linux:
linux/386 - Windows:
windows/386 - Included in GoReleaser config and local Makefile release target
- Linux:
- DEB/RPM Packages: Traditional Linux package formats automatically generated by GoReleaser
Documentation
- README Updates: Fixed CLI argument conventions and improved documentation
- Updated all CLI examples to use correct double-dash format (
--configinstead of-config) - Added comprehensive CLI reference table with all available flags and short versions
- Fixed broken anchor links in navigation for better user experience
- Replaced problematic emojis with compatible ones for consistent anchor generation
- Updated project title to 'TUI for Proxmox Virtual Environment' for trademark compliance
- Added trademark disclaimer to clarify non-affiliation with Proxmox Server Solutions GmbH
- Enhanced demo section with both GIF (GitHub compatible) and WebM (high quality) options
- Fixed CLI examples throughout all documentation files for consistency
- Updated all CLI examples to use correct double-dash format (
v1.0.4
π Release v1.0.4
Added
- Guest name editing: Added ability to change QEMU VM names and LXC container hostnames from the config page
- QEMU VMs: Edit the "name" field which updates the VM display name
- LXC containers: Edit the "hostname" field which updates the container hostname
- Real-time title updates show the new name as you type
- Changes are saved to Proxmox and reflected immediately in the UI
- Input validation prevents invalid hostname characters (underscores, spaces, special chars)
- Validates hostname format (no leading/trailing hyphens, proper length limits)
- Fixed UI refresh issue with professional polling approach that verifies API changes before refreshing
- Added loading indicators during API propagation delay for better user experience
- Enhanced header component with ShowWarning method for better user feedback
- Refactored polling functionality into dedicated function for improved maintainability
- Fixed race condition by polling both config and cluster resources endpoints to ensure complete propagation
- Cross-platform config and cache paths: Added native support for Windows config/cache directories
- Windows: Config in
%APPDATA%/proxmox-tui, Cache in%LOCALAPPDATA%/proxmox-tui - macOS: Uses XDG-style paths (
~/.config/proxmox-tui,~/.cache/proxmox-tui) for consistency with other TUI applications - Linux: Maintains existing XDG support (
~/.config/proxmox-tui,~/.cache/proxmox-tui) - Maintains backward compatibility with existing XDG functions
- Environment variables still override platform defaults when set
- Windows: Config in
Breaking Changes
- Windows users only: Existing config files in XDG-style paths need to be moved to new platform-specific locations
- Windows: Move from
~/.config/proxmox-tui/to%APPDATA%/proxmox-tui/ - macOS/Linux: No changes required - existing paths continue to work
- The application will automatically use the new paths on first run after this update
- Windows: Move from
Fixed
- Community Scripts: returning from installation no longer blanks the screen. The selector now closes before refresh and a brief post-resume delay ensures stable UI restore.
- Data Refresh: new containers/VMs created by community scripts are shown immediately without restarting. After install we trigger a hard refresh (cache cleared) and the manual refresh rebuilds the guest list from fresh cluster data.
- Header: eliminated brief spinner flash that could reappear after success/error messages.
- Manual Refresh stability: VM list now rebuilt strictly from cluster resources; filtering preserved across consecutive refreshes; removed VM details flicker and selection jump by stabilizing selection and suppressing programmatic callbacks during list rebuild.
- VM delete selection fallback: after deleting a VM, selection now moves to the first remaining VM and the details panel updates accordingly; clears details when the list becomes empty.
- Manual Refresh optimization: refactored complex refresh logic into separate functions for better maintainability; reduced UI update calls and improved incremental node enrichment; fixed regression where VM list would become empty after refresh due to enriched nodes not preserving VM data from original cluster resources.
v1.0.3
π Release v1.0.3
Added
- Guest power actions: Added Shutdown (graceful), Stop (force), and Reset (hard, QEMU-only) alongside Restart/Start in the guest context menu, with clear confirmations and shortcuts.
Fixed
- Windows: Saving profiles could fail with "The system cannot find the path specified"
- Ensure config directory creation uses OS-agnostic path handling when saving from the config/profile wizards and menu actions.
- Fixes saving when adding/editing profiles and when setting default profile on Windows.
- Windows: Locally built binaries sometimes failed to start
- Align local Windows builds with release artifacts by disabling CGO and using baseline CPU target.
- Scoped compatibility flags to Windows/amd64 only to avoid affecting other platforms.
- UI: Reduce noisy page removal errors in logs
- Remove pages only when present to avoid benign "Failed to remove β¦ page" errors.
v1.0.2
π Release 1.0.2
Fixed
- Profile Switching: Separate Active vs Default profile
- Introduced a non-persisted runtime
ActiveProfiledistinct from the persisteddefault_profilein config. - Switching profiles in the UI now updates only the active profile; the default indicator and config file are not overwritten.
- UI header shows the active profile, while the profiles menu star correctly marks the persisted default.
- Validation prefers the active profile when set, falling back to the default profile.
- Introduced a non-persisted runtime
- VNC Profile Switching: Fixed VNC sessions not updating when switching connection profiles
- VNC service now properly closes all existing sessions when switching profiles
- Ensures new VNC connections use the updated client connection
- Prevents VNC sessions from trying to connect to old servers after profile changes
- Maintains session management integrity across profile switches
- VNC Browser Opening on Linux: Fixed VNC connection issues when xdg-open is not available
- Added detection for missing xdg-open command before attempting to open browser
- Shows helpful error dialog with shortened VNC URL when browser cannot be opened automatically
- Implements URL forwarding system: shortened URLs (e.g.,
http://localhost:45167/vnc-forward) automatically redirect to full VNC sessions - Uses scrollable text area for long VNC URLs to prevent UI overflow and improve readability
- Improved dialog positioning and width to properly display long URLs without truncation
- Enhanced button focus and keyboard handling (Enter/Escape) for proper dialog dismissal
- Clarifies that the VNC server is still running and ready for connection
- Prevents confusing situation where VNC server starts but browser doesn't open
- Provides clear instructions for manual connection with the VNC URL
- Especially important for WSL and minimal Linux distributions that don't include xdg-open
- Config Wizard Theme Integration: Fixed config wizard to use the same theme colors as the main application
- Config wizard now applies custom theme configuration before setting tview styles
- Ensures consistent visual appearance between main app and config wizard
- Fixed input field colors to match the default theme (black instead of blue)
- Applied to both standalone config wizard and embedded profile wizard
- Config Wizard Loading Issues: Fixed config wizard to properly load existing configuration files
- Fixed config wizard to load from default locations (
~/.config/proxmox-tui/config.yml) - Added profile resolution and application logic to config wizard flow
- Ensured both
--config-wizardflag andconfig-wizardsubcommand work consistently - Fixed issue where config wizard wouldn't load existing profiles when no config file specified
- Fixed config wizard to load from default locations (
- Profile Wizard Validation: Fixed profile wizard to properly recognize filled authentication fields
- Fixed profile wizard to create profile entries in memory for new profiles
- Ensured form fields and validation logic work with the same data structure
- Fixed validation to properly detect when password or token authentication is provided
- Resolved issue where profile wizard wouldn't recognize filled authentication information
- Profile Deletion Deadlock: Fixed deadlock when deleting connection profiles
- Removed nested
QueueUpdateDrawcalls that caused deadlocks - Fixed profile deletion modal to close properly after operation completion
- Used direct UI updates instead of queued updates to prevent deadlocks
- Ensured proper focus restoration after profile deletion operations
- Removed nested
- Shell Connection Deadlock: Fixed deadlock when opening shell to VM without IP address
- Added
showMessageSafefunction that doesn't useQueueUpdateDrawto avoid deadlocks - Updated shell functions to use
CreateErrorDialogfor errors andshowMessageSafefor info messages - Fixed issue where screen would flash without showing error message to user
- Provide clear error message explaining why connection failed and how to fix it
- Follow same pattern as VNC functions to ensure consistency and prevent deadlocks
- Added
- noVNC Extra Keys Display: Fixed broken 'extra keys' image display in embedded noVNC client
- Updated noVNC submodule from v1.6.0 to v1.6.0-11-g4cb5aa4 (11 commits ahead)
- Includes upstream fix for extra keys image display bug
- Resolves issue where extra keys button images would not display correctly
- Guest List Search Selection Mismatch: Fixed issue where selected item's details didn't match the selected item when searching/filtering
- Fixed programmatic selection not triggering VM/node changed callbacks
- Ensures details panel always shows correct information for selected item
- Applied to search filtering, selection restoration, and VM operations
- Resolves issue where details panel would show stale information after filtering
- showMessage Deadlock Prevention: Updated showMessage calls to use showMessageSafe to prevent deadlocks
- Fixed showMessage calls in button handlers, event callbacks, and goroutines
- Applied to VM config forms, snapshot operations, script selector, and connection profiles
- Prevents UI deadlocks when showing error messages from async operations
- Ensures consistent user experience without blocking the interface
v1.0.1
π Release 1.0.1
Added
- Cobra CLI Framework: Migrated from Go's standard flag package to cobra for enhanced CLI experience
- Much better help text formatting with proper descriptions and organization
- Environment variable support with automatic binding to
PROXMOX_*variables - Subcommand architecture for future extensibility (config-wizard subcommand)
- Professional CLI interface with improved error handling and validation
- Maintains 100% backward compatibility with existing functionality
- Task List Refresh: Automatically refresh tasks list when VM operations complete
- Ensures tasks created by VM operations are immediately visible
- Provides better visibility into operation progress and completion
- Applied to start/stop/restart operations
- Delete and migration operations already refresh tasks via manualRefresh()
Fixed
- Data Refresh Issues: Improved data refresh after volume resize and snapshot rollback operations
- Volume resize now shows updated volume size immediately and displays the resize task
- Snapshot rollback now shows updated VM status and displays the rollback task
- Especially important for LXC containers that get shut down after rollback
- Extracted reusable
refreshVMDataAndTasksfunction for consistent behavior - Added 2-second delay to allow Proxmox API to update config data before refresh
- Prevents UI lockup by using non-blocking goroutine for delay
- VM Selection Preservation: Fixed selection jumping during pending operations
- Preserve selected VM by ID and node instead of index position
- Fixes issue where selected guest would change during pending status
- Ensures consistent user experience during long-running operations
- Applied to VM operations (start/stop/restart) and migration operations
- Makefile Cross-Platform Build: Fixed hardcoded GOOS/GOARCH in build target (#19)
- Now builds for host platform by default instead of forcing Linux/amd64
- Allows environment variable override for cross-compilation
- Enables native development on macOS, Windows, and other platforms
- Thanks to @unclesp1d3r for the detailed report and solution
- Go Install Documentation: Fixed incorrect installation instructions and improved macOS guidance (#20)
- Removed non-functional
go install @latestcommand (git submodule limitation) - Renamed misleading
install-remoteMakefile target toinstall-gofor clarity - Added macOS Gatekeeper warning in README with direct link to troubleshooting guide
- Updated troubleshooting documentation with correct installation methods
- Thanks to @unclesp1d3r for reporting macOS Gatekeeper issues
- Removed non-functional
- First-Run Configuration Issues: Fixed app failing to launch without config file (#21)
- Fixed bootstrap flow to handle config wizard before profile resolution
- Fixed profile resolution to not assume 'default' profile when no profiles exist
- Improved onboarding flow with clear user guidance after config creation
- Ensured --config-wizard flag and config-wizard subcommand work without existing config
- Maintained full SOPS functionality for encrypted configuration support
- Thanks to @BenRachmiel for the detailed bug report and reproduction steps
π¦ 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
- Download the appropriate archive for your platform
- Extract the binary:
tar -xzf proxmox-tui-*.tar.gz(or unzip for Windows) - Make executable (Unix):
chmod +x proxmox-tui-* - Run:
./proxmox-tui-* --help
v1.0.0
π Release 1.0.0
Added
- Snapshot Management: Added comprehensive snapshot management for VMs and containers
- Full CRUD operations: create, delete, and rollback snapshots
- Proper API integration with Proxmox snapshot endpoints
- QEMU vs LXC support with VM state handling (QEMU only)
- Theme-consistent UI with proper keyboard navigation
- Escape key support for all dialogs and forms
- Proper handling of 'current' state display as 'NOW'
- Comprehensive error handling and user feedback
- Connection Profile Management: Added comprehensive profile management system for multiple Proxmox connections
- Profile switching, editing, and persistence with validation
- Automatic migration from legacy single-connection config
- Global Menu: Added comprehensive global menu with intuitive letter-based shortcuts
- Quit Confirmation: Added consistent quit confirmation dialog for both hotkey and menu with VNC session awareness
- Flexible Theming System: Added comprehensive theming support with automatic terminal emulator adaptation
- Semantic Color Constants: Centralized color management with semantic meaning across themes
- Terminal Theme Adaptation: Automatic adaptation to popular terminal themes (Dracula, Nord, Solarized, etc.)
- Configuration Options: Theme settings in config file with
use_terminal_colorsandcolor_schemeoptions - Documentation: Comprehensive theming guide with setup instructions for popular terminal emulators
- Zero Configuration: Works out of the box with most terminal emulators while maintaining semantic consistency
- Display Node Storage Pools: Added node storage pools to node details panel
- Added comprehensive custom theming support:
- Users can override all semantic UI colors via the config file (
theme.colors). - Supports hex codes, ANSI color names, and the special value
default. - All themeable color keys are documented in docs/THEMING.md.
use_terminal_colorsconfig option controls whether to use terminal palette or custom colors.- See docs/THEMING.md for full details and configuration examples.
- Users can override all semantic UI colors via the config file (
- Built-in themes: default, dracula, catppuccin-mocha, gruvbox, nord, rose-pine, tokyonight, solarized, kanagawa, everforest. Users can select a built-in theme with theme.name in the config and override any color.
- Interactive Config Wizard and Editor:
- Added a full-screen, interactive TUI wizard for creating and editing the main config file.
- Automatically launches on first run if no config is found, or can be invoked at any time with
--config-wizard. - Pre-fills fields from existing config, validates input, and provides clear error/success feedback.
- Supports both password and token authentication, and SOPS/age-encrypted configs with opt-in re-encryption.
- All onboarding and config editing flows now use consistent, user-friendly modals and prompts.
Changed
- Major Code Refactoring: Comprehensive refactoring to improve code organization and maintainability
- Split large UI component files into focused, single-responsibility modules
- Improved separation of concerns across all UI components
- Enhanced maintainability and testability while preserving all functionality
- Logger Architecture Improvements: Enhanced logging system with better error handling and circular import resolution
- Configuration Package Split: Modularized configuration management with separate profile and file operation modules
- UI Simplification: Removed redundant Global menu hotkey from footer display since Esc opens the global menu
Fixed
- Node details panel and API now support displaying multiple storage pools per node, instead of only one. All storage pools are shown with usage stats and theming.
- FormButton Theming: Fixed FormButton styling to use proper theme colors instead of hardcoded tview.Styles colors, ensuring consistent appearance with other UI elements
- FormButton Refactoring: Refactored FormButton to embed a real tview.Button, providing proper button styling, behavior, and theme consistency
- FormButton Sizing: Fixed FormButton to properly size and center the button instead of taking up the entire width
- FormButton Alignment: Added configurable positioning options (center, left, right, custom) for FormButton alignment within forms
- GolangCI-Lint Configuration: Updated golangci-lint configuration to be compatible with newer versions, fixed GitHub Actions CI failures, and implemented conservative linting with zero errors while maintaining essential code quality checks
π¦ 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
- Download the appropriate archive for your platform
- Extract the binary:
tar -xzf proxmox-tui-*.tar.gz(or unzip for Windows) - Make executable (Unix):
chmod +x proxmox-tui-* - Run:
./proxmox-tui-* --help
v0.9.0
π 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
.ymland.yamlfile 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
- Download the appropriate archive for your platform
- Extract the binary:
tar -xzf proxmox-tui-*.tar.gz(or unzip for Windows) - Make executable (Unix):
chmod +x proxmox-tui-* - Run:
./proxmox-tui-* --help
v0.8.1
π Release 0.8.1
Added
- Docker Image: Added
openssh-clientto support the shell feature.
Fixed
- Configuration: The application now automatically discovers and loads the default configuration file (
config.ymlorconfig.yaml) from the XDG config directory (~/.config/proxmox-tui/) without requiring the--configflag. - Search: Pressing
ESCin 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-tuifor 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
- Download the appropriate archive for your platform
- Extract the binary:
tar -xzf proxmox-tui-*.tar.gz(or unzip for Windows) - Make executable (Unix):
chmod +x proxmox-tui-* - Run:
./proxmox-tui-* --help
v0.8.0
π Release 0.8.0
Added
- Configurable Key Bindings: Added support for customizing all major actions via the
key_bindingssection 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.yamlfor 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
OSTypeconfiguration ("nixos" or "nix") - Uses
pct execwith environment setup for NixOS containers instead of standardpct enter - Automatically sources
/etc/set-environmentif 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
- Detects NixOS containers based on
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: recursiveto 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/rebootendpoint (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
LastUsedtimestamp 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:embeddirective instead of runtime filesystem access - Windows URL Truncation: Fixed VNC URLs being truncated in Windows browser address bar by replacing
cmd /c startwithrundll32 url.dll,FileProtocolHandlerto avoid command line length limitations
Improved
- Code Quality Workflow: Added
go vetto CI pipeline and development workflow for enhanced static analysis- New
make vettarget for running Go's built-in static analyzer - New
make code-qualitytarget combininggo vetandgolangci-lintfor comprehensive checks - CI now runs
go vetbeforegolangci-lintto catch additional issues early
- New
π¦ 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
- Download the appropriate archive for your platform
- Extract the binary:
tar -xzf proxmox-tui-*.tar.gz(or unzip for Windows) - Make executable (Unix):
chmod +x proxmox-tui-* - Run:
./proxmox-tui-* --help