ImpulseCore
Installation & activation
ImpulseCore is the shared addon every Impulse module depends on. Install it first — modules don’t work until Core is present and active.
Time: ~5 min · Requires: WHMCS 9.0+ · Cost: Free
1. Prerequisites
Section titled “1. Prerequisites”- WHMCS 9.0 or later on PHP 8.2, 8.3 or 8.4.
- ionCube Loader 13+ for your PHP version. Core’s PHP files are ionCube-encoded.
- A cron job on the WHMCS server — you’ll add one Core cron line (crontab, or your panel’s scheduled tasks).
- MySQL or MariaDB — whatever WHMCS is already using. Core uses the WHMCS database connection and creates its own
mod_impulsecore_*tables.
Core needs no provider credentials, SSH keys or DNS provider to install. Modules that create servers can later share one set of VPS provider credentials that you enter once under Operations → VPS Providers in Core.
2. Upload the files
Section titled “2. Upload the files”Download ImpulseCore from the license portal — it is listed as a required download once you have an active module license. Extract the release archive into the WHMCS root:
cd /path/to/whmcsunzip /tmp/impulsecore-<version>.zipYou’ll get this layout:
whmcs/└── modules/addons/impulsecore/ ├── impulsecore.php ← Addon entry point ├── impulse_module.json ← Core's self-manifest ├── hooks.php ← WHMCS hooks Core listens to ├── cron/runner.php ← Cron runner entry point ├── lib/ ← Facade, licensing, cron, audit, security └── templates/ ← Client-area templatesMake sure the WHMCS web user can read everything — on Plesk that’s the subscription owner; on cPanel the cPanel user; on a vanilla LAMP typically www-data.
3. Activate the addon
Section titled “3. Activate the addon”- Log in to WHMCS Admin.
- Go to System Settings → Addon Modules.
- Find ImpulseCore in the list and click Activate.
- Set Access Control → Full Administrator (or whichever admin role(s) should see the addon).
- Click Save Changes.
4. Install the Core cron
Section titled “4. Install the Core cron”ImpulseCore runs its own cron runner that dispatches every registered module’s tasks (provisioning polls, usage syncs, lifecycle grace windows, the Security & Maintenance pipeline, audit retention). One crontab line covers everything:
# ImpulseCore — cron runner (every 5 minutes)*/5 * * * * /usr/bin/php /path/to/whmcs/modules/addons/impulsecore/cron/runner.phpReplace /usr/bin/php with your PHP 8.x CLI binary (Plesk: /opt/plesk/php/8.3/bin/php; cPanel: /opt/cpanel/ea-php83/root/usr/bin/php; generic LAMP: usually /usr/bin/php) and /path/to/whmcs with your WHMCS install dir. Add it to the crontab of the user that owns the WHMCS files. The exact line for your server, with the PHP binary detected, is shown in Core under Operations → Cron → Automation & Setup.
5. Verify Core is healthy
Section titled “5. Verify Core is healthy”Open the addon (Addons → ImpulseCore). The Overview tab shows:
- Stat cards — modules registered and active, projects, services tracked, hook subscriptions and cron tasks. On a fresh install ImpulseCore itself is the one registered module.
- Recent failures — unacknowledged error and critical events from the audit log. Empty on a healthy install.
- Activity (last 24h) — cron runs by status and audit entries by level. After the first cron tick you’ll see Core’s own tasks running.
Then check:
- Operations → Cron → Automation & Setup reads “Cron is running” with a recent last tick.
- Operations → Audit has the activation event.
- Security → CVE feed health — once the hourly feed task has run, this shows the freshness of the three upstream feeds (Ubuntu USN, CISA KEV, NVD).
6. Now install your modules
Section titled “6. Now install your modules”With Core in place, you can activate the modules you bought. Each module’s activation:
- Points Core at its
impulse_module.jsonmanifest withImpulseCore::registerModule(), which records it inmod_impulsecore_modules. - Has Core check the module’s minimum Core version — a module that needs a newer Core is held until you update Core.
- Activates it with Core, which installs the module’s hook handlers, cron tasks and lifecycle handler from its addon directory.
- Leaves its
SecurityCollector/SecurityActuatorclasses inlib/Security/for Core to find when the Security pipeline runs.
The module then shows as active under Modules & Licensing → Modules. Paste its license key under Modules & Licensing → Licenses — see Licensing.