You've built great software. Now you need to decide who can use it, how they pay for it, and what features they get access to.
Commercial license platforms charge per-seat, per-month, and your customer data lives on someone else's servers. Building your own takes months of engineering on activation logic, payment webhooks, quota tracking, and all the edge cases that come at 2 AM.
Keygate is the middle ground. A production-ready license server you deploy on your own infrastructure, connect to your own Stripe or PayPal, and manage through a clean dashboard. It handles everything from activation to dunning โ so you can focus on building your product.
One binary. One database. Full control. Free, forever.
Who is it for?
๐งโ๐ป Indie Developers โ Selling a desktop app, CLI tool, or Electron app? Keygate handles license keys, activation limits, and trials so you can focus on shipping.
๐ข SaaS Companies โ Managing subscription tiers with different feature sets? Define plans with entitlements, track usage, and let Stripe handle billing automatically.
๐ญ Enterprise Vendors โ Need floating licenses for large teams? Concurrent seat checkout with heartbeat monitoring, perfect for shared-seat environments.
โก API Providers โ Enforcing rate limits and usage quotas? Atomic quota enforcement tracks every call and warns customers before they hit limits.
Features
๐ License Management
Every model in one platform โ subscriptions, perpetual, trials, and floating (concurrent) licenses. Create, activate, verify, suspend, reinstate, and revoke with full audit trail. Per-device or per-user activation limits. Grace periods. License keys hashed with SHA-256. Signed tokens for offline verification.
๐ Usage Metering
Track API calls, storage, bandwidth, or any custom metric. Quotas enforced atomically at the database level โ even under high concurrency, limits are never exceeded. Hourly, daily, monthly, or yearly cycles with automatic reset. Threshold warnings via webhooks.
๐ณ Payments
Stripe and PayPal integrated end-to-end. Customer pays โ license created automatically. Payment fails โ dunning emails on schedule. Supports checkout, plan upgrades/downgrades with proration, cancellations, refunds, and billing portal.
๐ฅ Team Seats & Entitlements
Customers manage their own teams within a license. Seat roles (owner/admin/member), configurable limits per plan. Feature entitlements as boolean flags, numeric limits, or usage quotas. Purchasable add-ons that extend plan capabilities.
๐ Admin Dashboard
Products, plans, licenses, customers, API keys, webhooks, analytics, audit logs, team management, email templates, and brand customization โ all from one interface. Search, filter, and export (CSV/JSON).
๐ก๏ธ Security
OAuth2 login (GitHub/Google), role-based access checked per-request from database, brute-force protection, rate limiting, HMAC-signed webhooks, SameSite cookies, HSTS, and startup validation that rejects weak secrets.
๐ Self-Hosted
Single Go binary + PostgreSQL. No Redis, no microservices. Auto-migration on startup. Setup wizard for first run. Custom branding, email templates, and i18n (English/Chinese built-in).
Quick Start
Docker (recommended)
# 1. Download
curl -O https://raw.githubusercontent.com/tabloy/keygate/main/docker-compose.yml
curl -O https://raw.githubusercontent.com/tabloy/keygate/main/.env.example
cp .env.example .env
# 2. Set your secrets
# Edit .env: set JWT_SECRET and LICENSE_SIGNING_KEY (openssl rand -hex 32)
# 3. Run
docker compose up -d
From source
git clone https://github.com/tabloy/keygate.git
cd keygate && cp .env.example .env
make build && ./bin/keygate
You are free to fork, modify, and self-host this software under the AGPL v3. The "Powered by Keygate" attribution in the UI must be preserved (see NOTICE). A commercial license to remove the attribution is available โ contact hello@keygate.app.
Star History
If Keygate helps your business, consider giving it a โญ