Licenses and Downloads
Find your license, retrieve releases, understand installation binding, and move a license safely.
Your software license connects a purchased service to a CMS installation. It also identifies the paid modules available to that installation.
Find your key
- Sign in to the portal and open Services.
- Select the software license service.
- Find License Key, then copy the key using its copy button.
- Review the status, expiry information, enabled modules, and Bound to values.
A service without an issued key may still be awaiting payment settlement or license issuance. Check its invoice and contact support if the invoice is paid but the key remains absent.
Download a release
In the same service, find Software Downloads. Review the version, release notes, file size, and SHA-256 checksum, then select Download. Prefer the stable release marked latest unless you intentionally need a prerelease.
Downloads use short-lived signed links. If a saved link expires, refresh the downloads list and obtain a new link. Keep the downloaded archive and its checksum with your deployment records; do not publish the signed URL or license key.
On Linux, compare the downloaded archive's checksum with the displayed value:
sha256sum brad-cms-release.zipIf the values differ, discard that copy and download again before installing. An empty release list can mean the product has no published release; a loading error should be reported as an error rather than treated as an empty catalog.
Understand installation binding
The license can be locked to a domain, IP address, and installation directory. The first successful remote activation establishes applicable bindings. Server moves, changes to outbound IP, a different working directory, or a new hostname can require reissue.
The licensing server evaluates the source IP it observes. That can be the server's outbound NAT address rather than the website's inbound address. Preserve the application's working directory when updating in place.
Reissue before moving
For an active license with reissues remaining:
- Prepare a backup and the destination infrastructure.
- Stop the old installation before activating the destination.
- Open the license service and select Reissue License.
- Enter the new bare hostname if known, such as
app.example.com; omit the protocol and paths. - Confirm the reissue, then activate or revalidate the destination with the existing key.
Reissue keeps the key, clears the IP and directory locks, resets first-bind tracking, and uses one of the allowed reissues. A supplied hostname sets the new domain binding. If the domain is cleared, the next remote check can claim it.
The dialog pre-fills the current domain. Replace it for a domain move, or explicitly clear it if you want the next check to choose the domain. Do not leave the old installation running while expecting an unbound license to activate only on the new server.
If the reissue limit is exhausted or the license is not active, contact support. Reissue does not migrate the database, copy uploads, change DNS, or update the CMS public URL.
Connectivity and cached validation
The CMS accepts a valid signed local response as fresh for 15 days. If a remote check fails because the server is unreachable, an eligible cached Active response can be used for up to five additional days. A fresh install needs a successful remote validation; the cache is not a substitute for initial activation.
The grace behavior requires a valid cache matching the installation. It does not turn an expired or suspended license into an active one and does not bypass domain, IP, or directory mismatches.
Production CMS installations always contact https://www.brad.software. They verify responses with a built-in public key; customers do not need a shared signing secret.
Module entitlement changes
The license response carries purchased module entitlements. Changes are reflected when the CMS performs a subsequent successful license check; a fresh local cache can delay that check. Confirm the purchase in the portal and review the CMS module state rather than assuming checkout instantly changes every open session.
Continue with module planning or maintenance and migration.