For the complete documentation index, see llms.txt. This page is also available as Markdown.

๐Ÿ“œConfiguration

The only thing you configure is the loader you ship to customers. Everything else lives in your dashboard at license.ohalee.com.

Loader (plugins/ObsidianLoader/config.yml)

Download the loader from your dashboard and set these four values โ€” all shown on your product/license pages. The loader fails closed (the protected plugin will not run) if anything is missing or invalid, or if the license server is unreachable.

# ObsidianLoader configuration

# Base URL of the license server.
serverUrl: "https://license.ohalee.com"

# The license key issued to this customer from your dashboard.
licenseKey: "OBS-XXXX-XXXX-XXXX-XXXX"

# Which product this loader should fetch. Shown in your dashboard for each product.
productId: "my-plugin"

# The server's Ed25519 public key, shown in your dashboard.
# Pinning this prevents a rogue server from substituting a malicious payload.
serverPublicKey: "PASTE_SERVER_PUBLIC_KEY_HERE"
Value
Where to find it

serverUrl

Always https://license.ohalee.com for the hosted service.

licenseKey

The key you issued (or a buyer redeemed) โ€” Licenses page.

productId

Your product's id โ€” Products page.

serverPublicKey

Shown in your dashboard; the same key for all your products.

When you distribute the loader to a customer, the only value that changes per customer is licenseKey. serverUrl, productId and serverPublicKey are the same for everyone buying that product.

Everything else is in the dashboard

You don't edit config files for the platform itself โ€” products, licenses, seats, expiry, tiers/entitlements, release channels, trials, branding, marketplace webhooks, API keys and abuse limits are all managed from license.ohalee.com. See features.md for the full catalogue and marketplace-automation.md for the purchase webhooks.

Self-hosting

If you run your own instance instead of the hosted service, the server is configured through environment variables (.env) โ€” Postgres URL, JWT_SECRET, MASTER_KEY, SMTP, abuse thresholds, retention, etc. โ€” and serverUrl / serverPublicKey come from your own deployment rather than the hosted values above. That operator setup is outside the scope of these customer-facing docs; contact support if you self-host.

Last updated