License tiers¶
Vesana has three license tiers. All run on the same codebase with the same feature set — the only difference is the number of allowed hosts and tenants, and the price. No feature is reserved for a higher tier.
Tiers¶
| Tier | Hosts | Tenants | Typical use |
|---|---|---|---|
| Community | up to 25 | 1 | A single company, one environment |
| Professional | unlimited | up to 5 | A company with several sites/environments, or a small MSP |
| MSP | unlimited | unlimited | Managed service provider with many customer environments |
Everything else — agent, collector, active collector, auto-discovery, SNMP sensor picker, MIB snippets, custom dashboards, public status pages, mobile app + push, AI chat/analysis, wiki, SLA/PDF reports, anomaly detection, policies, custom roles + granular RBAC, audit log, soft delete & trash, backup sidecar, multi-API replicas, NSCA receiver — is fully included in every tier.
What counts against the limits: every device and every tenant you create — including copies ("copy host", "copy tenant") and restores from the trash. What sits in the trash does not count: deleting frees the slot immediately. If the budget is not enough, the message names the free slots.
Price scales with the number of tenants, not with feature unlocks. Current prices and custom quotes (e.g. for a very large number of hosts under a single tenant): hello@vesana.org.
Snapshot of this page
State at last_verified of this page. Current values and pricing: hello@vesana.org or vesana.org/home#pricing.
Activation¶
Online (default)¶
- Copy license key in format
OVS-XXXX-XXXX-XXXXfrom licence portal - Admin → License → Set key
- Save
API server verifies against license.vesana.org at boot. On success, caches the result and rechecks every 24 h. Cache TTL keeps the server productive even during portal outages.
Offline license (MSP)¶
For air-gapped environments, offline-signed license files:
- Licence portal: Licenses → Create offline license with customer UUID
- Download
<customer>-license.json - Admin → License → Upload offline license
Offline licenses have a duration (typically 1 year) and must be renewed before expiry. Server warns 30 days ahead via banner.
Community without a license key¶
Without a license key on file, Vesana runs in community mode: up to 25 hosts, 1 tenant, all features. This isn't a demo mode — Community is a full, permanently usable tier for small environments.
Tester mode¶
For acquaintances and beta testers, a bypass:
echo "VESANA_TESTER_MODE=true" >> /opt/vesana/.env
docker compose -f /opt/vesana/docker-compose.prod.yml up -d
With tester mode active:
- All limits are lifted, no license key needed
- Setup wizard skips license step
- Instance registers with licence portal as tester
- Lukas / vendor team can block updates per instance
Remove tester mode before handing over to a real customer
Anyone who knows the env bypass gets around the host/tenant limits. For a commercial handover: remove VESANA_TESTER_MODE from .env, set a license key, restart the stack.
Details: Self-hosting → Tester mode.
Renewal & switch¶
Switching tiers (e.g. more tenants needed): a new license key is generated in the licence portal and swapped into Vesana. No migration needed — all data stays, only the limits change. Ask about pricing changes at hello@vesana.org.
Downgrading to a smaller tier: hosts/tenants above the new limit stay registered, but new ones can't be added until the limit is undercut.
Instance pulse¶
Every instance reports a small record to license.vesana.org once a day and learns in return whether its updates are released.
What is reported — numbers, fixed terms and timestamps only:
| Group | Content |
|---|---|
| Instance | Identifier, hostname, version, server address, installation date, migration level |
| Platform | Kernel and architecture, timezone, interface language |
| License | Edition |
| Size | Number of hosts (by mode), checks (by mode), agents/collectors online and total, tenants and accounts |
| Activity | Timestamp of the most recent login, number of accounts that logged in within seven days |
What is never reported: device and tenant names, check configurations, measurements, log texts and user accounts (neither login name nor display name). Before sending, the record passes a fixed list of permitted fields — anything else is dropped. For diagnostic data there is the support bundle instead, which you send deliberately.
Switching it off: VESANA_PULSE=off in the .env next to the compose file, then docker compose up -d. The update check is unaffected.
Up to v1.9.437 switching it off had no effect
The compose files did not pass VESANA_PULSE into the container — the setting sat in the .env but never arrived. If you set it, verify once after updating that the report is really off.
What the license does NOT do¶
- It doesn't restrict source access — anyone who clones the repo sees everything. Protection is via the license check at API boot, not obfuscation.
- It does not phone home monitoring data — what the instance pulse reports is listed below in full; measurements, device and tenant data are not part of it.
- It's per instance, not per server — one license can only be active on one instance.
- It doesn't unlock or lock features — Community, Professional, and MSP differ purely in host/tenant limits.
Next¶
- Self-hosting — tester mode activation
- Updates — license renewal workflow