License management
you actually own.
Stop paying per-seat fees to manage your own software licenses. Keygate is an open-source license server you deploy on your infrastructure. Keys, activations, usage metering and payments, all in one place.

Built for real licensing workflows
Not a toy project. Keygate handles the edge cases that break homegrown solutions: concurrent activations, atomic quota enforcement, webhook idempotency, payment lifecycle management.
Every model, one API
Subscription, perpetual or trial, node locked or floating, pick what fits. Activation limits per device or user. Grace periods. Ed25519 signed tokens your app verifies offline with a public key, so a copy of your binary cannot mint its own. Full lifecycle: create, activate, verify, suspend, revoke.
- 3 license types, plus floating
- Device & user activation limits
- Ed25519 tokens verified offline
POST /api/v1/license/verify
Content-Type: application/json
{
"license_key": "KG-LE376JPT-MJHHUNGZ-UCZJFD47-6E8RA6AL",
"identifier": "device-abc-123"
}
→ 200 OK
{
"success": true,
"data": {
"status": "active",
"plan_name": "Professional",
"grace_days": 7,
"token": "eyJsaWQiOiI1YTA4YjJiMC0x..."
}
}POST /api/v1/license/usage
{
"license_key": "KG-LE376JPT-...",
"feature": "api_calls",
"quantity": 1
}
→ 200 OK
{
"success": true,
"data": {
"accepted": true,
"used": 9847,
"limit": 10000,
"remaining": 153,
"period": "monthly",
"period_key": "2026-09"
}
}Atomic usage tracking
Track API calls, storage, bandwidth, or define your own metrics. Quotas are enforced atomically at the database level with SELECT FOR UPDATE, so two concurrent requests never both pass a limit check.
- Custom metrics
- Race-condition-proof
- Auto-reset periods
Stripe, end to end
Customer pays → license auto-provisions. Payment fails → dunning emails fire. Supports checkout, plan changes with proration, cancellations, refunds, and billing portal. You wire it once, it runs itself.
- Auto-provisioning
- Dunning & lifecycle
- Upgrade / downgrade
→ Create license + subscription
→ Start dunning sequence
→ Mark license canceled
→ Revoke license on a full refund
One dashboard for everything
Products, plans, customers, licenses, API keys, webhooks, analytics, audit logs, team management, email templates, all managed from a single admin panel with search, filters, and CSV/JSON export.
Running in three steps
One server and one database. No account, no API key, nothing to sign up for.
- 1
Deploy
Postgres and the server come up together, ready for the next step.
curl -O https://raw.githubusercontent.com/tabloy/keygate/main/docker-compose.yml curl -o .env https://raw.githubusercontent.com/tabloy/keygate/main/.env.example # Set JWT_SECRET and LICENSE_SIGNING_KEY in .env, then: docker compose up -d - 2
Create a product
The setup page creates your account, a product and a plan in a minute. Then issue your first license from the dashboard.
# The setup page creates your account, a product # and its first plan. Then issue a license. open http://localhost:9000 - 3
Activate a license
The same call your app makes. It activates the device and answers with a signed token you can check offline.
curl -X POST http://localhost:9000/api/v1/license/activate \ -H 'Content-Type: application/json' \ -d '{"license_key":"KG-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX","identifier":"device-1"}'
How Keygate compares
Checked against each vendor's own documentation and pricing. The comparison pages explain each mark.
| Feature | Keygate | Keygen | Cryptlex | LicenseSpring |
|---|---|---|---|---|
| Source code | ✓ | ~ | ✕ | ✕ |
| Self hosting | ✓ | ✓ | ✓ | ✓ |
| Free self hosted edition | ✓ | ✓ | ✕ | ✕ |
| Floating licenses | ✓ | ✓ | ✓ | ✓ |
| Offline verification | ✓ | ✓ | ✓ | ✓ |
| Usage metering | ✓ | ✓ | ✓ | ✓ |
| Built in payments | ✓ | ✕ | ~ | ✓ |
| Customer portal | ✓ | ✕ | ✓ | ✓ |
| Update distribution | ✓ | ✓ | ✓ | ~ |
| Official client SDKs | ✕ | ~ | ✓ | ✓ |
| Webhooks | ✓ | ✓ | ✓ | ✓ |
| Audit logs | ✓ | ✓ | ✓ | ✓ |
Checked October 2026. Spot something out of date? Open an issue on GitHub.
What it costs
Keygate is free to use, commercially included. License the software you sell, or run it for your own customers, and pay nothing. There is no paid tier of the software itself.
Self hosted
Free
The whole thing, under the AGPL v3. Keep the Powered by Keygate line in the interface, publish your changes if you modify it and let others use it, and give a fork its own name and logo.
- ✓Commercial use included, no license or seat count
- ✓Fork and modify, under your own name
- ✓Every feature, nothing held back for a paid edition
Commercial license
By agreement
This lifts those two conditions. Everyday commercial use does not need it; white labelling or keeping your changes closed does.
- ✓Take the Powered by Keygate line out
- ✓Keep your changes private while serving others
- ✓Resell Keygate under your own terms
Sponsors
Keygate is free and self hosted. These people help keep it that way.
Open source license management for any software business
Whether you sell desktop apps, SaaS subscriptions, API access or enterprise software, Keygate handles license keys, activations, usage limits, and recurring payments in one self-hosted platform.