noVNC
noVNC is a Python-based wrapper that bundles websockify and the noVNC HTML client to provide a web-based VNC viewer.It enables remote desktop access directly from the browser without requiring a standalone VNC client.
✨ Features
- Easy Setup – Start a proxy server in seconds and connect to your VNC server.
- Web-based Access – Use any modern browser as a VNC client.
- Custom Arguments – Supports both noVNC (
--listen,--target) and all websockify options. - Secure Connection – SSL/TLS support with
--ssl-only,--cert, and--key.
📦 Requirements
- Python 3.7+
- A running VNC server (e.g., TigerVNC, TightVNC, RealVNC)
🔧 Installation
pip install novnc
⚙️ Options
| Option | Description | Default |
|---|---|---|
--listen HOST:PORT |
Address and port to listen on for WebSocket + web server | 0.0.0.0:8080 |
--target HOST:PORT |
VNC server address and port to connect to | 127.0.0.1:5900 |
--web PATH |
Path to noVNC static files (auto-extracted to temp directory) | (auto set) |
--ssl-only |
Enable TLS only | Disabled |
--cert FILE |
Path to SSL certificate (PEM) | None |
--key FILE |
Path to SSL private key (PEM) | None |
✅ Any websockify arguments can also be passed through.
🚀 Usage
Start the proxy with your VNC server details:
novnc --listen 0.0.0.0:8080 --target 127.0.0.1:5900
Then open in your browser:
http://localhost:8080/vnc.html
🔒 HTTPS / WSS Setup
Generate a self-signed cert (for testing):
openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout key.pem
Run with SSL:
novnc --listen 0.0.0.0:443 --target 127.0.0.1:5900 --ssl-only --cert cert.pem --key key.pem
Access via:
https://yourdomain.com/vnc.html
🛠 Troubleshooting
- Connection refused → Ensure your VNC server is running and reachable.
- Black screen → Verify the VNC server allows connections (sometimes password-protected).
- Browser SSL warning → Use a trusted CA (e.g., Let’s Encrypt) instead of self-signed certs.
📜 License
Licensed under the MIT License.
🙏 Acknowledgments
- noVNC – Browser-based VNC client (HTML5 + WebSockets)
- websockify – WebSockets proxy for any TCP service
Release files for novnc 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| novnc-1.3.0.tar.gz | 799.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| novnc-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.6 MB
Release files / novnc-1.3.0.tar.gz
| Download URL | novnc-1.3.0.tar.gz |
|---|---|
| Size | 799.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de1950efc72f3e1b4d15786198396719ff5c399b3179b706a2612f557c9f0434
|
|
BLAKE2b-256 checksum How to use checksums |
0ee38a97cc88175b1e58d950dd9f74cc0de1cfe6bb17428c2e3aa139e6464417
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / novnc-1.3.0-py3-none-any.whl
| Download URL | novnc-1.3.0-py3-none-any.whl |
|---|---|
| Size | 797.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
df890f890ffc2ba9a4c4901273b7d694f3ee9b79b11e0d1a3876ba24c76a7acb
|
|
BLAKE2b-256 checksum How to use checksums |
05538ab63b5da695392e7350d8f8bf156fbe8d031e4dc268923371102f3c5bf9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|