Back to all cases

A Fullscale Backend and Frontend System for Data Collection from API, Modbus to MongoDB with Angular Web Interface

March 5th, 2025

Setronica developed a web application that collects data from APIs and Modbus sources, storing it in MongoDB. This solution enables remote control, enhances security, and facilitates efficient monitoring of a modular hosting system.

The Client

Setronica was approached by a client to develop a fullscale backend and frontend system that would facilitate remote control, enhance security, and enable efficient monitoring of their modular hosting solution.

The objective was to collect data from various sources, including APIs, Modbus, etc., and store it in MongoDB.

The collected data would be displayed in a user-friendly Angular web interface.

Our Challenges

The energy sector faces challenges in transmitting electrical power over long distances due to significant losses in transmission lines. This problem particularly affects mining companies involved in cryptocurrency mining.

Our client, a Norwegian company, found a solution by taking advantage of a location with a large hydroelectric power plant in a cold region. They repurposed maritime shipping containers and filled them with modules that required less cooling and benefited from cheaper electricity.

The challenge was to remotely monitor and control these containers while offering them as modular hosting solutions for various businesses.

The Team

  • Software Architect
  • Java Developer
  • Two DevOps Engineers

Development

Docker Containers and Golang Services

Setronica implemented Docker containers, including asicagent, modbusagent, and decodeservice, running Golang services. The containers were built from Docker images using GitHub Actions and stored in the GitHub Package repository.

Zabbix Configuration

Zabbix was configured to automatically discover new devices and their incoming values. Setronica set up alert actions to send email and Telegram notifications for specific events. Notification triggers were implemented to ensure timely responses.

Network Planning

Development team created a comprehensive network plan to establish smooth communication between devices and the web application.

Security and Remote Control

Throughout the development process, Setronica’s focus was on enabling remote control and enhancing security for maintaining and monitoring remote servers.

DevOps and System Administration

In addition to development, Setronica handled various DevOps and system administration tasks. This included mapping the local network, selecting suitable equipment, and ensuring efficient operations.

Optimization and Debugging

Setronica optimized processors by converting regular expressions to JSON, resulting in improved performance. Additionally, the scanner.sh script was debugged to ensure the successful capture of all miners in Zabbix.

Database Management

Setronica investigated the issue of database growth and implemented measures to limit growth and reduce the volume of old data, ensuring efficient data management.

Results

By completing these tasks, Setronica successfully developed a fullscale backend and frontend system that collects data from APIs, Modbus and other sources and stores it in MongoDB.

The data is then displayed in an Angular web interface, providing real-time insight into the status and performance of the modular hosting solution for cryptocurrency mining.

This solution allows the client to remotely monitor and control their hosting infrastructure, ensuring efficient cryptocurrency mining operations while maintaining the security of their servers.

Future requirements may include further enhancement of the web application functionality, expansion of the monitoring capabilities and implementation of predictive analytics for equipment failure detection.

Chapters