PD DigitalOcean Spaces for WHMCS

PD DigitalOcean Spaces — Sell DigitalOcean Spaces Storage as a Native WHMCS Product

Sell DigitalOcean Spaces object storage under your own brand — provisioned, metered and billed in WHMCS

Made and supported by Projektif Digital Ltd. Runs inside PD Modules, the panel every module installs into.

Object Storage

PD DigitalOcean Spaces lets a hosting company sell DigitalOcean Spaces object storage as its own product. Your customer orders a storage plan in your WHMCS cart, and a private Spaces bucket with its own access keys is created in your DigitalOcean account within minutes. The customer manages it from your client area, you set the price, DigitalOcean bills you at cost, and the difference is your margin.

It is built for hosts who already use DigitalOcean, or who want a simple S3-compatible storage line for backups, media and application data, without handing out DigitalOcean logins and without building the tooling to create buckets and keys by hand.

Why hosts choose PD DigitalOcean Spaces

Twelve datacenters, chosen by the customer. Customers pick their bucket's location at checkout: New York, Atlanta, Richmond, San Francisco, Toronto, Kansas City, Amsterdam, London, Frankfurt, Bangalore, Singapore or Sydney. One product covers four continents.

Every customer is isolated by DigitalOcean itself. Each order gets its own bucket and its own Spaces access key whose grants cover that bucket only. A customer's key cannot list or reach any other bucket or any other data in your account, even if they try. Isolation is enforced by the provider, not by convention.

One token to connect. You connect your account with a single DigitalOcean Personal Access Token. It stays on your server, stored encrypted, and customers never see it. Customer keys are never sent to DigitalOcean for storage.

Your other DigitalOcean resources are untouched. Droplets, databases and existing Spaces carry on exactly as before. The module works only inside its own bucket namespace, so you can run it on the account you already use.

Works with every S3 tool. The endpoint is the standard Spaces address for the customer's region, and any S3-compatible client or SDK that supports a custom endpoint connects with no modification.

Usage that bills itself. A daily sweep reads each customer's real storage use and writes it into WHMCS's disk-usage fields, so native overage billing, quota warnings and the usage graph work with nothing extra to configure.

How it works

  1. Connect your DigitalOcean account. Create a Personal Access Token in the DigitalOcean control panel and paste it into the password field of a WHMCS server record. Test Connection checks it can issue Spaces keys and reach the storage service, using a temporary key that is removed again.
  2. Create your products. Create a WHMCS product of type Other with this module and generate the cart options: Storage Quota, Max Buckets, Region and Versioning. Set your prices on them.
  3. Your customer orders. They pick a quota and a datacenter and pay. The bucket and its keys are created, and their page shows progress until it is ready, usually within a couple of minutes.
  4. You get paid, they manage it. WHMCS keeps billing as usual, with usage measured daily. Upgrades and downgrades use WHMCS's normal flow and keep the customer's data.

What you get in WHMCS

Selling and pricing

  • Cart options generated in one click: Storage Quota from 10 GB to 5 TB or Unlimited, Max Buckets from 1 to 10, Versioning on or off, and Region
  • Choose which options customers see; anything you hide uses your product's default, and your prices are kept
  • Customers are emailed at 80% and again at 100% of their quota, and you can copy those emails to your administrators
  • You see each service's overage in the admin panel through its quota percentage and usage
  • Usage is written into WHMCS's disk-usage fields, so native overage billing works
  • Bucket names are generated from a prefix you choose, so your brand is on every bucket
  • Default region and quota for products that do not offer a choice at checkout

Provisioning you can trust

  • One bucket and one key pair per order, created automatically once the order is set up
  • A failed setup is never shown as done: the customer sees a plain message and the exact error is kept in your Activity log
  • Moving a customer to a smaller plan than they already use never deletes anything, and the customer is warned they are over
  • Data is preserved in both directions when a customer upgrades or downgrades
  • Nothing is installed on any server, and no daemon runs: the module talks to Spaces over HTTPS

Running it day to day

  • Clients & Storage lists every service with its client, state, access mode, quota percentage, usage and last measurement
  • Set any service to read and write, read-only or disabled without changing the customer's keys or touching their data
  • Rotate a customer's keys in one click, with the old key deleted from DigitalOcean and stopped immediately
  • Retention lists terminated services with a countdown to purge eligibility, with approve and hold controls
  • Reconcile compares your DigitalOcean account with WHMCS and flags orphan buckets, missing buckets and stray keys. It only reports and never changes anything
  • A health report covers the licence, DigitalOcean connection, services and metering, and an Activity log records every provisioning, suspension, termination and rotation

