A retro-themed dashboard for managing your Raspberry Pi server. This project allows you to monitor and manage system resources through a web interface.
- Temperature Monitoring: View CPU temperature with dynamic graphs.
- Network Stats: Monitor bandwidth usage and IP addresses.
- Disk Usage: Check free and used space.
- Process Supervision: Overview of running processes.
- UPnP & DuckDNS Status: Real-time information on UPnP and DuckDNS.
- PAM Authentication: Secured access using Linux system credentials.
- Operating System: Raspbian Minimal
- Hardware: Raspberry Pi 1B
- Web Server: Apache with PHP support
- Programming Language: PHP, Python 3
- Libraries and Tools: PAM, AJAX, psutil (Python)
- Update your system:
sudo apt update && sudo apt upgrade -y
- Install Apache, PHP, and required Python libraries:
sudo apt install apache2 php python3 python3-pip libpam0g-dev pip3 install psutil
- Download the project files and extract them:
wget <link-to-zip> -O ServerDashboard.zip unzip ServerDashboard.zip
- Move the
web
folder to your Apache root directory:sudo mv web /var/www/html/
- Install the
mod_authnz_pam
module:sudo apt install libapache2-mod-authnz-pam
- Enable the PAM module in Apache:
sudo a2enmod authnz_pam sudo systemctl restart apache2
- Open the configuration file for your default site:
sudo nano /etc/apache2/sites-available/000-default.conf
- Add the following lines to enable PAM-based authentication:
<Directory /var/www/html> AuthType Basic AuthName "Restricted Access" AuthBasicProvider PAM AuthPAMService apache Require valid-user </Directory>
- Save the file and restart Apache:
sudo systemctl restart apache2
- Open the PAM configuration file for Apache:
sudo nano /etc/pam.d/apache
- Ensure the following lines are present:
auth required pam_unix.so account required pam_unix.so
- Open your web browser and navigate to your Raspberry Pi's IP address:
http://<your-server-ip>/
- You will be prompted to log in. Use your Linux system username and password.
- Update Buttons: Use the "Update All" button to refresh all sections of the dashboard dynamically. Individual sections can be updated using their respective buttons.
- Graphical Monitoring: View temperature, memory, and CPU usage in real-time through interactive charts.
- Permission Issues: Ensure Apache has the necessary permissions to access system files.
- PAM Authentication Errors: Verify the PAM module and configuration.
- Missing Data: Check that the Python script has the necessary libraries installed (
pip3 install psutil
).
Feel free to fork this repository and submit pull requests with improvements or bug fixes.
This project is open-source and available under the MIT License.