DigitalOcean Droplets For WHMCS

From ModulesGarden Wiki
Jump to: navigation, search

Contents

About DigitalOcean Droplets For WHMCS

DigitalOcean Droplets For WHMCS is a tool of invaluable usefulness which will allow you to provide Droplets to your audience in a completely automated manner.

The module will empower your clients to exert full control over their virtual machines through such actions as power on/off, reboot, server rebuild and many more.
At the same time you will be enabled to carry out a thorough supervision of all tasks performed on virtual servers directly from the admin area.

  • Admin Area Features:
✔ Create/Suspend/Unsuspend/Terminate Server
✔ Resize Server By Changing Size Slug For Droplet Plan
✔ Power On/Power Off/Shut Down/Reboot Server
✔ Reset Server Password
✔ Toggle Automatic Backups
✔ Enable Private Networking
✔ Enable IPv6
✔ View Server's Status And Details
✔ View Server's Network Information
✔ View/Create/Restore/Delete Snapshots
✔ View And Restore Backups
✔ Rebuild Server With Chosen OS Distribution
✔ View Tasks History
✔ Configure Product Details:
✔ Choose Region
✔ Choose Size Slug Plan
✔ Choose OS Image
✔ Define Additional Volume Size
✔ Define Snapshots Limit
✔ Define Droplet Tags
✔ Toggle Automatic Backups
✔ Toggle Monitoring
✔ Toggle IPv6
✔ Toggle Private Networking
✔ User Data - Execute Custom Cloud-Config Or Bash Script To Customize Server On First Boot
✔ Allow SSH Key Inserting - Enable Logging In To Server Without Password
✔ Generate Configurable Options
✔ Choose Welcome Email And Password Reset Email Templates
✔ Configure Email Piping
✔ Run Server Connection Test
✔ Toggle Debug For Logging API Requests And Responses
  • Client Area Features:
✔ Power On/Power Off/Shut Down/Reboot Server
✔ View Server's Status And Details
✔ View Server's Network Information
✔ View/Create/Restore/Delete Snapshots
✔ View And Restore Backups
✔ Rebuild Server With Chosen OS Distribution
✔ Reset Server Password
✔ View Tasks History
✔ Choose Server Parameters During Order
✔ Provide SSH Key During Order
✔ Receive Email Notification After VM Creation And Password Reset
  • Configurable Options:
✔ Region
✔ Image
✔ Additional Volume Size
✔ Monitoring
✔ Private Networking
✔ Size Slug Plan
✔ Snapshots Limit
✔ Backups
✔ IPv6
✔ User Data
  • General Info:
✔ Integrated With DNS Manager For WHMCS - Manage DNS Records On DigitalOcean Directly (read more)
✔ Multi-Language Support
✔ Supports PHP 5.6 Up To PHP 7.2
✔ Supports WHMCS Template Six
✔ Supports WHMCS V7

Installation and Configuration

This tutorial will show you how to successfully install and configure DigitalOcean Droplets For WHMCS.

We will guide you step by step through the whole installation and configuration process.

Installation

1. Log in to our client area and download the module.
DOD 1.png
2. In the downloaded file you will find two packages that support different PHP versions.
As presented on the screen below, the first one is dedicated to PHP 5.6 up to PHP 7.0, while the second one is aimed at PHP 7.1 up to PHP 7.2.
It does not apply to open source versions.

Note: You can check the current PHP version in your WHMCS. To do so, proceed to 'Utilities' → 'System' → 'PHP Info'.

PHP56 72.png
3. Extract the downloaded file and choose the one with the right PHP version. Upload and extract the PHP file into the main WHMCS directory.

The content of the PHP version files should look like this.

DOD 2.png
4. When you install DigitalOcean Droplets For WHMCS for the first time, you have to rename the 'license_RENAME.php' file.

The file is located in 'modules/servers/DigitalOceanDroplets/license_RENAME.php' . Rename it from 'license_RENAME.php' to 'license.php' .

DOD 3.png
5. In order to configure your license key, you have to edit the previously renamed 'license.php' file.

Enter your license key between the quotation marks as presented on the following screen.
You can find your license key in our client area → 'My Products' .

DOD 4.png
6. Now, set up the 'storage' folder as recursively writable.

