4e2527f75b479f64ba0b90a50f6101744e190a8a
Micro License Server
A very small, self-hosted license server intended for lower traffic projects.
Environment Setup
Replace the placeholder secrets in .env with secure random values using openssl rand:
sed -i \
-e "s/PG_CHANGEME/$(openssl rand -base64 32)/" \
-e "s/API_CHANGEME/$(openssl rand -base64 48)/" \
.env
API Endpoints
All authenticated endpoints expect a Bearer token via the Authorization header that matches API_KEY from .env. Unless stated otherwise, responses are JSON.
| Method | Path | Auth | Description | Key Request Parameters | Response Highlights |
|---|---|---|---|---|---|
GET |
/ |
No | Returns server metadata. | – | {"version": "Micro License Server vX.Y.Z"} |
POST |
/license |
Yes | Generates a new license key. | Query: is_active (bool, default true), expiration_date (ISO 8601, optional) |
license_key, expiration_timestamp, is_active |
GET |
/is_valid |
No | Validates a license key and records last usage time. | Query: license_key (required) |
Boolean validity |
POST |
/license/{license_key}/disable |
Yes | Deactivates a license key. | Path: license_key |
license_key, is_active: false |
POST |
/license/{license_key}/enable |
Yes | Reactivates a license key. | Path: license_key |
license_key, is_active: true |
POST |
/license/{license_key}/expiration |
Yes | Sets or clears a license key expiration. | Path: license_key; Query: expiration_date (ISO 8601 or omit to clear) |
license_key, expiration_timestamp (nullable) |
GET |
/license/export |
Yes | Exports license inventory as CSV ordered by issue time. | – | CSV with license_key,issue_timestamp,expiration_timestamp,is_active |
GET |
/history/export |
Yes | Exports audit history as CSV. | Query: token (optional substring filter) |
CSV with action,timestamp |
v1.0.2
Latest
Languages
Python
99.6%
Dockerfile
0.4%