Monitoring Station Setup
Setup
Setup
📊 Linux Mint Kiosk Dashboard Setup Auto-Boot + Auto-Shutdown
This guide documents how to configure a Linux Mint system to run a full-screen (kiosk) web dashboard, hide the mouse cursor, rotate the display, automatically shut down every day, and power back on at a fixed time using BIOS settings. It also includes hardening steps for kiosk reliability.
1) Install Required Packages
sudo apt install firefox
sudo apt-get install unclutter
What these do
- Firefox → Displays the dashboard
- unclutter → Hides the mouse cursor after inactivity (clean kiosk look)
2) Create the Dashboard Script Directory
mkdir ~/dashboard
This directory stores the startup script for the dashboard.
3) Create the Dashboard Startup Script
nano ~/dashboard/start_dashboard.sh
Paste the following:
#!/bin/bash
# Rotate display to portrait mode
xrandr --output HDMI-1 --rotate left &
# Hide mouse cursor after 0.1 seconds
unclutter -idle 0.1 &
# Launch Firefox in kiosk mode
firefox --kiosk https://dashboard-url-here
Notes
- Replace
https://dashboard-url-herewith your actual dashboard URL. HDMI-1must match your display output name (verify withxrandrif needed).- Kiosk mode removes browser UI and locks Firefox to full screen.
Optional: Verify your display output name
xrandr --query
Look for outputs like HDMI-1, HDMI-0, DP-1, etc. Update the script if needed.
4) Make the Script Executable
chmod +x ~/dashboard/start_dashboard.sh
This allows the system to run the script.
5) Configure Daily Auto-Shutdown (5:00 PM)
Edit the root crontab:
sudo crontab -e
Append this line:
0 17 * * * /sbin/shutdown -h now
What this does
- Shuts the system down every day at 5:00 PM
- Helps prevent overnight screen wear
- Saves power
Important: This schedules shutdown for the root user. If you move it to a user crontab, the command may fail due to permissions.
6) Verify the Shutdown Schedule
sudo crontab -l
Confirm the shutdown line appears exactly as entered.
7) Reboot the System
sudo reboot
This ensures the system starts cleanly and is ready for testing.
8) Configure Automatic Power-On in BIOS
This allows the system to power itself on each morning without user interaction.
Enter BIOS
- Reboot the system
- Press DEL, F2, or your manufacturer’s BIOS key during startup
BIOS Settings to Check
1) System Date & Time
- Make sure the BIOS date and time are correct
- This is critical for scheduled power-on
2) Enable RTC Wake (Power-On Schedule)
Navigate to:
Advanced Tab
→ S5 RTC Wake Settings
Set the following:
| Setting | Value (Example) |
|---|---|
| Wake system from S5 | Fixed Time |
| Wake up hour | 8 |
| Wake up minute | 50 |
Result: The system powers on daily at 8:50 AM (example). Adjust to match office hours as needed.
9) Hardening & Reliability (Recommended)
9.1 Disable Screen Blanking / Sleep
GUI method (recommended for Mint):
- Open Menu → Preferences → Power Management
- Set:
- Turn off the screen → Never
- Suspend when inactive → Never
- Dim screen → Off (optional)
Tip: If you still see blanking, also check:
- Menu → Preferences → Screensaver → Disable / set to Never
9.2 Enable Auto-Login (Linux Mint)
- Open Menu → Administration → Login Window
- Go to the Users tab
- Select the kiosk user account
- Enable Automatic Login
Security note: Auto-login is normal for kiosks, but it reduces physical security. Use a dedicated kiosk user account with limited permissions if possible.
9.3 Use a systemd Service to Launch the Dashboard on Boot
This starts the dashboard automatically after the desktop session is available and helps with restarts.
A) Create the service file
sudo nano /etc/systemd/system/dashboard.service
Paste (replace YOUR_USERNAME):
[Unit]
Description=Dashboard Kiosk
After=graphical.target network-online.target
Wants=network-online.target
[Service]
Type=simple
User=YOUR_USERNAME
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/YOUR_USERNAME/.Xauthority
ExecStart=/home/YOUR_USERNAME/dashboard/start_dashboard.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=graphical.target
B) Enable + start the service
sudo systemctl daemon-reload
sudo systemctl enable dashboard.service
sudo systemctl start dashboard.service
C) Check status/logs (if needed)
systemctl status dashboard.service
journalctl -u dashboard.service -b
Note: On most Mint desktop installs, DISPLAY=:0 is correct. If it fails, logs will usually indicate a display/auth issue.
9.4 Add a Watchdog to Relaunch Firefox if it Crashes
The most reliable approach is to have your startup script run Firefox in a loop so if Firefox exits, it relaunches automatically.
A) Update the dashboard script
nano ~/dashboard/start_dashboard.sh
Replace the Firefox line with this loop (keep your xrandr/unclutter lines):
#!/bin/bash
# Rotate display to portrait mode
xrandr --output HDMI-1 --rotate left &
# Hide mouse cursor after 0.1 seconds
unclutter -idle 0.1 &
# Watchdog loop: restart Firefox if it exits/crashes
while true; do
firefox --kiosk https://dashboard-url-here
sleep 2
done
Re-apply executable permission if needed:
chmod +x ~/dashboard/start_dashboard.sh
Behavior: If Firefox crashes or closes, it restarts automatically after 2 seconds.
10) Final Behavior Overview
Once fully configured, the system will:
- ✅ Power on automatically at 8:50 AM (example time)
- ✅ Auto-login (optional but recommended for kiosks)
- ✅ Launch the dashboard in Firefox kiosk mode on boot
- ✅ Rotate the display to portrait orientation
- ✅ Hide the mouse cursor
- ✅ Restart Firefox automatically if it crashes (watchdog)
- ✅ Shut down automatically at 5:00 PM
No keyboard, mouse, or user input required (once auto-login + auto-start are configured).