laranail/license-verifier

Headless, provider-agnostic Laravel license verification client — PASETO/Ed25519 offline verification, device fingerprinting, seats, grace periods, and pluggable drivers (license-kit, Envato, Keygen, Lemon Squeezy, Gumroad, Cryptolens, LicenseSpring, Freemius, EDD, WooCommerce, Paddle, unlock.sh, ge

Maintainers

Package info

github.com/laranail/license-verifier

Homepage

Documentation

pkg:composer/laranail/license-verifier

Transparency log

Statistics

Installs: 8

Dependents: 3

Suggesters: 1

Stars: 0

Open Issues: 0

v0.1.2 2026-06-28 13:38 UTC

This package is auto-updated.

Last update: 2026-07-09 00:09:50 UTC


README

Latest version on Packagist Tests Static analysis License: MIT

Headless, provider-agnostic license verification for Laravel — PASETO/Ed25519 offline verification, device fingerprinting, seats, grace periods, and pluggable drivers for 12 licensing providers. CLI/TUI-first; the web UI ships as separate presets via laranail/license-verifier-ui.

Requires PHP ^8.4.1 || ^8.5 on Laravel ^13.

Install

composer require laranail/license-verifier
php artisan vendor:publish --tag=license-verifier-config

See Installation for the migration publish and the guided installer.

Quick start

Set the active driver and credentials in .env (prefix LICENSE_VERIFIER_*):

LICENSE_VERIFIER_DRIVER=paseto
LICENSE_VERIFIER_SERVER_URL=https://licensing.example.com
LICENSE_VERIFIER_PUBLIC_KEY=...
LICENSE_VERIFIER_KEY=YOUR-LICENSE-KEY

Activate and verify — the same API for every provider:

use Simtabi\Laranail\Licence\Verifier\Facades\LicenseVerifier;

LicenseVerifier::activate('YOUR-LICENSE-KEY');
LicenseVerifier::isValid();          // offline-capable check
LicenseVerifier::getLicenseInfo();

Gate routes with the license middleware, or gate deploys from the CLI:

php artisan license:manage          # interactive TUI dashboard
php artisan license:status --strict --json   # CI gate (exit 0 valid / 1 invalid / 2 unreachable)

Full tour: Getting started.

Drivers

One config value (license-verifier.default) switches the source: paseto (self-hosted laranail/license-kit, default) · envato · keygen · lemonsqueezy · gumroad · cryptolens · licensespring · freemius · edd · woocommerce · paddle · unlocksh · generic (config-mapped escape hatch) · null (dev). Drivers declare capabilities (offline tokens, refresh, heartbeat, entitlements, seats, domain binding), and you can register your own via DriverManager::extend() — see Drivers.

Documentation

Full documentation is at opensource.simtabi.com/documentation/laranail/license-verifier.

Guides

  • Installation — requirements, publishable assets, first configuration.
  • Getting started — activate, verify, gate routes and deploys.
  • Configuration — every config key, env var, and runtime overrides.
  • Architecture — the orchestrator, driver layer, and lifecycle diagrams.
  • Security — encryption pipeline, tiered storage, offline trust model, threat checklist.
  • Release — tag-driven releases and versioning policy.

Reference

  • Drivers — the 14 drivers, capability matrix, generic and custom drivers.
  • CLI — all laranail::license-verifier.* / license:* commands and exit codes.
  • TUI dashboard — the interactive license:manage dashboard.

Project

Stability

Pre-1.0 (0.x) — the public API may change between minor versions. Pin a version before bumping.

Local development

composer test     # Pest (Unit + Feature)
composer lint     # pint --test + phpstan + rector --dry-run

Sister packages

Community

  • Issues — bugs and feature requests.

Contributing & security

Issues and PRs are welcome — see CONTRIBUTING.md. Report vulnerabilities per SECURITY.md (opensource@simtabi.com); participation follows the Code of Conduct.

License

MIT © Simtabi LLC. See LICENSE.