A premium, cross-platform dashboard & control center to monitor and manage your Raspberry Pi remotely.
- โก Quick Start Guide
- ๐ฎ๐ณ Complete Usage Guide (Hindi / Hinglish)
- ๐ธ Features & Screenshots
- ๐ก๏ธ Security & Performance Enhancements
- ๐๏ธ System Architecture
- ๐ป Platform Installation & Build Guides
- ๐ฅ๏ธ VNC Remote Desktop Setup
- ๐ Auto-Start on Raspberry Pi Boot (systemd)
- ๐ ๏ธ Troubleshooting
Follow these steps to start PiControl in under 1 minute:
# 1. Clone or navigate to the project directory
cd pi-control-center
# 2. Install project dependencies
npm install
# 3. Start the server (Listens at http://localhost:3000)
node server.jsOnce the server starts:
Raspberry Pi Control Center server listening on port 3000
- Open your browser to
http://localhost:3000 - Enter your Raspberry Pi's details:
- Host / IP:
192.168.1.X(Your Raspberry Pi IP address) - Port:
22 - Username:
pi(or your Pi username) - Authentication: Password or SSH Private Key
- Host / IP:
- Click Connect!
PiControl ko use karne ka step-by-step tareeka:
- Terminal kholein (
Ctrl + Alt + T). - Project folder me jayein:
cd ~/pi-control-center
- Dependencies install karein:
npm install
- Server start karein:
node server.js
- Browser me kholein:
- Chrome / Firefox / Edge me type karein:
http://localhost:3000 - Target Pi IP, Username, aur Password daal kar Connect click karein.
- Chrome / Firefox / Edge me type karein:
- Features Kaise Use Karein:
- ๐ Dashboard: Pi ki CPU usage, RAM, Temperature (ยฐC), aur Disk status real-time gauges me dekhein.
- ๐ป Terminal: Interactive SSH terminal powered by
xterm.js. Directly Linux commands execute karein. - ๐ File Manager (SFTP): Files explore karein, naya folder banayein, upload/download karein, rename ya delete karein.
- โก Process Monitor: Running processes ko CPU% ke basis par dekhein aur kisi process ko PID se terminate (kill) karein.
- ๐ฅ๏ธ Remote Desktop (VNC): Graphical desktop viewport use karke Pi ka GUI live control karein.
| Feature | Description |
|---|---|
| ๐ Live Telemetry | Low-latency /proc/ metrics for CPU Usage, RAM, System Temp & Disk space |
| ๐ป SSH Web Console | Full-color interactive shell powered by xterm.js |
| ๐ SFTP File Browser | Browse, upload, download, rename, and safely delete remote files |
| โก Process Manager | Monitor system processes sorted by CPU and terminate with numeric PID validation |
| ๐ฅ๏ธ Remote Desktop (VNC) | Built-in noVNC proxy for full GUI control over your Raspberry Pi |
| ๐ Power Management | Remote Reboot and Power Shutdown options |
| ๐ Multi-Platform | Native Web App, Windows EXE, Linux AppImage/DEB, & Android APK |
- ๐ Crypto Session Tokens: File uploads and downloads require cryptographically generated session tokens to prevent unauthorized file access.
- ๐ก๏ธ Shell Input Escaping: Path commands use strict single-quote escaping to prevent shell command injection.
- ๐ข Strict PID Validation: Process kill commands enforce digit-only validation (
/^\d+$/). - ๐ VNC SSRF Protection: The VNC WebSocket proxy restricts target ports (5900-5999) to prevent arbitrary TCP relaying.
- โก Instant Telemetry: Replaced blocking
vmstatpolling with instant non-blocking/proc/statdelta calculations.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Client App / Browser โ
โ (Windows EXE โข Linux AppImage โข Android APK โข Web) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ WebSocket / HTTP (Port 3000)
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ PiControl Node.js Server โ
โ Express + Socket.io Server โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ SSH / SFTP (Port 22)
โ VNC Proxy (Port 5900-5999)
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Raspberry Pi OS โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
git clone https://github.com/picontrol/pi-control-center.git
cd pi-control-center
npm install
node server.jsnpm run desktopnpm run package:linux
sudo dpkg -i dist/pi-control-center_1.0.0_amd64.debchmod +x dist/PiControl-1.0.0.AppImage
./dist/PiControl-1.0.0.AppImageDouble-click dist/PiControl 1.0.0.exe directly to launch the standalone desktop app.
npm install
npm run package:winThe output portable EXE is created in dist/PiControl 1.0.0.exe.
- Transfer
PiControl.apkto your Android device. - Open Settings โ Security โ Enable Install Unknown Apps.
- Tap
PiControl.apkto install and launch.
cd android
./gradlew assembleDebug
# Generated APK at: android/app/build/outputs/apk/debug/app-debug.apk- Run
node server.js. - Open
http://<YOUR_SERVER_IP>:3000on any mobile device or PC browser. - Click Add to Home Screen / Install App to run as a native Progressive Web App.
To stream your Raspberry Pi desktop graphics:
- Enable VNC on your Raspberry Pi:
- Raspberry Pi OS (Bookworm / Wayland):
sudo apt install wayvnc wayvnc 0.0.0.0 5900
- Legacy X11 / Raspberry Pi OS (Bullseye):
sudo raspi-config # Interface Options -> VNC -> Enable
- Raspberry Pi OS (Bookworm / Wayland):
- In PiControl, switch to the Remote Desktop view, select port
5900, and click Start VNC Session.
Run the PiControl server automatically on boot:
- Create a systemd unit file:
sudo nano /etc/systemd/system/picontrol.service
- Add the following content:
[Unit] Description=PiControl Command Center Bridge After=network.target [Service] Type=simple User=pi WorkingDirectory=/home/pi/pi-control-center ExecStart=/usr/bin/node server.js Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
- Enable and start the daemon:
sudo systemctl daemon-reload sudo systemctl enable picontrol.service sudo systemctl start picontrol.service
- Error:
Unhandled Promise Rejection: Cannot read properties of undefined (reading 'importKey')- Cause: Modern web browsers (Chrome, Edge, Firefox, Safari) disable the
window.crypto.subtleAPI when accessing web apps over non-secure HTTP LAN IPs (e.g.http://10.82.32.172:3000orhttp://192.168.x.x:3000). - Solution: PiControl includes a built-in WebCrypto Subtle Polyfill Shim in
public/index.htmlso noVNC and encryption components run smoothly over HTTP LAN IP connections without throwing promise rejections.
- Cause: Modern web browsers (Chrome, Edge, Firefox, Safari) disable the
- Error:
Cannot find module 'ssh2'orexpress- Solution: Run
npm installin the project directory.
- Solution: Run
- Port 3000 is in use:
- Solution: Stop existing process using port 3000:
fuser -k 3000/tcp
- Solution: Stop existing process using port 3000:
- Connection Refused on Port 22:
- Solution: Enable SSH service on the Pi (
sudo systemctl enable --now ssh).
- Solution: Enable SSH service on the Pi (
Distributed under the MIT License. Built with โค๏ธ for the Raspberry Pi community.



