Skip to content

Repository files navigation

PiMan - Raspberry Pi Fleet Management System

A modern web application for managing a fleet of Raspberry Pi devices. Built with React frontend and Node.js backend with SQLite database.

Features

  • 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

Tech Stack

Frontend

  • React 18
  • React Router DOM
  • Lucide React (Icons)
  • Recharts (Charts)
  • xterm.js (Terminal)
  • Monaco Editor (File Editor)

Backend

  • Node.js/Express.js
  • SQLite (Database)
  • Sequelize (ORM)
  • JWT (Authentication)
  • Socket.IO (Real-time communication)
  • SSH2 (SSH connections)

Getting Started

Quick Start with Docker (Recommended)

Option A: One-command install

git clone https://github.com/GalwayCal/piman.git && cd piman && ./install.sh

Option B: Manual Docker commands

git clone https://github.com/GalwayCal/piman.git
cd piman
docker compose up -d

Open 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


Manual Installation

Prerequisites

  • Node.js 16+
  • npm or yarn

Installation

  1. Clone the repository:
git clone <repository-url>
cd piman
  1. Install frontend dependencies:
npm install
  1. Install backend dependencies:
cd server
npm install
  1. Set up environment variables:
cd server
cp .env.example .env
# Edit .env with your configuration
  1. Start the backend server:
cd server
npm start
  1. Start the frontend development server:
# From the root directory
npm start

The application will be available at http://localhost:3000

Default Credentials

API Endpoints

Authentication

  • POST /api/auth/login - User login
  • POST /api/auth/logout - User logout

Devices

  • GET /api/devices - Get all devices
  • POST /api/devices - Add new device
  • GET /api/devices/:id - Get device by ID
  • PUT /api/devices/:id - Update device
  • DELETE /api/devices/:id - Delete device

Users

  • GET /api/users - Get all users
  • POST /api/users - Add new user
  • GET /api/users/:id - Get user by ID
  • PUT /api/users/:id - Update user
  • DELETE /api/users/:id - Delete user

Terminal

  • POST /api/terminal/:deviceId/connect - Connect to device terminal
  • POST /api/terminal/:deviceId/command - Execute command

Files

  • GET /api/files/:deviceId - List files
  • GET /api/files/:deviceId/read - Read file content
  • POST /api/files/:deviceId/write - Write file content

About

PiMan - Raspberry Pi Fleet Management System

Resources

Stars

38 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages