WHMCSModule Networks
AUTOMATION PLATFORM ...
Article Guide

Module Installation for Hetzner Cloud VPS Servers for WHMCS

Hetzner Modules • 29 Apr 2025 • By Ankita
Home / Docs / Module Installation for Hetzner Cloud VPS Servers for WHMCS

Written so you never need to open a support ticket. Every step says what to click, what you should see afterwards, and what to do if you see something else.

Hetzner Cloud Manager is two modules that work together:

  • a provisioning (server) module that creates servers and runs the per-service dashboard your customers use, and
  • an addon module that gives you a central panel for API accounts, servers, products and Project-wide resources.

Install both. The addon will not activate without the provisioning module.


Before you start
You need Notes
WHMCS 9.x or newer Older versions are supported, if satisfied with PHP and Ioncube requirements.
PHP 8.2 or newer With cURL, JSON and OpenSSL enabled — a standard WHMCS host has these.
Ioncube Ioncube v14 at minimum.
Outbound HTTPS To api.hetzner.cloud and to the licensing server.
A Hetzner Cloud account With at least one Project.
Module license key Supplied with your purchase.

Step 1 — Upload the files

Upload these two folders into your WHMCS installation, keeping the names exactly as they are:

/modules/servers/hetzner_cloud_vps/
/modules/addons/hetzner_cloud_vps/

Check it worked: browse to System Settings → Products/Services → Servers → Add New Server. "Hetzner Cloud Manager" should appear in the Module dropdown.

"Hetzner Cloud Manager" is not in the list The upload is incomplete, or a folder was renamed. The folder name is part of how WHMCS finds the code — hetzner_cloud_vps cannot become hetzner-cloud-vps or hetznercloud. Re-upload and confirm modules/servers/hetzner_cloud_vps/ and modules/addons/hetzner_cloud_vps/ directory and its content exists.


Step 2 — Activate the addon

System Settings → Addon Modules → find Hetzner Cloud Manager → Activate.

Then tick the admin roles that should see it and Save Changes.

Check it worked: an Addons → Hetzner Cloud Manager menu item appears.

"The Hetzner Cloud Manager provisioning (server) module must be installed before this addon can be activated."

"Activation failed: …" The database user could not create the module's tables. Give it CREATE permission on the WHMCS database and activate again.


Step 3 — Enter your license key

Open Addons → Hetzner Cloud Manager. Until the key is accepted, the License page is the only page you can reach — this is normal.

Paste your key and click Activate.

Check it worked: the status reads Active and the navigation appears.

"License verification could not be completed. Please try again." Check for a copied space at either end. The key is tied to the domain and directory WHMCS runs in; if you have moved or renamed the installation, ask for a licence reissue.

"Unable to reach the license server. Check outbound HTTPS connectivity from this server, then try again." Your host is blocking outbound HTTPS.


Step 4 — Connect your Hetzner Cloud Project
4a. Create the API token in Hetzner
  1. Sign in at console.hetzner.cloud.
  2. Choose the Project you want WHMCS to provision into.
  3. Security → API Tokens → Generate API Token.
  4. Give it a description and choose Read & Write.
  5. Copy the token now — Hetzner shows it once.

Read-only will not work. The module has to create and delete servers.

4b. Add it to WHMCS

Addons → Hetzner Cloud Manager → Accounts → Add Account:

Field What to enter
Name Anything recognisable, e.g. Production — Nuremberg. This is what you pick in product settings.
API Token The token from 4a.
Active Leave ticked.

Save, then click Test Connection on the new row.

Check it worked: a green success message.

"Unauthorized" The token was mistyped, is read-only, or has been revoked in Hetzner. Create a fresh one and paste it over the old one.

"Unable to reach Hetzner Cloud API" Your host cannot reach api.hetzner.cloud. Ask them to allow outbound HTTPS.

Add one account per Hetzner Project. Tokens live in the module's own table and are never stored on a WHMCS server record.

How the token is protected. It is stored in an encrypted format within WHMCS. You will never see it again in full after saving — that is deliberate. Keep your own copy in a safe place at your own risk; if you lose it, generate a fresh one in Hetzner and paste it over the old one.

To change a token later: open the account row, paste the new token, save. Leaving the field blank keeps the existing one — blank never means "erase".

Isolating customers: a Hetzner token can reach everything in its Project. If you need hard separation between customers, use a separate Project — and therefore a separate account row — for each.


Step 5 — Create your first product
The fast way — import from the catalog

Addons → Hetzner Cloud Manager → Products. Pick your account and location. You will see every server type Hetzner sells there, with its monthly price, included traffic and overage rate.

Click Import as Product on the plan you want, choose a product group, and confirm. WHMCS creates the product, prices it, and sets up its options.

The product description is filled in for you — vCPU, RAM, disk and the plan's included traffic — but only when it is empty, so anything you write is never overwritten.

The manual way

System Settings → Products/Services → Create a New Product → set Module Settings → Hetzner Cloud Manager → fill in the sections below → Save Changes.

What the settings mean
Section Setting What it does
Provisioning Account Which Hetzner Project this product provisions into.
Location Where new servers are created. Save, then reopen the tab so Server Type reloads for that location.
Server Type The plan. Price and availability differ by location.
Operating System The default image, used when the customer is not offered a choice.
Pricing Price Markup (%) Added to the provider price when pricing is written.
Client Area Features one switch each Every tab and button. See Step 7.
(every setting) ⓘ Hover the information icon beside any setting for what it does and when to change it.
Provisioning Defaults Hostname Prefix Names new servers <prefix>-<location>-<service id>. Leave blank to use the domain the customer entered on the order.
Placement Group Places new servers in a Hetzner placement group. Create groups in the addon's Resources page; they appear here automatically.
Volume Filesystem xfs or ext4, written to an ordered volume before it is attached.
Private Network Range CIDR used when an order includes a private network. Default 10.0.0.0/16; a /24 subnet is created inside it.
Reverse DNS Domain Builds static.<reversed-ip>.clients.<domain> for the new server's IPv4 and any floating IP. Leave blank to skip.
Lifecycle On Suspend Power off (hard) · Shutdown (ACPI, guest may refuse) · Leave running.
On Terminate Delete the server · Power off and keep the server.
Plan Change Billing Leave it to WHMCS (standard behaviour) · Charge the difference for the remaining days.
Paid Add-ons Snapshots · Backups · Volumes · Floating IPs · Private Networks These cost money at Hetzner, so they stay off until you switch them on.

The Server Type dropdown is empty Save the Location first, then reopen the tab. The list is fetched for the saved location, not the one you just picked.

A dropdown says "Select an Account above and save to load images" Choose an account, save, and reopen.

Part 2 of Hetzner Cloud Module Installation for WHMCS

Have Questions About This Article?

Our dedicated support engineers are available 24/7 to assist with your configuration.

Contact Support Client Area
Hello!
Swity AI Assistant