PhpDev.App
femto-code/Raspberry-Pi-Dashboard

femto-code/Raspberry-Pi-Dashboard

Stars: 200

Forks: 19

Pull Requests: 7

Issues: 26

Watchers: 5

Last Updated: 2023-09-14 09:49:49

Web-based dashboard interface to check Raspberry Pi hardware and software status with no extra deependencies required.

License: GNU General Public License v3.0

Languages: CSS, JavaScript, PHP

Intro

View and manage your Pi system through your web browser!

Written in plain HTML5, CSS3, JavaScript and PHP (backend). No extra software required!


Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors License Badge
License Badge License Badge License Badge License Badge

Report a bug | Request a new feature | Help develop this project

Loved the project? Please consider giving a star :)

Features

  • Live surveillance of RPi hardware (CPU temperature, frequency, loads etc.) with customizable warning thresholds
  • Detailed software/hardware information (web server, PHP, storage / partition workload, core voltage, plugged USB devices, kernel version, model specifications, OS, CPU, network config)
  • Protected access with password login (configure password)
  • Power (shutdown/reboot) Raspberry Pi with scheduling options (setup instructions)
  • Responsive mobile web-app
  • Dark Theme (manual / auto)

Update your existing dashboard setup by navigating to project root folder and running git pull in the terminal. Please keep in mind, this only works if there are no changes in the workspace.

❗ If you run into issues and getting error message "Permission denied" or "unable to open file": see issue #22 or read here for help and instructions to solve. ❗

Screenshots

Preview

Mobile Light Theme Mobile Dark Theme

Download and Installation

Prerequisites

  • Running Web Server (e.g. Lighttpd or Apache) with PHP installed
  • Installed Git (comes preinstalled on Raspberry Pi OS / formerly Raspbian as well as other Linux distros)
  • Valid permissions within /var/www/html

Valid permissions

The following configuration is the commonly recommended set-up for your web server folder and is meant to be secure to a certain level (with the minimum need of permissions):

  1. First, make sure www-data group exists and add your current user to that system group:
    (if you are using another distro than Raspberry Pi OS the username of web server can differ)
    sudo groupadd www-data
    sudo usermod -a -G www-data www-data
    sudo usermod -a -G www-data <yourlogin> (replace <yourlogin> with your username)

  2. Second, give the ownership of web folder to the www-data group and your user.
    The following commands ensure that you have full access on the files within the web folder while group members (www-data) cannot edit/write for security reasons:
    sudo chown -R <yourlogin>:www-data /var/www/html (replace <yourlogin> with your username)
    sudo chmod -R 755 /var/www/html

  3. Reboot your RPi (for permission changes to take effect)

Setup project

  • navigate to your web folder: cd /var/www/html
  • clone this GitHub repository: git clone https://github.com/femto-code/Rasberry-Pi-Dashboard.git <your_subfolder_name>
    (replace <your_subfolder_name> with a name of your choice accordingly, you can also rename the base folder at any time afterwards)
  • Alternatively download and extract ZIP file from releases
  • Run in a terminal to set valid permissions:
    • sudo chown -R <yourlogin>:www-data /var/www/html/<your_subfolder_name>
      (replace <yourlogin> with your username)
    • sudo chmod -R 775 /var/www/html/<your_subfolder_name>
    • this will allow the www-data user exclusively to write/edit (775) files only in your dashboard folder!

An erroneous permission typically results in the situation where the user responsible for web server (e.g. www-data) does not have rights to create/modify the local config file for saving your dashboard adjustments (your custom thresholds, password etc.). In this case, the dashboard won't work at all and will throw this error.

  • DONE! Open web browser with URL: http://IP_OF_YOUR_RPI/<your_subfolder_name>

Additional configuration / Help

Display core voltage (or other hardware info) output (optional)

  • If you want to see advanced hardware information (core voltage, advanced model information) on your dashboard instance:
    • run in a terminal: sudo usermod -aG video www-data

If you do not use Raspberry Pi OS, but e.g. Ubuntu, you do have to install libraspberrypi-bin by running sudo apt install libraspberrypi-bin.

Background

The vcgencmd command (specifically dedicated to RPi firmware) is a system command that requires certain hardware rights. Therefore one has to grant this particular right (to read hardware info) to e.g. www-data (under which web server is running). This is achieved by adding this user to a designated system group called video, which the standard user pi is part of by default.

  • only comes preinstalled on Raspberry Pi OS
  • in case of problems: please comment on #12 (or new issue)

Enable shutdown / reboot (optional)

Recommended only, if your RPi is not accessible over the Internet!

In order to use the remote shutdown functionality you have to give the user www-data advanced rights for running one specific command:

  1. Run sudo visudo to open the editor for adjusting user rights
  2. Be careful what you change here!
    Just add the following at the end of the file:
    www-data ALL=NOPASSWD: /sbin/shutdown
  3. Reboot your RPi to enable shutdown from another device (connected to same local network as your RPi).

Configure password (manually)

  • Please be aware that there is a more user-friendly way now by using the dashboards options modal. However, the following manual way of changing the password might be helpful
    • in case of wrong permissions (user www-data cannot change settings for you - see issue #22 or read here for help and instructions to solve)
    • forgotten password (and access to dashboard therefore impossible)
  1. Go to https://www.md5-generator.de/ and generate MD5 encrypted passphrase.
  2. Open local.config (dynamically created at first start) and apply your custom passphrase string (generated in step 1) as follows (don't alter other lines):
[...]
'general' =>
  array (
    [...]
    'pass' => 'YOUR_MD5_PASSPHRASE_HERE',
    [...]
  ),
  [...]
  1. Remember password and enjoy!

As always: Make sure to change the default password (which is root) and choose a more secure one at first setup and if your dashboard is accessible on the network.

License

GPL-3.0.


Raspberry Pi and the Raspberry Pi Logo are registred trademarks of the Raspberry Pi Foundation