This project is a simple web server that displays system information about your Raspberry Pi.
The interface is divided into 4 tabs:
- 1️⃣ General:
- Board info (model, revision, manufacturer, OS name, host name, system time and uptime, internet connection status and public IP if connections is active)
- CPU details (model, architecture, cores count, cores frequency, cores voltage, temperature, usage, cache sizes)
- RAM details (size, total, used, free, cache, available)
- 2️⃣ Networks:
- Ethernet adapter details (MAC and IP adresses, default gateway, network mask, broadcast IP adress)
- Wi-Fi afapter details (MAC and IP adresses, default gateway, network mask, broadcast IP adress)
- Available Wi-Fi networks (SSID, channel, rate, signal, bars, security). If the networkы list only shows the network the Raspberry Pi is connected to, you need to force a scan using the
sudo nmcli dev wifi rescancommand. This will be fixed in future versions. - Bluetooth details (MAC address)
- 3️⃣ Storage:
- Disks usage details (file system, size, used, available, used%, mounted on).
- Disks inodes details (file system, inodes, used, free, used%, mounted on).
SD card details(will be added in the future versions).
- 4️⃣ Processes: shows only running processes (user, PID, CPU%, MEM%, command, started on time)
Some information is parsed from the device's revision code located in /proc/cpuinfo.
Information about disks and processes is presented in the form of tables. You can sort the tables by clicking on the column in the header.
The web server is based on Flask framework. By default the application will run on port 8080. It can be changed in env file. Gunicorn is used to launch.
Clone repository:
git clone https://github.com/Nkeramov/rpi_system_info.gitSwitch to repo directory:
cd rpi_system_infoCreate and activate virtual environment:
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# or
./venv/Scripts/activate # WindowsInstall dependencies and run:
pip install -r requirements.txt
gunicorn --bind 0.0.0.0:8080 main:appInstall dependencies and create virtual environment automatically:
uv syncRun the project (virtual environment is handled automatically):
uv run gunicorn --bind 0.0.0.0:8080 main:appOr with explicit activation:
source .venv/bin/activate # After uv sync
gunicorn --bind 0.0.0.0:8080 main:appAlso you can use the launch script run.sh, making it executable first
chmod +x run.shThe configuration file is located in the .env file. You can copy the env.example to .env and make your edits.
cp env.example .envYou can set up automatic script launch at system startup.
Open the /etc/rc.local file in editor:
sudo nano /etc/rc.localAdd to the end of file this line:
/home/pi/rpi_system_info/run.sh &Press Ctrl+O → Enter → Ctrl+X to save and exit.
If you want to contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them.
- Push to your fork and create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
