Multi-stage Dockerfile runs the tests, builds a static binary, and ships it on Alpine with git for GitHub clones.
25 lines
1.0 KiB
Markdown
25 lines
1.0 KiB
Markdown
# CodeNavigator
|
|
|
|
A single binary that serves the WebGL frontend and the
|
|
indexing API (jobs, SSE progress, snapshots, search, source) on one origin.
|
|
No dependencies beyond the Go standard library.
|
|
|
|
```bash
|
|
go run . # http://127.0.0.1:4177
|
|
go test -race ./...
|
|
go test -run x -bench Index # indexes $CODENAV_BENCH_DIR (default: Go's stdlib source)
|
|
./build.sh [tag] # Docker image, tests run during the build
|
|
docker run --rm -p 4177:4177 codenavigator:latest
|
|
```
|
|
|
|
Configuration: `PORT` (default `4177`, or `--port`), `CORS_ORIGIN` (default `*`).
|
|
`git` must be on `PATH` to load GitHub repositories (the image includes it).
|
|
|
|
The browser frontend in `web/` is plain JavaScript (it has to run in the browser) and
|
|
is embedded into the binary; `web/config.js` points it at the same origin.
|
|
|
|
Notes:
|
|
- `GET /` serves the frontend instead of a JSON service description.
|
|
- Search queries are percent-decoded properly.
|
|
- `.gitignore` support covers standard globs but not global excludes or `.git/info/exclude`.
|