$ git checkout feat/start-hack-2024
Start Hack NTNU — 1st Place
October 2024
A reverse SSH tunnel and web app solution for distributed battery brains

Enmo is a company that creates something called Battery Brain. This is a Raspberry-PI controlled solution that aims to optimize the use of a solar-panel + battery setup. When should be battery charge/use power?
However, having many microcontrollers distributed everywhere for each customer poses some challenges. That’s why they tasked us to create a system that would allow administrators to see/monitor all nodes on the network. And allow customers to access their Battery Brain over the internet.
We built the following system:

Using systemd and express/Deno, we built an embedded web server that runs on the raspbery PI. It requests a connection to the backend when powered on, and periodically reports information.
The backend hosts a Rust proxy that accepts incomming connections and sets up a reverse SSH tunnel for secure communication with each node.
It hosts a web application that redirects web traffic to the correct node.
The web interface features a detail page per node with realtime information, as well as a map to get an overview of all Battery Brains.

