Gum CP

Lightweight self-hosted web control panel & dashboard for Raspberry Pi — system monitoring, GPIO, services, processes, command buttons with HTTP API, and SSH execution. Open-source Webmin/Cockpit alternative for homelab.

Internet of Things (IoT)PHPMIT

Abstract

Gum CP is an open-source Internet of Things (IoT) project. Lightweight self-hosted web control panel & dashboard for Raspberry Pi — system monitoring, GPIO, services, processes, command buttons with HTTP API, and SSH execution. Open-source Webmin/Cockpit alternative for homelab. It is built using PHP, Raspberry Pi, Bootstrap. Key capabilities include: Services — list all system services with their status; start or stop any service with one click (loads asynchronously so the page appears instantly); Processes — browse running processes sorted by memory usage; kill by PID or name; GPIO control — view and toggle pin mode (IN/OUT), voltage (HIGH/LOW) and pull-up/down for all header pins; auto-detects WiringPi (Pi 1–4) or raspi-gpio (Pi 5). The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.

1. Introduction

Lightweight self-hosted web control panel & dashboard for Raspberry Pi — system monitoring, GPIO, services, processes, command buttons with HTTP API, and SSH execution. Open-source Webmin/Cockpit alternative for homelab.

2. Objective

Lightweight self-hosted web control panel & dashboard for Raspberry Pi — system monitoring, GPIO, services, processes, command buttons with HTTP API, and SSH execution. Open-source Webmin/Cockpit alternative for homelab.

This project demonstrates how PHP, Raspberry Pi, Bootstrap can be applied to a real-world Internet of Things (IoT) problem.

3. Key Features / Modules

  • Services — list all system services with their status; start or stop any service with one click (loads asynchronously so the page appears instantly)
  • Processes — browse running processes sorted by memory usage; kill by PID or name
  • GPIO control — view and toggle pin mode (IN/OUT), voltage (HIGH/LOW) and pull-up/down for all header pins; auto-detects WiringPi (Pi 1–4) or raspi-gpio (Pi 5)
  • Package Updates — list upgradable apt packages with a count, refresh the index (apt update) and upgrade everything (apt upgrade) from the browser
  • System Logs — browse the systemd journal, dmesg and /var/log files with adjustable line count and text filtering
  • Cron Jobs — view, add and remove scheduled tasks in the user crontab; read-only view of /etc/crontab
  • Users & Groups — read-only listing of system users and groups from /etc/passwd and /etc/group
  • Docker — list containers, start/stop/restart/pause/remove them, view container logs, and browse images (disabled by default; enable in config.php if you run Docker)
  • Command Buttons — create custom one-click buttons for any shell command; choose between a confirmation modal or direct execution with inline output; drag to reorder
  • Button API — optional (off by default): every button gets a unique secret key so curl, Home Assistant or any automation tool can trigger it without a login; restrictable by IP

4. Technology Stack

PHPRaspberry PiBootstrap

5. System Requirements

General requirements for this technology stack — check the README for exact versions.

  • PHP 7.4+ with a web server (XAMPP / WAMP / LAMP)
  • MySQL / MariaDB
  • phpMyAdmin (optional)
  • Git (to clone the repository)

6. Installation & Setup

git clone https://github.com/gumslone/GumCP.git
cd GumCP
  1. Install Apache, PHP and all required extensions (php-ssh2, php-sqlite3, php-curl, php-zip)
  2. Install WiringPi (Pi 1–4) or raspi-gpio (Pi 5) automatically
  3. Clone GumCP into /var/www/html/GumCP/
  4. Create include/config.php from the bundled template
  5. Create writable directories (buttons/, command_logs/) with correct ownership
  6. Set file permissions for the www-data web-server user
  7. Ask whether to back up your config.php, buttons and logs to ~/gumcp_backup_/ before removing anything
  8. Remove /var/www/html/GumCP/
sudo apt-get update && sudo apt-get install -y wget
wget https://raw.githubusercontent.com/gumslone/GumCP/master/installer.sh && bash ./installer.sh
http://<your-pi-ip>/GumCP/
wget https://raw.githubusercontent.com/gumslone/GumCP/master/uninstall.sh && bash ./uninstall.sh
sudo apt-get update
sudo apt-get install -y apache2 php libapache2-mod-php php-ssh2 php-sqlite3 php-curl php-zip
sudo systemctl restart apache2

Full setup instructions are in the project README.

7. Future Enhancements

Suggested extensions you can add to make this your own project.

  • Add a mobile dashboard using Blynk or Firebase
  • Store readings in a cloud database for history charts
  • Add alerts via SMS / Telegram when thresholds are crossed

8. Viva / Review Questions

Common questions examiners ask for projects in this domain.

  1. Which microcontroller / board and sensors are used and why?
  2. How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
  3. Where is the sensor data stored and visualised?
  4. How is power consumption managed?
  5. How would you secure the device and its communication?

9. Source Code & License

This project is developed by gumslone and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.

Want to build this as your internship project?

Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.

Apply for Internet of Things (IoT) Internship