Install and run aertun
Get the program, and run it the way it is meant to be run.
From source
Go 1.27 or later, and nothing else: go.mod has no require block, so the standard library and the Go toolchain are the whole build.
make
sudo make install
make install honours prefix and DESTDIR, and sudo make uninstall removes it. Without make:
go build -o aertun ./cmd/aertun
install -m 0755 aertun /usr/local/bin/
In a container
docker build -t aertun .
docker run --rm -v aertun:/srv aertun --root /srv/store init --owner you@example.com
docker run -p 8080:8080 -v aertun:/srv aertun
The first command prints the link that adds your passkey; open it once the second is running. The image is the binary alone on gcr.io/distroless/static-debian12:nonroot: no shell, no package manager, no interpreter and no libc. It runs as nonroot and carries LICENSE and NOTICE.
Releases
There is no tagged release yet. When there is, the release workflow publishes a static binary for Linux, macOS and Windows on amd64 and arm64, with SHA256SUMS, a build provenance attestation for each, and the image ghcr.io/aertun/aertun. Check a binary before you run it:
sha256sum -c --ignore-missing SHA256SUMS
gh attestation verify aertun-linux-amd64 --repo aertun/aertun
Behind a reverse proxy
Set admin.base_url to the address people use and admin.behind_tls_proxy to true. The repository's deploy/ folder has a systemd unit and a Caddy configuration.
aertun config set admin.base_url https://aertun.example.com
aertun config set admin.behind_tls_proxy true