BlueOnyx 5210R: New GUI development started

Posted by: mstauber Category: Development

The development work to port the new BlueOnyx 5211R GUI over to BlueOnyx 5210R has started.

Maybe you already had the chance to test drive the new BlueOnyx 5211R GUI? If so, then you might be in the same boat as we are ourselves: Like many of you we also do have quite a few older BlueOnyx 5210R in usage. And using the old "Adminica" GUI on those feels like a blast from the past once you're accustomed to the new GUI on BlueOnyx 5211R.

For that reason it has always been clear to us that we also wanted to port the 5211R GUI over to BlueOnyx 5210R as well. This development work has now started.

How it started:

This is how our development server with BlueOnyx 5210R looked four hours ago when we applied the first set of updates from the 5211R code tree:

How it's looking now:

As you can see: That's quite a bit of progress.

Technical complications and benefits:

As is BlueOnyx 5210R uses a much older CodeIgniter than BlueOnyx 5211R. So GUI pages between them aren't compatible. At all. They have WAY too many differences. On the other hand: It makes no sense to drag an outdated CodeIgniter into the future.

So the idea from the start has been to modernize BlueOnyx 5210R from the ground up:

  • Use the same CodeIgniter framework as on BlueOnyx 5211R
  • Use a separate admserv-php as well. Same version as on BlueOnyx 5211R
  • Use the same AdmServ as on BlueOnyx 5211R - minus some Apache related differences
  • Use the same GUI modules on BlueOnyx 5210R that we use on BlueOnyx 5211R

The latter point is the icing on the cake: The /ui code tree of BlueOnyx 5211R has 38 modules. And it's only missing base-mailman.mod from the BlueOnyx 5210R /ui tree, because there is no MailMan for EL9.

The only /ui module which HAS to be different between BlueOnyx 5210R and 5211R is base-vsite.mod. That's because of the slightly different PHP support between EL8 and EL9.

So we're moving base-vsite.mod and base-maillist.mod from the /ui tree into /platform (which has code unique to the OS we build for) and for all modules from the /ui code tree we can use the same code between BlueOnyx 5210R and BlueOnyx 5211R.

This means in the future it will be a breeze to keep both BlueOnyx 5210R and 5211R on the same technical level, because they share most of the code.

Shop Package compatibility

Basically: There isn't. At least not for PKGs with GUI components, such as:

  • NewLinQ
  • WebApp Installer
  • Easy-Backup
  • Fail2ban
  • APF
  • Firewall
  • OpenVPN

Like said: The GUI pages between the older and newer CodeIgniter versions are so different, that they won't work on a newer CodeIgniter. Means: We'll have to redo all the above Shop PKGs and release updated versions of them that include compatible GUI pages. But this will be the easy part, as we already released PKGs for all of them (except "APF") for BlueOnyx 5211R recently. So for the most part this is just a matter of rolling up PKGs with the newer GUI pages from 5211R.

So what happens when you have older PKGs with GUI components installed and click on a link in the GUI to call up such a page? The video below will show you an example:

Which isn't as bad as we feared it would be. That is certainly better than a "500 Server Error" page. Until you have updated the shop packages to versions compatible with the new GUI, you will have to live with that.

But as mentioned: As the GUI pages aren't compatible between CodeIgniter versions we can't just straight up release shop PKGs with the new GUI pages. Because they would cause similar breakage on an 5210R that hasn't been upgraded to the new GUI yet. We could roll up PKGs that contain both the old AND the new GUI, but that would be way too much of an effort for such a short transition time.

But there is a solution to this conundrum: In the "Requires:" section of each PKG we can specify that PKGs for the new GUI require as a minimum the release version of BlueOnyx 5210R with the new GUI: "v6.20240226".

That way we can have the PKGs appear on NewLinQ on release day and still make sure they don't get (auto-)installed onto a server with an older GUI that can't support them yet.

That's not ideal, but it's the best we can do to make this a transition that is as smooth as possible.

To-do-list until release:

Right now I need to modify base-apache.mod and base-vsite.mod to support more PHP versions than they already do. As is 5210R had provisions up to and including PHP-8.3, whereas 5211R already has provisions for future PHP versions. But this is an easy fix and should be completed tomorrow.

As 5210R has MailMan, I need to port the MailMan GUI pages of base-maillist.mod over to the new GUI. This will take a day or three, depending on the effort required.

Lastly I need to roll up new PKGs for BlueOnyx 5210R that work with the new GUI. As I can "just" copy the GUI pages over from the 5211R code tree, this is easy. But for eight PKGs that's still a day or two of work. And APF (which isn't available on 5211R due to its age) needs new GUI pages from the ground up that work with the new "Elmer" theme. That will take another couple of days.

When that work is done so far, the modernized BlueOnyx 5210R will be released to the BlueOnyx 5210R "Testing" YUM repository for a public beta test. It will stay at least a week in beta. Possibly longer.

Means: We're looking at a release to the production YUM repository in the middle of March if nothing critical pops up.

All in all? This is looking good.

Feb 26, 2024 Category: Development Posted by: mstauber