- Python 91.5%
- Shell 8.5%
Merge Proxmox cold-copy wizard, universal installer, vmmigration launcher, binary build workflow, safety checks, and requested developer branding. |
||
|---|---|---|
| .github/workflows | ||
| bin | ||
| build-source | ||
| docs | ||
| lbm_vdrc | ||
| releases/windows/v1.0.3 | ||
| tests | ||
| .gitignore | ||
| build-binary.sh | ||
| build-status.txt | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| install.sh | ||
| LICENSE | ||
| PREVIEW.txt | ||
| README.md | ||
| SECURITY.md | ||
| uninstall.sh | ||
| VERSION | ||
| vmmigration.py | ||
LINUX BACKUP MANAGER – VIRTUALIZATION & DISASTER RECOVERY CENTER
Status: UNDER ACTIVE DEVELOPMENT / WORK IN PROGRESS
This project is still under construction. The current Windows build is usable for development, testing, host connectivity, backup orchestration and recovery workflows, but it should not yet be treated as a finished enterprise production release. Features are being continuously expanded and validated against real Linux, Proxmox VE and KVM/libvirt environments.
Current Windows build: v1.0.3
Platform: Windows x64
Framework: .NET 10 / WPF
Distribution: Self-contained single executable
Author: Antonios Mortos
Designed and Development by: antonios.mortos@oultook.com
Binary Distribution and vmmigration Command
The Linux migration engine can be installed as a compiled standalone executable.
Run:
sudo ./install.sh
The installer automatically detects the supported Linux package manager, installs the required migration dependencies, builds a Nuitka one-file executable when a prebuilt binary is not present, and installs:
/opt/vmmigration/vmmigration
/usr/local/bin/vmmigration
Start the ANSI/color interface with:
sudo vmmigration
The legacy lbm-vdrc command is retained as a compatibility alias.
The installed /opt/vmmigration directory contains the executable binary and does not receive the Python source tree.
The application and installer display:
Design and Development by : antonios.mortos@oultook.com
Source-code visibility
Compiling with Nuitka makes the deployed application substantially harder to inspect than distributing plain Python files, but compilation is not cryptographic source-code secrecy.
If the source repository itself is public, the source remains visible through GitHub and repository history. For a binary-only public distribution, keep the authoritative source repository private and publish only compiled release artifacts and the bootstrap installer.
Overview
LINUX BACKUP MANAGER – VIRTUALIZATION & DISASTER RECOVERY CENTER is a Windows management console designed to centrally administer Linux backup, virtualization and disaster-recovery workflows from a single graphical interface.
The Windows application connects to remote Linux systems through SSH and is designed to work with the Linux Backup Manager engine and related virtualization tooling. The goal is to provide one control center for host management, backup jobs, restore operations, recovery points, snapshots, storage, scheduling, diagnostics and disaster-recovery operations.
The application is being developed as a standalone Windows executable so that no separate .NET runtime installation is required on the management workstation.
Current Windows Build
The latest build included in this repository is:
LinuxBackupManager-v1.0.3-real-history.exe
Version 1.0.3 includes a real host-backed backup history module. History is no longer a static or decorative UI element. When a Linux host and backup profile are selected, the application retrieves actual run history from the remote host over SSH.
The expected Linux Backup Manager history source is:
/var/lib/linux-backup-manager/history/<profile>.tsv
The Windows client can display the latest recorded backup executions including start time, end time, result, duration, transferred size, run ID and execution details.
Main Capabilities
Host Management
The application provides a Windows GUI for defining and managing remote Linux hosts.
Supported connection information includes:
- Display name
- Hostname or IP address
- SSH port
- Username
- Password authentication
- SSH private-key authentication
- Platform selection
- Notes
- Connection testing
- Host status and basic platform detection
Saved credentials are protected for the current Windows user using Windows DPAPI.
SSH Connectivity
Remote operations are performed through SSH.
The application can use:
- Username and password
- SSH private keys
- Custom SSH ports
For production environments, SSH key authentication is strongly recommended.
Platform Detection
The client can identify common Linux virtualization environments, including:
- Standard Linux
- Proxmox VE
- KVM / libvirt
Additional platform integrations are planned as development continues.
Backup Operations
The Windows console is intended to provide centralized access to Linux Backup Manager operations such as:
- Run backup
- Verify backup
- Restore backup
- Browse recovery points
- Apply retention policies
- View storage status
- Configure schedules
- Capture disaster-recovery inventory
- Run diagnostics
- View logs
The exact availability of each operation depends on the Linux host, installed utilities, privileges and the Linux Backup Manager engine installed on that host.
Real Backup History
Version 1.0.3 introduces a real backup-history viewer.
For the selected host and profile, the application retrieves the remote history file and presents it in a sortable table.
Displayed information includes:
- Start date and time
- End date and time
- Backup status
- Duration
- Data size
- Run ID
- Detailed execution information
The History window also supports:
- Refresh from Host
- Newest runs first
- CSV export
- Detection of profiles with no recorded runs
No fabricated history entries are generated.
Recovery Points
The project is designed to expose real recovery points generated by the Linux backup engine.
Depending on the configured engine this may include:
- rsync snapshot directories
- compressed tar/zstd archives
- restic snapshots
Recovery-point discovery and restore behavior depend on the active profile configuration on the remote Linux system.
Proxmox → Proxmox Cold Copy Wizard (Lab Feature)
The feature branch feature/proxmox-cold-copy-wizard adds a real interactive ANSI/color workflow for copying a powered-off QEMU VM between two independent Proxmox VE hosts.
The operator supplies only source/destination IP or hostname, SSH username/password, and selects the source VM from live inventory. Destination VMID selection is automatic; destination storage is auto-selected when there is only one valid image storage, otherwise it is chosen from a menu.
The workflow performs vzdump, controller-side staging, SHA256 verification on every transfer leg, destination qmrestore, forces onboot=0, and leaves the restored VM powered off for administrator validation. The source VM is never deleted.
See docs/PROXMOX_COLD_COPY.md.
Virtualization and Disaster Recovery
The long-term objective of the project is to provide one Windows control center for:
- Proxmox VE
- KVM / libvirt
- Linux virtualization hosts
- VM and container backup orchestration
- Snapshot workflows
- Backup verification
- VM restore
- Replication
- Migration
- Disaster-recovery workflows
- Storage mapping
- Infrastructure inventory
Some of these areas are already implemented in the underlying Linux project, while others are still being integrated and validated in the Windows client.
Storage
The architecture is intended to support backup targets commonly used in Linux and virtualization environments:
- Local storage
- NFS
- SMB / CIFS / Samba
- iSCSI
- Dedicated backup repositories
Storage support depends on the configuration and packages installed on the remote Linux host.
Scheduling
Linux-side scheduling can be managed through systemd timers.
The underlying Linux Backup Manager supports recurring scheduled jobs, and the Windows console is being developed to provide a graphical administration layer for those schedules.
Production scheduling should always be validated directly on the target host before being relied upon for disaster recovery.
Security
The project performs administrative operations on remote infrastructure and should therefore be treated as a privileged administration tool.
Recommended security practices:
- Prefer SSH keys instead of passwords.
- Use dedicated administrative accounts.
- Restrict SSH access with firewalls and network ACLs.
- Use least privilege wherever practical.
- Protect backup repositories from the same administrative failure domain as production workloads.
- Test restores regularly.
- Keep at least one independent or offline recovery copy for critical systems.
Windows-stored passwords are protected with DPAPI for the current Windows user.
Windows Requirements
The current Windows application targets:
Windows x64
.NET 10
WPF
The distributed EXE is published as a self-contained single-file application, so a separate .NET runtime installation should not normally be required.
Linux Host Requirements
Requirements depend on the operations being used, but typical hosts may require:
- OpenSSH server
- Bash
- rsync
- tar
- zstd
- restic
- systemd
- findmnt
- iproute2
- NFS / CIFS / iSCSI utilities where applicable
- Proxmox or libvirt tooling for virtualization-specific functions
The remote account must have sufficient privileges for the requested operation.
Typical Workflow
A normal administrative workflow is:
- Start
LinuxBackupManager.exe. - Add a Linux or virtualization host.
- Configure SSH authentication.
- Test the connection.
- Select the host.
- Open the operations console.
- Load available backup profiles.
- Run, verify or inspect backup jobs.
- Open History to retrieve the real backup run history from the Linux host.
- Review recovery points.
- Perform controlled restore testing.
- Validate scheduling and retention.
Always perform restore testing before considering a backup strategy operational.
Version 1.0.3 Changes
Version 1.0.3 currently includes:
- .NET 10 Windows x64 application
- Self-contained single EXE publishing
- Custom application/shortcut icon
- Light silver / ivory interface
- Dark readable typography
- Black text inside input fields
- SSH host management
- Password and private-key authentication
- Windows DPAPI credential protection
- Linux platform detection
- Proxmox VE detection
- KVM/libvirt detection
- Linux Backup Manager remote operations
- Real host-backed backup History viewer
- History refresh
- History CSV export
- Run ID and backup-size reporting
- Clickable developer email link
Work in Progress
This project is still under active development.
The current build should be considered a development / preview release rather than a final production release.
Areas still being expanded, hardened or validated include:
- Extended Proxmox VE management
- Advanced KVM/libvirt operations
- Full VM/container inventory views
- Snapshot lifecycle management
- Replication workflows
- Cross-host migration
- Cross-hypervisor conversion
- Automated disaster-recovery orchestration
- Storage discovery and mapping
- Job scheduler management
- Detailed live progress reporting
- Centralized logs and event monitoring
- Additional validation and rollback controls
- Installer and automated update system
- Broader testing against multiple Linux distributions and virtualization platforms
Do not rely on an untested workflow for production disaster recovery. Every backup, restore and migration design should be validated in the target environment.
Development Philosophy
The project is being built around several principles:
- Real operations instead of decorative UI
- No fabricated backup status or history
- Clear distinction between tested and experimental features
- Safe handling of destructive actions
- Restore validation as part of backup design
- Centralized Windows administration with Linux-side execution
- Transparent logs and recoverability
- Incremental validation against real infrastructure
Project Structure
The project combines two areas:
Linux Backup Engine
The Linux-side components perform the actual backup, verification, retention, recovery-point and scheduling operations.
Windows Management Console
The .NET 10 Windows application provides the graphical administration layer and connects to Linux hosts using SSH.
This separation allows the Linux backup engine to remain close to the workloads while the administrator works from a Windows workstation.
Disclaimer
This software is under active development and is provided for testing, laboratory use and controlled deployment.
Backup and disaster-recovery software can affect critical production data. Always maintain independent backups, verify recovery points and test restoration procedures before using any automation in a production environment.
The author is not responsible for data loss, service interruption or configuration damage resulting from untested deployment or misuse.
Author
Antonios Mortos
Designed and Development by:
antonios.mortos@oultook.com
Project Status
Version: 1.0.3
Status : UNDER ACTIVE DEVELOPMENT
Stage : WORK IN PROGRESS / DEVELOPMENT PREVIEW
More functionality, validation and documentation will be added as development continues.