LXDMosaic: Web GUI

Yeah thats the way, the only other option was deploy a pyhton script that gathered the data and wrote it to a file and the use the file api to pull the files from the file system (this is messy in practice though and much harder to code for (it also grows the instances filesystem which isn’t great))

Also you have to understand its pretty useless unless the user has LXCFS enabled on the hosts, other wise all instances will report the same load average

2 years ago today (Dec 29 2018) the first commit for LXD Mosaic was published, so happy birthday :partying_face:

This release requires changes for non-admin users to be able to login - please read here

The three main changes in this release are;

  • Host & project restrictions
  • LDAP user syncing
  • VGA consoles for virtual machines
Full change log

Added

  • Cron job to disable backup schedules for offline hosts & deleted instances
  • Limit not-admin users to servers/projects
  • View to view & delete hosts in settings
  • Show instance limits on instance view (#288)
  • Get & set comments in the user.comment key for an instance (#283)
  • Show project consumption on project overview
  • Filter by name & instance type in sidebar on hosts with more than 5 instances
  • Show OS icon in sidebar (#296)
  • Button to start an instance on creation (#294)
  • LDAP user syncing & login (#171, #272, #300)
  • Show users who can access a project on project view
  • View storage volumes
  • Attach volumes to instances
  • View VGA console for virtual machines (#238)

Changed

  • Support backups & backup schedules in different projects
  • Disable backup schedules when deleting instance
  • Use buttons for bulk instance actions instead of drop down
  • Don’t show carat when host is offline
  • Replace nav button text with icons
  • Go back to default font
  • Split project restrictions into their own table on front end
  • Remove all usage of cdns (so the it should work offline) (#293)
  • Allow setting admin password on first run (#299)
  • Show operation download progress if available (#316)
  • Removed socket.io dependency as it was conflicting with expressws
  • Support opening console’s in other projects

Fixed

  • Switching projects in snap broken
  • An issue with bulk deleting running instances
  • Resetting user password by pressing enter leads to undefined behaviour (#282)
  • Console session doubling input (#301)
  • Remove card-columns from images which prevents a jumpy UI
  • Attempts to gather offline hosts metrics breaks script

Also will run doom

5 Likes

Hi @turtle0x1

Keep up the good work!

I built LXD cluster on some physical machine, all using Ubuntu Server 20.04… I have LXDmosaic installed via Snap in one of my LXD instance… Feeling good to have a GUI instead of CLI for seasonal sysadmin like me…

I think this project is very potential!

Looking forward for future improvements… By the way, just an input, maybe in the future it will have change skin/theme feature…

Thanks!

Hey @Arief_Wicaksana

ill be sure to put extra customizations on the list - feel free to open any issues you find / ideas on github :smiley:

How can I check Mosaic version and how can I upgrade it with latest? @turtle0x1

Just released version 0.12.0 (snap channel will upgrade tonight)

If your running a manually installed instance upgrades instructions are here

Changed

  • Instance’s will now be deleted after a migration
  • Site title based on admin input under settings or default of “LXD Mosaic”

Added

  • Tooltips to buttons in the navigation bar
  • Cron job to gather project analytics
  • Option to load vm console in its own tab
  • View in settings to download old analytics data
  • Network dashboard
  • Setting to store site title
  • Allow logging in with LDAP mail address

Removed

  • Cron job to gather old dashboard metrics

Fixed

  • Cant create backups from web ui
  • Instance host name breadcumb not correct when changing project
1 Like

How can I check which version LXDmosaic is running in my conatiner?

@turtle0x1 plz help

root@lxdMosaic:~# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> use LXD_Manager;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select User_ID, User_Name from Users;
±--------±----------+
| User_ID | User_Name |
±--------±----------+
| 1 | admin |
±--------±----------+
1 row in set (0.00 sec)

mysql> update user set User_Password = “$2y$10$gDLdVHx2DEuoB81DobEcn…FIGScRjFg6hoN/kDmvJfn6SmMP0OW2” where User_ID = 1;
ERROR 1146 (42S02): Table ‘LXD_Manager.user’ doesn’t exist
mysql> update User set User_Password = “$2y$10$gDLdVHx2DEuoB81DobEcn…FIGScRjFg6hoN/kDmvJfn6SmMP0OW2” where User_ID = 1;
ERROR 1146 (42S02): Table ‘LXD_Manager.User’ doesn’t exist
mysql>

Its because you used user/User instead of Users - I see the docs are wrong tracking here

So it should be;

update `Users` set `User_Password` = “$2y$10$gDLdVHx2DEuoB81DobEcnFIGScRjFg6hoN/kDmvJfn6SmMP0OW2” where User_ID = 1;
1 Like

After login I am going to add server then given admin with password. but when I have click on
Launch LXD mosaic it shows “Cant run first run /var/www/LxdMosaic/src/classes/Tools/InstanceSettings/FirstRun.php 31”

Set the admin password to NULL and you will be able to run first run again.

Because you have no servers it wants you to run first run, the admin password should not be set when first run is run - this prevents people abusing “first run”. If you have deleted all the hosts you need to set the admin password back to NULL.

how can I set it nul?

update `Users` set `User_Password` = NULL where User_ID = 1;

mysql> use LXD_Manager;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update Users set User_Password = NULL where User_ID = 1;
ERROR 1048 (23000): Column ‘User_Password’ cannot be null

Please can you open an issue on Github instead of continuing to comment here if this doesn’t work, this really just a release thread! I was wrong its;

update `Users` set`User_Password` = '' where User_ID = 1;
1 Like

@turtle0x1 why the snap lxdmosaic has no aarch64 support?

cause i have no aarch64 to test snap on (all my RPI’s are to old which is just ridiculous)

You can install using the container method instead, shouldn’t have any problems (from memory)

Just released version 0.13.0

If your running a manually installed instance upgrades instructions are here

:warning: READ THE WARNING ABOUT TIME ZONE CHANGES

Added

  • Setting for storing server time zone
  • Support for copying instances between projects
  • Optionally copying profiles when copying instance
  • Show image variants when searching images from remotes
  • Support managing instance providers & their types
  • Toggle admin status
  • Toggle login status

Changed

  • Store all dates in UTC
  • Display dates in local browser time
  • Run cron jobs at time specified by time zone setting

Fixed

  • Enforcing backup retention limit
  • Typo in the reset admin password docs
  • Hosts that don’t support projects break project analytics
1 Like

After a year without a release, 0.14.0 is the latest release for LXDMosaic.

The full changelog is to long to post here so here are some highlights.

Highlights

  • Upgrade to Bootstrap 5 improving UI / UX
  • Upgrade xterm to v4 and support correct terminal width and resizing
  • Manage storage volumes
  • LXD instance snapshot scheduling
  • Deploy cloud-config to instance and watch /var/log/cloud-input-out.log with some error highlighting
  • Delete a host
  • Manage instance proxy devices
  • Frontend router
  • Project analytics overview improvements
  • Improve server overview
  • Instance view improvements
  • Remove centos support
  • Unix socket access
  • First run was made better
1 Like

Just released version 0.15.0.

Please see CHANGELOG for complete list of changes.

Please Be aware of a DB migration adding an index that improves frontend response times on large systems but may take a while to run (a long while).

Added Highlights

  • Frontend updates based on events emitted from LXD
  • Add devices to profiles (includes a “device creator”)
  • Delete user

Change Highlights

  • One socket per user for all hosts “operations” information, drastically reducing browser weirdness
  • Show LXD error messages “error” string instead of a JSON string
1 Like