Skip to content
Impulse SoftwareDOCS
Get modules

ImpulseDB Postgres

Provider credentials

API token setup for Vultr, Hetzner Cloud, DigitalOcean, and Linode. Permission scopes, where to paste them, and per-provider gotchas.

The module supports eight providers — Vultr, Hetzner Cloud, DigitalOcean, Linode, Amazon EC2, Microsoft Azure, Google Cloud and Proxmox VE — and picks one per server at provision time. You can configure several and use whichever is cheapest in each region. Credentials go under Settings → Providers & Regions; each provider’s panel has a How to get this section with the exact permissions, and a Test … Connection button. A provider left blank here falls back to the credentials stored centrally in ImpulseCore → Operations → VPS Providers.

You don’t need to upload SSH keys to any provider. Servers are managed through a scoped Admin Proxy; the provider SSH key fields only appear if you turn on HIGH RISK break-glass SSH (Settings → General & Access).

  1. Vultr Customer Portal → Account → API.
  2. Click Enable API if it’s off, then copy the displayed Personal Access Token. The default token has full access; a scoped sub-user token needs manage_instances, manage_ssh_keys, and manage_dns (only if you also use Vultr for DNS).
  3. Add your WHMCS server’s IP to the Access Control list under Account → API (or allow all). Vultr restricts API access by IP — calls from any other IP are rejected.

Settings → Providers & Regions → Vultr: paste the API key and choose a default region (and optionally a fallback region). Click Test Vultr Connection to confirm the addon can reach the API.

  1. Hetzner Cloud Console → pick (or create) a project → Security → API Tokens.
  2. Click Generate API Token. Choose Read & Write scope (the addon creates / destroys servers).
  3. Copy the token immediately — Hetzner only shows it once.

This is the Hetzner Cloud token. If you use Hetzner DNS, that uses a separate token from Hetzner’s DNS console.

Settings → Providers & Regions → Hetzner: paste the API token and choose a default region. Click Test Hetzner Connection.

  1. DigitalOcean Control Panel → API → Tokens.
  2. Click Generate New Token. Grant Read and Write. Set the expiration to No expiry (or a long expiry; rotate before it lapses) — if the token expires, provisioning stops working.
  3. Copy the token immediately — DigitalOcean only shows it once.

Settings → Providers & Regions → DigitalOcean: paste the API token and choose a default region. Click Test DigitalOcean Connection.

  1. Linode Cloud Manager → Profile → API Tokens → Create a Personal Access Token.
  2. Grant Read/Write on Linodes, Volumes, StackScripts (used to deliver the server setup) and IPs (reverse DNS); add Domains Read/Write only if you use Linode DNS. Everything else can stay at No Access.
  3. Set expiration to Never or a long expiry.
  4. Copy the token. Save it — Linode only shows it once.

Linode can’t add scopes to an existing token. If one is missing, create a new token with all the scopes, save it in the addon, then revoke the old one.

Settings → Providers & Regions → Linode: paste the API token and choose a default region. Click Test Linode Connection.

  • Amazon EC2 — an IAM user’s Access Key ID and Secret Access Key, with the least-privilege policy shown in the panel’s help.
  • Microsoft Azure — a service principal: Subscription ID, Resource Group, Tenant ID, Client ID and Client Secret.
  • Google Cloud — a Project ID and a service-account JSON key.
  • Proxmox VE — the API URL, an API token, the default node, and the storage that holds cloud-init snippets.

Pre-patch snapshots (see Security & Maintenance) are available on Vultr, Hetzner, DigitalOcean, Linode and Proxmox VE, not on EC2, Azure or Google Cloud.