RETIRED, further work has moved to Debian project infrastructure
Go to file
Thomas Goirand dd72785010 Ran wrap-and-sort. 2013-05-30 11:29:16 +08:00
debian Ran wrap-and-sort. 2013-05-30 11:29:16 +08:00
docs Make source code DFSG compliant. 2013-05-20 23:50:59 +08:00
images Formatting. Image renames/cleanup. 2011-09-29 09:32:09 -05:00
include Removes difference with upstream branch. 2013-05-21 00:04:07 +08:00
tests Add binary/base64 data mode to perf/playback tests. 2012-10-17 11:58:13 -05:00
utils Remove references to wsproxy. 2013-04-15 12:22:34 -05:00
.gitignore Remove references to wsproxy. 2013-04-15 12:22:34 -05:00
.gitmodules Add gimite/web-socket-js submodule for DFSG compliance. 2013-04-12 08:21:33 -05:00
LICENSE.txt Change noVNC license to from LGPLv3 to MPL 2.0 2012-10-15 13:35:00 -05:00
README.md Change noVNC license to from LGPLv3 to MPL 2.0 2012-10-15 13:35:00 -05:00
favicon.ico Add logo, favicon. 2011-02-03 11:04:32 -06:00
vnc.html Move over comment about URL connect parameters from vnc_auto.html. 2013-04-05 09:29:08 +02:00
vnc_auto.html Detect port properly in vnc_auto.html when used on port 80 or 443. 2013-04-13 18:45:56 +10:00

README.md

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

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)