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!