v3 Developer Updates (week 3)

Another week, another development update!

This week the main focus has been on software conversion, libraries and dynamic groups! So let’s hop straight into it!

Framework

I’ve carried on with the libraries this week and have converted our first piece of software (Netdata) to the new format. I’ve also chucked in an updater for 2.4.0 that will allow us to update each server without relying on the existing updater. Whilst this might not seem important, it allows us to continually add to this updater without forcing users to download multiple different versions.

Libraries

The libraries are coming along very nicely. Several scripts have been converted into a library function and have either been updated or optimized:

dpkg checks have been rewritten to be a bit more forgiving. Previously we would run an apt upgrade and check for a return value of 2:

if [ "$?" -eq 2 ]; then
  _warning "dpkg database is locked."
  # rest of script
fi

In v3, QuickBox will now check if another process is using apt:

if fuser "/var/lib/dpkg/lock"; then
  shell::text::yellow "$(quickbox::lang::apt::db::locked)"
   # rest of script
fi

This allows safer handling of dpkg locks as we won’t be resolving false positives if apt is in use.

I’m currently working on Dependency tracking. Currently, we are checking to see if any software is installed and manually selecting which dependencies should be removed. In v3 we’ll have a list of dependencies which QuickBox will automatically check to see which dependencies are in use across different software. This adds a lot of resilience whilst also making it easier to track and update the required dependencies.

Software Conversion

With the above libraries in place, Netdata has been converted to the new format. This has led to a file size reduction of 77.7% (44.5kb to 9.9kb)! Dynamic configurations have also changed. Instead of outputting these from the installers, there are now templates that are being copied to the relevant locations and updated with the server-specific configurations. This means that when a piece of software is updated, the installer won’t need to run through its entire script, but just copy the relevant files and update them with the required configurations.

Dashboard

JMSolo 👑 has been nailing the database conversions, optimizations and dynamic groupings this week. He’s also gone ahead and fixed some problems with user registration on all versions of QuickBox.

Whilst JM has been going through and converting the PHP functions to work with the new database, he has come across functions that aren’t in use, or ones that are defined, or called multiple times. He’s currently working through these and as a result, the dashboard is a lot more responsive!

With the new Dynamic Grouping we’ll be saying goodbye to “Application Access, RClone Access, Emby access, and Plex access”. Replacing these will be a default group with application access. Server administrators will now be able to create custom groups with allowed applications and assign users to them!

That’s all for this week folks! See you next week!

Guidelines

Please add bugs found in QuickBox Pro using this template:

Bug Report
Select Bug Report as the issue template

Please add feature requests for application inclusion in QuickBox Pro using this template:

Application Feature Request
Select Application Feature Request as the issue template

Please add feature requests for general QuickBox Pro using this template:

Select General Feature Request as the issue template
Select General Feature Request as the issue template

Viewing issues as well as feature requests does not require an account.

You will need to create an account on our Lab in order to post both Issues as well as Feature Requests.
You can register an account here if you do not already have one.

We look forward to your reports as well as your ideas and suggestions for ongoing developments to the QuickBox Pro software!

The QuickBox Pro Community Appreciation Day Event Sale is in full effect.
Get your savings on!
00
Days
00
Hours
00
Minutes
00
Seconds