Skip to content
BitExactdocs
Documentation
On this page

Installing BitExact#

BitExact is licensed software, delivered to you privately: through read access to its container registry, or as a release bundle you can install with no network at all. You need the license file you were issued. To get access, start a pilot: https://bitexact.ai/business#pilot or sales@bitexact.ai.

1. Check the bundle#

Every release carries SHA256SUMS and its signature, SHA256SUMS.sigstore.json, made with the BitExact release key. Its public half, cosign.pub, comes with your license, never in the bundle it checks. First check that the sums are ours, then check the files you received against them, before installing anything:

cosign verify-blob --key cosign.pub --bundle SHA256SUMS.sigstore.json SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing

The signature is also recorded in Sigstore's public transparency log, and cosign checks that entry too. On a host with no route to it, add --insecure-ignore-tlog=true: the key signature is still checked, and any connected machine can check the log entry for the same file.

The last line of SHA256SUMS is the image digest. The image is signed with the same key and carries its SBOM as an attestation; check it with cosign verify --key cosign.pub <registry>/bitexact@sha256:<digest>, and pin that key in your admission policy (Hardening).

2. The image#

With registry access. Your GitHub account or team has been granted read access to the package. Log in with a personal access token that has the read:packages scope, and pull by version:

echo "$TOKEN" | docker login ghcr.io -u <github-user> --password-stdin
docker pull ghcr.io/bitexact/bitexact:v0.0.1-alpha

From the bundle, on a host with no route to any registry:

IMAGE=$(docker load -q -i bitexact-0.0.1-alpha-amd64.tar | sed -n 's/^Loaded image: //p')   # or -arm64
IMAGE=$(docker image inspect --format '{{.Id}}' "$IMAGE")   # the digest of what you loaded; deploy by it

Either way you may push it into your own registry and deploy from there.

3. The Python package#

Release builds exist for Linux x86_64 and ARM64 (glibc, and musl for Alpine), Windows x86_64, and x86_64 and ARM64 server images (scripts/targets.py). There is no build for macOS, Windows on ARM, s390x, ppc64le, FreeBSD, AIX or Solaris.

For agents that use the Python SDK, take the bundle for your platform - manylinux-x86_64, manylinux-aarch64, musllinux-x86_64 (Alpine), musllinux-aarch64 or win-amd64 - and install from it alone, every file checked against its hash. It holds the compiled product wheel, the open verifier wheel and every dependency wheel, so no index is needed. For the PostgreSQL store, an HSM or AWS KMS, install requirements-postgres.lock, requirements-hsm.lock or requirements-aws.lock in place of requirements.lock; each is complete on its own:

tar -xzf bitexact-bundle-0.0.1-alpha-<platform>.tar.gz && cd <platform>
pip install --no-index --find-links wheels --require-hashes -r requirements.lock
pip install --no-index --no-deps bitexact_sdk-0.0.1a0-*.whl
pip check

4. The TypeScript, Go and Java SDKs#

npm install ./bitexact-sdk-0.0.1-alpha.tgz               # Node 26 or later

For Java 27 or later, install the jar into your local repository (or your organization's private Maven repository) and depend on dev.bitexact:bitexact-sdk:0.0.1-alpha:

mvn install:install-file -Dfile=bitexact-sdk-0.0.1-alpha.jar \
  -DgroupId=dev.bitexact -DartifactId=bitexact-sdk -Dversion=0.0.1-alpha -Dpackaging=jar

Every SDK carries the release's version, so a private npm or Maven mirror sees a new version with each release rather than the same one changed.

For Go, either fetch the module from the licensee repository with GOPRIVATE=github.com/bitexact/* set, or vendor it from bitexact-sdk-go-0.0.1-alpha.tar.gz; sdk-go/README.md in that archive shows both.

5. License and deployment#

Point BITEXACT_LICENSE at your license file wherever BitExact records. bitexact-deploy-0.0.1-alpha.tar.gz holds the compose file, systemd units and Kubernetes manifests, with the guides for distributed recording (docs/distributed.md) and model providers (docs/providers.md).