-
released this
2026-05-08 15:19:21 -04:00 | 3 commits to main since this releaseFeatures
install.shhelper script withinstall/upgrade/checksubcommands. Single-file POSIX bash script that handles both first-time installation and upgrades, auto-detects the WHMCS web user from the parent directory's ownership and applies it to new files via rsync--chown, optionally syncs the PowerDNS reverse-DNS addon (--with-addon), accepts a pinned version (--version v1.4.1, default: latest published release), preserves any customconfig/ConfigOptionMapping.phpacross the rsync--delete, and writes a.installed-versionmarker so thechecksubcommand can report installed-vs-latest without making changes. Pipeable via curl or wget. Exit codes forcheck(0=current, 1=outdated, 2=not installed) make it usable as a cron-driven update monitor. Closes the long-standing pitfall where rsyncing as root left files owned byroot:rootand the web server couldn't read them — the classic "module installed but invisible in WHMCS" symptom.
Bug Fixes
- Release workflow now force-publishes new releases to non-draft and marks them
--latest.softprops/action-gh-release@v2has a long-standing intermittent bug where it creates a release as a draft and silently fails to flip it to published, despite reporting success. v1.4.0, v1.4.1, and v1.4.2 all shipped as drafts because of this — meaning the GitHubreleases/latestAPI returned v1.3.0, the install snippets and the newinstall.shwould all download v1.3.0, and users would never get the storage-type-code fix even after running the documented upgrade. Added amake_latest: 'true'input to the action and a follow-upgh release edit --draft=false --lateststep that runs unconditionally as a safety net. v1.4.0/1/2 were manually re-published as a one-off cleanup.
Documentation
- README install/upgrade sections rewritten to feature the
install.shscript as the primary path (with bothcurlandwgetexamples), with the manual rsync recipe preserved in collapsible<details>blocks for users who prefer not to pipe scripts to bash. The manual recipe also gained astat -c '%U:%G'ownership probe and--chown="$OWNER"flag, fixing the same root-owned-file pitfall the script handles automatically.
Full Changelog: v1.4.2...v1.4.3
Downloads