]> git.proxmox.com Git - mirror_novnc.git/blob - README.md
Move advanced, integration, troubleshoot to wiki.
[mirror_novnc.git] / README.md
1 ## noVNC: HTML5 VNC Client
2
3
4 ### Description
5
6 noVNC is a VNC client implemented using HTML5 technologies,
7 specifically Canvas and WebSockets (supports 'wss://' encryption).
8 noVNC is licensed under the
9 [LGPLv3](http://www.gnu.org/licenses/lgpl.html).
10
11 Special thanks to [Sentry Data Systems](http://www.sentryds.com) for
12 sponsoring ongoing development of this project (and for employing me).
13
14 Notable commits, announcements and news are posted to
15 @<a href="http://www.twitter.com/noVNC">noVNC</a>
16
17
18 ### Screenshots
19
20 Running in Chrome before and after connecting:
21
22 <img src="http://kanaka.github.com/noVNC/img/noVNC-1.jpg" width=400>&nbsp;<img src="http://kanaka.github.com/noVNC/img/noVNC-2.jpg" width=400>
23
24 See more screenshots <a href="http://kanaka.github.com/noVNC/screenshots.html">here</a>.
25
26
27 ### Projects/Companies using noVNC
28
29 * [Sentry Data Systems](http://www.sentryds.com): uses noVNC in the
30 [Datanex Cloud Computing Platform](http://www.sentryds.com/products/datanex/).
31
32 * [Ganeti Web Manager](http://code.osuosl.org/projects/ganeti-webmgr):
33 Feature [#1935](http://code.osuosl.org/issues/1935).
34
35 * [Archipel](http://archipelproject.org):
36 [Video demo](http://antoinemercadal.fr/archipelblog/wp-content/themes/ArchipelWPTemplate/video_youtube.php?title=VNC%20Demonstration&id=te_bzW574Zo)
37
38 * [openQRM](http://www.openqrm.com/): VNC plugin available
39 by request. Probably included in [version
40 4.8](http://www.openqrm.com/?q=node/15). [Video
41 demo](http://www.openqrm-enterprise.com/news/details/article/remote-vm-console-plugin-available.html).
42
43
44 ### Browser Requirements
45
46 * HTML5 Canvas: Except for Internet Explorer, most
47 browsers have had Canvas support for quite some time. Internet
48 Explorer 9 will have Canvas support (finally).
49
50 * HTML5 WebSockets: For browsers that do not have builtin
51 WebSockets support, the project includes
52 <a href="http://github.com/gimite/web-socket-js">web-socket-js</a>,
53 a WebSockets emulator using Adobe Flash.
54
55 * Fast Javascript Engine: noVNC avoids using new Javascript
56 functionality so it will run on older browsers, but decode and
57 rendering happen in Javascript, so a slow Javascript engine will
58 mean noVNC is painfully slow.
59
60 * I maintain a more detailed list of browser compatibility <a
61 href="wiki/Browser-support">here</a>.
62
63
64 ### Server Requirements
65
66 Unless you are using a VNC server with support for WebSockets
67 connections (only my [fork of libvncserver](http://github.com/kanaka/libvncserver)
68 currently), you need to use a WebSockets to TCP socket proxy. There is
69 a python proxy included ('websockify'). One advantage of using the
70 proxy is that it has builtin support for SSL/TLS encryption (i.e.
71 "wss://").
72
73 There a few reasons why a proxy is required:
74
75 1. WebSockets is not a pure socket protocol. There is an initial HTTP
76 like handshake to allow easy hand-off by web servers and allow
77 some origin policy exchange. Also, each WebSockets frame begins
78 with 0 ('\x00') and ends with 255 ('\xff').
79
80 2. Javascript itself does not have the ability to handle pure byte
81 arrays. The python proxy encodes the data as base64 so that the
82 Javascript client can decode the data as an integer array.
83
84
85 ### Quick Start
86
87 * Use the launch script to start a mini-webserver and the WebSockets
88 proxy (websockify). The `--vnc` option is used to specify the location of
89 a running VNC server:
90
91 `./utils/launch.sh --vnc localhost:5901`
92
93 * Point your browser to the cut-and-paste URL that is output by the
94 launch script. Enter a password if the VNC server has one
95 configured. Hit the Connect button and enjoy!
96
97
98 ### Other Pages
99
100 * [Advanced Usage](wiki/Advanced-usage). Generating an SSL
101 certificate, starting a VNC server, advanced websockify usage, etc.
102
103 * [Integrating noVNC](wiki/Integration) into existing projects.
104
105 * [Troubleshooting noVNC problems](wiki/Troubleshooting).
106
107