noVNC is a Python-based server that integrates noVNC and websockify to provide a web-based VNC client, enabling remote desktop access via a web browser.
Project description
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file novnc-1.3.0.tar.gz.
File metadata
- Download URL: novnc-1.3.0.tar.gz
- Upload date:
- Size: 799.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de1950efc72f3e1b4d15786198396719ff5c399b3179b706a2612f557c9f0434
|
|
| MD5 |
b134cbd0f33e09e859ea393855516ed3
|
|
| BLAKE2b-256 |
0ee38a97cc88175b1e58d950dd9f74cc0de1cfe6bb17428c2e3aa139e6464417
|
File details
Details for the file novnc-1.3.0-py3-none-any.whl.
File metadata
- Download URL: novnc-1.3.0-py3-none-any.whl
- Upload date:
- Size: 797.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df890f890ffc2ba9a4c4901273b7d694f3ee9b79b11e0d1a3876ba24c76a7acb
|
|
| MD5 |
65ccd805b93406e5b18f7d5ad06d888e
|
|
| BLAKE2b-256 |
05538ab63b5da695392e7350d8f8bf156fbe8d031e4dc268923371102f3c5bf9
|