Skip to content

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).
  • git and curl.
  • 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:

bash
git clone https://github.com/guacsec/guac.git
cd guac

To build the CLI binaries from source instead (output lands in ./bin):

bash
make build

A first working setup ​

This brings up the GUAC services with the in-memory backend, ingests a folder of documents, and queries the result.

  1. 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.

    bash
    make start-service
  2. Ingest a folder of SBOMs/attestations directly into the graph. The files subcommand talks straight to the GraphQL endpoint (cmd/guacone/cmd/files.go:62).

    bash
    bin/guacone collect files /path/to/sbom-folder
  3. Query the graph from the CLI.

    bash
    bin/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:

bash
make stop-service

Where 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.