$ git clone git@github.com:dadrus/heimdall.git
Heimdall
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
You can always build a copy of Heimdall by following the following instructions for your OS/environment.
Retrieve the latest copy of heimdall source code by cloning the git repository
$ git clone git@github.com:dadrus/heimdall.git
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.
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/amd64
linux/arm64
linux/arm
- which is armv7
architecture
darwin/amd64
darwin/arm64
, and
windows/amd64
For Linux and Darwin the binaries are archived with tar.gz and for Windows with zip.
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 -x
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:
amd64
arm64
armv7
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.
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-alpha
latest
- 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