WHMCSModule Networks
AUTOMATION PLATFORM ...
Article Guide

Module Installation for Hetzner Storage Box for WHMCS

Hetzner Modules 26 Jul 2025 By Ankita
Home / Docs / Module Installation for Hetzner Storage Box for WHMCS

Installation - Hetzner Storage Box for WHMCS

Requirements
  • WHMCS 8.x or later
  • PHP 8.2+
  • cURL extension enabled
  • Ioncube v14 and above
  • A Hetzner account with Storage Box API access (Bearer token, generated from the Hetzner Cloud Console)
1. Upload

Copy the contents of the deliverable zip's modules/ folder into your WHMCS root, merging with the existing modules/ directory:

modules/servers/hetzner_storage_box/
modules/addons/hetzner_storage_box/

Both modules must be present on disk before the next step — the addon's activation check refuses to run until it finds the provisioning module's classes.

2. Activate the addon

WHMCS Admin → Configuration → Addon Modules → find Hetzner Storage Box ManagerActivate.

Activation creates the shared database tables used by both modules. No separate activation step exists for the provisioning module — WHMCS provisioning modules are just files; they become available the moment you select them on a product.

After activating, grant the addon permission to the admin roles that should manage it (Configuration → Addon Modules → the same row → Configure/Access Control), then open it from the admin sidebar.

3. Enter your license key

The addon is gated behind a license key, Open Addons → Storage Box Manager → License, paste the key issued at purchase, and save. Nothing else in the addon is reachable until this shows Active.

4. Add an API account

Addons → Storage Box Manager → Accounts → add a name and the Hetzner API Bearer token for the Hetzner customer account you want to provision from. You can add more than one account (e.g. separate Hetzner customer accounts for different resellers) — each WHMCS product picks one via its own config option.

Use Test on the row to confirm the token works before assigning it to a live product.

5. Create or configure a product

WHMCS Admin → Products/Services → Products/Services → create a new product (or edit an existing one) with Module Name set to Hetzner Storage Box Manager.

On the Module Settings tab, configure:

Setting Notes
API Account Which account (from step 4) this product provisions through
Storage Box Type Loaded live from Hetzner once an account is selected
Location Fallback only — the customer's own Location choice at order time (a Configurable Option, generated the first time you save the product) takes priority
Price Markup % Applied on top of Hetzner's own price when this product's prices are synced
Default Access: Samba / SSH / WebDAV / ZFS / Reachable Externally Protocol state a new Storage Box is created with
On Terminate Delete the Storage Box at Hetzner, or leave it and just unlink the service
On Suspend Revoke all protocol access, or take no action
Show Tab: Snapshots / Subaccounts / Access Settings / Provider Actions Per-product dashboard tab toggles
Client May: Manage Snapshots / Manage Subaccounts / Change Access Settings / Reset Password / Rename / Manage Snapshot Plan Per-product client-area capability toggles (admins always retain full access regardless of these)
Order Form Styling Restyles the order form to match the module's own dashboard look
Reference Prefix Used to name newly-created Storage Boxes, e.g. sb-482

Save the product once — this auto-creates the admin-only custom field (storageBoxId | Storage Box ID) every service of this product uses to remember which Hetzner Storage Box it owns, and generates the Location configurable option customers see at checkout.

How linking works

The custom field created in step 5 is the ONLY place a service's Storage Box id is stored. It's populated automatically the first time the service is provisioned. To link an existing, already-created Storage Box to a service instead (migrating in a box you created outside WHMCS, for example), go to Addons → Storage Box Manager → Storage Boxes, find the box, and use Assign to enter the WHMCS service id — Unassign reverses it without touching anything at Hetzner. Every dashboard action — client area or admin — resolves the box id from this field alone; nothing is ever accepted from the request itself.

Uninstalling

Deactivating the addon (Configuration → Addon Modules → Deactivate) preserves all stored data — API accounts, activity history, everything. To remove data permanently, drop these tables manually after deactivation:

Then remove the modules/servers/hetzner_storage_box/ and modules/addons/hetzner_storage_box/ directories. Removing files without dropping tables (or vice versa) is safe — WHMCS just stops seeing the module.

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