dmpop/sysie
1
0
Fork
You've already forked sysie
0
System monitor with ESP32-2432S028 support
  • PHP 60.4%
  • C++ 36.8%
  • C 2.4%
  • Dockerfile 0.4%
2026年06月27日 12:57:44 +02:00
.gitignore First commit 2026年04月05日 16:49:24 +02:00
Dockerfile Add Dockerfile for containerized deployment 2026年04月28日 10:25:59 +02:00
ESP32-2432S028-case.3mf Add Share Tech Mono font and improve gauge styling 2026年04月06日 13:44:49 +02:00
ESP32-2432S028.ino Update data source to index.php and rename display title 2026年06月27日 12:57:44 +02:00
favicon.png Update icon and switch to PNG favicon 2026年04月30日 11:36:31 +02:00
icon.svg Update icon and switch to PNG favicon 2026年04月30日 11:36:31 +02:00
index.php Update icon and switch to PNG favicon 2026年04月30日 11:36:31 +02:00
LICENSE First commit 2026年04月05日 16:49:24 +02:00
README.md Update README.md 2026年04月06日 14:13:55 +02:00
SECURITY.md First commit 2026年04月05日 16:49:24 +02:00
sysie.jpg Update data source to index.php and rename display title 2026年06月27日 12:57:44 +02:00
sysie.service Add systemd service unit 2026年04月30日 13:37:26 +02:00
User_Setup.h First commit 2026年04月05日 16:49:24 +02:00

Sysie — Linux System Monitor

A simple standalone PHP system monitor with no external dependencies. Displays CPU load, temperature, RAM, storage, and uptime in a clean web dashboard with auto-refresh. Also provides a JSON API for integration with other tools (e.g., ESP32-2432S028 boards).

Sysie

Features

  • Single PHP file — no Composer, no libraries
  • CPU load (1/5/15 min averages)
  • CPU temperature (hwmon, thermal zones, sensors)
  • RAM usage
  • Storage usage
  • System uptime
  • Hostname, OS, kernel version
  • JSON API endpoint (?json=1)
  • Auto-refresh every 3 seconds
  • Responsive dark theme with gauges

Quick Start

PHP Built-in Server

cd /path/to/sysie
php -S 0.0.0.0:8080

Visit http://localhost:8080

Production (Apache/nginx)

Point your web server's document root to the sysie directory. Ensure PHP is enabled.

JSON API

Append ?json=1 to get machine-readable data:

curl "http://localhost:8080/?json=1"
{
 "cpu": { "1min": 0.42, "5min": 0.38, "15min": 0.41, "cores": 8, "pct": 5.3 },
 "temp": "48.5 °C",
 "ram": { "total": 32.0, "used": 12.4, "free": 19.6, "pct": 38.8 },
 "storage": { "total": 500.0, "used": 185.2, "free": 314.8, "pct": 37.0, "mount": "/" },
 "uptime": "5d 12h 3m",
 "hostname": "server01",
 "os": "Ubuntu 22.04.3 LTS",
 "kernel": "5.15.0-91-generic"
}

Temperature Sensors

Sysie automatically detects various hardware sensors:

  • Intel (coretemp): reads temp*_input files
  • AMD (k10temp, zenpower): prioritizes tdie and tctl labels
  • Generic hwmon: falls back to highest temp
  • Thermal zones: /sys/class/thermal/thermal_zone*/temp
  • sensors command: fallback for uncommon setups

ESP32-2432S028 Cheap Yellow Display (CYD) Integration

Sysie can display metrics on an ESP32-powered 2.8" TFT display (ESP32-2432S028). The ESP32-2432S028.ino sketch fetches JSON data from Sysie and renders three analog gauges:

  • Left gauge: CPU temperature (°C)
  • Center gauge: RAM usage (%)
  • Right gauge: Storage usage (%)
  • Top-right: CPU load % in status bar

Configuration

Edit these constants in ESP32-2432S028.ino:

const char* WIFI_SSID = "SSID";
const char* WIFI_PASSWORD = "PASSWORD";
const char* SERVER_URL = "http://127.0.0.1/index.php?json=1";

Files

File Description
index.php Main application (dashboard + API)
ESP32-2432S028.ino ESP32-2432S028 Arduino sketch
User_Setup.h TFT_eSPI configuration for ILI9341
README.md This file

Problems?

Report bugs and issues in the Issues section.

Contribute

If you've found a bug or have a suggestion for improvement, open an issue in the Issues section.

To add a new feature or fix issues yourself, follow the steps below.

  1. Fork the project's repository.
  2. Create a feature branch using the git checkout -b new-feature command.
  3. Add your new feature or fix bugs and run the git commit -am 'Add a new feature' command to commit changes.
  4. Push changes using the git push origin new-feature command.
  5. Submit a pull request.

License

GNU General Public License version 3

Author

Dmitri Popov (me@dmpop.xyz)

Acknowledgements