What your customers get

  • Connection details with copy buttons for the endpoint, bucket, region and access key
  • Their own buckets, created within the plan limit, with a typed confirmation before deletion
  • Versioning per bucket, to recover files that were overwritten or deleted
  • Automatic clean-up rules to delete files after a number of days or remove stalled uploads
  • Browser access (CORS) rules for web apps, with no DigitalOcean console access needed
  • Expiring share links to download a file, or to let someone send one in, with no account on their side
  • Ready-made setups for the AWS CLI, rclone, s3cmd, Cyberduck and WinSCP, cPanel backups and WordPress backup plugins
  • Usage against their quota, with a 30-day history
Ready-made connection setups for the AWS CLI, rclone, s3cmd, desktop apps, cPanel and WordPress, plus connection values and SDK examples for the customer's bucket
Ready-made connection setups for the AWS CLI, rclone, s3cmd, desktop apps, cPanel and WordPress, plus connection values and SDK examples for the customer's bucket

Bucket management, share links and storage settings are each a switch on the product. Turn one off and it disappears from the customer's page and its actions are refused. The pages render on WHMCS's Six, Twenty-One and Nexus themes and are fully translatable.

Security built in

  • Your Personal Access Token is stored encrypted and never leaves your WHMCS server, apart from calls to the DigitalOcean API over HTTPS.
  • Customer keys are stored encrypted, and no customer data, bucket names, keys, files or usage figures are sent to us.
  • Suspension defaults to read-only: writes and deletes are denied, downloads continue, and no file is touched. Disabled blocks all access.
  • Termination revokes the key at once and deletes nothing. Files are kept for a window you set, from 7 to 90 days, and the default purge mode needs your approval. An immediate purge needs the bucket name typed in.

One product, every feature

PD DigitalOcean Spaces is one paid module with everything included: provisioning, metering, quotas, versioning, clean-up rules, CORS, share links, retention and reconcile. There is no free tier. There are no per-gigabyte fees to us: your buckets live in your own DigitalOcean account, you pay DigitalOcean at cost and set your own sell price.

Quota emails warn at 80% and 100%. On Spaces, going over quota never pauses uploads, in either quota mode, because a Spaces key cannot allow deleting files without also allowing uploads. Downloads always keep working.

If your subscription ever lapses, nothing is deleted. You get a 14-day grace period with everything working, then admin management locks while customers keep being served, and only after that do customer features pause behind a neutral message.

Requirements

  • WHMCS 9 or later on PHP 8.2 or later, with the ionCube Loader
  • A DigitalOcean account with Spaces enabled and a Personal Access Token. A dedicated account is not needed
  • The WHMCS cron running, at least once a day, for the usage sweep
  • PD Modules, the free control panel every PD module installs into

Questions

Whose DigitalOcean Spaces account is used?

Yours. You connect your own account, and every customer bucket is provisioned into it. You pay the provider at cost, set your sell price in WHMCS, and keep the difference.

How is each customer isolated?

Every order gets its own bucket and a Spaces key scoped to that bucket alone. One customer's credential cannot reach another's data, and your master credentials stay on your WHMCS server — they are never sent to the customer or stored in the client area.

How does billing work?

A daily task measures each service's real usage and writes it into WHMCS's disk-usage fields. Native overage billing, quota warnings and the client-area usage graph then work exactly as they do for hosting products — there is nothing extra to configure.

What happens when a customer hits their quota?

They are emailed at 80% and again at 100%, the overage is written into WHMCS's disk-usage fields for native overage billing, and you see it in the admin panel. Uploads and downloads keep working: a Spaces key cannot allow deleting files without also allowing uploads, so pausing uploads would leave a customer no way to free up space. Raising their plan raises the quota with all data preserved.

Is data ever deleted automatically?

Only if you choose that. By default, terminating a service revokes access instantly but keeps the bucket and its contents for a retention window you set. Purging then needs your approval (Manual, the default), and an immediate purge needs the bucket name typed to confirm.

Can customers upgrade or downgrade?

Yes, through the standard WHMCS upgrade/downgrade flow. Quota changes apply with data preserved in both directions; downgrading below current usage never deletes anything; the customer is warned that they are over the new quota.

What do I need on my WHMCS server?

PHP 8.2+ and a working WHMCS cron. The module talks to DigitalOcean Spaces over its standard HTTPS API — there is nothing to install on the server and no daemon to run.

How is this different from PD Object Storage?

PD Object Storage is the flagship covering Amazon S3, Cloudflare R2, MinIO and DigitalOcean Spaces in one module. This edition is the same engine focused on DigitalOcean Spaces alone — choose it if that is the only backend you sell, and move up to the flagship if you later add another.

What’s new in 0.1.50

  • Fixed: the Products screen listed nothing when the products were there. It now finds every product this module provisions, whichever billing system you run.

Get your website online with PD Hosting

UK hosting, domains and support from a real team. From a first site to a full server.

Terms and Conditions  ·  Privacy Policy

PD Hosting is the trading name of Projektif Digital Ltd, registered in England and Wales, company number 12482555.

PD Hosting
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.