What is ImpulseDB Postgres, and how does it differ from running Postgres yourself?

ImpulseDB Postgres is the WHMCS module that turns PostgreSQL into a billable product. Two tiers, automated provisioning, backups baked in, audit and CVE pipeline via ImpulseCore.

Last updated 20 days ago

What is ImpulseDB Postgres, and how does it differ from running Postgres yourself?

ImpulseDB Postgres is the WHMCS module that lets you resell managed PostgreSQL to your customers. A customer buys a plan in your storefront, the module provisions the database, and they get a Postgres endpoint, credentials, and a client-area dashboard. You see the fleet β€” provisioning state, usage, backups, CVE exposure β€” from one admin tab.

It is a dependent module of ImpulseCore. Core must be installed and active first; activating ImpulseDB Postgres before Core fails with Class not found: ImpulseCore.

Two tiers, mix and match per plan

ImpulseDB Postgres sells Postgres two ways, and a single install can run both at the same time:

  • Dedicated β€” one fresh VPS per customer. The module calls your VPS provider, runs cloud-init, installs Postgres, attaches DNS, issues Let's Encrypt, and the customer gets a host they don't share. Right for predictable load, compliance-sensitive workloads, or databases too large for a shared pool.
  • Shared β€” multi-tenant on a Postgres host you operate. Each customer gets a database and role on a PgBouncer-pooled cluster. Provisioning takes seconds (a CREATE USER + CREATE DATABASE). Soft isolation via connection caps and per-database storage quota. Right for hobby, small projects, and staging.

Plans declare which tier they use, the instance size or shared server, storage and connection quotas, Postgres version, optional read replica, region, and price.

What you get over rolling your own

You can install Postgres on a VPS yourself. That's not what the module replaces. The module replaces the glue between a Postgres instance and your WHMCS storefront:

  • Provisioning automation. Vultr, Hetzner Cloud, DigitalOcean, and Linode are all first-class. The module picks a provider per server, drives the API, and watches cloud-init through to online.
  • Billing-aware lifecycle. WHMCS suspension, unsuspension, and termination drive the customer's database access correctly. No bespoke hook scripts.
  • Backups baked in. Nightly logical dumps ship by default. WAL-G adds continuous WAL streaming and point-in-time recovery to any S3-compatible target. One-click offsite mirroring if you also run ImpulseMinio.
  • Customer dashboard. Per-database connection details, password rotation, extension management within plan whitelist, backup history, usage.
  • Audit + Security pipeline via ImpulseCore. Every provisioning step, license validation, patch action, and snapshot is logged to Core's audit. The Security tab tracks CVEs against the OS and Postgres itself, and schedules patches with pre-patch snapshots across all four providers.

Licensing gate

ImpulseDB Postgres ships license-gated. Until you verify your IPGRES- key under Tools β†’ License, only the Overview tab is reachable β€” every other tab redirects to the license form with a banner. The Overview tab itself works (including the First-Time Setup checklist) so you can see the addon is alive while you wait for keys to arrive. Once verified, the rest of the addon unlocks immediately.

Where it sits next to Core

On activation, ImpulseDB Postgres registers its manifest with ImpulseCore and auto-discovers its SecurityCollector, SecurityActuator, ServerCollector, and ServerActuator classes. From then on, the cron runner, hook dispatch, project membership, license validation, audit log, and Security & Maintenance pipeline all flow through Core. The module owns its own mod_impulsepostgres_* tables for plans, servers, services, and usage; Core owns the cross-module surface.

Related