Skip to content

Each client/stadium has its own license key generated with its own LICENSE_SECRET. Do not reuse the same key across different targets.

Procedure (1 min)

On your Mac (not on the server):

bash
cd zerolatency-live-player-keygen

# Choose a strong secret for the HMAC
export LICENSE_SECRET="olimpico-live-$(openssl rand -hex 16)"

# Generate the key
npx tsx src/generate-license.ts "Stadio Olimpico" 2027-12-31

Expected output:

🔑 License Key generated:

   OLIMP-U3RhZGlvIE9saW1waWNv-20271231-a1b2c3d4

   Client: Stadio Olimpico
   Expires: 2027-12-31
   Issued:  2026-07-22

Save LICENCE_SECRET and LICENSE_KEY — both are needed in the server configuration (.env, see Deploy).

Key format

5-segment format: OLIMP-[client base64]-[issued]-[expiry]-[HMAC signature], with included issue date.

HMAC secret

  • Default (development/test): hardcoded secret shared with the backend as a fallback
  • Production (recommended): set LICENSE_SECRET on both the keygen and the backend

⚠️ The secret MUST be identical between generator and backend, otherwise validation fails. Without a valid LICENSE_KEY the backend does not start in production.

Best practices

  1. Isolated machine: keep the keygen on an offline machine or with restricted access
  2. Unique secret: generate a strong HMAC secret and set it via LICENSE_SECRET
  3. Do not commit the secret: do not put LICENSE_SECRET in committed files

→ Module details: License Keygen

© 2026 Zerolatency — All Rights Reserved