WHMCS module / API to provision Docker containers.
Docker support is already a killer of Plesk (something I had begged for in WHM/cPanel before switching).
It would be epic if I could allow customers to purchase and provision a Docker container automatically from WHMCS. Obviously, there would have to be some tight control and they would only be pre-defined images. It must be a list of images that I curate since many Docker images do not provide sufficient environmental variables - example: official Redis doesn't let you pass a password, but others like bitnami/redis and
frodenas/redis allow you to pass REDIS_PASSWORD, which is necessary for a shared environment and for management via Plesk).
Use case: A user wants to add MongoDB to his/her services. He/she could purchase a MongoDB Docker product in WHMCS, it would use the image that I pre-define, it would ask for required and optional environmental variables like MONGODBROOTPASSWORD, MONGODB_DATABASE, etc, etc), provision it and save the environmental variables and port (and possibly the HOST if remote Docker is used) for reference in the WHMCS customer panel, and the user is up and running with zero intervention.
Other considerations/challenges to make it work:
"Container name" would default to something like "username-appname" (and if multiple, "username-appname-2", etc).
WHMCS already lets you specify configurable options. I would want to be able to allow the user to choose from a pre-defined list of "memory limit" options and charge accordingly since that is the most expensive component.
How to handle port mapping... I would be nice (in both Plesk and this proposed WHMCS module) if I could choose a "starting port number" and it would default to the next available port. For example, if I specified a starting port of 55300, the first container would default to that, the second to 55301, the third to 55302, and so on.
There would need to be a way to configure automatic volume mapping. For example, if I wanted to map /data in the container, it would automatically map to something like /path/to/vhosts/[domain]/docker/[app name]/.
This would require an upgrade to Plesk, but it would be nice to have the ability to firewall off the port from the public (either if user checks the box or if I require it globally - example, Redis doesn't typically need to be public exposed, but something like NextCloud would).
This would probably require a third-party WHMCS ninja (such as ModulesGarden or something) since you likely wouldn't want to maintain it (not your core business, but it is theirs). They already have the excellent "Plesk Extended" extension for WHMCS.
OF COURSE, in order for this all to happen and for anyone to knock on their door, you'd first have to expose Docker provisioning/management via your API. I imagine that would require some sort of interface / template capability for pre-defined Dockers.
Even if the WHMCS module never happens, provisioning and management via the API would be excellent.
I believe that this would turn a killer feature into world domination. "Do you need something hosted? We have it."
-
Anonymous commented
Thats the same thing I am looking for since the installation of whmcs...
-
Saqi commented
Same thoughts as you does this exist?
-
Webadmin commented
This would be excellent actually. Would also optimize and dedicated server resources to customers with the highest form of cache for tiny footprint of data and ram. Please consider this.