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