Skip to content

Verify the images

At the end of this page, you can verify an image or a release file with the commands below, and you know which checks have not run yet.

Each image is built with an SBOM (SPDX), a SLSA build provenance attestation and a keyless Sigstore signature. Verify an image with the GitHub CLI:

Terminal window
gh attestation verify oci://ghcr.io/selfhostr/dmsforall:<tag> -R selfhostr/dmsforall

Verify the Sigstore signature with cosign:

Terminal window
cosign verify ghcr.io/selfhostr/dmsforall:<tag> \
--certificate-identity-regexp 'https://github.com/selfhostr/dmsforall/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com

Release files carry a .sha256 checksum and a .sigstore.json bundle. Check a file with sha256sum -c and verify its bundle with cosign verify-blob.

Repeat the commands for ghcr.io/selfhostr/dmsforall-web:<tag>.

Use a tag for the version, and a digest for the exact image you tested:

Terminal window
docker image inspect --format '{{index .RepoDigests 0}}' ghcr.io/selfhostr/dmsforall:<tag>

Set the digest in .env as DFA_VERSION or in your own deployment file, and keep a written record of the digests you tested.

Check out a tag, then build the images from the repository:

Terminal window
git clone --branch <tag> https://github.com/selfhostr/dmsforall.git && cd dmsforall
docker compose -f docker-compose.yml -f docker-compose.build.yml build

Building gives you the code of the tag, but not a signature. Compare the result with the source you checked out.

CheckStatus
Image signature (cosign)Configured, not yet run.
Build provenance attestationConfigured, not yet run.
SBOM (SPDX)Configured, not yet run.
Release file checksums and signaturesConfigured, not yet run.
Digest pinningAvailable now.
Build from a tagAvailable now.

This page will be updated after the first release has been checked.