LXD UI coming to life
The LXD community has been asking for a graphical user interface for quite some time now. We are happy to announce that we finally have a UI-focused team. A bunch of motivated web developers and designers are currently working on building a user-friendly interface for users to spin up system containers and virtual machines.
Keep your LXD server clean and tidy
Six months on, we have the basics in place and we have managed to introduce the concept of a LXD project. We now allow the user to switch between their different projects while remaining within the same context.
Whatâs available now?
Every project has its own list of instances and profiles. The user can either start, stop, restart or freeze a single instance or a bunch of them at once.
They can also consult the exhaustive instance configuration, or update it - manually, or by applying changes to the yaml file. Our UI user can also browse the instanceâs text shell and console. Browsing the graphical console of a virtual machine is now a piece of cake!
You need to restore to a previous version?
We have also solved that request. You can now manually create snapshots from the UI, edit these later and even restore.
Exciting! What do I get next?
Our next cycle is focused on introducing:
Running LXD in clustering mode, managing cluster members and their groups
Authentication and authorisation
Releasing a first version of networking and storage and allowing the user to manage these via the GUI.
This looks really good for an early preview! Can we please stop calling virtual machines generic âinstancesâ though? This terminology is really vague, non-specific, and therefore confusing, even though Iâve been in the industry for 20+ years. The term originally came from âEC2 instancesâ in AWS, but they are really just âvirtual machinesâ or âcontainers.â
When I hear the term âinstance,â my first thought is ⊠âinstance of ⊠what?â An apple? An orange? A house? A car? Ohhhhh, you mean an âinstance of a virtual machine!â
Please just call them virtual machines, not âinstances.â Thatâs how services like Microsoft Azure or even stand-alone Hyper-V refer to them as, which is much more sensible than the bizarre terminology that AWS uses.
This is already quite usable. Is there a recommended approach to add this to existing lxd installations? I donât want to wait for this to be included in stable versions and lxd-ui site has only developer-centric installation instructions with dotrun?
I would like to use LXD-UI with a latest/stable snap version (so NOT upgraded to edge snap). If you can use it with restricted projects, itâs already quite usable as is. I could just install it via dev instructions on the lxd-ui GH page, but was asking if there are instructions/recommendations to add gui to regular stable lxd installation used in production environment.
Quick update on this initiative. Starting with LXD 5.14, the LXD UI is now available as an experimental feature in both our stable and edge snaps. To enable it, you now must now do:
snap set lxd ui.enable=true
snap restart --reload lxd
Yeah, if you use a restricted certificate, it wonât let you modify anything outside of whatever project itâs restricted to. Basically any existing API restriction that exists in LXD also applies here, though the UI isnât yet aware of whatâs allowed or not, so some actions will simply fail and some data will simply be missing.
I installed LXD from the Arch Linux repository without âsnapâ. And I have it written in my browser:
{âtypeâ:âsyncâ,âstatusâ:âSuccessâ,âstatus_codeâ:200,âoperationâ:ââ,âerror_codeâ:0,âerrorâ:ââ,âmetadataâ:[â/1.0â]}
How do I use âsnap set lxd ui.enable=trueâ if I donât have it? Is there any other way to enable web ui? I donât want to set SNAP.