I love long weekends and easter is always one of them. 4 full days not having to work.

Sometimes I look for a project to start and finish in that weekend, this weekend I was successful with it.

Thursday evening I started looking into Alexa skills (I have an Echo Dot which seems somewhat useless). I thought, it would be fun to ask alexa for the status of my servers. Looking into developing Icinga skills, I found a big problem: users cannot configure anything for the skill. They have to “just work”. The only thing one could do, is building a cloud where the skill connects to and use the account linking feature of Alexa skills (OAuth2 against your cloud service). This is what I’ve done this weekend.

The Alexa skill is currently in certification at amazon. The cloud service turned out to be much more usefull than just for the Alexa skill: it could be used by any application with such restrictions. I present: Icinga cloud.

This service was implemented with Dancer2 in my favorite web application development language: Perl. It just renders the HTML on the server, to be as simple as possible. It doesn’t even use JavaScript for anything, everything is plain HTML and CSS on the frontend.

On the backend, data is stored with DBIx::Class in a PostgreSQL database, while the Schema is done with DBIx::Class::Schema::Versioned::Inline, so this should also be compatible with other database systems.

After having the functionality (and having a working Alexa skill), I even started writing a documentation for it. After this was completed (for now), it was still just sunday morning! So I started translating it … with Dancer2::Plugin::Locale::Wolowitz. At the moment, there are only 3 pages left without translations: “Terms”, “Documentation” and “Imprint”. I don’t want to fill my language files with such a lot of text, so I will probably build some “load language specific markdown and render it to html” plugin. Maybe there is already one I can use.

After all, this was a fun project with very rewarding results. I’m happy with the outcome of it. It would be even better, if someone else finds this useful, but you never know ;D

I would really like to have more of those long weekends.