diff --git a/script/monitor/SETUP_DASHBOARD.md b/script/monitor/DASHBOARD_with_Ubuntu_24.04.md similarity index 80% rename from script/monitor/SETUP_DASHBOARD.md rename to script/monitor/DASHBOARD_with_Ubuntu_24.04.md index 55a46d4..c6ddceb 100644 --- a/script/monitor/SETUP_DASHBOARD.md +++ b/script/monitor/DASHBOARD_with_Ubuntu_24.04.md @@ -23,8 +23,8 @@ timedatectl set-timezone Europe/Berlin ```sh apt install ubuntu-desktop-minimal apt install language-pack-gnome-de -apt install xdotool apt install dbus-x11 +apt install xdotool ``` @@ -88,11 +88,11 @@ After=graphical.target [Service] Environment=DISPLAY=:0 -# Set firefox language, needs 'apt install language-pack-gnome-de' +# Set firefox language, needs 'apt install language-pack-gnome-de' Environment=LANG=de_DE.UTF-8 Type=simple # Always a fresh firefox ('-' allow error if common does not exist) -ExecStartPre=-/usr/bin/rm -r /home/kiosk/snap/firefox/common +ExecStartPre=-/usr/bin/rm -rf /home/kiosk/snap/firefox/common # Move Mouse (should also work on small screens), needs 'apt install dbus-x11' ExecStartPre=/usr/bin/xdotool mousemove 4096 2160 # See: https://wiki.mozilla.org/Firefox/CommandLineOptions (just -kiosk URL => Start-Assistant, so use -url too) @@ -120,7 +120,32 @@ reboot Troubleshouting --------------- -``` -systemctl disable pd-mapper.service +```sh +# No cloud-init apt purge cloud-init -y && apt autoremove --purge -y + +# If exists and fails: +systemctl disable pd-mapper.service + +# If firefox should be installed via apt: +snap remove firefox + +curl -o /etc/apt/keyrings/packages.mozilla.org.asc https://packages.mozilla.org/apt/repo-signing-key.gpg + +echo ' +Types: deb +URIs: https://packages.mozilla.org/apt +Suites: mozilla +Components: main +Signed-By: /etc/apt/keyrings/packages.mozilla.org.asc +' | sudo tee /etc/apt/sources.list.d/mozilla.sources + +echo ' +Package: * +Pin: origin packages.mozilla.org +Pin-Priority: 1000 +' | sudo tee /etc/apt/preferences.d/mozilla + +apt update +apt install firefox ``` diff --git a/script/monitor/DASHBOARD_with_Ubuntu_26.04.md b/script/monitor/DASHBOARD_with_Ubuntu_26.04.md new file mode 100644 index 0000000..8e1051e --- /dev/null +++ b/script/monitor/DASHBOARD_with_Ubuntu_26.04.md @@ -0,0 +1,203 @@ + +How to setup a monitoring dashboard +=================================== + +Inspired by: https://pimylifeup.com/ubuntu-chromium-kiosk/ + +Steps +----- + + + +### 1.) Install Ubuntu Server (no desktop) on your computer than set hostname and timezone. + +```sh +hostnamectl set-hostname check.local +timedatectl set-timezone Europe/Berlin +``` + + + +### 2.) Install minimal GUI and Tools. + +```sh +apt install ubuntu-desktop-minimal +apt install language-pack-gnome-de +apt install dbus-x11 +apt install ydotool +``` + + + +### 3.) Create a kiosk user with home-directory. + +```sh +useradd -m kiosk +``` + +and disable Welocme-Screen +```sh +echo "yes" > /home/kiosk/.config/gnome-initial-setup-done +``` + + + +### 4.) Edit following file `nano /etc/gdm3/custom.conf` to turn on autologin for user 'kiosk'. + +``` +[daemon] +# Uncomment the line below to force the login screen to use Xorg +#WaylandEnable=false + +# Enabling automatic login +# AutomaticLoginEnable = true +# AutomaticLogin = user1 + +AutomaticLoginEnable = true +AutomaticLogin = kiosk +``` + + + +### 5.) Configure GUI of user kiosk to prevent monitor from sleeping + +```sh +#gsettings list-recursively + +# Does not work +#sudo -u kiosk gsettings set org.gnome.desktop.session idle-delay 0 + +# Set idle-delay from "uint32 300" to "uint32 0", needs 'apt install dbus-x11' +# You can check the value in "GUI-Session of kiosk -> Settings -> Power" +sudo -u kiosk dbus-launch dconf write /org/gnome/desktop/session/idle-delay "uint32 0" +``` + + + +### 6.) Create custom script in home of kiosk to be started via autostart in the desktop environment. + +Therefore open the executable script file `/home/kiosk/kiosk-loop.sh`: + +```sh +touch /home/kiosk/kiosk-loop.sh +chmod +x /home/kiosk/kiosk-loop.sh +nano /home/kiosk/kiosk-loop.sh +``` + +Paste the following content into the opened file: +``` +#!/bin/bash + +# Wait until desktop loaded completely. +sleep 5 + +while true; do + + # Background process waiting until Firefox is open to move the mouse pointer away. + (sleep 10 && ydotool mousemove 4096 2160) & + + # Always a fresh firefox on each start + rm -rf /home/kiosk/snap/firefox/common + + # Starts Firefox in mode kiosk. (The instruction pointer keeps moving after Firefox has closed.) + snap run firefox -fullscreen -kiosk -url http://monitor.everbrent.net/check.html + + # In case of a crash wait 5 seconds and restart + sleep 5 +done +``` + + + +### 7.) Enable script launch unsing autostart + +Therefore open the configuration file `/home/kiosk/.config/autostart/kiosk.desktop`: + +```sh +mkdir -p /home/kiosk/.config/autostart +nano /home/kiosk/.config/autostart/kiosk.desktop +``` + +Paste the following content into the opened file: +``` +[Desktop Entry] +Type=Application +Name=Firefox Kiosk +Exec=/home/kiosk/kiosk-loop.sh +X-GNOME-Autostart-enabled=true +``` + + + +### 8.) Prevent firefox from asking stuff after its start. (Maybe optional if firefox is installed via snap) + +Therefore open the configuration file `/home/kiosk/.config/autostart/kiosk.desktop`: + +```sh +mkdir -p /etc/firefox/policies +nano /etc/firefox/policies/policies.json +``` + +Paste the following content into the opened file: +``` +{ + "policies": { + "DontCheckDefaultBrowser": true, + "DisableProfileImport": true, + "OverrideFirstRunPage": "", + "OverridePostUpdatePage": "", + "DisableTelemetry": true, + "DisableAppUpdate": true, + "DisableDefaultBrowserAgent": true, + "DisableFirefoxStudies": true, + "UserMessaging": { + "SkipOnboarding": true, + "WhatsNew": false + }, + "Preferences": { + "browser.rights.3.shown": true, + "browser.rights.override": true, + "datareporting.policy.dataSubmissionEnabled": false, + "datareporting.policy.dataSubmissionPolicyAcceptedVersion": 9999, + "datareporting.policy.dataSubmissionPolicyBypassNotification": true, + "toolkit.telemetry.prompted": 2, + "toolkit.telemetry.rejected": true + } + } +} +``` + + + +Troubleshouting +--------------- + +```sh +# No cloud-init +apt purge cloud-init -y && apt autoremove --purge -y + +# If exists and fails: +systemctl disable pd-mapper.service + +# If firefox should be installed via apt: +snap remove firefox + +curl -o /etc/apt/keyrings/packages.mozilla.org.asc https://packages.mozilla.org/apt/repo-signing-key.gpg + +echo ' +Types: deb +URIs: https://packages.mozilla.org/apt +Suites: mozilla +Components: main +Signed-By: /etc/apt/keyrings/packages.mozilla.org.asc +' | sudo tee /etc/apt/sources.list.d/mozilla.sources + +echo ' +Package: * +Pin: origin packages.mozilla.org +Pin-Priority: 1000 +' | sudo tee /etc/apt/preferences.d/mozilla + +apt update +apt install firefox +```