VNC Proxy for Hostware
This repository contains a VNC Proxy, which is compatible with the Proxy used by hostware. It's extremly lightweight. Without any active conections it uses about 10Mb memory and 0 CPU. With active connections the resources will increase only slightly.
Installation
Using Docker
When using docker for connecting, there is a example docker-compose.yml
file located in this repository. For SSL encryption, you can either provide the TLS_CERT
and TLS_KEY
environment variables with the path to the certificate or use a external reverse Proxy. You can also place a LoadBalancer, like HaProxy or Traefik in front of the VNC prox, to balance the connections between multiple instances.
Using Binary file
The current binary can be downloaded using the following Links:
- Linux:
- AMD64 ( most PCs ): https://s3.jonasled.de/share/vncproxy-linux-amd64
- ARM64 ( newer Raspbery Pis ): https://s3.jonasled.de/share/vncproxy-linux-arm64
- ARMv7 ( older Raspbery Pis ): https://s3.jonasled.de/share/vncproxy-linux-arm
- Windows:
- AMD64 ( most PCs ): https://s3.jonasled.de/share/vncproxy-windows-amd64.exe
- ARM64: https://s3.jonasled.de/share/vncproxy-windows-arm64.exe
- Freebsd:
- AMD64 ( most PCs ): https://s3.jonasled.de/share/vncproxy-freebsd-amd64
- ARM64: https://s3.jonasled.de/share/vncproxy-freebsd-arm64
- MacOS:
- AMD64 ( intel MACs ): https://s3.jonasled.de/share/vncproxy-darwin-amd64
- ARM64 ( Apple Silicon MACs ): https://s3.jonasled.de/share/vncproxy-darwin-arm64
You can either provide the configuration via environment variables or through a .env
file next to the binary with the following content:
JWT_SIGN_KEY=""
PVE_IGNORE_SSL=true
GIN_MODE=release
TLS_CERT=
TLS_KEY=
PROMETHEUS_METRICS=false
PROMETHEUS_AUTH_USERNAME=prometheus
PROMETHEUS_AUTH_PASSWORD=password
When using systemd you can cop the example vncproxy.service
file from this repo and place it in /etc/systemd/system
. After setting the correct environment variables and the path to the binary you can enable the service using the following commands:
systemctl daemon-reload
systemctl enable vncproxy
systemctl start vncproxy
When using a dedicated VPS, use the smalles one you can get.
Dev Mode
You can enable the dev mode by setting DEV_MODE
to true. With this mode you get a new HTTP endpoint at /vnc
to directly start a VNC session. It will create the VNC Ticket using the PVE API, encrypts it and passes it to a noVNC iframe. It can be called with the following parameters:
http://localhost:8080/vnc
?host=1.2.3.4
&node=pve
&user=root@pam
&password=myPveUserPassword
&vm=100
&type=qemu # optional parameter
&port=8006 # optional parameter