Enterprise deployment
Silent installation, locking configuration with machine policy, and controlling the update channel.
Last updated
This page is for IT administrators.
Machine policy
Precedence: managed policy > user settings > built-in defaults. Locked fields
show a lock icon in the console and cannot be edited, and runtime changes to them
are refused with POLICY_LOCKED.
File location
| Platform | Path |
|---|---|
| Windows | %ProgramData%\PrintLink\policy.json |
| Linux | /etc/printlink/policy.json |
| macOS | /Library/Application Support/PrintLink/policy.json |
The environment variable PRINTLINK_POLICY_PATH overrides the path for tests or
unusual deployments.
File structure
{
"version": 1,
"policy": {
"playground_enabled": false,
"update_channel": "stable"
},
"signature": "<base64 ed25519 signature, optional>",
"keyId": "corp-2026"
}Any field present in policy is locked. Lockable fields:
| Field | Values | Notes |
|---|---|---|
port | 1024–65535 | Service port |
listen_scope | local / lan / public | Listen scope (locking local also clears wider bound addresses) |
browser_access_enabled | bool | Whether browser sites may connect |
new_site_policy | confirm / allowlist / deny | New site admission policy |
playground_enabled | bool | Playground switch |
playground_real_print_enabled | bool | Playground real-print switch |
update_channel | stable / beta | Update channel |
idempotency_mode | on / off | Idempotency key switch |
health_monitor_enabled | bool | Printer health monitoring |
progress_window_enabled | bool | Floating progress window |
An unknown field causes the entire policy to be rejected — so an administrator never believes a mistyped field is in effect.
Signing and verification
signatureis an ed25519 signature (base64) over the canonical JSON of thepolicyobject.- The verification key comes from the environment variable
PRINTLINK_POLICY_PUBKEY(base64, 32 bytes). - A policy that carries a signature but fails verification (bad signature, tampering, or a missing key) is rejected as a whole and audited; no lock is applied, user settings keep working, and the console shows the reason.
- An unsigned policy is accepted as a "managed file" — the filesystem ACL on the machine-level path is the trust boundary.
Import and export
The Machine policy card in console Settings provides:
- Import: after choosing a file you must confirm a diff (each field shown as "current value → policy value") before it is written to the machine path, and the change is audited.
- Export: save the current policy file through a native dialog, keeping the signature.
Locks on port / listen scope / sites / health switches take full effect on the next service start; other fields apply immediately.
Windows silent installation
# Silent install into the default directory
PrintLink_x.y.z_x64-setup.exe /S
# Silent install into a specific directory (/D= must be last and unquoted)
PrintLink_x.y.z_x64-setup.exe /S /D=C:\Apps\PrintLinkPlace policy.json at %ProgramData%\PrintLink\policy.json before or after
installation (GPO file distribution or MDM both work). PrintLink re-reads the
policy on every start and every settings read, so no reinstall is needed.
Update channel
Package versions are managed centrally at the release end. Check for updates
in console Settings or next to the version number fetches the latest version and
download link; enterprises can pin the channel (stable / beta) with machine
policy.