A status dashboard

A couple of weeks ago I had a big sook about how I wanted to deploy Stashboard as a service dashboard for Fastmail. There’s a link to it at the bottom of this post, if you like a rant.

So I’ve spent most evenings and train rides since then writing a clone that I call “towncrier”. Hear ye, hear ye, stuff is broken!

Its mostly API-compatible with Stashboard, though I did file off a couple of sharp corners. It doesn’t have admin screens or OAuth support, though I expect that could come via a Plack middleware.

Its Perl, of course. It depends on a bunch of fairly standard and well-tested stuff on CPAN (I’ll accept an argument that KiokuDB and Search::GIN are dead, but they compile and work so whatever). You don’t really need to know any Perl to get it going.

Its minimal. It does just enough for what we want. It might get a few tweaks as we gain some experience with it. I’d like to see others using it and contributing to it. I have no idea if there’s demand, but at least now there’s a choice for anyone that wants it.

There’s some mess still. Some utility functions and Template Toolkit plugins need to be broken out into their own libs. The release version of Search::GIN has a bug that renders the entire thing unusable. I’ve submitted a patch for that, and there’s sort-of instructions for how to work around it in towncrier’s readme.

Its now up and running on www.fastmailstatus.com. Those lights will stay all green until I fully integrate the API into the rest of our infrastructure. Its mostly there, I just don’t want to do anything this late at night. Once its live, I’ll redirect status.fastmail.fm to it and that will be that.

Its been an interesting experience. I’ve seen the current best-practice for web application development in Perl, and I like it. And I’m now finding that I have an unhealthy interest in object stores, and have some ideas for how to make KiokuDB’s searching a lot more powerful. But I don’t have a need right now, and I don’t want to become maintainer for it, so it might not go anywhere.

There you go. A whole web app by a systems guy in under two weeks. Not bad!