PVE-VDIClient/README.md

95 lines
4.3 KiB
Markdown
Raw Normal View History

2022-03-08 06:56:54 +08:00
# PVE VDI Client
This project's focus is to create a simple VDI client intended for mass deployment. This VDI client connects directly to Proxmox VE and allows users to connect (via Spice) to any VMs they have permission to access.
![Login Screen](screenshots/login.png)
2022-03-09 00:10:25 +08:00
![Login Screen with OTP](screenshots/login-totp.png)
2022-03-08 06:56:54 +08:00
![VDI View](screenshots/vdiview.png)
2023-10-16 01:01:41 +08:00
## Configuration File
2023-10-16 01:02:49 +08:00
PVE VDI Client **REQUIRES** a configuration file to function. The client searches for this file in the following locations unless overridden with [command line options](#command-line-usage):
2023-10-16 01:01:41 +08:00
* Windows
* %APPDATA%\VDIClient\vdiclient.ini
* %PROGRAMFILES%\VDIClient\vdiclient.ini
* Linux
* ~/.config/VDIClient/vdiclient.ini
* /etc/vdiclient/vdiclient.ini
* /usr/local/etc/vdiclient/vdiclient.ini
Please refer to **vdiclient.ini.example** for all available config file options
If you encounter any issues feel free to submit an issue report.
## Proxmox Permission Requirements
Users that are accessing VDI instances need to have the following permissions assigned for each VM they access:
* VM.PowerMgmt
* VM.Console
* VM.Audit
2023-10-16 00:39:54 +08:00
## Command Line Usage
No command line options are required for default behavior. The following command line options are available:
usage: vdiclient.py [-h] [--list_themes] [--config_type {file,http}] [--config_location CONFIG_LOCATION]
[--config_username CONFIG_USERNAME] [--config_password CONFIG_PASSWORD] [--ignore_ssl]
Proxmox VDI Client
options:
-h, --help show this help message and exit
--list_themes List all available themes
--config_type {file,http}
Select config type (default: file)
--config_location CONFIG_LOCATION
Specify the config location (default: search for config file)
--config_username CONFIG_USERNAME
HTTP basic authentication username (default: None)
--config_password CONFIG_PASSWORD
HTTP basic authentication password (default: None)
--ignore_ssl HTTPS ignore SSL certificate errors (default: False)
If `--config_type http` is selected, pass the URL in the `--config_location` parameter
2022-03-08 06:56:54 +08:00
## Windows Installation
2023-03-23 11:44:40 +08:00
You **MUST** install virt-viewer prior to using PVE VDI client, you may download it from the [official Virtual Machine Manager](https://virt-manager.org/download.html) site.
2022-03-08 06:56:54 +08:00
Please visit the [releases](https://github.com/joshpatten/PVE-VDIClient/releases) section to download a prebuilt MSI package
If you need to customize the installation, such as to sign the executable and MSI, you may download and install the [WIX toolset](https://wixtoolset.org/releases/) and use the build_vdiclient.bat file to build a new MSI.
you will need to download the latest 3.10 python release, and run the following commands to install the necessary packages:
requirements.bat
## Linux Installation
Run the following commands on a Debian/Ubuntu Linux system to install the appropriate prerequisites
2023-03-08 23:14:43 +08:00
apt install python3-pip python3-tk virt-viewer git
2023-02-04 05:54:49 +08:00
git clone https://github.com/joshpatten/PVE-VDIClient.git
cd ./PVE-VDIClient/
2022-03-08 06:56:54 +08:00
chmod +x requirements.sh
./requirements.sh
cp vdiclient.py /usr/local/bin
chmod +x /usr/local/bin/vdiclient.py
2023-10-14 10:01:01 +08:00
## Build Debian/Ubuntu Linux Binary
Run the following commands if you wish to build a binary on a Debian/Ubuntu Linux system
apt install python3-pip python3-tk virt-viewer git
git clone https://github.com/joshpatten/PVE-VDIClient.git
cd ./PVE-VDIClient/
chmod +x requirements.sh
./requirements.sh
pip3 install pyinstaller
pyinstaller --onefile --noconsole --noconfirm --hidden-import proxmoxer.backends --hidden-import proxmoxer.backends.https --hidden-import proxmoxer.backends.https.AuthenticationError --hidden-import proxmoxer.core --hidden-import proxmoxer.core.ResourceException --hidden-import subprocess.TimeoutExpired --hidden-import subprocess.CalledProcessError --hidden-import requests.exceptions --hidden-import requests.exceptions.ReadTimeout --hidden-import requests.exceptions.ConnectTimeout --hidden-import requests.exceptions.ConnectionError vdiclient.py
2023-10-16 01:01:41 +08:00
Once pyinstaller has finished your binary will be located in dist/vdiclient