A modern web application for managing a fleet of Raspberry Pi devices. Built with React frontend and Node.js backend with SQLite database.
- Dashboard: Overview of all devices with charts and statistics
- Device Management: Add, edit, and monitor Raspberry Pi devices
- Remote Terminal: SSH access to devices through web interface
- File Editor: Browse and edit files on remote devices
- User Management: Manage system users and permissions
- Real-time Monitoring: CPU, memory, and disk usage tracking
- React 18
- React Router DOM
- Lucide React (Icons)
- Recharts (Charts)
- xterm.js (Terminal)
- Monaco Editor (File Editor)
- Node.js/Express.js
- SQLite (Database)
- Sequelize (ORM)
- JWT (Authentication)
- Socket.IO (Real-time communication)
- SSH2 (SSH connections)
Option A: One-command install
git clone https://github.com/GalwayCal/piman.git && cd piman && ./install.shOption B: Manual Docker commands
git clone https://github.com/GalwayCal/piman.git
cd piman
docker compose up -dOpen http://localhost:3000 and login with admin@piman.com / admin123
Update Encryption Key in docker-compose before first use
Complete Docker Guide - Full instructions and troubleshooting
Auto-Update Guide - Set up automatic updates from GitHub
Reverse Proxy Guide - Access via domain name with nginx/Apache/Caddy
- Node.js 16+
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd piman- Install frontend dependencies:
npm install- Install backend dependencies:
cd server
npm install- Set up environment variables:
cd server
cp .env.example .env
# Edit .env with your configuration- Start the backend server:
cd server
npm start- Start the frontend development server:
# From the root directory
npm startThe application will be available at http://localhost:3000
- Email: admin@piman.com
- Password: admin123
POST /api/auth/login- User loginPOST /api/auth/logout- User logout
GET /api/devices- Get all devicesPOST /api/devices- Add new deviceGET /api/devices/:id- Get device by IDPUT /api/devices/:id- Update deviceDELETE /api/devices/:id- Delete device
GET /api/users- Get all usersPOST /api/users- Add new userGET /api/users/:id- Get user by IDPUT /api/users/:id- Update userDELETE /api/users/:id- Delete user
POST /api/terminal/:deviceId/connect- Connect to device terminalPOST /api/terminal/:deviceId/command- Execute command
GET /api/files/:deviceId- List filesGET /api/files/:deviceId/read- Read file contentPOST /api/files/:deviceId/write- Write file content