/wuː'ɛn'siː/
A noVNC client interface built with Vue 3 and Vite.
Designed to match the features of the official client application but with an improved interface, optimizations, maintainability and customization support.
Check out the demo here.
Runs on any modern browser.
Either Docker or Node 14+ is required for building and development.
VNC connection must support WebSockets. See the noVNC documentation for more information.
There are three ways to build and run this application:
Alternatively you can download a pre-built release from Github ready for use.
Install dependencies:
npm installStart the development server:
npm run devOr to create a production build:
npm run buildTo start up the development environment:
docker-compose upYou can also create a production build:
docker-compose run --rm vuensee npm run buildCreate and run a docker image using nginx with a production build:
docker build -t vuensee:custom .
docker run -p 8080:80 vuensee:customOr run a pre-built image with nginx:
docker run -p 8080:80 docker.pkg.github.com/andersevenrud/vuensee/vuensee:latestCopy .env.example to .env and customize to your liking. Then build the solution.
You have to restart the development environment after changing this file.
Some settings can be overrided with URL parameters on runtime, ex: ?a=1&b=2.
User settings are stored (by default) in the browser using localStorage. To clear storage use the following URL parameter:
?_clear=true.
The order of settings is as follows (from lowest to highest priority):
- Environment variables
- localStorage (user settings)
- URL parameters
| Environment variable | URL parameter | Type | Default | Notes |
|---|---|---|---|---|
VITE_TITLE |
String | vuensee |
||
VITE_ENABLE_PANEL |
Boolean | true |
||
VITE_ENABLE_SETTINGS |
Boolean | true |
||
VITE_ENABLE_CLIPBOARD |
Boolean | true |
||
VITE_ENABLE_FULLSCREEN |
Boolean | true |
||
VITE_ENABLE_POWER |
Boolean | true |
||
VITE_ENABLE_KEYS |
Boolean | true |
||
VITE_ENABLE_TOUCH_KEYBOARD |
Boolean | true |
||
VITE_ENABLE_URL_SETTINGS |
Boolean | true |
||
VITE_ENABLE_LOCALSTORAGE_SETTINGS |
Boolean | true |
||
VITE_ENABLE_VIEWPORT_DRAGGING |
Boolean | true |
||
VITE_SETTINGS_LANGUAGE |
language |
String | Auto | en, no, es |
VITE_SETTINGS_AUTOCONNECT |
autoconnect |
Boolean | false |
|
VITE_SETTINGS_BELL |
bell |
Boolean | true |
|
VITE_SETTINGS_SHARED_MODE |
sharedMode |
Boolean | true |
|
VITE_SETTINGS_VIEW_ONLY |
viewOnly |
Boolean | false |
|
VITE_SETTINGS_CLIP_TO_WINDOW |
clipToWindow |
Boolean | false |
|
VITE_SETTINGS_SCALING_MODE |
scalingMode |
String | off |
off, scale, remote |
VITE_SETTINGS_QUALITY |
quality |
Number | 6 |
0 - 9 |
VITE_SETTINGS_COMPRESSION |
compression |
Number | 2 |
0 - 9 |
VITE_SETTINGS_RECONNECT |
reconnect |
Boolean | false |
|
VITE_SETTINGS_RECONNECT_DELAY |
reconnectDelay |
Number | 5000 |
|
VITE_SETTINGS_MESSAGE_TIMEOUT |
messageTimeout |
Number | 4000 |
|
VITE_SETTINGS_DOT_CURSOR |
dotCursor |
Boolean | false |
|
VITE_SETTINGS_HOSTNAME |
hostname |
String | Auto | |
VITE_SETTINGS_PATH |
path |
String | websockify |
|
VITE_SETTINGS_REPEATER_ID |
repeaterId |
String | ||
VITE_SETTINGS_PORT |
port |
Number | Auto | |
VITE_SETTINGS_SSL |
ssl |
Boolean | Auto |