Stack41 Customer Portal


At Stack41 we ran all our own software. We did not accept non-Free software, and we didn’t often purchase products to solve problems. Ryan asked me to design a customer portal, so I did. This project also mandated that a database of device statistics be kept to later plot and analyze, which was basically a project unto itself. My boss told me to keep this one simple, so that’s what I did.

The front-end was written in Python with Flask, with Bootstrap used for layout. A smattering of scripts and cronjobs collected information into a database (below). Gnuplot was used for charting. All graphs are charted for 1, 7, 30, and 90-day intervals. Our servers could also upload document archives (like backup logs) for customers to download. The query for Internet traffic was fun, because I liked the math riddle of rollover logic in SQL.

Stats DB screenshot

The database was PostgreSQL with TimescaleDB on an OpenBSD VM. I spent lots of time writing scripts to collect information, both active and passive transmission types. There is special information in the database correlating hard drive models with SMART health attributes. From hosts, VMs, switches and other devices, more-ordinary information is also collected: CPU time, memory allocations, mounted disks, network traffic, etc.

Go home