This folder is available at '/your_whmcs/modules/servers/DigitalOceanDroplets/' .

DOD 4 1.png
7. The last step is setting up two cron jobs.
  • Mail cron - will be used to send emails to cliens after Droplet creation, rebuilt or password reset.
    You will find more information on this topic in the product configuration section. We suggest the cron to run every 5 minutes:
    php -q /your_whmcs/modules/servers/DigitalOceanDroplets/cron/cron.php MailCron
  • Tasks cron - will be used to remove volumes from the panel after their termination. If not set, the admin will have to delete them manually.
    We suggest the cron to run every hour:
    php -q /your_whmcs/modules/servers/DigitalOceanDroplets/cron/cron.php Tasks
    Remeber to replace 'your_whmcs' with your WHMCS root path.

Configuration of Server

8. Now, we will show you how to configure a new product.

Go to 'Setup' 'Products/Services' 'Servers' and press 'Add New Server' .

DOD 5.png
9. Next, enter your server name and select 'DigitalOcean Droplets' from the 'Type' field.

Now, in the 'Password' field provide your DigitalOcean API token and check the connection. If successful, save changes.

Note: To find your API token, log in to your DigitalOcean panel and go to the API section where you can generate a new token.
You will a token with read and write permissions. Remember to copy and store the token in the safe place because it will no longer be visible in the panel.
Click here to see an example where to find it.

DOD 6.png
10. It is time to create a server group. To do so, click on 'Create Server Group' .
DOD 8.png
11. Enter a name, click on your previously created server, press 'Add' and afterward 'Save Changes' .
DOD 9.png

Configuration of Product

12. In order to create and configure a product, go to 'Setup' 'Products/Services' 'Products/Services' .

Click on 'Create a New Group' .

DOD 10.png
13. Enter your product group name and press 'Save Changes' .
DOD 11.png
14. Once you have a product group, you can create a new product.

To do so, first click on 'Create a New Product' .

DOD 12.png
15. Afterward, choose your product group and type from the dropdown menus, enter your product name and press 'Continue'.
DOD 13.png
16. Now, go to the 'Module Settings' section, choose both 'DigitalOceanDroplets' and your previously created server group from the dropdown menus.

The module should automatically save and reload the settings. If not, click on the 'Save Changes' option manually.

DOD 14.png
17. Now, you can start configuring the settings of the Droplet you sell.

Just like when creating a new virtual machine in your DigitalOcean panel, here also you can configure such options as:

  • Region - Select the data center region. More distant server locations may increase the server's latency without providing any practical benefits to clients.
  • Size Slug Plan - Choose the size slug plan based on which resources will be allocated to the Droplet. You can read more about size slug indications here.
    Note: If you want to change their names to more user-friendly, you can do it in a language file.
  • Image - Select the image of the system that will be installed on Droplet.
  • Additional Volumne Size - Allows you to create and attach additional SSD storage volume to Droplet in the provided size (in GB).
    If left empty or set to 0, then the volume will not be created and attached. Here you can find more information about DigitalOcean Block Storage.
  • User Data - Choose the execution script which will be used to configure Droplet on the first boot. Go here to find more information about how to use these scripts.
    Note: User Data scripts are optional for product configuration, if you do not want to use them, simply set this field to the 'Do not use' option.
  • Snapshots Limit - Snapshots provide a full copy of a Droplet, saving everything from a Droplet's disk to a disk image. Here you can define the maximum number of snaphots that can be store at one time.
  • Tags - Here you can apply custom labels for the Droplet. If you want to add multiple tags, separate them with a comma. Read more about tags here.
  • Backups - Enables automatic system-level backups. It can be used for backup images, to revert the server or create new Droplets. Click here for more information.
  • Monitoring - Enables additional Droplet metrics collection, monitoring, and alerting. Here you can find out more.
  • IPv6 - Enables public IPv6 networking for Droplet.
  • Private Networking - Adds Droplet-to-Droplet networking, within the same region.
  • Debug - Enables logging of API requests and responses to WHMCS module log which may be useful if you experience any problems with the module.

Important: Before providing any extra features to your WHMCS clients, remember to familiarize yourself with the additional costs that may be applied to your DigitalOcean account.

