tpnCP - cPanelish Virtualmin UI

29 posts / 0 new
Last post
#1 Sat, 02/13/2010 - 23:09
tpnsolutions
tpnsolutions's picture

tpnCP - cPanelish Virtualmin UI

Hey Folks,

I'm currently developing a "friendly" user interface (UI) to Virtualmin.

This is a "domain-level" interface which organizes things in a similar manner that cPanel and other CP's do.

The primary goal is to design a user interface which is easy to use, and is completely brandable, therefore integrating into a website seamlessly. A feel which you can call your own, while remaining powered by Virtualmin.

The secondary goal is to introduce a few added features for customer management. These include, customer profile management, billing, and support ticketing amongst other ideas.

I've put together a basic demo which is actively being worked on over the coming weeks based on my own website theme, however the system can pretty much take on any look and feel as needed. I mean this literally! This is NOT simply a wrapper based solution.

Finally, and most importantly. The whole interface relies on Virtualmin's API. This means that core functionality is run through Virtualmin's existing API keeping it secure. I intend to work with Jamie/Joe to ensure that all available functionality is available in the API along the way, in order to cover the most broad set of features possible. However, at the moment I'm keeping the design lean, simple, and to the point as most users today really don't need all the extra fluff anyways. (despite popular belief)

Feel free to visit my demo page at the URL below, and be WARNED! It looks and feels NOTHING like Virtualmin, which just goes to show just how powerful Virtualmin really is.

http://dev.tpnh.com/cp/

*** Don't worry, the system is in read-only mode, so you can't break anything. Unless I let you *** *** The UI is currently in the early stages of development, and will be updated as more features become available, as well the UI itself will be updated to take on the final look and feel of my actual theme as I progress. ***

If you like what you see, or have any suggestions please post them here. Thanks.

-Peter

Fri, 02/19/2010 - 02:33
tpnsolutions
tpnsolutions's picture

Hey Folks,

I did some updates today including:

  • UPDATED header/footer to include logo, and global navigation links

  • ADDED a script level caching feature which saves having to call the API as often

  • UPDATED the way certain API calls are completed saving CPU and memory usage

That's it for now. As always if you have any comments or suggestions please let me know.

Working toward version 1.0!

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Fri, 02/19/2010 - 02:32
tpnsolutions
tpnsolutions's picture

Hey Folks,

Here's what's new:

  • UPDATED scripting level caching which now caches for longer periods, and now supports flushing cached data which will be used when an "add", "edit" or "delete" command is issued. (not available in the demo for obvious reasons)

  • ADDED the first draft of our "bandwidth" page showing a fancy "line graph" based on the past 7-days worth of bandwidth for "FTP", "MAIL" and "WEB" respectively. (there will be more information added to this page later.)

  • UPDATED the API calls to run from "api.php" rather than individual files. This simplifies addition and maintenance of new commands when needed.

  • UPDATED the first draft of our "bandwidth" page which now shows a table of bandwidth broken down by "FTP", "MAIL" and "WEB" traffic. I am currently reworking the flash graph as it wasn't showing data correctly.

More updates on their way!

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Fri, 02/19/2010 - 14:25
joachimb

Hi Peter,

It's a really nice-looking site. I'm looking for something like this also for my clients.

Could you give me a hint on how easy customizable this is? Is it all in CSS/HTML/JavaScript, or are there customizations to be done in other languages?

Keep up the great work!

Joachim

