Licensing (Self-Hosted)
ShiftIt uses an ed25519-signed license file for self-hosted deployments.
Obtaining a License
Contact us at license@shiftit.example.com with:
-
Your organisation name
-
Intended number of employees
-
Features required (time_tracking, etc.)
You will receive a shiftit.lic file plus the public key that the binary must be built with.
Installing the License
-
Save the
shiftit.licfile to a secure location on your server (e.g./etc/shiftit/shiftit.lic). -
Set
LICENSE_FILE_PATH=/etc/shiftitin your.envfile (Docker) orSHIFTIT_LICENSE_FILE=/etc/shiftit/shiftit.licin your environment (binary). -
Restart the backend.
Building with the embedded public key
The backend embeds the verifying key at compile time via the SHIFTIT_PUBLIC_KEY environment variable. To build a self-hosted binary:
SHIFTIT_PUBLIC_KEY=<base64url-encoded-32-byte-key> \
cargo build --release --manifest-path backend/Cargo.toml
For Docker, pass it as a build arg in deploy/docker/backend.Dockerfile (the reference image expects you to set SHIFTIT_PUBLIC_KEY in the build environment).
License Contents
The license controls:
-
tenant_id— the Zitadel organisation id this license is bound to -
max_tenants— maximum number of organisations (almost always 1 for self-host) -
max_users_per_tenant— maximum employees per organisation -
features— enabled feature modules (e.g.time_tracking) -
expiry— license expiry date (renewal required annually)