Skip to main content
Every release is built by one GitHub Actions workflow, .github/workflows/release.yml. This page shows how to check a download or an image against it. The installer and levelrail self-upgrade run the checksum and signature checks for you. Use the commands below when you want to check by hand, for example before you copy a binary onto an air-gapped host.

What is signed

Signing is keyless. There is no long-lived key to rotate or lose. The signature proves the file was produced by a run of this repository’s release workflow on GitHub. Releases cut before signing was added carry no bundle.

Verify a binary

You need curl, cosign, sha256sum and, for the last step, the GitHub CLI (gh).
Read the steps in order:
  1. cosign verify-blob proves checksums.txt was signed by the release workflow of this repository.
  2. sha256sum --check proves your binary matches a line in that file.
  3. gh attestation verify proves GitHub recorded a build provenance attestation for the binary from this repository.
Stop at the first step that fails and do not run the binary.

Verify an image

Use ghcr.io/glincker/levelrail-agent for the node agent. Tags are listed in Installing. Pin an exact :vX.Y.Z tag for anything that must not move, because :latest and :beta change.

Read the SBOM and provenance

SBOM (SPDX) and provenance (SLSA) are BuildKit attestations inside the image. cosign download sbom does not find them. Read them with:

What the server checks for you

install.sh always checks the SHA-256 checksum. It checks the signature when cosign is installed and the release has a bundle. levelrail self-upgrade and the dashboard upgrade verify the signature inside the server and need no cosign binary. After the first verified signature the host is pinned and refuses unsigned releases. The settings and the escape hatches are in Installing.

What this does not cover

  • A valid signature says where a file was built. It does not say the code is free of bugs or vulnerabilities.
  • It does not cover your own apps or the images you deploy. Build provenance for those is a separate, weaker record: see Supply chain.
  • The SBOM and provenance attached to images are not checked by a separate signature command on this page.
  • The identity pattern accepts any ref of the release workflow in this repository. Pin an exact tag in the pattern if you need to accept one release only.
  • No third-party review of the build pipeline is claimed.
Last modified on November 5, 2026