Standalone mode
In standalone mode the agent serves signed local requests without being activated in any cloud. Use it on networks with no internet access, or when your organization does not want a cloud dependency. Only local mode works: there are no cloud jobs, no dashboard, no webhooks and no automatic updates.
1. Make a signing key pair
Generate an Ed25519 key pair on your backend. The public key is the raw 32-byte key in standard base64; the private key stays on your backend, where @jodaprint/node's createSigner uses it. Choose your own organization ID (org_ followed by letters and digits) and key ID.
2. Write the config
{
"local": { "standalone": true, "orgId": "org_acme" },
"security": {
"allowedOrigins": ["https://pos.example.com"],
"requireSignature": true,
"signingPublicKeys": [
{ "keyId": "sk_acme_1", "publicKey": "11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=" }
]
},
"printers": { "aliases": { "receipt": "prn_7f3a" } }
}
3. Import it
sudo jodaprint-agent config import jodaprint-config.json
Or install with it: the MSI property CONFIG_FILE, a jodaprint-config.json next to the macOS pkg, or /etc/jodaprint/config.json on Linux. See Silent deployment.
4. Print
The browser SDK works as usual, with the same orgId and a signer that uses your key:
const jp = new JodaPrint({ orgId: "org_acme", signer: httpSigner("/jodaprint/sign") });
License
Without a cloud, the agent cannot refresh its license token, so free-plan limits apply (including the "Printed with JodaPrint" footer). Import a license file from JodaPrint:
sudo jodaprint-agent license import license.jwt
jodaprint-agent license status
Updates
Install new versions yourself with your deployment tool; an upgrade keeps the configuration and data.