Sat, 02/20/2010 - 15:55 (Reply to #4)
tpnsolutions
tpnsolutions's picture

Joachim,

The UI is 100% customizable, and fairly easy if you know a little PHP.

The code is split into two layers

  1. Page Layer, which constructs the basic layout of the pages. This includes the "index.php" file, a few functions for "authentication/session management" (not implemented in the demo yet), and a series of templates which are basically HTML, CSS, Javascript, and a small bit of PHP (for, if, else).

  2. Content, which constructs the individual sections of the page ("list of domains", "stats", etc). This includes the bulk of the heavy lifting including making calls to the appropriate API commands, parsing the results, managing cached data, and displaying the section content. There is a file called "api.php" which works in a similar manner to "index.php" but handles section content construction, and a series of templates which include HTML, CSS, and a small bit of PHP (for, if, else).


At the very least, you could customize the "page layer", essentially building a wrapper template. However, if you want greater customization, you can also customize the "content layer" making every installation unique.

It's also possible to add and remove pages as needed.

*** If you have problems customizing things, you can also hire me to do so. Just send me an HTML template, showing me how you'd like things to look, and I'll make it work. ***

The bulk of the heavy lifting is done in my virtualmin library file, which takes care of talking to the Virtualmin Remote API, decoding the content into a simple user friendly, and consistent array, and dealing with script level caching to speed up performance.

*** The demo server has only about 512MB of RAM, so the challenge has been to develop this fancy UI around minimal system resources, and therefore performance is key to it's success and usefulness. ***

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Sun, 04/25/2010 - 10:38 (Reply to #5)
Byteforce

Hee Peter,

Are you still working on this project? It looks quite promising!

I'm a PHP developer with my own webhosting server for hosting my websites. If you are still on this project, i could help develop if you want?

Piet (Netherlands)

Tue, 04/27/2010 - 12:59 (Reply to #6)
tpnsolutions
tpnsolutions's picture

Piet,

Yes, it's still being developed.

The current branch is being worked into my in-house support system with the intent to put what I've worked into a production environment.

If all goes well, this will be the basis of a public pilot release.

At the moment development is being kept in-house, though I may consider your offer at a later time when things are a bit more refined.

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Fri, 04/30/2010 - 08:48
blehhh

Peter is it in your plans to release this with the ability for someone to add translation files for languages other than English?

Tue, 05/04/2010 - 04:00 (Reply to #8)
tpnsolutions
tpnsolutions's picture

Hi,

While it hadn't initially crossed my mind, I don't see why not.

I appreciate the suggestion, I'll add it to my todo list.

Please let me know if you have any further suggestions.

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Sun, 05/16/2010 - 08:25
tabletguy

I can't access the site at http://dev.tpnh.com/cp/ nor ping it. I can ping tpng.com however. I'm currently in Austria.

Sat, 10/30/2010 - 11:06
mtk

is this project still alive?

Sun, 01/16/2011 - 19:52
tpnsolutions
tpnsolutions's picture

Hey Folks,

A lot of time has passed since I last commented on the project status.

First off, the project IS still being developed, though it has slowed as I work on our in-house CP ported from the same code.

By shifting the focus to a real-world implementation of the features, I am slowly but surely getting the core components complete, and it's allowing me to set an updated direction for the overall project.

Unfortunately, some months ago while doing some shifting around in the environment, I accidentally deleted the demo.

I will restore this demo within a few weeks, which will also include a few new updates I've been working on. In the meantime, if you have questions, comments or suggestions please feel free to post them here.

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Fri, 08/05/2011 - 00:47 (Reply to #12)
nveid

Any news on this project? Any chance your going to sell your extensions or anything, this is very interesting. :)

Fri, 02/18/2011 - 16:26
KarlMoik

Hi Peter,

I'm currently looking for an open source solution like WHMCS which is compatible to virtualmin. I couldn't find anything so far but your project sounds interesting, unfortunately is your demo-site down.

If you project is still alive I'd like to see a demo. I'm also willing to contribute some work (code, etc.)!

Tue, 03/15/2011 - 18:50
dyvel

I would like to know more about your project as I'm in the "same boat"... almost.

I'm using WHMCS with Virtualmin integration, so customer info and billing is taken care of. My WHMCS is themed to appear to be a part of the main site, so the user experience is pretty nice on that part.

Now I need virtualmin to have the same look and feel, and make it simplified - your project sounds much like what I'm looking for.

Sun, 03/20/2011 - 15:58
tpnsolutions
tpnsolutions's picture

Hey Folks,

At this point, my priorities are focused on making a living through web development. Since this project is yet to show signs of any real financial potential, I'm sure you can understand why development has been extremely slow.

Here's a thought I'd like all those interested to consider.

If you guys are willing to pay either in part or in full for the development time, it'd definitely shorten the timeline, as I could actually prioritize the work as one of my monthly projects. The more that can be afforded, the faster the timeline would be.

Realistically, I would expect no less than $30/hr (Canadian) for my time, and estimate that the initial release could be completed in about 120 hrs. (8 wks @ 15 hrs/wk).

Please feel free to let me know your thoughts on this topic, as I realize it's a bit of a sensitive one at best.

I don't believe the above proposal is unrealistic, however it is highly dependent upon those interested in using the application.

Regardless of the above, the project is still on-going, and will eventually debut in one form or another. However as noted, priority goes to any project I get paid for, as I otherwise cannot afford to pay my bills as I sure you guys can understand.

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Fri, 03/25/2011 - 17:33
jscholes

Sounds like an interesting project; I've thought about doing a similar thing myself, but on a much smaller scale. Hopefully you can get a live demo server back up again soon.

Mon, 03/28/2011 - 12:56
bjb

I can second that. Although some users appreciate the flexibility of the existing Virtualmin/Webmin panel, some are simply overwhelmed by it.

I was considering creating a simple panel here by using the remote HTTP API.

The big issue with that is all requests have to come from the master admin account, so a regular user account can not be used to authenticate and make changes to their own server settings through the API.

This means a wrapper enforcing a users capabilities (through the master admin account) has to be written to do this. Or alternatively the panel will have to post directly into the existing Virtualmin/Webmin pages. But this worries me due to the chances of breakage when Virtualmin/Webmin or the themes are upgraded.

Mon, 03/28/2011 - 14:27 (Reply to #18)
jscholes

If I were to attempt such a project of my own, it would be to complement other parts of a hosting business (e.g. support requests, billing, etc). Imagine a custom control panel, something like what DreamHost (shudder) have built, which would incorperate every aspect of a user's hosting account, whether it be shared hosting (Virtualmin) VPS hosting (Cloudmin), or any other form of server for which I could write Virtualmin modules.

As such, given how the panel would be a central administration area, I would keep user/customer data completely separate from Virtualmin, and, as you said, a wrapper would have to be built which would take into account who was logged into the custom panel at the time before executing an API command. I don't reckon this would be hard to implament, though; certainly using URIs to Virtualmin interface pages would be out-of-the-question for me. I could never use such a risky method of retrieving, storing and manipulating data.

Fri, 08/05/2011 - 02:51
yngens

Very interesting. Subscribing...

Wed, 08/10/2011 - 16:24
tpnsolutions
tpnsolutions's picture

Hey Folks,

Just wanted to update everyone on where things are going.

A lot has changed since I first put this project together, however I feel the changes are for the best.

Over the last number of months I've been designing control panels for usage with my various services, some that have been around for a while and others which are emerging or are intend to emerge shortly.

What I've been learning throughout this process is that making a UI which people are familiar with is super important. It's not only important to make the UI easy to navigate (similar to cPanel in this sense) but also maintain your brand along the way, and most important ensure that the UI is designed with a consistant flow.

As a result, I started using the same theme across my various control panels and have been working toward linking them both in terms of maintaining a central client database, but also allowing you to switch between panels with a simple click of a link.

The goal is to make all services available to all users, but only allow the users to use the services which they have an open subscription for, and finally allow them an easy way to find out about new services offered, while enabling the ability to sign up for new services directly from the panel.

Ex. you sign into our billing portal and notice a tab for new service is available, along with perhaps a notice advertising the new service. You click on the new tab, and are presented with a sign up form allowing you to take advantage of the new service within minutes.

Now, getting back on topic here...

The direction I'm going with the project is to build more of an "API" and a number of background processes which are linked to it.

As someone recently discussed, the topic of building more than a simple hosting panel is in fact part of what I'm aiming to offer. The ability to run a full set of services from the panel is my goal.

While I realize a number of you want access to source code so you can implement things on your own network, I'm thinking of targeting the service to run "in the cloud" and have our servers communicate with your servers managing the provisioning through an SSH session (using a custom private/public key pair).

the advantage to YOU:

1) You would be able to build a custom UI around your own brand without exposing that you are using our technology (unless you want to)

2) All updates would be handled on our end allowing for you to take advantage of new features and security updates immediately as they become available.

3) Assistance would be offered in both a forum design allowing p2p support, along side direct support from me when needed.

4) The price to take advantage of our API would be tiered and affordable for all.

The advantage to ME:

1) I would be able to maintain a single code base which could then extend to any number of users without having to know your sysem architecture specifically.

