-
Notifications
You must be signed in to change notification settings - Fork 0
Production Hardening & Deployment
This guide covers operating system hardening and automation steps to ensure unattended, reliable, 24/7/365 digital signage deployments on Windows and Linux.
-
Static IP / DHCP Reservation: Assign fixed IP addresses to ensure predictable access via the HTTP REST API (port
9191). -
Scheduled Daily OS Reboots: Scheduling a daily reboot at 4:00 AM clears OS memory leaks, GPU driver states, and network socket tables:
- Windows: Task Scheduler
shutdown /r /t 0 /f - Linux: Cron job
0 4 * * * /sbin/reboot
- Windows: Task Scheduler
- Power Management: Set the BIOS/UEFI setting "Restore on AC Power Loss" to "Power On" so kiosks boot automatically after power outages.
To recover from power loss without prompting for credentials:
- Download AutoLogon from Microsoft Sysinternals.
- Launch
Autologon.exe, enter standard user credentials (e.g.KioskUser), and click Enable. -
Alternative Registry Configuration (
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon):-
AutoAdminLogon="1" -
DefaultUserName="KioskUser" -
DefaultPassword="YourPassword"
-
Execute in an elevated Administrator PowerShell prompt:
# Disable screen timeout, sleep, and hibernate
powercfg -change -monitor-timeout-ac 0
powercfg -change -standby-timeout-ac 0
powercfg -change -hibernate-timeout-ac 0
# Disable Windows Error Reporting dialogs
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Windows Error Reporting" -Name "DontShowUI" -Value 1
# Disable Windows Action Center notifications
Set-ItemProperty -Path "HKCU:\Software\Policies\Microsoft\Windows\Explorer" -Name "DisableNotificationCenter" -Value 1To replace explorer.exe (taskbar and desktop) entirely with Webpage Signage Runner:
- In Windows 10/11 Enterprise / IoT, enable Shell Launcher.
- Set the custom shell for the
KioskUseraccount to:"C:\Program Files\Webpage Signage Runner\Webpage Signage Runner.exe"
Add the following commands to ~/.xprofile or ~/.xsessionrc:
xset s off
xset -dpms
xset s noblankCreate a systemd user service to ensure the app is kept alive and automatically restarted if killed:
-
Create service unit file:
mkdir -p ~/.config/systemd/user nano ~/.config/systemd/user/webpage-signage-runner.service
-
Add unit content:
[Unit] Description=Webpage Signage Runner Kiosk Orchestrator After=graphical-session.target network-online.target Wants=network-online.target [Service] Type=simple Environment=DISPLAY=:0 Environment=XAUTHORITY=%h/.Xauthority ExecStart=/usr/local/bin/webpage-signage-runner Restart=always RestartSec=5s KillMode=process [Install] WantedBy=graphical-session.target
-
Enable and start:
systemctl --user daemon-reload systemctl --user enable webpage-signage-runner.service systemctl --user start webpage-signage-runner.service
While Webpage Signage Runner suppresses cursors via CSS, you can hide the cursor globally at the X11 server level:
sudo apt-get install unclutter
# Add to desktop startup:
unclutter -idle 0.1 -root &Webpage Signage Runner Wiki • Created & Maintained with ❤️ by Maximiliano Contartesi • LinkedIn • GitHub Repository • MIT License
By Maximiliano Contartesi