Skip to content
Snippets Groups Projects
Select Git revision
  • 1f098708b6e00601bcafbdf6061f6e8af4c8b7ed
  • master default protected
  • develop/fix-vulnerabilities
3 results

hostware-vnc-proxy

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:

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