The hub should run under any Linux - the only gotcha in your case will be making sure that the VM is able to access your Bluetooth LE hardware.
I'm not sure if that iOS app provides the HTTP Proxy API, but you can probably use it some other way. Another potential option is to use the Adafruit Bluefruit app - which will forward data from the Puck's UART connection over MQTT to their adafruit.io service.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
The hub should run under any Linux - the only gotcha in your case will be making sure that the VM is able to access your Bluetooth LE hardware.
I'm not sure if that iOS app provides the HTTP Proxy API, but you can probably use it some other way. Another potential option is to use the Adafruit Bluefruit app - which will forward data from the Puck's UART connection over MQTT to their adafruit.io service.