aertunmanual

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