Licensing & billing
Temper is self-hosted in every tier. A license is a single signed file that unlocks Pro features in your dashboard — there is no SaaS control plane, no account system, and no phone-home. This page covers buying, installing, renewing, and cancelling.
Buying Pro self-serve
Go to temper.codes/buy, enter your organization name and the vCPU count under management, and pay by card through Stripe. The license is issued the moment payment completes and shown on the confirmation page. Bookmark the confirmation link — it doubles as your credential for re-downloading the current license and opening the billing portal at temper.codes/manage.
Prefer an invoice, purchase order, or bank transfer? Email [email protected].
What the license file is
A one-line file, conventionally named license.temper:
base64(payload-json).base64(ed25519-signature)
The payload records your organization, tier, licensed vCPU capacity, and expiry. The dashboard verifies the Ed25519 signature against public keys compiled into the release binary — verification is entirely offline. Licensed capacity is displayed against measured vCPUs under management; it is never enforced.
Installing the license
# 1. Create a Secret holding the file (key name must be license.temper)
kubectl -n temper create secret generic temper-license \
--from-file=license.temper=./license.temper
# 2. Point the dashboard at the Secret
helm upgrade temper oci://ghcr.io/byte-lab/charts/temper \
--reuse-values -n temper \
--set dashboard.licenseSecret=temper-license
The dashboard pod restarts and mounts the file at
/etc/temper/license/license.temper. Verify in the UI: your organization and
tier appear in the dashboard, and Pro surfaces (multi-cluster hub, consolidation apply)
unlock. To replace a license later, update the Secret and restart the dashboard pod:
kubectl -n temper create secret generic temper-license \
--from-file=license.temper=./license.temper \
--dry-run=client -o yaml | kubectl apply -f -
kubectl -n temper rollout restart deploy/temper-dashboard
Renewals, expiry, and grace
- Each issued license is valid for 75 days; every paid monthly invoice issues a fresh one automatically. Re-download at temper.codes/manage whenever convenient — you do not need to reinstall monthly, just before the current file's expiry.
- 30 days before expiry the dashboard shows an expiring-soon notice.
- After expiry there is a 14-day grace period: Pro features keep working while surfaces warn. Past grace, Pro features gate off and the dashboard runs as Community.
- Changed your vCPU quantity in the billing portal? The next issued license reflects it — re-download after the change.
What is (and is not) license-gated
Only dashboard conveniences are gated: the multi-cluster hub proxy and consolidation apply. Enforcement is never license-gated. A lapsed, missing, or invalid license cannot change scheduling behavior on any node — the agent, QoS tiers, safe mode, and the eviction ladder are deliberately outside the licensing system. An invalid file is treated as absent (Community tier) with a warning, never an outage.
Managing and cancelling
temper.codes/manage opens your Stripe billing portal: invoices, payment method, vCPU quantity, and cancellation. Cancelling stops future charges; the last issued license simply ages out through the normal expiry-plus-grace clock. Nothing is revoked remotely, and your nodes never notice.
Enterprise and air-gapped licensing
Enterprise licenses are issued offline (including dark-site licenses with no renewal webhook expectations) and delivered with the air-gap install kit. Email [email protected].
FAQ
- Does the license phone home? No. Verification is an offline signature check against keys compiled into the binary.
- What happens if I exceed my licensed vCPUs? The dashboard displays the overage. Nothing is throttled or disabled — true up in the billing portal.
- Can I run Community forever? Yes. Single cluster, full engine, full dashboard, no license file needed.
- Lost your purchase link? Email [email protected] from your billing address.