Create a system to spin up ephemeral test instances of neon (unstable) that can be access via VNC, ideally also pointing to a web-vnc thing to make it easily accessible.
Motivation is to make testing easier for users as well as the VDG to reduce feedback cycles.
Techno
WikiToLearn is working on something that sounds pretty much exactly like what we do and have rigging already in place: https://github.com/AkhetLab/
Quick proof of concept done approximately this way:
- run a docker docker run --privileged -it -p 127.0.0.1:5900:5900 ubuntu:xenial bash
- add neon repo
- apt install neon-desktop xdm x11vnc
- /etc/init.d/xdm start
- x11vnc -auth guess
- should now be reachable on port 5900
https://wiki.archlinux.org/index.php/x11vnc
https://wiki.archlinux.org/index.php/Xorg#Monitor_settings
http://stackoverflow.com/questions/26075741/starting-xserver-in-docker-ubuntu-container
UX
For convenience and management purposes it would be handy to have a simple webservice/site where a user can log in (preferably via identity login) to spin up a new instance, which would basically start a container as per above's process. This container would run for N hours or until session logout or until the user clicks terminate on the webservice/site.
I couldn't find a premade solution for this unfortunately.
Hosting
This probably should run on some general purpose KDE server, or maybe we could even spin up containers, then we could just skip docker altogether.
Questions
- We might be able to use --device on docker run to selectively forward /dev/tty* and /dev/input/* which should be enough to start xorg instead of full on --privileged
- Port collision with multiple sessions?
- Can we use SDDM with x11vnc?
- What about wayland?
Web UIs
- (websock+js) http://kanaka.github.io/noVNC/noVNC/vnc.html
- (java - would need proxying?) https://guacamole.incubator.apache.org/
KWin
In particular in a wayland world KWin itself could be offering a connection method by either hosting VNC or even http. To that end there's D1231 which seeks to enable kwin sending buffers to krfb (our VNC server thingy). If this materializes we might want to skip X and the DM entirely and simply spin up a session and use in-session tech to provide the server/remote access.