Skip to main content

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.