Latest and Greatest: Control v0.0.6 and OS v0.0.6 Updates #154
ntorga
announced in
Announcements
Replies: 1 comment
-
The new version of the front end is neat! Congrats to the Speedia team. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Speedia Control v0.0.6
This month, we've made significant strides in improving performance, simplifying our frontend, and enhancing security.
• Storage Performance Units
We've introduced Storage Performance Units (SPUs), a concept inspired by Oracle Cloud's Virtual Performance Units (VPUs). SPUs allow you to control the I/O and IOPS for each container, ensuring a stable workload and preventing any one container from hogging resources. The best part? You don't need to be an expert in I/O and IOPS to use SPUs. The user interface translates SPUs into IO and IOPS values, offering visual cues to help you optimise performance without needing in-depth technical knowledge. For smaller applications, a single SPU should suffice, while more storage-intensive workloads, like databases, may require additional units.
• Frontend Refactor Journey
Last year, we opted to use Quasar, a VueJS framework, for Speedia Control's frontend. While it served us well initially, the need for frequent changes and the resulting complexity in maintaining a separate stack led us to explore alternatives. We often found ourselves duplicating efforts across the backend and frontend, which drained time and energy.
In May 2024, after developing a proof of concept, I published an article titled "Full-Stack Go App with HTMX and Alpine.js". The PoC demonstrated that we could achieve a similar user experience to frameworks like React and Vue, but with far less complexity. Encouraged by these results, we decided to transition Speedia projects to this new stack.
We are fully aware that this is a bold move at this stage of the project, especially when feature development is crucial. However, the ongoing back-and-forth between stacks was unsustainable. Our plan is to refactor one section per month while simultaneously adding at least one new feature.
Despite the risks, the benefits became apparent on the very first day. Developing the frontend almost entirely in Go has been a thrilling experience. The new setup is highly reactive and remarkably lean, with fewer than 40 JavaScript lines in each section. HTMX and Alpine.js have proven to be an exceptional combination so far.
Below, you can see the first refactored section, the Container Profile page. In addition to the new SPU feature, this page includes a text mode that tries to explain each profile in layman’s terms.
• Improved Log Handling
We've enhanced log handling in Control, allowing you to set the LOG_LEVEL variable in the
.env
file to DEBUG, INFO, WARN (default), or ERROR. This feature enables you to increase the log level, restart Control, and gain insight into every operation. By default, logs are now produced in JSON format, except when the DEBUG level is used, in which case they're colored and printed in a space-separated manner.• Security Events Renamed to "Activity Records"
As we refined our approach to storing internal events, we realised the need to accommodate various event types in a structured manner. Consequently, we’ve renamed "Security Events" to "Activity Records." Each activity record now includes a property that identifies the type of activity, similar to how events are categorised in Windows Event Viewer.
In addition to these significant updates, we’ve squashed a few bugs and made minor improvements, including:
Speedia OS v0.0.6
While this release may not be the most flashy, it lays important groundwork for Speedia OS future developments.
• Async Tasks
Speedia OS now supports asynchronous task execution for installing marketplace items. This change ensures that you won’t encounter timeouts during installation. Instead, the process occurs in the background. While the refactored overview page will eventually allow you to monitor the installation progress through the UI, for now, you can simply grab a cup of coffee or use the CLI
os tasks get
to check the status and logs.• Improved Log Handling, Activity Records and Limit Failed Logins
Mirroring the improvements in Speedia Control, Speedia OS now features enhanced logging capabilities and activity records. Additionally, we’ve implemented a security feature that temporarily blocks IP addresses after three consecutive failed login attempts for 15 minutes.
• Controllers Refactored
Behind the scenes, we've been busy laying the groundwork for our forthcoming frontend refactor using HTMX and Alpine.js. This has involved a significant overhaul of our backend, where we've unified most of the API and CLI handling into a single layer. While this change may not be immediately apparent, it's a crucial step towards our future frontend developments. One visible benefit, however, is that our CLI output is now neatly formatted and colour-coded, making it much easier to read and understand.
Besides that, we also made some minor improvements, including:
You can track our progress on our roadmap for OS and Control. Thanks for joining us on this journey, and we'll catch you in the next update!
Beta Was this translation helpful? Give feedback.
All reactions