What a great project.
The way you've described the system, I'd look at modifying the firmata GUI program to accept inputs from your server. Can't say how hard that would be without seeing the source, presuming it is open.
If you're not wedded to a firmata solution, I've published a web front-end toolkit for Bitlash named Bitlash Commander that allows control of an Arduino from a web interface using Bitlash script. It's a similar architure with Bitlash substituted for firmata.
You could build your control interface as a Commander page and extend Commander to accept input from the indiserver, same as you're looking at for the firmata path.
Bitlash Commander: https://github.com/billroy/bitlash-commander