vuensee
vuensee copied to clipboard
A noVNC client interface built with Vue 3 and Vite.
vuensee
/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.
Requirements
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.
Usage
There are three ways to build and run this application:
Alternatively you can download a pre-built release from Github ready for use.
- Standard
- Docker Compose
- Docker Image
Standard
Install dependencies:
npm install
Start the development server:
npm run dev
Or to create a production build:
npm run build
Docker Compose
To start up the development environment:
docker-compose up
You can also create a production build:
docker-compose run --rm vuensee npm run build
Docker Image
Create and run a docker image using nginx with a production build:
docker build -t vuensee:custom .
docker run -p 8080:80 vuensee:custom
Or run a pre-built image with nginx:
docker run -p 8080:80 docker.pkg.github.com/andersevenrud/vuensee/vuensee:latest
Configuration
Copy .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 |