Skip to content
Installation

Installation

dothaven ships as a single static Go binary built with Cobra. There is no interpreter, runtime, or package manager to install alongside it — pick one of the methods below and you have a working dothaven command.

Install

Install from the tap. Homebrew resolves the right binary for your platform:

brew install doguyilmaz/tap/dothaven

Updating

dothaven upgrade

upgrade (also spelled update) works out how dothaven was installed and runs that installer’s own upgrade — brew update && brew upgrade --cask dothaven for a Homebrew install, go install …@latest for a Go one. Pass --check to see what is available without changing anything.

dothaven never replaces its own binary: Homebrew tracks the version it installed, so overwriting that file behind its back leaves brew outdated describing something that is no longer there.

On a terminal, dothaven also checks once a day for a newer release and prints a one-line notice on stderr. Set DOTHAVEN_NO_UPDATE_CHECK=1 to turn that off. See the update notice for exactly what it requests.

Supported platforms

Release builds are static (CGO_ENABLED=0) and cross-compiled for:

OSArchitectures
macOS (darwin)amd64, arm64
Linuxamd64, arm64

Building from source with the Go or Source method works on any platform the Go toolchain targets, but the packaged Homebrew/release artifacts cover the matrix above.

Verify the install

Confirm the binary is on your PATH and prints a version:

dothaven --version
dothaven version 0.2.0

A source or go install build that wasn’t stamped at release time reports dev:

dothaven version dev

The release version is embedded into the binary at build time via -ldflags -X main.version; source builds fall back to the default dev value.

Runtime dependencies

Running dothaven itself needs nothing else — the binary is self-contained. Discovery, audit, and reporting commands (collect, doctor, scan, security, status, diff, compare, list, backup, restore) work out of the box.

Two commands reach into the storage/encryption layer and need additional tooling:

chezmoi-export --apply and init use chezmoi for storage and age for encryption. Install both and configure an age key before applying changes — dothaven handles discovery, audit, and export planning, while chezmoi performs storage, encryption, and apply.
age is the encryption backend. If you lose the age key, encrypted files become unrecoverable. Back up your key before exporting secrets.

See Encryption for setting up an age key and the chezmoi integration.

Where reports are written

Commands that emit JSON snapshots resolve the output directory in this order:

  1. An explicit -o / --output flag wins.
  2. Otherwise, <cwd>/reports when the current directory is inside a git repository.
  3. Otherwise, ~/.local/share/dothaven.
dothaven collect -o ./snapshots

Shell completion

Cobra provides a built-in completion command that generates completion scripts for bash, zsh, fish, and PowerShell. Print the script for your shell:

dothaven completion zsh

To load completions in the current session:

source <(dothaven completion zsh)

Run dothaven completion --help for per-shell instructions on installing the script permanently.

Next steps