Skip to main content

Installation

Sentinel ships as a single binary. Pick the channel that fits you, then verify what you downloaded before you run it.

Prerequisites​

Sentinel orchestrates your database's own client tools rather than reimplementing them. Whichever way you install it, the tools for the engines you use must be on your PATH:

EngineTools needed
PostgreSQLpg_dump, pg_restore, psql
MySQLmysqldump, mysql
MariaDBmariadb-dump, mariadb
MongoDBmongodump, mongorestore

Check what Sentinel can see once installed:

sentinel version --tools

Download a prebuilt binary​

The recommended route. No Go toolchain required. Every release publishes binaries for Linux, macOS, and Windows (amd64 and arm64, except windows/arm64), each covered by a SHA-256 checksums.txt.

Download the asset for your platform from the latest release, then verify and install it:

VERSION=1.4.0 # no leading "v"
OS=linux # linux | darwin | windows
ARCH=amd64 # amd64 | arm64
BASE=https://github.com/denisakp/sentinel/releases/latest/download

curl -LO "$BASE/sentinel-$VERSION-$OS-$ARCH.tar.gz"
curl -LO "$BASE/checksums.txt"
sha256sum -c checksums.txt --ignore-missing

Then extract and put it on your PATH:

tar -xzf "sentinel-$VERSION-$OS-$ARCH.tar.gz" # unzip on Windows
sudo mv sentinel /usr/local/bin/
sentinel version

You should see the version, commit, and build date reported.

Verify the release signature​

The checksum above proves your archive matches the published list. This check proves something stronger: that the list itself came from Sentinel's release workflow, and not from someone who replaced both files.

Each recent release signs checksums.txt with cosign keyless signing, publishing a checksums.txt.sigstore.json bundle alongside it. You need cosign v3 or later no Go toolchain and no Sentinel install.

BASE=https://github.com/denisakp/sentinel/releases/latest/download
curl -LO "$BASE/checksums.txt"
curl -LO "$BASE/checksums.txt.sigstore.json"

cosign verify-blob \
--certificate-identity-regexp 'https://github.com/denisakp/sentinel/.github/workflows/release.yml@refs/tags/.*' \
--certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
--bundle checksums.txt.sigstore.json \
checksums.txt

You should see Verified OK. Verification fails closed: a tampered checksums.txt, or a signature from any other identity or issuer, is rejected. Once verified, check your archive against it with sha256sum -c checksums.txt --ignore-missing.

note

Releases published before signing was introduced ship no signature bundle. If a release has no checksums.txt.sigstore.json asset, the checksum-only path above is what you have.

Verify build provenance​

The signature proves who published the release. This proves how the binary was built: from which source commit, by which workflow, with no manual step in between. The two checks are independent; neither replaces the other, and you can use either or both.

Each recent release ships a SLSA build-provenance attestation (multiple.intoto.jsonl), generated by a process with its own identity, separate from the job that built the binaries. A compromise of the build job alone could not also forge it.

You need slsa-verifier:

VERSION=1.4.0
OS=linux; ARCH=amd64
BASE=https://github.com/denisakp/sentinel/releases/latest/download

curl -LO "$BASE/sentinel-$VERSION-$OS-$ARCH.tar.gz"
curl -LO "$BASE/multiple.intoto.jsonl"

slsa-verifier verify-artifact "sentinel-$VERSION-$OS-$ARCH.tar.gz" \
--provenance-path multiple.intoto.jsonl \
--source-uri github.com/denisakp/sentinel \
--source-tag "v$VERSION"

A tampered archive, or an attestation from an unexpected repository or tag, is rejected.

note

Releases published before this feature ship no provenance attestation.

Install with go install​

If you already have Go 1.24 or later:

go install github.com/denisakp/sentinel@latest
warning
sentinel version will report dev

A go install build is compiled without the release build flags, so sentinel version reports the dev / unknown / unknown development fallback instead of a real version, commit, and build date. Use a prebuilt release binary if you need accurate version reporting; for example when troubleshooting or filing an issue.

Build from source​

For development only. Requires Go 1.24 or later.

git clone https://github.com/denisakp/sentinel.git
cd sentinel
go mod download
go build -o sentinel ./...
./sentinel version

Next​

With a working binary, go to the Quickstart and take a real backup.

{/* sources: README.md §Installation, §Verify the release signature, §Verify build provenance, internal/cli/version.go, internal/version/ */}