Worldstream Manager — Installation Guide
1. What you are installing
Worldstream Manager is a commercial WHMCS suite with two modules that must be installed together:
| Component | Path on the WHMCS server | Role |
|---|---|---|
| Provisioning (server) module | modules/servers/worldstreamv2/ |
Client area + admin service tab dashboard, lifecycle hooks, product Module Settings |
| Addon module | modules/addons/worldstreamv2/ |
License, API accounts, instance list/assign, invoices, activity logs, migration |
System name: worldstreamv2 (chosen so it can coexist with the legacy module named worldstream during cutover).
Important product behaviour
- The Worldstream API does not create new dedicated servers from WHMCS.
Create / assign always links an existing WorldstreamServer IDto a WHMCS service. - API keys live only in the addon Accounts table. They are selected per product via Module Settings — never stored on WHMCS “Servers”.
- The remote resource id is stored only in the admin-only product custom field
serverId|Server ID.
2. Requirements
| Requirement | Minimum |
|---|---|
| WHMCS | 8.x or newer |
| PHP | 8.2+ (with cURL, JSON, OpenSSL) |
| ionCube | v14 and above |
| Outbound HTTPS | To https://www.customerpanel.nl/ (Worldstream API) and https://secure.whmcsmodule.net/ (license) |
| Worldstream account | Customer panel API key (api_id) with access to the servers you will manage |
| License | Valid Worldstream Automation key from WHMCSModule Networks |
Permissions / outbound allow-list
Ensure the WHMCS host can reach:
https://www.customerpanel.nl/api.php— Worldstream REST/RPC APIhttps://secure.whmcsmodule.net/— license verification & version checkhttps://my.worldstream.nl/— optional admin “Console” deep-link (browser only)
4. Fresh installation (step by step)
Step 1 — Upload files
- Upload
modules/servers/worldstreamv2/andmodules/addons/worldstreamv2/to the WHMCS installation. - Confirm file ownership matches your web/PHP user.
- Confirm PHP can read the trees.
Step 2 — Activate the provisioning module
WHMCS discovers server modules automatically when the folder exists. You do not “activate” it like an addon; you attach it to products later.
Optional sanity check: open Setup → Products/Services → Products/Services → Create/Edit a product → Module Settings and confirm Worldstream Manager appears in the module list.
Step 3 — Activate the addon
- Go to Setup → Addon Modules (WHMCS: Configuration → System Settings → Addon Modules).
- Find Worldstream Manager.
- Click Activate.
- Click Configure (or open the addon) and set:
| Addon setting | Purpose |
|---|---|
| License Key | Your WorldStream key from WHMCSModule Networks |
| Default Reverse PTR | DNS suffix used when resetting PTR / replacing provider “worldstream” hostnames (example: clients.yourdomain.tld) |
| Default Notification Address | Email applied automatically for service/traffic monitors (always email method). Never shown or entered in the client or admin provisioning dashboard. |
- Grant admin role access to the addon (tick the admin roles that may use it) and Save Changes.
Step 4 — Add a Worldstream API account
- Open Addons → Worldstream Manager → Accounts.
- Create an account:
- Name — label shown in product Module Settings (e.g.
Production). - API key — Worldstream panel API key (stored sealed with WHMCS
encrypt). - Base URL — leave default unless WHMCSModule support tells you otherwise (
https://www.customerpanel.nl/api.php). - Region — optional label only.
- Name — label shown in product Module Settings (e.g.
- Use Test connection. Success returns a server count from the provider API.
- Keep at least one account Active.
You may add multiple accounts (separate Worldstream customers / keys) and pick per product later.
Step 5 — Set Default Reverse PTR
Still under addon Configure / settings:
- Enter a hostname suffix you control, e.g.
clients.example.com - Reset PTR builds:
static.<d>.<c>.<b>.<a>.clients.example.comfor IPv4a.b.c.d - When the provider returns an rDNS value containing
worldstream, the dashboard displays your default static form instead of Worldstream branding
Do not put a full static hostname in this field — only the suffix.
5. Create a WHMCS product
- Setup → Products/Services → Products/Services → Create a New Product
(or edit an existing dedicated-server product). - Module Settings → Module: Worldstream Manager.
- Configure options (sectioned UI):
| Setting | Recommended |
|---|---|
| API Account | Select the account created in §4 Step 5 |
| Power Off On Terminate | On if you want Terminate to power the server off before clearing the local link |
| Bandwidth Alert % | e.g. 90 (usage notifications / thresholds) |
| Client Power Controls | Show / Hide |
| Client Reinstall | Show / Hide |
| Client Network Tools | Show / Hide |
| Client Notifications | Show / Hide |
| Order Form Styling | Optional cart styling |
- Save the product.
Automatic custom field
Saving Module Settings ensures the admin-only custom field:
serverId|Server ID
- Visible to admins on the service.
- Not shown to clients as a free-text editable field in the client dashboard.
- This is the only place the remote Server ID is stored for the service.
6. Link a service to a Worldstream server
Because the API cannot order new hardware, every live service needs a Server ID.
Option A — Addon Instances (recommended)
- Create the WHMCS order/service for the product (status Pending/Active as you prefer).
- Open Addons → Worldstream Manager → Instances (Servers).
- Locate the unassigned Worldstream server.
- Assign it to the WHMCS service.
- The module writes
serverId, syncs Main IP / username, and logs the assign.
Option B — Manual custom field + Create
- On the service in admin, set Server ID (
serverId) to the Worldstream id. - Run Create / Module Create so
CreateAccountvalidates the server via API and syncs IP.
If Create runs with an empty Server ID, WHMCS returns an error telling you to assign first.
After linking
- Client Area → Service → Overview (and tabs Network, Traffic, Reinstall, Notifications, Logs) load live from the API when the service is Active.
- Non-Active client statuses (Suspended, Terminated, Pending, etc.) collapse the client dashboard and block AJAX.
- Admin → Service → Worldstream Manager tab shows the same dashboard with admin-only extras (Server ID, Console link, IP/uplink block controls).
7. Lifecycle behaviour (what each module action does)
| WHMCS action | Module behaviour |
|---|---|
| Create | Verify Server ID exists at provider; persist field; sync Main IP |
| Suspend | Power off |
| Unsuspend | Power on |
| Terminate | Clear local serverId binding; optional power off (product setting). Does not destroy the server at Worldstream |
| Usage Update | Pull traffic usage into WHMCS bandwidth fields |
Rebuild protection (client + admin) is a local lock that blocks reinstall/rescue until disabled — it is not a Worldstream API lock.
8. Upgrading an existing Worldstream Manager install
- Put WHMCS in maintenance mode if you prefer.
- Overwrite both module folders with the new package files (keep no orphaned old PHP files).
- Open Setup → Addon Modules → Worldstream Manager → Activate/Upgrade path: visiting the addon or re-saving
- Ensures tables/columns exist (including credential
os_name) - Re-seals any plaintext API keys / OS–rescue passwords with WHMCS encryption
- Ensures tables/columns exist (including credential
- Hard-refresh browser assets (CSS/JS are versioned via module version constants).
- Re-test: License page, Accounts → Test connection, one client service Overview.
9. Migrating from legacy module worldstream
Legacy suite: modules/servers/worldstream + modules/addons/worldstream.
New suite: worldstreamv2 (this package).
Before you migrate
- Install and license Worldstream Manager (
worldstreamv2) completely (§4). - Create API Accounts in the new addon (keys are not copied from the legacy addon).
- Set Default Reverse PTR (migration can also seed from legacy
dnsvaluewhen present). - Keep the legacy modules installed until cutover finishes (products still reference
servertype = worldstream).
Run migration
- Open Addons → Worldstream Manager → Migration.
- Review listed products still on the legacy module.
- Choose the target API account (and PTR if prompted).
- Prefer Dry run first, then migrate for real.
- Migration will typically:
- Switch product
servertypetoworldstreamv2 - Write Module Settings (account, PTR-related options)
- Ensure
serverId|Server ID - Relink legacy
serveraccesshash/ access hash →serverIdfor live services
- Switch product
After migration
- Open a migrated service → confirm Overview loads.
- Confirm client feature toggles on the product.
- When all products/services are cut over, deactivate/remove the legacy
worldstreamaddon/server modules only if you no longer need them.
10. Troubleshooting
| Symptom | What to check |
|---|---|
| Addon activate error mentioning server module | Upload modules/servers/worldstreamv2/ before activating the addon |
| Addon pages redirect / blocked except License | License inactive, wrong key, or outbound block to secure.whmcsmodule.net |
| “Add an API account…” in product settings | Create an active account under Addon → Accounts |
| Create fails / empty Server ID | Assign via Instances or set custom field first |
| API errors / empty lists | Key permissions, wrong account, or firewall to customerpanel.nl |
| PTR reset fails | Default Reverse PTR empty or invalid hostname suffix |
| Client sees blank dashboard | Service status not Active |
Useful WHMCS locations:
- Utilities → Logs → Module Log (filter
worldstreamv2) - Addons → Worldstream Manager → Logs (module activity)
- PHP error log / WHMCS activity log for activate failures
11. Uninstall / deactivate
- Deactivate the addon under Addon Modules. Tables are kept by design (no destructive drop on deactivate).
- Detach products from the Worldstream Manager module or switch them to another module.
- Remove the two module folders if you are fully retiring the product.
- Optionally drop
mod_worldstreamv2_*tables only after a verified backup and when you no longer need historical data.
12. Quick reference — addon navigation
| Page | Use |
|---|---|
| Dashboard | High-level stats |
| Accounts | Multi API keys (create / edit / test / delete) |
| Instances | Provider server list + assign to WHMCS services |
| Invoices | Open Worldstream invoices / pay with balance (API-supported) |
| Logs | Module activity |
| Migration | Legacy worldstream → worldstreamv2 product cutover |
| License | Key entry, status, re-verify |