v0.1.0:24 — Keysat licensing service end-to-end

Daemon, StartOS wrapper, admin SPA, public buy/thank-you pages,
discount codes, free-license redemption, Apply-discount UX,
self-licensing, and v0.1.0 release notes.
This commit is contained in:
Grant
2026-05-07 10:33:39 -05:00
parent 432250bffc
commit 6ac118ae70
90 changed files with 14896 additions and 524 deletions
+32
View File
@@ -0,0 +1,32 @@
# Copy to `.env` for local development. On StartOS these are set by the
# service manifest.
# Where the HTTP server binds. Inside a container this is usually 0.0.0.0.
LICENSING_BIND=0.0.0.0:8080
# SQLite file location. On StartOS this should live under the persistent
# data volume, typically `/data/licensing.db`.
LICENSING_DB_PATH=./data/licensing.db
# Public base URL of THIS licensing service. Used to build webhook URLs and
# client poll URLs. Should be the clearnet or .onion address users reach.
LICENSING_PUBLIC_URL=http://localhost:8080
# Required. Generate with: openssl rand -hex 32
# Protects /v1/admin/* endpoints. Never commit this value.
LICENSING_ADMIN_API_KEY=changeme-use-openssl-rand-hex-32
# Optional display name shown on the index page.
LICENSING_OPERATOR_NAME=Acme Software
# --- BTCPay Server ---
# On StartOS, BTCPay is reachable at the .embassy hostname once you declare
# the dependency in the service manifest.
BTCPAY_URL=http://btcpayserver.startos:23000
BTCPAY_API_KEY=replace-with-btcpay-greenfield-api-key
BTCPAY_STORE_ID=replace-with-btcpay-store-id
BTCPAY_WEBHOOK_SECRET=replace-with-webhook-shared-secret
# --- Logging ---
# Standard tracing-subscriber filter syntax. Uncomment to tune.
# RUST_LOG=info,sqlx=warn,hyper=warn