I have been thinking about having an application similar to the VirtualBox GUI but one that would launch either individual GUI applications, or an X11 desktop in a window.
There is GNOME Boxes which is an open-source GUI replacement of VirtualBox, and can launch virtual machines that are based on libvirt. I do not know whether it makes sense to reuse GNOME Boxes for LXD (either add LXD support in upstream, or fork it).
As you already know I’ve been testing/using LxdMosaic quite a bit and so far it has worked very well and all features seem to work as they should including copying/moving Containers from one LXD Host/Server to another (remote or local) LXD Host/Server.
I have LXD Host/Servers here locally, on AWS and on Digital Ocean clouds. I have setup all (via lxd init) to support LXD over the network) then added them into my LxdMosaic.
To copy/migrate an LXD container:
If that container is currently “stopped” you can just use LxdMosaic to Copy it to the other local/remote LXD Host/Server.
If that container is currently “running” you have 2 choices:
stop the container then use LxdMosaic to copy it.
or use LxdMosaic to create a Snapshot of the “running” container then you can copy the Snapshot while the original LXD container continues to run.
When the LXD copy process is complete the new container on the local/remote LXD Host/Server target will appear in LxdMosaic under the local/remote LXD Host/Server’s name and it will be in the “stopped” state.
Once you use LxdMosaic to “start” that container it will change to green (ie running) and you can then access it and you will find that it is indeed a copy of the original LXD container with all the same applications running as on the original.
So if i understand correctly, we are creating containers and forwarding x11 windows to a client?
what do you think of:
Written as server side and electron / web interface,
server side has some basic sql lite database storing tagging / grouping maybe some basic auth and forwards the sessions to clients
Electron / web client side because easier to port to different devices and the browser just works every where (i know qt is super versitle, but for me browser / electron kinda winning atm)
The client then has organised lists of containers x11 sessions they can access
I assume all this is possible and correct me if im wrong anywhere