2) I would be able to field updates, and security issues in bulk without having to release and support individual client.

3) I would retain the source code and rights to my infrastructure without having to charge insane prices or having someone resell my code as their own.

I'd welcome comments, feedback, and suggestions to the above idea and will further elaborate on things as they progress.

I hope I have not turned away a number of you in making a slight change in direction, and appreciate any and all feedback provided on the overall project.

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Fri, 08/12/2011 - 12:10 (Reply to #21)
sonoracomm

Any sort of demo?

G

Sat, 08/13/2011 - 01:44 (Reply to #22)
tpnsolutions
tpnsolutions's picture

sonoracomm,

Once upon a time there was a demo available, however after a few updates to my infrastructure I accidentally deleted the demo.

I will get a new demo online as soon as possible, though I cannot be certain of a specific date as I'm currently juggling a few other paid projects on the go, so time is limited sadly.

*** stay tuned ***

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Sun, 09/11/2011 - 10:14
webwzrd

Subscribed - I'm interested in where this is going.

Thu, 12/15/2011 - 17:11
MaartenPol

Will follow the progress.

Thu, 12/29/2011 - 19:01
oracast

Subscribed!

Tue, 11/06/2012 - 14:25
Tito

It's been almost a year since the last post. Any news or progress?

Wed, 11/14/2012 - 21:06
tpnsolutions
tpnsolutions's picture

Hi,

You're absolutely right, it has been a while since I first opened the discussion on the topic.

Here's what I've been up to.

Much of the progress has shifted from the original idea, into a much larger project. As I manage over a dozen machines, some offering DNS, others mySQL, and others hosting... I've begun focusing efforts on building out a cluster type of design for the panel.

The problem I face today is, much of the progress I've made has been focused a great deal on a proprietary cluster model which I use internally for managing my infrastructure.

Further, while I'd like to build a panel GUI which offers the vast feature set of Virtualmin, currently I'm building my own panel around a very limited set of core features such as: DNS, mySQL, and Hosting and have within my own cluster disabled probably about one to two thirds of the features that come standard with Virtualmin.

My panel is designed around more than Virtualmin functionality these days, including a billing and support ticketing system, but the real power comes from being able to provision multiple machines within a few minutes which manage a specific task within my network.

I'd be happy to field ideas on what others would like in such a product so I can bring to the surface something that is design around a wider group of individuals.

I look forward to feedback, and giving you all a sneak peak into my own panel.

As always, stay tuned, but keep in mind I work on all this in my spare time which once used to be vast, but has been reduced over the past year (which is actually a good thing).

-Peter

Best Regards,
Peter Knowles | TPN Solutions
Email: pknowles@tpnsolutions.com | Skype: tpnassist
Fri, 08/01/2014 - 16:16
ReArmedHalo

Two years old but sounded interesting. Any news if this is active still?