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-here with your actual dashboard URL.
  • HDMI-1 must match your display output name (verify with xrandr if 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):

  1. Open Menu → Preferences → Power Management
  2. Set:
    • Turn off the screenNever
    • Suspend when inactiveNever
    • 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)

  1. Open Menu → Administration → Login Window
  2. Go to the Users tab
  3. Select the kiosk user account
  4. 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).