Go to file
Solly Ross f6dd102a14 [infra] updated packaging config
This updates the .npmignore file to ignore some new files that were
recently added, and to keep the `core` directory, so that noVNC can be
used as an ES6 module from NPM.

This also updates package.json to clean when generating lib files in the
`prepare` phase (which has replaced the `prepublish` phase).
2017-10-04 14:29:54 -04:00
app Rename setting_clip to setting_view_clip 2017-09-07 09:01:52 +02:00
core Merge branch 'optional-port' of https://github.com/bkylerussell/noVNC 2017-09-29 16:26:02 +02:00
docs Enable noVNC to become Browserifiable 2016-09-16 15:49:51 -04:00
po Fix update-pot so that it can handle UTF-8 2017-05-09 11:59:23 +02:00
tests Merge branch 'optional-port' of https://github.com/bkylerussell/noVNC 2017-09-29 16:26:02 +02:00
utils [infra] fix vendor import paths on built files 2017-10-03 19:30:20 -04:00
vendor Upgrade and fix sinon.js 2017-09-28 14:05:20 +02:00
.gitignore [infra] updated packaging config 2017-10-04 14:29:54 -04:00
.gitmodules Use Typed Arrays for the Websock receive queue 2015-08-06 14:47:03 -04:00
.npmignore [infra] updated packaging config 2017-10-04 14:29:54 -04:00
.travis.yml [infra] Fix Travis Sauce Auth 2017-10-03 16:14:38 -04:00
CONTRIBUTING.md Update tests to work with new structure 2017-03-21 17:39:07 -04:00
karma.conf.js Fix Travis-Sauce Connection 2017-06-05 13:41:31 -04:00
LICENSE.txt Update url's 2017-04-19 15:33:42 +02:00
package.json [infra] updated packaging config 2017-10-04 14:29:54 -04:00
README.md Update readme with new screenshots 2017-05-12 17:10:27 +02:00
vnc_lite.html Only load ES6 module loader polyfill if needed 2017-09-29 14:09:25 +02:00
vnc.html Rename setting_clip to setting_view_clip 2017-09-07 09:01:52 +02:00

noVNC: HTML5 VNC Client

Build Status

Description

noVNC is a HTML5 VNC client that runs well in any modern browser including mobile browsers (iOS and Android).

Many companies, projects and products have integrated noVNC including Ganeti Web Manager, OpenStack, OpenNebula, LibVNCServer, and ThinLinc. See the Projects and Companies wiki page for a more complete list with additional info and links.

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 are marked as "patchwelcome".

If you want to show appreciation for noVNC 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. Please tweet @noVNC if you do.

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 Firefox before and after connecting:

 

See more screenshots here.

Browser Requirements

  • Chrome 8, Firefox 4, Safari 6, Opera 12, IE 11, Edge 12, etc.

  • HTML5 Canvas, WebSockets and Typed Arrays

  • Fast Javascript Engine: this is not strictly a requirement, but without a fast Javascript engine, noVNC might be painfully slow.

  • See the more detailed browser compatibility wiki page.

Server Requirements

Unless you are using a VNC server with support for WebSockets connections (such as x11vnc/libvncserver, QEMU, or MobileVNC), 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

  • Modules/API - The library modules and their Javascript API.

  • Integration - Get noVNC to work in existing projects.

  • Troubleshooting - How to troubleshoot problems.

  • Encrypted Connections - Setup websockify so that you can use encrypted connections from noVNC.

  • Advanced Usage - Generating an SSL certificate, starting a VNC server, advanced websockify usage, etc.

  • Testing - Run and write tests.

  • Translations - Add and modify localization for JavaScript and HTML.

Authors/Contributors

  • Core team:

  • Notable contributions:

    • UI and Icons : Pierre Ossman, Chris Gordon
    • Original Logo : Michael Sersen
    • tight encoding : Michael Tinglof (Mercuri.ca)
  • Included libraries:

    • as3crypto : Henri Torgemane (code.google.com/p/as3crypto)
    • base64 : Martijn Pieters (Digital Creations 2), Samuel Sieb (sieb.net)
    • DES : Dave Zimmerman (Widget Workshop), Jef Poskanzer (ACME Labs)
    • Pako : Vitaly Puzrin (https://github.com/nodeca/pako)
  • Contribution guide