Установка KIOSK для отображения web страницы

 Делаем простой киоск отображающий веб-страницу

* необходимо, чтобы видеокарта поддерживала 3d, иначе будет тупо серый (в mir-kiosk оранжевый и потом черный) экран (в virtualbox включить /в qemu на vds не работает)


Ставим Ubuntu Server 22.04, убеждаемся в работе ssh-сервера, далее всё ставим через него, используется в качестве основы ubuntu-frame (также есть устаревший mir-kiosk, но на его замену пришел ubuntu-frame)


Далее заходим по ssh и выполняем установку ubuntu-frame

snap install ubuntu-frame

snap set ubuntu-frame daemon=true


#snap start ubuntu-frame (данный снап сам запускается после хука для daemon=true)


экран светится серым - всё хорошо, вейланд запустился


Ставим webkit приложение которое будет работать в ubuntu-frame

snap install wpe-webkit-mir-kiosk

snap connect wpe-webkit-mir-kiosk:wayland


snap set wpe-webkit-mir-kiosk daemon=true

snap set wpe-webkit-mir-kiosk url=https://mir-server.io


snap start wpe-webkit-mir-kiosk


Смотреть логи

snap logs wpe-webkit-mir-kiosk


Настроить разрешение экрана (если необходимо)

cp /var/snap/ubuntu-frame/current/frame.display /root/

vi /root/frame.display

mode:1920x1080@60.0


snap set ubuntu-frame display="$( cat /root/frame.display )"


Настраиваем vnc-сервер (внимание, он без пароля, слушает localhost)

snap install ubuntu-frame-vnc

/snap/ubuntu-frame-vnc/current/bin/setup.sh

snap set ubuntu-frame-vnc daemon=true


Делаем доступным vnc из вне (без пароля!)

sysctl -w net.ipv4.conf.all.route_localnet=1

iptables -t nat -I PREROUTING -p tcp --dport 5900 -j DNAT --to 127.0.0.1:5900


echo "net.ipv4.conf.all.route_localnet=1" >> /etc/sysctl.conf

apt install iptables-persistent

iptables-save > /etc/iptables/rules.v4


Полезные ссылки

https://www.opennet.ru/opennews/art.shtml?num=55933
https://mir-server.io/docs/make-a-secure-ubuntu-web-kiosk
https://mir-server.io/docs/how-to-use-remote-assistance-with-ubuntu-frame
https://superuser.com/questions/661772/iptables-redirect-to-localhost
https://linuxconfig.org/how-to-make-iptables-rules-persistent-after-reboot-on-linux