$ git clone git@github.com:dadrus/heimdall.gitInstall
Heimdall is shipped in multiple formats and architectures as to suit a variety of deployment patterns. Available installation options are:
Source code
Binary
Docker Image
Source Code
You can always build a copy of Heimdall by following the following instructions for your OS/environment.
Download
Retrieve the latest copy of heimdall source code by cloning the git repository
Build with go
Build using a single line with go build
$ CGO_ENABLED=0 go build -trimpath -ldflags="-buildid= -w -s -X heimdall/cmd.Version=my-custom-build"The flags are set by intention. Using -trimpath and -buildid= as part of the -ldflags argument ensures the build is reproducible (See also Reproducible Builds). Other flags remove unused symbols and debug information.
Binary
Prebuild binaries are available with every released version on GitHub, as well as for every merged PR to the main branch. The version of the latter is set to the git SHA1. Supported operating systems/architectures are:
linux/amd64linux/arm64linux/arm- which isarmv7architecturedarwin/amd64darwin/arm64, andwindows/amd64
For Linux and Darwin the binaries are archived with tar.gz and for Windows with zip.
Download
Retrieve the desired released of heimdall source binary for your operating system/architecture
ARCH=[your arch]
OS=[your os]
VERSION=[desired version]
curl -L https://github.com/dadrus/heimdall/releases/download/${VERSION}/heimdall-${VERSION}-${OS}-${ARCH}.tar.gz \
| tar -z -xDocker Image
Heimdall utilizes a minimal docker multi-arch image which you can find on DockerHub. As with Binary releases, Heimdall can be pulled in several flavors. Here however currently limited to the Linux OS. Supported architectures are:
amd64arm64armv7
All docker images are rootless - so heimdall will always run as a non-root user. Since Heimdall does not have any dependencies, the images contain only the binary of Heimdall and the settings related to the OS user and group permissions, Heimdall is running with.
Prerequisites
Pull Image
Following tag patterns exist:
x.y.z[-<prerelease-identifier>]- will pull a specific tagged release.$ docker pull dadrus/heimdall:0.1.0-alpha && docker run dadrus/heimdall:0.1.0-alpha --version heimdall version v0.1.0-alphalatest- will pull the most recent tagged release.$ docker pull dadrus/heimdall:latest && docker run dadrus/heimdall:latest --version heimdall version v0.1.0-alpha
Last updated on Sep 1, 2022