This is a local service that displays system properties and metrics based on a descriptor file. This application is built using Ansible and this Role should run on any Linux system.

The foundation is a python service which runs a local API. This API creates a System object which then creates Component objects and refreshes them periodically. There is an API for querying this data, and the data is also published to a redis channel.

The web dashboard is built from a stack of Node.js, PHP, and nginx. The Node.js server handles the websocket, the PHP renders the HTML, and the nginx container proxies it all together so I can code with PHP while still getting websocket updates.

The docker stack also uses a network on the 192.168.37.0/24 subnet, and secures all traffic to be within this subnet. The dashboard can only be accessed locally at port 80 on 192.168.37.1 when the secure_api variable is set to true.

Working on the network descriptor, and I think to make it easier on me i will use json output from ip The problem is that if an interface has multiple IPs, then I have multiple lines of data for IPs I think perhaps I will update my code to be aware of properties that may be arrays I do think this makes more sense than having multiple cards for a single interface...

Need to differentiate between LAN and WLAN, it's weird when it's not

Description
Matt-Cloud Metrics Dashboard
Readme 143 KiB
Languages
Python 68.9%
JavaScript 17.5%
PHP 10.3%
CSS 2.7%
Dockerfile 0.6%