Virtualmin GPL is already an extremely powerful and flexible virtual hosting control panel, so we're frequently asked about the differences between Virtualmin GPL and Virtualmin Professional. So, if you were wondering whether you should upgrade, you've come to the right place.
**What Makes a Feature "Professional"**
Before going into specifics, I wanted to explain our philosophy on determining which features are included in both GPL and Professional, and which features are reserved for our paying customers. A feature is "professional", if any of the following are true:
- It is really only useful in a commercial environment. We figure if you're using Virtualmin to make money, we'd like to make a little bit, too, so we can keep working on it, making it better, and releasing new versions. So, if it's obviously about making money, it's a candidate for only being in Virtualmin Professional. This doesn't mean all fiscally motivated features are excluded from GPL, but it is a starting point. Reseller Accounts are an example of this type of feature.
- It costs us a lot of time and effort to keep it working. Install Scripts are the best example of this characteristic. Because there are so many, and because there are new versions that have to be deployed and tested every few days, we simply have to have revenue to support it.
- It was an extremely large, and extremely expensive, feature to develop in the first place. This is a special case, and features that fit this description will end up in GPL eventually. A large number of the features you find in GPL today came about through this process. Mail processing is one example, as is PHP with suexec and mod_fcgid management. Resource Usage Graphs are an example of this kind of feature that remains in Virtualmin Professional, but will, in time, find it's way into GPL.
One big difference in Virtualmin Professional is the addition of a reseller account type. This allows you to create users that can create users. These users can then be managed by the master administrator (root, and equivalents), or the reseller that created the account. These created users can also be re-assigned to other reseller accounts, or removed from control of the reseller, at any time by the master administrator.
It's worth pointing out that some users think they need this feature to allow users to create their own additional websites, but that's not the case. Both versions of Virtualmin allow users to create and manage their own websites (whether they are full featured sub-servers that have different content or aliases that point to an existing website). So, if you just need to allow unprivileged users to create new domain-based websites (and mail accounts, and everything that goes along with a website), reseller accounts are not necessary. Regular Virtualmin accounts, available in both GPL and Professional will work fine.
If you are a hosting provider, and you want to allow web developers to resell your services, you'll need Virtualmin Professional. Some large enterprise environments *might* find the reseller features useful for delegating web hosting management to local administrators or supervisors. We've also seen a few universities, colleges, and K12 schools use it for similar delegation. So, it's not *just* for reselling, but if you aren't a hosting provider, this feature probably won't be necessary.
Virtualmin Professional provides automated installation of dozens of [installable web applications, including blogs, wikis, content management systems, ad servers, ecommerce systems, and more](http://www.virtualmin.com/documentation/install-scripts).
This feature is popular with pretty much everyone, because it's just so convenient. Even *we* use this feature heavily, because even though we aren't intimidated by most install procedures for applications, we also like to save time and hassle. So, we manage the Virtualmin.com Drupal instance through Virtualmin.
If you plan to run more than one or two web applications, this feature will come in very handy. It not only makes installation a snap, it also makes it easier to upgrade in most cases. For applications with an automate-able upgrade process, you can upgrade to the latest version with the click of a button. You can also have Virtualmin notify you when new versions become available, and mass-upgrade all installations of an application on your system.
**Resource Usage Graphs**
Another popular feature is the resource usage graphs. This makes it easy to see how well your server is performing, how much memory is in use, CPU load, email and spam delivery rates, and many more variables, over time. In a commercial environment, it is extremely important to know about performance problems before they begin to affect your users. Likewise, when problems occur, it is important to be able to isolate the source of the trouble quickly. Comprehensive resource usage graphs can make those tasks much easier.