NUSAPOD

License Authority

NUSAPOD
License Authority

Issue a license

License issued
ID
Deliver this token to the customer.

Licenses

CustomerGPUsTier ExpiresStatusLast check-inVersion

NUSAPOD — Operator & Client Guide

1 · For you (admin)

  1. Sign in with your admin token.
  2. Issue a license (Licenses tab → form): Customer, Max GPUs (the only usage limit — enforced GPU quota), Expiry (strict at install/pull, with a runtime grace window), Tier (label only).
  3. Copy the token from the result card and deliver it to the customer securely.
  4. Revoke anytime (Licenses table → Revoke) — effective on the customer's next image pull or phone-home.
  5. Monitor: the table shows each license's Last check-in and GPUs in use.

2 · For the client

  1. Receives a license token from you.
  2. Runs the control-plane installer with the token — the cluster pulls the licensed NUSAPOD images from registry.nusapod.app and starts.
  3. (Optional) Connects GPU nodes from the console Fleet → Connect node.
  4. Their NUSAPOD console /license page shows license status (over-quota / expired surfaced there).

3 · Install commands (client)

Run as root on a reachable Linux control-plane host. The client needs nothing but the license token you issued in step 1 — no repo, no files. Full docs: nusapod.app/docs.

a. Control plane (backend + console)

curl -sfL https://get.nusapod.app | sudo LICENSE=<your-license-token> bash

Fetches the installer from get.nusapod.app, sets up K3s + GPU VRAM partitioning, configures the licensed registry, and pulls registry.nusapod.app/nusapod-backend (gated by the license). The backend then verifies the license with the bundled public key.

b. Connect a GPU node

Generate the join command in the console Fleet → Connect node (single-use, ~1h expiry), then run it as root on the GPU host. It looks like:

curl -sfL https://<control-plane>/install.sh | bash -s -- --token <join-token> --server https://<control-plane>

Installs nvidia-container-toolkit (K3s auto-detects the nvidia runtime), joins the K3s agent, and labels the node gpu=on.

4 · Topology

CUSTOMER CLUSTER (k3s) Control plane NUSAPOD backend + console GPU node(s) k3s agent + GPU VRAM partitions CLOUDFLARE (vendor) License authority api.nusapod.app · mint/validate · D1 Registry registry.nusapod.app · R2 pull (license-gated) license check You → dashboard: mint / revoke

Registry Images