License Management
Renew, rotate, and manage SoxAI self-hosted licenses
License Management
Your SoxAI installation is governed by a .lic file. This page covers how to check license status, rotate a license, and — for resellers — how to issue licenses to your own customers.
Checking License Status
In the admin console, go to Admin → License. The page shows:
| Field | Description |
|---|---|
| Serial | Unique identifier for this license |
| Tier | Current tier (community, trial, pro, etc.) |
| Expiry | Date the license expires — blank for perpetual |
| Users / Channels / Tenants | Current usage vs. limit for this tier |
The page also shows a usage bar for each capacity dimension so you can see how close you are to the limits.
If your tier is Community or Trial, an upgrade prompt is shown at the top. Contact us to move to a paid tier.
Renewing or Upgrading a License
When your license expires or you need a higher tier:
- Email [email protected] with your current serial number
- We will issue a new
.licfile and send it to your registered email - Follow the rotation steps below to apply it without downtime
Rotating a License (Zero-Downtime)
You do not need to restart the server to apply a new license. Use the upload UI in the console:
- Go to Admin → License
- Click Upload License File
- Select your new
.licfile - The server validates and applies it immediately
Alternatively, use the CLI:
soxai-cli license rotate \
--api=https://api.yourdomain.com \
--token=<admin-api-token> \
--file=./new-license.licThe old license remains active until the new one is successfully validated, so there is no gap in service.
Trial Expiry
When a Trial license expires, the gateway continues to serve existing requests until the grace period ends (typically 24 hours). After the grace period:
POST /v1/chat/completionsand all other/v1/endpoints return503 Service Unavailable- The admin console remains fully accessible so you can upload a new license
To avoid downtime, rotate your license before the expiry date shown on the License page.
Reseller: Issuing Licenses to Customers
If your account has reseller privileges, you can sign and distribute licenses to your own customers directly from the console — without going through SoxAI support.
Issuing a New License
- Go to Admin → Reseller Licenses
- Click Issue License
- Fill in the form:
| Field | Required | Description |
|---|---|---|
| Company | Yes | Customer's organization name |
| Contact Email | Yes | Customer's email address |
| Tier | Yes | Any tier available to your reseller account |
| Expires | No | Leave blank for the tier default, or set a custom date |
- Click Issue License
A one-time Download Token is displayed immediately after issuance. Copy it now — it is not shown again. Share this token with your customer; they use it at https://soxai.io/self-hosted/download?token=<token> to download their license bundle.
Managing Issued Licenses
The Reseller Licenses table lists all licenses you have issued:
| Column | Description |
|---|---|
| Company | Customer name |
| Contact | Customer email |
| Tier | License tier |
| Status | issued (active) or revoked |
| Issued | Date the license was signed |
To revoke a license — for example when a customer's subscription ends — click the trash icon on that row. The license file itself remains on the customer's server, but the download token is invalidated and the customer cannot request a replacement bundle.
Revoking a license does not remotely disable the running installation. To enforce termination you will need to coordinate with the customer to remove the license file from their server.
License File Security
The .lic file is signed with an Ed25519 key. It cannot be forged or modified without breaking the signature. However, treat the file like a credential:
- Store it outside the Docker build context (never commit it to git)
- Mount it as a read-only volume:
./soxai.lic:/data/soxai.lic:ro - Rotate immediately if you suspect the file has been leaked
Frequently Asked Questions
Can I run the same license on multiple servers? The license file itself does not enforce a single-server restriction, but the usage limits (users, channels, tenants) apply to the installation that loads the file. Running the same license on two separate installations counts capacity independently on each.
What happens if the license file is missing at startup?
The server starts but all /v1/ endpoints return 503. The admin console is accessible so you can upload a license file.
Can I get a new download link if I lost the original? Yes. Email [email protected] with your registration email and serial number. For reseller-issued licenses, the reseller can issue a new one from the console.