Bare-Metal Local Development Installation¶
This guide walks you through compiling and running Bruce directly on your local workstation without Docker.
1. Prerequisites¶
1. Go Toolchain¶
- Go 1.23 or newer is required:
2. C Compiler (CGO Required)¶
Bruce uses mattn/go-sqlite3, which requires CGO to compile SQLite:
- macOS: Install Xcode Command Line Tools:
build-essential:
- Linux (Fedora/RHEL):
3. Redis Instance¶
Bruce requires Redis for Asynq job queues: - macOS (Homebrew):
- Linux: - Docker (Alternative):2. Compiling & Running¶
-
Clone the repository:
-
Configure
Ensureconfig.yml:redis.addrpoints tolocalhost:6379: -
Run directly with
go run: -
Or compile a binary:
-
Verify: Open
http://localhost:8080in your web browser.
3. Running the Test Suite¶
# Run all unit and integration tests
go test -v ./...
# Run tests with race condition detector
CGO_ENABLED=1 go test -race ./...
# Static analysis
go vet ./...
4. Frontend Development¶
Bruce's web interface uses modern Vanilla JavaScript, CSS, and HTML embedded in the Go binary:
- Frontend assets are located in web/public/.
- No Node.js build step, bundler, or transpilation is required.
- If you edit files in web/public/, re-run go run cmd/bruce/main.go to re-embed the updated files.
Optional: Playwright E2E Tests¶
To run the automated browser tests against the web interface: