Install and run Vaigil
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 vaigil ./cmd/vaigil
install -m 0755 vaigil /usr/local/bin/
In a container
docker build -t vaigil .
docker run --rm -v vaigil:/srv vaigil --root /srv/store init --admin you@example.com
docker run -p 8080:8080 -v vaigil:/srv vaigil
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
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/vaigil/vaigil. Check a binary before you run it:
sha256sum -c --ignore-missing SHA256SUMS
gh attestation verify vaigil-linux-amd64 --repo Vaigil/Vaigil
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.
vaigil config set admin.base_url https://vaigil.example.com
vaigil config set admin.behind_tls_proxy true