DOD 15.png
18. Afterward, set up incoming mail configuration.

Due to API limitations, all emails with Droplet credentials can only be send to your DigitalOcean profile email address set in the panel here.
This applies to messages with credentials sent after Droplet creation as well as messages sent after password reset.
The solution to this problem is email piping that will be used to receive messages sent to your DigitalOcean mailbox and then forwarded through the templates further to your WHMCS clients.

Note: Even though the module filters the received messages in your mailbox, we recommend that you use a separate mailbox for your main DigitalOcean profile account to avoid any issues with non-DigitalOcean content.

After setting up the dedicated mailbox, provide its valid credentials below and test whether the connection has been established correctly.

DOD 16.png
Once the connection is successful, remember to save your module settings.
From now on, the cron set during the last stage of the module's installation should periodically check that mailbox for DigitalOcean messages.
If any new emails are received, they will be then converted to your email template and send to the corresponding client.
The default email templates for product creation and password reset can be specified below. To edit their content, go to your WHMCS email templates section and edit them according to your needs.
DOD 17.png
19. At the end of the configuration process, you can decide whether you want to generate configurable options for the product.

Configurable options can be used by your clients to select each Droplet parameters individually during order placement.
Otherwise, if configurable options are not defined, then the fixed parameters specified in the earlier configuration will be used instead.

DOD 18.png
If you decide to use configurable options, press on the 'Create' button and select which options you want to generate.
Note that the configuration for disabled options will still be taken from the configuration of the main product.
More information about how to use configurable options can be found here or in the official WHMCS documentation.
DOD 18 1.png

SSH Keys

In the 'Custom Fields' tab you will find a 'SSH Public Key' field which is displayed to clients on the order form by default.

This field is optional. It allows your clients to insert their public key in order to be able to log in to Droplet without using a password.
The provided key should be in one of the OpenSSH formats which are supported by DigitalOcean API. This includes the following types:

  • ssh-rsa
  • ssh-dss
  • ecdsa-sha2-nistp256
  • ecdsa-sha2-nistp384
  • ecdsa-sha2-nistp521
  • ssh-ed25519

If you would like to limit the possibility of entering the key e.g. only to the 'ssh-rsa' format, you can use the regular expression such as /^(ssh-rsa)\s.*/ in the validation field.
More information about how DigitalOcean handles SSH keys and how to create them can be found here.
If you do not want this field to be available to customers during ordering process, simply uncheck 'Shown on Order Form' option, but remember that API allows such action only once, during the initial VM creation.

Important: During tests we discovered that some OS images such as 'CoreOS', 'CentOS' or 'FreeBSD', may require the SSH key to create a Droplet.
In such cases, we recommend that you additionally check the 'Required Field' option for such products.

Please also note that when the SSH key is provided, DigitalOcean may not send the welcome email after Droplet creation.

DOD 28.png

User Data Scripts

User data is arbitrary data that can be executed during Droplet creation, typically during the first boot of a cloud server.
This allows you to perform tasks or run scripts as the root user which can be extremely useful when provisioning a server.

You can provide your own scripts using 'cloud-config' or 'Bash'.By default, we provide two exemplary scripts for changing the OS password or inserting SSH key, which you can use as a reference.
The script you want to include has to be located in the '/your_whmcs/modules/servers/DigitalOceanDroplets/storage/userDataFiles/' directory and may not exceed 64 KiB in size.

DOD 29.png
Once you create your own script, it can be chosen for product execution.

You can provide multiple scripts for configurable options, but only one can be chosen for Droplet creation.
If you would like to execute several different scripts at once, you should try combining them within a single file.

Remember that the scripts you provide should be compatible with the given distribution.
You can learn more here and here about how to use cloud-config for the initial server setup.

DOD 30.png

Management

Admin Area

DigitalOcean Droplets For WHMCS allows you to monitor and manage your customer Droplets from the admin area of your WHMCS system.

This includes supervision of such features like:

  1. Configurable options which enable you to view the chosen Droplets resources.
    Important: Due to API limitations, the only configuration possible to modify for the already created VM through the 'Change Package' functionality is the 'Size Slug Plan' option for Droplet resizing. And even this action may not always be allowed!
    You can also change the snapshots limit, which value is only kept locally on the WHMCS server.
  2. Module commands, service action and additional options enable you to manage Droplet status and features.
  3. Server information provides you with the current status, resources and options set for the Droplet.
