A simple, highly efficient, web based VNC app for Raspberry pi (all models).
To compile this app, some aditional packages will be installed in your pi. You can also use
git clone https://github.com/jishan484/PiWebVNC.git
cd PiWebVNC
sudo sh compile.sh
git clone https://github.com/jishan484/PiWebVNC.git
cd PiWebVNC
sudo apt install -y libx11-dev libxdamage-dev libxfixes-dev libxtst-dev liblz4-dev g++
g++ PIwebVNC.cpp -lX11 -lXdamage -lXfixes -pthread -lXtst -llz4 -o /bin/PiWebVNC
# for test
/bin/PiWebVNC
Using /bin (linux binary dir) for autostart setup (changed to bin)
open http://localhost:8000
in browser
or
open http://--ip-of-raspberry-pi--:8000
from another pc browser E.g. http://192.168.0.15:8000
Open libs/appConfigs.hpp to configure this app, like PORT , MAX clients etc. HTTPS or WSS configuration will be available soon #5_issue
Use this auto-start method to run this app at startup
sudo nano /etc/systemd/system/PiWebVNC.service
[Unit]
Description=Remote desktop service (PiWebVNC)
[Service]
User="$(who|awk '{print $1}')"
ExecStart=/bin/PiWebVNC
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
sudo systemctl enable PiWebVNC.service
sudo systemctl daemon-reload
sudo systemctl start PiWebVNC.service
- Linux os (Raspbian, TwisterOS, DietPI, Ubuntu with desktop etc)
- A desktop environment (LXDE, MATE, XFCE,LXQT etc).
max CPU usage PI4 : 3.7%
(10 FPS)
max RAM usage PI4 2GB model : 0.7%
- 30FPS at max CPU load of 10%, RAM 15MB only. CPU load will be 0% when screen is not changing.
- It only sends Damaged area of the screen. Works just like VNC.
- mouse controll (click, double click, right click , scroll , drag , hover)
- keyboard controll
- Support multiple client simultaneously. (max client configurable)
- Auto start using systemd (script in section Auto start)
- No external dependency. (no need to install VNC / NoVNC server)
- Clipboard support. [text only]
- Easily transfer Files / Folders from web client. [not implemented : TODO]
- password authentication. [not implemented : TODO]
Please compile to ommit platform dependency. It will install all required dependencies before compiling the app.
It is always better to compile it in your PC. To compile this in your PC please check Installation process (this will install some dependencies in your Pi)
You can download pre-compiled app from links below
NOT AVAILABLE. PLEASE COMPILE IT USING sudo sh compile.sh
SCRIPT. [Must have to use sudo]