License keys
SkelaDB is licensed per installation with a signed license key. The key is required: without one the platform installs and runs, but refuses to create databases.
| Who | Key | Terms |
|---|---|---|
| Organizations with less than USD 1M in annual revenue | Free | Self-hosted license agreement (LICENSE-EULA.md) |
| Everyone else | Annual license | A signed agreement with an annual fee based on usage and revenue |
Revenue is that of the legal entity using SkelaDB together with its affiliates.
Get a key
Email founders@skeladb.com with the subject “SkelaDB free license key”, or use the contact form at https://skeladb.com/contact with the topic “Free license key”. Tell us:
- your organization’s legal name;
- that its annual revenue is under USD 1M;
- the name and email of the administrator who should receive the key;
- roughly how many projects and branches you expect.
We reply with a signed key, usually within one business day. Free keys are valid for 12 months and renewable. For an annual license, write to the same address.
What a key contains
A key is one line, <payload>.<signature>. It names your organization and
carries an expiry, the number of branches and projects you may run, and any
features of your agreement. It is checked offline against a public key built into
the platform, so nothing is sent to us and it cannot be changed without
invalidating it. Treat it like a credential: anyone with it can run an
installation under your license.
Install it
Set it before installing:
export SKELA_LICENSE_KEY='<payload>.<signature>'
./install.sh apply
The installer stores it in the skela-license Secret in the skela namespace,
and refuses to apply without a key on a first install. To replace a key later:
kubectl -n skela create secret generic skela-license --from-literal=key="$SKELA_LICENSE_KEY" \
--dry-run=client -o yaml | kubectl apply -f -
kubectl -n skela rollout restart deployment/skela-control
A malformed or tampered key stops the controller at startup with a message; fix the Secret and it starts again.
Check it
kubectl -n skela logs deploy/skela-control | grep -i license
The controller’s metrics include skela_license_valid,
skela_license_expiry_timestamp and skela_license_max_branches. Alert on the
expiry well ahead of time.
When a key lapses or a limit is reached
- New branches are refused with HTTP 402 and a message saying why: no key, key expired, branch limit or project limit reached. In the console the operation fails with that message.
- Running databases are never stopped, suspended branches still wake, and connections and backups of existing branches keep working. A restore creates a new branch, so it needs a valid key within its limits.
- Branches created directly as Kubernetes resources are held unprovisioned with the same refusal.
Install a renewed key and creation resumes. Keys cannot be revoked online; they expire.