Things like this, Ruby, Node, Golang, etc, are actually perfect candidates to run in containers. It would be so great to have the Docker (which Jamie already integrated to Cloudmin) be able to deploy a container into a Virtualmin user account which he can then start and stop.
Put it like this:
Launch VM with Cloudmin that hosts containers.
User from his Virtualmin account decides to launch a Node project, launches container with Node template (that gets created inside a VM assigned for container management like CoreOS, Debian, Alphine, etc.) and can manage it from his regular Virtualmin control panel.
The app is now running without issues, you don’t need to mess with any dependencies, proxies or have them running in the Virtualmin server itself at all. Each customer can install thousand of different apps they want regardless if they are supported or not inside Virtualmin. The job that Virtualmin would do here is just create the Apache proxy so the container can be accessed to the public on the domain for that Virtualmin customer like example.com:8551 as well punching the firewall and setting up the rest of the settings. Custom can now run his regular site but launch other dev projects if he wants.
Cool right? No. Amazing! Is this possible?
Of course, because this is the beauty in Virtualmin/Cloudmin integration which I think has a great solution to problems like this. You could even decide to have that VM assigned only for containers for that specific customer and launch another VM for another customer (giving max security). So each VM is per customer that runs his containers. And users don’t even need to be aware of anything like this. They just log into their Virtualmin panel and launch the base image they want, (magic is done in the background). If the hosting plan allows it of course.