Docketeer 5.0 — What’s New?
We, the Docketeer team, have been working on some wonderful new features for the developer tool, Docketeer. For those new to this application, this article will include a brief overview. We will cover what each major version has added, before delving into what the brand new 5.0 brings to the table.
Firstly, the tech stack:
- Front End — React and Redux
- Desktop Application — Electron
- Bundler — Webpack
- Notifications — Twilio and Slack
- Data Visualizing — Chart.js
- Testing — Jest and Enzyme
- Server — Express
- Database — PostgreSQL
- Security — Bcrypt
- TypeScript
An Overview of Docketeer:
Docketeer is a platform and GUI that works with the Docker Desktop application. Docker Desktop is a helpful application itself, but Docketeer strives to take it to the next level. The GUI is convenient for monitoring health metrics, running and stopping containers and setting up notifications. Docketeer works with the Twilio API and the Slack API to send notifications when CPU or Memory thresholds are met. These are configurable along with the list of watched containers.
From Initial Launch to Version 3.0:
Docketeer has numerous handy features, starting with the login page. When a user signs in, it is as one of three roles: system admin, admin, and user. Upon logging in, the first page the user has access to is the settings tab. The system admin is responsible for creating users and assigning roles, the admins are responsible for managing containers and settings, and users are only able to view metrics.
Within this tab, admins have access to numerous settings. The first setting is for configuring Twilio notifications. Next, admins can customize the notification frequency, and metric monitoring frequency.
Within the users tab, admins can view other users and settings, but only the system admins can use this tab to change privileges. This is also where the system admin can create new users.
Next will be the containers tab. This allows users to view graphs of metrics and monitor container health. This is also where admins can run or stop current containers.
Next in the list is the images tab. In this section users can view stored images. Admins can run or delete images, and can pull down an image repository from Docker Hub.
Next up is the metrics tab. This is where users can view container CPU and memory usage as well as usage history. It also shows the current Net/Block IO. This allows for the easy monitoring of container health.
On the Docker compose tab, admins can compose YML files without the need of the command line. It displays the container ID, driver, scope, and when it was created.
Docketeer also has a system prune feature which removes any unused containers, images, volumes, and networks. This process is swift and aims to make long term usage convenient.
Now for Additions in 4.0:
Security:
Security was a priority in this version, so the Docketeer team revamped the backend logic to utilize a unique token system for system admins and Bcrypt for password encryption. Inspired by the CIA security model, upon system admin login a unique token is generated and is required for all functionality in the application. Bcrypt has a hashing system that takes advantage of uniquely generated salts, which improve the security of storing admin passwords. This prevents brute force hacking attempts and rainbow table attacks. While there may be more advanced security methods, these updates have significantly improved Docketeer’s holistic safety.
Metrics:
Version 4.0 also improved upon the displayed metrics. The change here is that the block IO data was given a dynamic graph that displays both the read and written data over time. Block size is an important metric as it can impact the processing performance of a containers environment. This change is particularly important for large or intensive container monitoring.
And Now, Docketeer 5.0:
Slack Webhooks:
In version 5.0, scalability in a team setting was the main focus. To accomplish this, the in place event emitter was revamped to work with Slack webhooks. This means that a team’s channel can receive notifications when CPU or memory thresholds have been met. This means that whole teams can access valuable data in a timely manner without needing to have the application up on every machine.
Volume History:
Docketeer 5.0 introduces a new tab in the GUI, Volume History.
This allows users access to valuable information of all current and past containers. The information available to the user is container names, container status, and status of the volume. It even includes a search feature to prevent scrolling through pages of information should Docketeer be used in a large scale.
Lastly, Docketeer has been partially refactored into TypeScript with the configuration and important files set up.