Getting Started
Verified against the source at commit
362e6da. Commands assume Docker with Compose and a local clone of the repository.
Prerequisites
- Docker with the Compose plugin (the local stack runs as containers).
gitandcurl.- Go 1.26 only if you want to build the binaries from source instead of using the released image.
Install
The quickstart path uses the published GUAC image through Docker Compose. Clone the repository first:
git clone https://github.com/guacsec/guac.git
cd guacTo build the CLI binaries from source instead (output lands in ./bin):
make buildA first working setup
This brings up the GUAC services with the in-memory backend, ingests a folder of documents, and queries the result.
Start the stack (GraphQL server, collectsub, ingestor) with the in-memory backend. The target force-recreates containers and waits for the GraphQL endpoint to answer on port 8080.
bashmake start-serviceIngest a folder of SBOMs/attestations directly into the graph. The
filessubcommand talks straight to the GraphQL endpoint (cmd/guacone/cmd/files.go:62).bashbin/guacone collect files /path/to/sbom-folderQuery the graph from the CLI.
bashbin/guacone query
Verify it works
The start-service target polls http://localhost:8080 and prints Inmem GUAC service is up! once the GraphQL endpoint responds (Makefile:161). You can also open the GraphQL playground at http://localhost:8080 in a browser. To tear the stack down and flush in-memory state:
make stop-serviceWhere to go next
For production concerns (the ent+PostgreSQL backend, collectors running as daemons, pub/sub via NATS, and TLS), follow the official setup guide at https://docs.guac.sh/. The repository also ships a .devcontainer that brings up the full stack (GraphQL, REST, collectsub, ingestor, NATS, and the deps_dev/osv/ClearlyDefined collectors) for editor-based exploration.