License Management¶
Privitty Edge requires an active license for encrypted send operations — file transfer, access revocation, and Privitty handshakes. Read-only and infrastructure calls work without a license.
What requires a license¶
| Allowed without license | Requires license |
|---|---|
GET /health |
privitty_send_file |
get_config, get_info, get_connectivity |
privitty_send_group_file |
get_chatlist_*, get_messages |
privitty_revoke_file_access |
Plain send_msg (text) |
Privitty handshake methods |
secure_join, invite |
Obtain a delivery URL¶
Your administrator generates a license in the Privitty admin portal. You receive a delivery URL:
Activate at container start (recommended)¶
Pass the URL when starting the container — one command, no restart:
docker run -d \
--name privitty-edged \
-e PRIVITTY_PROFILE=gateway01 \
-e PRIVITTY_LICENSE_URL="https://license.privitty.com/v1/license/TOKEN123" \
-p 127.0.0.1:7200:7200 \
-v privitty-data:/var/lib/privitty \
privitty/edge:latest
The daemon activates the license before serving HTTP. If privitty.lic already exists in the volume, activation is skipped (safe on restart).
Activate on a running container¶
If the daemon was started without PRIVITTY_LICENSE_URL:
docker exec privitty-edged \
privitty-edge --accounts /var/lib/privitty \
license activate "https://license.privitty.com/v1/license/TOKEN123"
docker restart privitty-edged
The daemon loads the license only at startup, so a restart is required after late activation.
Check status¶
| Status | Meaning |
|---|---|
active |
All send operations permitted |
grace_period |
Expired but within grace window — renew soon |
expired |
Send operations blocked |
no_license |
No license file found |
Sync (recommended)¶
Run periodically to refresh the local copy and report device usage:
Cron example (daily at 03:00):
Deactivate¶
Release this device's seat when decommissioning hardware:
The local license file is retained for inspection but the device seat is released on the server.
Error when license is missing¶
Gated API calls return JSON-RPC error -32001:
Handle this in your integration layer and alert operators to renew. See Example E · License.
Files on disk¶
| File | Purpose |
|---|---|
privitty.lic |
License JWT |
device.uuid |
Stable device identifier |
license_server.txt |
License server URL |
activation.json |
Activation metadata |
All live under PRIVITTY_ACCOUNTS (default /var/lib/privitty). Back up with your volume snapshots.