]>
Commit | Line | Data |
---|---|---|
b2ac253b | 1 | ## noVNC: HTML VNC Client Library and Application |
5aeb9880 | 2 | |
6c6776a7 PO |
3 | [![Test Status](https://github.com/novnc/noVNC/workflows/Test/badge.svg)](https://github.com/novnc/noVNC/actions?query=workflow%3ATest) |
4 | [![Lint Status](https://github.com/novnc/noVNC/workflows/Lint/badge.svg)](https://github.com/novnc/noVNC/actions?query=workflow%3ALint) | |
5aeb9880 | 5 | |
5ba1dd78 | 6 | ### Description |
5aeb9880 | 7 | |
b2ac253b PO |
8 | noVNC is both a HTML VNC client JavaScript library and an application built on |
9 | top of that library. noVNC runs well in any modern browser including mobile | |
10 | browsers (iOS and Android). | |
a538be43 | 11 | |
0f725a30 | 12 | Many companies, projects and products have integrated noVNC including |
f901d9c9 | 13 | [OpenStack](http://www.openstack.org), |
0f725a30 SM |
14 | [OpenNebula](http://opennebula.org/), |
15 | [LibVNCServer](http://libvncserver.sourceforge.net), and | |
b55bfcf0 | 16 | [ThinLinc](https://cendio.com/thinlinc). See |
5911cfd5 | 17 | [the Projects and Companies wiki page](https://github.com/novnc/noVNC/wiki/Projects-and-companies-using-noVNC) |
f901d9c9 | 18 | for a more complete list with additional info and links. |
cbb55df0 | 19 | |
eba7f064 PDH |
20 | ### Table of Contents |
21 | ||
22 | - [News/help/contact](#newshelpcontact) | |
23 | - [Features](#features) | |
24 | - [Screenshots](#screenshots) | |
25 | - [Browser Requirements](#browser-requirements) | |
26 | - [Server Requirements](#server-requirements) | |
27 | - [Quick Start](#quick-start) | |
e1d50c8c | 28 | - [Installation from Snap Package](#installation-from-snap-package) |
eba7f064 PDH |
29 | - [Integration and Deployment](#integration-and-deployment) |
30 | - [Authors/Contributors](#authorscontributors) | |
31 | ||
cbb55df0 JM |
32 | ### News/help/contact |
33 | ||
395c6f60 | 34 | The project website is found at [novnc.com](http://novnc.com). |
bc715065 | 35 | Notable commits, announcements and news are posted to |
544106c5 | 36 | [@noVNC](http://www.twitter.com/noVNC). |
5aeb9880 | 37 | |
b55bfcf0 | 38 | If you are a noVNC developer/integrator/user (or want to be) please join the |
544106c5 | 39 | [noVNC discussion group](https://groups.google.com/forum/?fromgroups#!forum/novnc). |
cbb55df0 | 40 | |
b55bfcf0 | 41 | Bugs and feature requests can be submitted via |
45a2717d PO |
42 | [github issues](https://github.com/novnc/noVNC/issues). If you have questions |
43 | about using noVNC then please first use the | |
44 | [discussion group](https://groups.google.com/forum/?fromgroups#!forum/novnc). | |
7c9a7dca PO |
45 | We also have a [wiki](https://github.com/novnc/noVNC/wiki/) with lots of |
46 | helpful information. | |
47 | ||
b55bfcf0 SM |
48 | If you are looking for a place to start contributing to noVNC, a good place to |
49 | start would be the issues that are marked as | |
5911cfd5 | 50 | ["patchwelcome"](https://github.com/novnc/noVNC/issues?labels=patchwelcome). |
b84e6052 PO |
51 | Please check our |
52 | [contribution guide](https://github.com/novnc/noVNC/wiki/Contributing) though. | |
cbb55df0 | 53 | |
b55bfcf0 SM |
54 | If you want to show appreciation for noVNC you could donate to a great non- |
55 | profits such as: | |
56 | [Compassion International](http://www.compassion.com/), | |
57 | [SIL](http://www.sil.org), | |
58 | [Habitat for Humanity](http://www.habitat.org), | |
59 | [Electronic Frontier Foundation](https://www.eff.org/), | |
60 | [Against Malaria Foundation](http://www.againstmalaria.com/), | |
61 | [Nothing But Nets](http://www.nothingbutnets.net/), etc. | |
544106c5 | 62 | Please tweet [@noVNC](http://www.twitter.com/noVNC) if you do. |
68edd7f4 | 63 | |
bc715065 JM |
64 | |
65 | ### Features | |
66 | ||
67 | * Supports all modern browsers including mobile (iOS, Android) | |
b8dd87c7 | 68 | * Supported VNC encodings: raw, copyrect, rre, hextile, tight, tightPNG |
36edae6d PO |
69 | * Supports scaling, clipping and resizing the desktop |
70 | * Local cursor rendering | |
bc715065 | 71 | * Clipboard copy/paste |
f5d76dd5 | 72 | * Translations |
90ead240 | 73 | * Touch gestures for emulating common mouse actions |
addf16c6 PO |
74 | * Licensed mainly under the [MPL 2.0](http://www.mozilla.org/MPL/2.0/), see |
75 | [the license document](LICENSE.txt) for details | |
bc715065 | 76 | |
852ba642 JM |
77 | ### Screenshots |
78 | ||
69300d3c | 79 | Running in Firefox before and after connecting: |
600887f0 | 80 | |
69300d3c SM |
81 | <img src="http://novnc.com/img/noVNC-1-login.png" width=400> |
82 | <img src="http://novnc.com/img/noVNC-3-connected.png" width=400> | |
5aeb9880 | 83 | |
b55bfcf0 | 84 | See more screenshots |
544106c5 | 85 | [here](http://novnc.com/screenshots.html). |
852ba642 JM |
86 | |
87 | ||
6de07adb JM |
88 | ### Browser Requirements |
89 | ||
1bc11d7d PO |
90 | noVNC uses many modern web technologies so a formal requirement list is |
91 | not available. However these are the minimum versions we are currently | |
92 | aware of: | |
6de07adb | 93 | |
0b51419c | 94 | * Chrome 49, Firefox 44, Safari 11, Opera 36, IE 11, Edge 12 |
d4139a9b JM |
95 | |
96 | ||
6de07adb | 97 | ### Server Requirements |
5aeb9880 | 98 | |
62bfc487 PO |
99 | noVNC follows the standard VNC protocol, but unlike other VNC clients it does |
100 | require WebSockets support. Many servers include support (e.g. | |
101 | [x11vnc/libvncserver](http://libvncserver.sourceforge.net/), | |
102 | [QEMU](http://www.qemu.org/), and | |
103 | [MobileVNC](http://www.smartlab.at/mobilevnc/)), but for the others you need to | |
104 | use a WebSockets to TCP socket proxy. noVNC has a sister project | |
105 | [websockify](https://github.com/novnc/websockify) that provides a simple such | |
106 | proxy. | |
5aeb9880 | 107 | |
5aeb9880 | 108 | |
b89c6db3 | 109 | ### Quick Start |
5aeb9880 | 110 | |
62bfc487 PO |
111 | * Use the launch script to automatically download and start websockify, which |
112 | includes a mini-webserver and the WebSockets proxy. The `--vnc` option is | |
113 | used to specify the location of a running VNC server: | |
b89c6db3 JM |
114 | |
115 | `./utils/launch.sh --vnc localhost:5901` | |
116 | ||
b55bfcf0 | 117 | * Point your browser to the cut-and-paste URL that is output by the launch |
84f1f7c8 PO |
118 | script. Hit the Connect button, enter a password if the VNC server has one |
119 | configured, and enjoy! | |
b89c6db3 | 120 | |
e1d50c8c TE |
121 | ### Installation from Snap Package |
122 | Running the command below will install the latest release of noVNC from Snap: | |
123 | ||
124 | `sudo snap install novnc` | |
125 | ||
126 | #### Running noVNC | |
127 | ||
128 | You can run the Snap-package installed novnc directly with, for example: | |
129 | ||
130 | `novnc --listen 6081 --vnc localhost:5901 # /snap/bin/novnc if /snap/bin is not in your PATH` | |
131 | ||
132 | #### Running as a Service (Daemon) | |
133 | The Snap package also has the capability to run a 'novnc' service which can be | |
134 | configured to listen on multiple ports connecting to multiple VNC servers | |
135 | (effectively a service runing multiple instances of novnc). | |
136 | Instructions (with example values): | |
137 | ||
138 | List current services (out-of-box this will be blank): | |
139 | ||
140 | ``` | |
141 | sudo snap get novnc services | |
142 | Key Value | |
143 | services.n6080 {...} | |
144 | services.n6081 {...} | |
145 | ``` | |
146 | ||
147 | Create a new service that listens on port 6082 and connects to the VNC server | |
148 | running on port 5902 on localhost: | |
149 | ||
150 | `sudo snap set novnc services.n6082.listen=6082 services.n6082.vnc=localhost:5902` | |
151 | ||
152 | (Any services you define with 'snap set' will be automatically started) | |
153 | Note that the name of the service, 'n6082' in this example, can be anything | |
154 | as long as it doesn't start with a number or contain spaces/special characters. | |
155 | ||
156 | View the configuration of the service just created: | |
157 | ||
158 | ``` | |
159 | sudo snap get novnc services.n6082 | |
160 | Key Value | |
161 | services.n6082.listen 6082 | |
162 | services.n6082.vnc localhost:5902 | |
163 | ``` | |
164 | ||
165 | Disable a service (note that because of a limitation in Snap it's currently not | |
166 | possible to unset config variables, setting them to blank values is the way | |
167 | to disable a service): | |
168 | ||
169 | `sudo snap set novnc services.n6082.listen='' services.n6082.vnc=''` | |
170 | ||
171 | (Any services you set to blank with 'snap set' like this will be automatically stopped) | |
172 | ||
173 | Verify that the service is disabled (blank values): | |
174 | ||
175 | ``` | |
176 | sudo snap get novnc services.n6082 | |
177 | Key Value | |
178 | services.n6082.listen | |
179 | services.n6082.vnc | |
180 | ``` | |
b89c6db3 | 181 | |
91e811f7 PO |
182 | ### Integration and Deployment |
183 | ||
184 | Please see our other documents for how to integrate noVNC in your own software, | |
185 | or deploying the noVNC application in production environments: | |
186 | ||
187 | * [Embedding](docs/EMBEDDING.md) - For the noVNC application | |
188 | * [Library](docs/LIBRARY.md) - For the noVNC JavaScript library | |
189 | ||
190 | ||
b8dd87c7 JM |
191 | ### Authors/Contributors |
192 | ||
84586c0f SR |
193 | See [AUTHORS](AUTHORS) for a (full-ish) list of authors. If you're not on |
194 | that list and you think you should be, feel free to send a PR to fix that. | |
195 | ||
f901d9c9 JM |
196 | * Core team: |
197 | * [Joel Martin](https://github.com/kanaka) | |
198 | * [Samuel Mannehed](https://github.com/samhed) (Cendio) | |
f901d9c9 | 199 | * [Solly Ross](https://github.com/DirectXMan12) (Red Hat / OpenStack) |
41f476a8 | 200 | * [Pierre Ossman](https://github.com/CendioOssman) (Cendio) |
f901d9c9 JM |
201 | |
202 | * Notable contributions: | |
32ec8f32 | 203 | * UI and Icons : Pierre Ossman, Chris Gordon |
b8dd87c7 JM |
204 | * Original Logo : Michael Sersen |
205 | * tight encoding : Michael Tinglof (Mercuri.ca) | |
206 | ||
207 | * Included libraries: | |
b8dd87c7 | 208 | * base64 : Martijn Pieters (Digital Creations 2), Samuel Sieb (sieb.net) |
b8dd87c7 | 209 | * DES : Dave Zimmerman (Widget Workshop), Jef Poskanzer (ACME Labs) |
6940936f | 210 | * Pako : Vitaly Puzrin (https://github.com/nodeca/pako) |
7629b03e | 211 | |
b84e6052 PO |
212 | Do you want to be on this list? Check out our |
213 | [contribution guide](https://github.com/novnc/noVNC/wiki/Contributing) and | |
214 | start hacking! |