Skip to content
Impulse SoftwareDOCS
Get modules

ImpulseDB Postgres

Installation & activation

Upload the module, activate the addon, and add a license key. ImpulseDB Postgres is fully license-gated — until your key is verified, only the Dashboard tab and Diagnostics → License work, and orders are refused.

Time: ~10 min · Requires: WHMCS 9.0+ · PHP 8.2–8.4 · ImpulseCore 1.61.13+

  • WHMCS 9.0 or later on PHP 8.2, 8.3 or 8.4.
  • ImpulseCore 1.61.13+ — the shared Impulse addon. ImpulseDB Postgres depends on it for licensing, project membership, hook dispatch, the cron runner, audit, and the Security & Maintenance pipeline. Install and activate impulsecore before activating ImpulseDB Postgres.
  • ionCube Loader 13+ for your PHP version. The distributed module files are encoded.
  • File access to the WHMCS server to upload the release, and ideally a system cron entry for ImpulseCore’s cron runner (step 6).
  • A VPS provider account with an API token that can create and destroy servers: Vultr, Hetzner Cloud, DigitalOcean, Linode, Amazon EC2, Microsoft Azure, Google Cloud, or Proxmox VE.
  • A DNS provider account — Cloudflare (recommended), AWS Route 53, DigitalOcean, Vultr, Linode or Hetzner DNS. Used for per-server and per-database hostname records and Let’s Encrypt DNS-01 challenges.

You do not need an SSH key. Database servers are managed through a scoped Admin Proxy on each server. SSH is a HIGH RISK break-glass option that is off by default (Settings → General & Access → Break-Glass Access); turn it on only for rescue work.

Extract the release archive into the WHMCS root:

Terminal window
cd /path/to/whmcs
unzip /tmp/impulsepostgres-<version>.zip

You’ll get the standard layout: modules/servers/impulsepostgres/ for the server module, modules/addons/impulsepostgres_addon/ for the admin UI, and includes/hooks/impulsepostgres_hooks.php. There are no cron scripts to install — the module’s background tasks are registered with ImpulseCore’s cron runner:

  • provision — every 2 minutes, advances every in-flight resource (dedicated servers, shared servers, replicas) through setup → DNS → Let’s Encrypt → online.
  • usage — hourly, samples database size and connections, enforces storage quotas, takes a pg_dump backup of every active database, and prunes expired backups.
  • alert_detection — hourly, flags oversold capacity, stalled tasks, provisioning failures, an expiring license and self-signed certificates.
  • pg_upgrade — every 5 minutes, runs PostgreSQL major-version upgrades customers requested and you approved.

Make sure the WHMCS web user can read everything, then move on.

  1. System Settings → Addon Modules.
  2. Find ImpulsePostgres in the list and click Activate.
  3. Set Access Control → Full Administrator (or whichever admin role(s) should see the addon).
  4. Click Save Changes.

Licensing is handled by ImpulseCore:

  1. Open Addons → ImpulseCore → Modules & Licensing → Licenses.
  2. Paste your license key (starts with IPGRES-) into the ImpulsePostgres row.
  3. Click Save. ImpulseCore validates the key against the licensing server and records your WHMCS install’s domain the first time it validates — you don’t enter the domain anywhere.
  4. The row shows the license as active, with the registered domain. In the addon, Diagnostics → License shows the same status, tier and features, with a link back to ImpulseCore.

A successful check is cached for 24 hours. If the licensing server can’t be reached, the license keeps working for a 7-day grace period.

Back on the Dashboard, the First-Time Setup panel detects what’s configured and what’s missing, and marks which steps are required. Each item links straight to the right form. The main ones:

  • License key.
  • WHMCS server IP (so the firewall and pg_hba.conf on each database server admit the WHMCS host).
  • VPS provider connection — see the providers guide for the per-vendor steps.
  • DNS hostname template, DNS provider and Let’s Encrypt email.
  • Plans configured (and, optionally, synced to WHMCS).
  • Provisioning cron and usage & backup cron — these read ImpulseCore’s cron status and link to it.
  • Break-glass SSH keys — only required if you turn break-glass SSH on.

The panel hides itself once every item is done.

The module has no crontab lines of its own. Its tasks run whenever ImpulseCore’s runner ticks. Open ImpulseCore → Operations → Cron → Automation & Setup for the exact line to add to the system crontab — it runs modules/addons/impulsecore/cron/runner.php every 5 minutes with your PHP binary:

*/5 * * * * /usr/bin/php /path/to/whmcs/modules/addons/impulsecore/cron/runner.php

Replace /usr/bin/php with your PHP binary (see the ionCube check above) and /path/to/whmcs with your install directory.