garth, noun: A clearing in the woods. A garden.
BitGarth is a privacy-focused app for collecting wallet and financial data in one place without pooling that private data into somebody else's database. Self-hosted data stays in the BitGarth instance you control.
- Website: bitgarth.app
- Official hosted service: my.bitgarth.app
Installing or upgrading a docker instance:
curl -fsSL https://bitgarth.app/docker.sh | shOpen http://localhost:8080.
It stores persistent application data in the bitgarth-data Docker volume.
See Environment Variables before exposing an instance through a reverse proxy or changing its storage configuration.
The Docker build is the supported source-build path:
VERSION="$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -1)"
GIT_SHA="$(git rev-parse HEAD)"
docker build \
--build-arg "GIT_SHORT_SHA=$(git rev-parse --short=12 HEAD)" \
--build-arg "GIT_SHA=${GIT_SHA}" \
--build-arg "IMAGE_VERSION=${VERSION}" \
--tag bitgarth:local .
docker run --rm \
-p 8080:8080 \
-v bitgarth-data:/data \
bitgarth:localTo run the complete source verification gate, install the Rust toolchain,
Dioxus CLI, cargo-deny, Node.js, npm, Playwright Chromium, Docker Buildx, and
RTK. RTK is required because the test wrappers
invoke it directly; having the rtk binary on PATH is sufficient. Then run:
./scripts/verify-fullSpecific test suites can be run using the commands below.
./scripts/tests-unit./scripts/tests-db-unit./scripts/tests-integrationInstall JS dependencies and Chromium:
npm install
npm ci
npm run e2e:install-browsersRun E2E tests:
npm run e2enpm run e2e checks whether the release web build is missing or stale and rebuilds it before starting Playwright.
Build or install the bitgarth CLI from the workspace:
cargo install --path crates/bitgarth-cliPair interactively, or provide every value for scripts:
bitgarth pair
bitgarth --profile personal pair https://your-bitgarth.example.com/
bitgarth --profile personal balancesheet
# Short alias:
bitgarth --profile personal bspair accepts a browser URL and uses its scheme, host, and port. Paths, query
parameters, and fragments are ignored. List or rename local profiles with
bitgarth profile list and bitgarth profile rename personal primary.
Remove only the local profile with bitgarth profile remove primary; revoke
the server-side capability from Settings → Paired Clients when access must
end.
HTTPS is required by default. For a trusted plain-HTTP URL, either pass
--allow-insecure-http or type yes after the interactive warning.
See Security & Privacy for the full
security model.
This is a source-first publication for auditability and self-hosting. It has no support SLA.
For vulnerabilities, follow SECURITY.md. Do not report security issues through public issue trackers or pull requests.
Pull requests are not accepted by default. See CONTRIBUTING.md before proposing a change.
Copyright © 2026 FernTrail B.V., Netherlands Chamber of Commerce (KVK) 42108345.
BitGarth is source-available under the Functional Source License 1.1 with
Apache 2.0 future license (FSL-1.1-ALv2). Each published version
additionally becomes available under the Apache License 2.0 on the second
anniversary of its publication.