debian | ||
docs | ||
images | ||
include | ||
tests | ||
utils | ||
.gitignore | ||
.gitmodules | ||
favicon.ico | ||
LICENSE.txt | ||
README.md | ||
vnc_auto.html | ||
vnc.html |
noVNC: HTML5 VNC Client
Description
noVNC is a HTML5 VNC client that runs well in any modern browser including mobile browsers (iPhone/iPad and Android).
More than 16 companies/projects have integrated noVNC into their products including Ganeti Web Manager, OpenStack, and OpenNebula. See the Projects and Companies wiki page for more complete list.
News/help/contact
Notable commits, announcements and news are posted to @noVNC
If you are a noVNC developer/integrator/user (or want to be) please join the noVNC discussion group
Bugs and feature requests can be submitted via github issues. If you are looking for a place to start contributing to noVNC, a good place to start would be the issues that I have marked as "patchwelcome".
If you want to show appreciation for noVNC you could buy something off my Amazon wishlist or you could donate to a great non-profits such as: Compassion International, SIL, Habitat for Humanity, Electronic Frontier Foundation, Against Malaria Foundation, Nothing But Nets, etc.
Features
- Supports all modern browsers including mobile (iOS, Android)
- Supported VNC encodings: raw, copyrect, rre, hextile, tight, tightPNG
- WebSocket SSL/TLS encryption (i.e. "wss://") support
- 24-bit true color and 8 bit colour mapped
- Supports desktop resize notification/pseudo-encoding
- Local or remote cursor
- Clipboard copy/paste
- Clipping or scolling modes for large remote screens
- Easy site integration and theming (3 example themes included)
- Licensed under the MPL 2.0
Screenshots
Running in Chrome before and after connecting:
See more screenshots here.
Browser Requirements
-
HTML5 Canvas (with createImageData): Chrome, Firefox 3.6+, iOS Safari, Opera 11+, Internet Explorer 9+, etc.
-
HTML5 WebSockets: For browsers that do not have builtin WebSockets support, the project includes web-socket-js, a WebSockets emulator using Adobe Flash. iOS 4.2+ has built-in WebSocket support.
-
Fast Javascript Engine: this is not strictly a requirement, but without a fast Javascript engine, noVNC might be painfully slow.
-
I maintain a more detailed browser compatibility list here.
Server Requirements
Unless you are using a VNC server with support for WebSockets connections (such as x11vnc/libvncserver or PocketVNC), you need to use a WebSockets to TCP socket proxy. There is a python proxy included ('websockify').
Quick Start
-
Use the launch script to start a mini-webserver and the WebSockets proxy (websockify). The
--vnc
option is used to specify the location of a running VNC server:./utils/launch.sh --vnc localhost:5901
-
Point your browser to the cut-and-paste URL that is output by the launch script. Enter a password if the VNC server has one configured. Hit the Connect button and enjoy!
Other Pages
-
Encrypted Connections. How to setup websockify so that you can use encrypted connections from noVNC.
-
Advanced Usage. Starting a VNC server, advanced websockify usage, etc.
-
Integrating noVNC into existing projects.
-
Troubleshooting noVNC problems.
Authors/Contributors
-
noVNC : Joel Martin (github.com/kanaka)
- UI and Icons : Chris Gordon
- Original Logo : Michael Sersen
- tight encoding : Michael Tinglof (Mercuri.ca)
-
Included libraries:
- web-socket-js : Hiroshi Ichikawa (github.com/gimite/web-socket-js)
- as3crypto : Henri Torgemane (code.google.com/p/as3crypto)
- base64 : Martijn Pieters (Digital Creations 2), Samuel Sieb (sieb.net)
- jsunzip : Erik Moller (github.com/operasoftware/jsunzip),
- tinflate : Joergen Ibsen (ibsensoftware.com)
- DES : Dave Zimmerman (Widget Workshop), Jef Poskanzer (ACME Labs)