Start here
Local development
Toolchain and day-to-day commands for working on Holtdroid.
Цей контент ще не доступний вашою мовою.
The toolchain is pinned in mise.toml: Go, Bun, golangci-lint and Helm.
mise installbun install| Command | What it does |
|---|---|
make check |
Everything CI runs |
make test |
go test -race ./... |
make lint |
golangci-lint, tsc, oxlint, oxfmt check |
make fmt |
Format Go and TypeScript |
make openapi |
Regenerate the UI’s API clients from the Go contracts |
make build |
Build the UI and bin/holtdroid with it embedded |
make docs |
Build this site into docs/dist |
make dev |
Run holtdroid dev on :8080 |
make web-dev |
Run the Vite dev server, proxying /api and /s to :8080 |
Running without a cluster
Section titled “Running without a cluster”holtdroid dev starts the portal with anonymous sign-in, a read-only
artifact source named local that lists the APKs in a directory, a writable
uploads source for the Upload button, and a fake device
provider whose devices boot in a few seconds, stream a short recorded screen
and serve a placeholder DevTools page. Nothing else is needed:
make dev # or: go run ./cmd/holtdroid dev --apks ~/Downloadsmake web-dev # in a second terminal, then open http://localhost:5173Useful flags: --apks <dir>, --uploads <dir> (default: a temporary
directory), --slots 4, --step-delay 2s, --idle-timeout 30m,
--cache <dir>, --no-direct and --default-location de (fake VPN
locations).
It also runs the SSH gateway on --ssh :2222 with temporary host and
authority keys and serves the client builds from bin/connect
(--connect-clients, built by make connect), so the Computers page’s
command connects your machine to the fake devices. Their ADB is the fake
provider’s small adbd, and their published ports are local listeners.
Frontend tooling runs on Bun. Type checking uses TypeScript 7 (the native compiler); linting and formatting use oxlint and oxfmt.
Contributor-facing design notes live in
design/, and the
rules for humans and coding agents in
AGENTS.md.