Plesk 12.5 and newer come with some extremely powerful reseller account controls. Unlike cPanel (and WHM), it’s not necessary to learn how to use two completely different panels, Plesk integrates everything beautifully into one easy to manage panel. That said there are a few things to know about the feature set and best practices for organisation of hosting plans.
Plesk does not include a billing solution. If you wish to also provide complete web hosting automation from order straight through to login to Plesk without your intervention, then you’ll also need to order a billing solution, like WHMCS. With WHMCS you’ll be able to set up order forms, client accounts, invoices, and recurring hosting plans that connect to your Plesk reseller service plans. This way, when a client orders, their chosen product will be automatically provisioned to your reseller account.
If you do not set up a hosting-friendly billing solution, you’ll need to manually create invoices for your clients with software like Square or PayPal, then manually create and manage their hosting plan.
In Plesk, Service Plans are basically templates and restriction controls for the hosting plans you create. If you’ll be offering your clients more than one plan, like one with 5GB storage and one with 20GB, then you’ll want to create one Service Plan for each.
You can also do neat things with service plans from a templating perspective. For example, you can apply configurations, like enabling gzip caching in nginx, to your Service Plan and that config will be automatically enabled on all newly created subscriptions that are generated from the Service Plan.
If you haven’t edited a subscription after creating it (ie: if it’s still synced to the service plan), then you’ll also have the option to sync any changes you make to your Service Plan with all previously created Subscriptions, thusly rolling out any changes across all client subscriptions at once!
Limits & Permissions
When creating service plans you’ll be presented with the option to configure a number of ‘defaults’ that will automatically apply to the subscriptions that are created from the service plan. Most of the settings are pretty self explanatory, like the number of domains to allow (totally up to you!) But some of them may not be as clear. Here’s some help with that!
Note: for all of these presets, you can always override it on a per-subscription basis (which will ‘lock’ the subscription from getting future changes) or simply enable it across all by editing the service plan and sync the changes to all subscriptions.
- Management of access to the server over SSH: unless you have very techy clients, it’s probably best to not allow this.
- Anonymous FTP management: leave this unchecked
- Access to Application Catalog: this refers to the built in Plesk web app system. Since we use Installatron, this can be unchecked in favour of Installatron.
- Remote access for database users: it’s best to leave this unchecked for security reasons. Remote access means someone can use an SQL app to log in to their database and manage it from their computer.
- Setup of potentially insecure web scripting options: this mostly refers to the ability to change PHP settings like upload_max_filesize. If you have techy clients (like web developers), enable it. If not, best to not enable access to this. You’ll still be able to make the changes yourself; just the customer will not.
- Mailbox size: if you will be hosting email, it’s best to configure a limit on mailbox sizes. Yes everyone wants 20GB mail accounts like with Gmail, but ultimately your account has limited space and you want to ensure it performs well. Being notified when a client has a very large mailbox will help you help them keep the mailbox size in check.
- Mail tab: Policy on mail for non-existent users — reject.
- Logs tab: it’s strongly recommended to configure a log rotation when the filesize reaches 1MB and keep 10 or less log files. This will ensure optimal performance. If the log files increase to very large sizes, then it will take longer to write to the log file, meaning every access of the website will take longer while it awaits logging.
- Expiration Date: if you set a date the domain will be automatically suspended on that date unless you manually update it to a new date. This is used to enforce non-payment automatically. If you have an alternativce method of enforcing this, use it and set this to unlimited.
- PHP Settings: we recommend the following defaults:
- Version: 7.0.x FastCGI served by apache
- memory_limit: 128MB
- post_max_size: 64MB
- upload_max_filesize: 64MB
- opcache.enable: on
- All else at defaults.
Customers, Subscriptions, & Domains: How This Works
Customers are pretty straightforward. For each client you have you should create a Customer in Plesk. Even if they don’t want access now, they might at some point in the future, and ensuring you provide them with their own customer account early on, makes providing that access simple for you in the future. Additionally, it’s simpler to find accounts later on when they’re organized cleanly from the start because you can search for customer names, domains, email accounts, etc. whenever they’re organized accordingly.
Customers own one or more subscriptions that they have access to.
Subscriptions are ‘live’ or provisioned versions of a Service Plan. They typically start with one domain — the primary domain — and can have as many add-on domains, subdomains, aliases, email accounts, ftp accounts, etc, as you’ve allowed in the Service Plan it was provisioned from.
When you add domains to a subscription, they all share the same user folder with their individual web root folders within the user folder. Email addresses across all domains within a subscription appear when you visit the list of Email Accounts.
You have the option of setting up each Customer with one or more subscriptions.
Domains that share the same subscription can be a bit tricky to separate in the future, should you ever wish to do so, as many web apps rely on a static file location on disk. This means it’s handy to set up your domains within the correct subscriptions from the start, but it also means you still can re-shuffle things later on if the need arises.
The natural next question is then: if a customer has two domains, should I set them up with two subscriptions (one for each domain) or one subscription that houses both domains?
We prefer to tackle this decision by answering these two questions (which are really different versions of the same question):
- Is there’s a chance the domains will need to be separated later? It’s much simpler to do so if they’re separate subscriptions, so if the answer is yes, then use separate subscriptions!
- Are the domains actually related? For example, if the primary domain is BestBuy.com and you’re setting up a careers site at bestbuy-jobs.com, then you should absolutely add bestbuy-jobs.com to the BestBuy.com subscription. This is because they are two separate sites but they are a part of the same company. On the flip side, if they want to set up a website for their CEO CorieBarry.com, it might be best to set that up under its own subscription, as Corie could move on to a different company in the future and it’ll be super easy and fast to simply move that domain’s subscription to a new Customer.
That’s pretty much all there is to it! You create your Service Plans as templates to provision to Customers’ Subscriptions, which house your domains.