SoxAIDocs
Self-Hosted

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:

FieldDescription
SerialUnique identifier for this license
TierCurrent tier (community, trial, pro, etc.)
ExpiryDate the license expires — blank for perpetual
Users / Channels / TenantsCurrent 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:

  1. Email [email protected] with your current serial number
  2. We will issue a new .lic file and send it to your registered email
  3. 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:

  1. Go to Admin → License
  2. Click Upload License File
  3. Select your new .lic file
  4. 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.lic

The 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/completions and all other /v1/ endpoints return 503 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

  1. Go to Admin → Reseller Licenses
  2. Click Issue License
  3. Fill in the form:
FieldRequiredDescription
CompanyYesCustomer's organization name
Contact EmailYesCustomer's email address
TierYesAny tier available to your reseller account
ExpiresNoLeave blank for the tier default, or set a custom date
  1. 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:

ColumnDescription
CompanyCustomer name
ContactCustomer email
TierLicense tier
Statusissued (active) or revoked
IssuedDate 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.