
NF-ToolBox is the license backbone for the NF Software tool line: a Go API server that issues and verifies licenses, a CLI (nf-toolbox) end users install tools through, and a shared Go package (pkg/license) any NF tool embeds to check entitlement at startup.

| Component |
Path |
Purpose |
| Server |
cmd/server/ |
License API — auth, activation, renewal, Stripe webhooks |
| Toolbox CLI |
cmd/toolbox/ |
login · list · install · update · sync · devices · status |
| License package |
pkg/license/ |
Fingerprinting, signing, verification — embed in any NF tool |
| Keygen |
cmd/keygen/ |
Generates signing keys for the server |

createdb license_db
psql -d license_db < migrations/001_initial.sql
go run cmd/keygen/main.go # generate keys, add to .env
cp .env.example .env
make run # start the server
go build -o bin/nf-toolbox cmd/toolbox/main.go
nf-toolbox login
nf-toolbox install <tool>
nf-toolbox sync # renew license after purchase
nf-toolbox status
🔌 API Endpoints
| Endpoint |
Auth |
Purpose |
POST /api/v1/auth/register · /login |
— |
Account creation & login |
POST /api/v1/activate · /renew |
Bearer |
License activation / renewal |
GET /api/v1/license · /devices · /tools · /me |
Bearer |
Read current state |
DELETE /api/v1/devices/{id} |
Bearer |
Deactivate a device |
POST /webhooks/stripe |
Stripe sig |
Payment events |
🧩 Integrating a tool
import "github.com/nf-software/nf-toolbox/pkg/license"
func main() {
if err := license.CheckEntitlement("your-tool-name"); err != nil {
fmt.Fprintln(os.Stderr, "Run: nf-toolbox login && nf-toolbox install your-tool")
os.Exit(1)
}
}

Made with ♥ by NoamFav · Proprietary — NF Software