Creating custom portal for OpenNebula

Good day,

I am rather new to OpenNebula, however was looking to create a portal in which I can build a custom front end UI to OpenNebula and using the XML-RPC API to carry out login authentication. I would like to request assistance in how this may work and if there are previous examples of such. I’m looking to cut down on the functionality that a user has access to as well such us only being able to create VMs and not have access to other aspects/features.

Your help is highly appreciated.

Hello @Qaiss

You can do all that kind of customization via Sunstone yamls. You can find here all the documentation about all the authentication methods and how you can manage them.


You can just make an Sunstone like server with Sinatra or Rails(if you would use Ruby too) and opennebula gem.
Or same with Java or Golang, using ONe XML-RPC API clients for those

These are some good replies, however I am looking for a way to call upon opennebula through an external html developed site. Things like calls to display vms, edit vms, and so on. Plus the login process in which I have a personalized Login page built through HTML and CSS to allow end-users to access the specific features provided.

You can use OpenNebula XML-RPC API directly from your new website(which would be bad approach), or develop a middleware, that’s what we did to develop a custom web application for our customers, since we wanted to remove a lot, use our own auth system and integrate some features in to UI(such as backups which have nothing to do with ONe).

This sounds more like what I am looking for, would you happen to have examples on how you did it?

There are also xml-rpc api bindings for PHP feldsam-inc/one-php - Packagist

1 Like

Hello @feldsam,
Can we edit js files under public folder in sunstone.
I am doing changes in JS and CSS file but the changes in grid is not reflecting.
Could you please suggest how to change in dev or in PROD.
Any help is much appreciated and helpful.


Hi, I just created script inside public dir.


./ -d

export PATH=$PATH:$PWD/node_modules/.bin

./ -l
1 Like

Thanks @feldsam !!