DOD 19.png
  1. Network information presents assigned IPv4 and IPv6 addresses to the Droplet along with their gateway, interface type and used netmask or CIDR.
  2. You can easily view and make new snapshots of the Droplet.
  3. The automatic Droplet backups can be restored here as well.
  4. You can also rebuild the Droplet OS to a different distribution.
  5. And finally, display all actions taken on Droplets in the tasks history table.
DOD 20.png

Ordering

Owing to configurable options, you are able to offer a product which your clients can tailor according to their needs.
Additionally, you are able to set up pricing for each configurable option, which makes your offer even more competitive.

Based on the custom SSH key field configuration, you might also insert your public SSH key, which will allow you to log in to a Droplet without the need to use the password.
Note that this key should be in one of the OpenSSH standard formats which are supported by API, e.g. ssh-rsa.

After the order placement and successfull VM creation, the Droplet credentials will be sent to the client's email address according to the set cron execution intervals.

DOD 21.png

Client Area

Client area interface of DigitalOcean Droplets should look like the one on the screen below.
As you can see, the control panel contains useful options required for managing a Droplet.

The module allows your customers to easily power on/off, shutdown, reboot and reset password of their servers through pressing the corresponding buttons.
Clients can also rebuild the server, create and restore snapshots, access automatic backups and view tasks history with their current status.
Additionally, clients can view the current Droplet parameters, resources and all set options, as well as the assigned IP addresses.

DOD 22.png

Rebuild

The rebuild feature allows your clients to change a server's OS image.

Press the 'Rebuild' button as shown on the following screen in order to reinstall your server to the chosen image and confirm your choice.
Please remember that this will also wipe the previously saved data on the VM disk.

DOD 23.png

Snapshots

Use snapshots to save the current contents of the virtual machine memory.
You may use them later to restore the VM's settings.
DOD 24.png
Press the 'Create New Snapshot' button and enter the unique snapshot name.
Please note that the spaces in the snapshot name will be ignored by the API and saved as a single string name anyway .
DOD 25.png
Creating a snapshot may take a while, so it will not appear on the list right away.
Its progress status can be tracked in Tasks History or by refreshing the snapshot list manually.

Backups

If the automatic backups have been enabled for the Droplets products, then your client will be able to restore them from this section.
DigitalOcean uses a snapshot-based backup system. This provides system-level backups of a server without powering it down.

Note that that this process happens automatically within a pre-determined scheduling window, and is completed in the background while the Droplet is running.
Client cannot force the creation of an additional copy on demand or delete it - this however can be achieved by using snapshots feature.

DOD 26.png

Task History

Tasks history allows you to view all tasks performed on your VM with the current progress status.
Please note that this actions are also collected from the DigitalOcean API.
DOD 27.png

Tips

1. You can use the DNS Manager For WHMCS module to manage your Droplet DNS records.

It already has a built-in support for DigitalOcean DNS server.

2. Some of the features like IPv6, private networking or monitoring can only be activated once and cannot be disabled later on.

Use these features wisely as they can increase your Droplets maintenance costs.

Update Instructions

Essential guidance through the process of updating the module is offered here.

Keep in mind there is a quick and easy option in our client area that will let you upgrade the license of your module to an open source version at any time - and at a lower price!
To take advantage of it, simply use the License Upgrade button located on the product's page and a discounted invoice will be generated automatically.

Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. Certain OS distributions may cause the 'Action did not complete' error in task when trying to reset Droplet's password, even if the success notification is initially returned.

This may be caused by the requirement to use the SSH key by given distribution instead of a password.

3. Inserting the SSH key may prevent the welcome email being sent by DigitalOcean after Droplet creation.
4. Some features like monitoring might not be supported by all configurations.

Please try choosing for example a different region or distribution.

Personal tools
Namespaces

Variants
Actions
Navigation
WHMCS Modules
cPanel Modules
Magento Extensions
Magento Themes
PrestaShop Modules
Blesta Extensions
General
Social
DigitalOcean Droplets For WHMCS