Skip to main content

Install

v0.1.0 is tagged. There are four ways to get mindd (the server) and mindctl (the CLI), in rough order of how quickly they get you running.

Before you deploy anything

Every example in this documentation uses a development PASETO keypair whose private half is published in this repository. Generate your own with mindctl token gen-keypair before you run mindD anywhere that matters. See Security.

Container image

Multi-arch (linux/amd64, linux/arm64), published to GHCR on every tag:

docker pull ghcr.io/vibed-project/mindd:v0.1.0
# or the moving tag
docker pull ghcr.io/vibed-project/mindd:latest

The image is distroless nonroot (UID/GID 65532, no shell, no package manager). It ships both binaries, expects a config mounted at /etc/mindd/config.yaml, and exposes 7777 (gRPC), 8080 (HTTP gateway) and 9090 (metrics):

docker run --rm \
-p 7777:7777 -p 8080:8080 -p 9090:9090 \
-v "$(pwd)/configs/example.yaml:/etc/mindd/config.yaml:ro" \
ghcr.io/vibed-project/mindd:v0.1.0

See Docker image for the full layout and build args.

Release binaries

Each tag attaches cross-platform archives plus checksums.txt to the GitHub Release. Every archive contains both mindd and mindctl, because mindctl mints the tokens the mindd it ships with will accept, so the two should never be version-skewed. Platforms: linux, darwin and windows on amd64 and arm64.

VERSION=0.1.0
OS=$(uname -s | tr '[:upper:]' '[:lower:]') # linux | darwin
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')

curl -sSLO "https://github.com/vibed-project/mindD/releases/download/v${VERSION}/mindd_${VERSION}_${OS}_${ARCH}.tar.gz"
curl -sSLO "https://github.com/vibed-project/mindD/releases/download/v${VERSION}/checksums.txt"
sha256sum -c checksums.txt --ignore-missing

tar xzf "mindd_${VERSION}_${OS}_${ARCH}.tar.gz"
sudo install -m 0755 mindd mindctl /usr/local/bin/

The archives also carry LICENSE, NOTICE, README.md, CHANGELOG.md and configs/example.yaml.

go install

Needs Go 1.26 or newer. This builds from source at the tag, so there is no checksum step and no container runtime involved:

go install github.com/vibed-project/mindD/cmd/mindd@v0.1.0
go install github.com/vibed-project/mindD/cmd/mindctl@v0.1.0

Note the capital D in the module path. Binaries land in $(go env GOPATH)/bin.

go install applies no linker flags, so the version is recovered from the module's build info instead: mindd --version reports v0.1.0 rather than dev.

Build from source

git clone https://github.com/vibed-project/mindD.git
cd mindD
make build # produces bin/mindd and bin/mindctl

make build stamps the version, commit and build date from git. You only need buf if you intend to regenerate the protobuf stubs; the generated code is checked in under gen/.

Helm

helm install mindd deploy/helm/mindd \
--set config.auth.paseto.public_key_hex=<your-public-key-hex>

image.repository already defaults to ghcr.io/vibed-project/mindd, and image.tag defaults to the chart's appVersion. The chart has no default signing key and refuses to render without one. See Helm.

Client SDKs

LanguagePackageSource
Pythonminddsdk/python
TypeScript@mindd/clientsdk/typescript

The SDKs version and release independently of the server, from their own tag prefixes (python-sdk-v*, typescript-sdk-v*). See Python SDK and TypeScript SDK.

Verify the install

mindd --version # mindd v0.1.0 (<commit>, <date>)
mindctl version # mindctl v0.1.0 (<commit>, <date>)

mindd takes a single required flag, --config. There is no default config path in the binary; the container image supplies one through its CMD.

Compatibility

mindD is pre-1.0. Proto shapes under proto/mindd/*/v1 may still change between minor versions. CHANGELOG.md records what moved, including a Known limitations section for each release; the ones that affect how you should deploy are reproduced on the Security page.