Getting Started

Quick start guide for running SeeBOM locally or on Kubernetes.
SeeBOM Dashboard

Prerequisites

ToolMinimum Version
Docker + Docker Composev2.20+
Go1.24+ (only for local dev)
Node.js22+ (only for local dev)
# 1. Clone the repo
git clone https://github.com/seebom-labs/seebom.git && cd seebom

# 2. Place your SPDX files in the sboms/ directory
#    (example files are included — see docs/faq for details)
#    Included: _example.spdx.json, _example-intoto.spdx.json,
#              _example-violations.spdx.json, _example.openvex.json

# 3. Start everything
make dev

# Or without make:
docker compose up --build -d

This starts:

  • ClickHouse on localhost:9000 (TCP) / localhost:8123 (HTTP)
  • API Gateway on localhost:8080
  • Ingestion Watcher (runs once, scans sboms/ for new files)
  • Parsing Worker (processes queued SBOM/VEX files)
  • Angular UI on localhost:8090

Open http://localhost:8090 in your browser.

Option B: Local Kubernetes (Kind)

Deploy the full stack to a local Kind cluster:

# 1. Copy secrets template and fill in your values
cp examples/kind/secrets.env.example local/secrets.env
vi local/secrets.env

# 2. Deploy (builds images, loads into Kind, installs via Helm)
make kind-up

# UI: http://localhost:8090   API: http://localhost:8080/healthz

Option C: Local Development (Hot Reload)

# 1. Start only ClickHouse
make ch-only

# 2. Run the migrations (first time only)
make ch-migrate

# 3. In separate terminals:
make api      # API Gateway
make ingest   # Ingestion Watcher (once)
make worker   # Parsing Worker
make ui-dev   # Angular dev server (http://localhost:4200)

Configuration (.env)

Copy .env.example to .env and adjust:

cp .env.example .env
VariableDefaultDescription
S3_BUCKETS(empty)JSON array of S3 bucket configs (recommended)
S3_BUCKET(empty)Single S3 bucket name (alternative)
SBOM_SOURCE_DIR./sbomsPath to local SBOM files
SBOM_LIMIT0Max SBOMs to enqueue (0 = unlimited)
WORKER_REPLICAS1Number of parallel workers
WORKER_BATCH_SIZE50Jobs per polling cycle
SKIP_OSVfalseSkip vulnerability lookups for fast ingestion
SKIP_GITHUB_RESOLVEfalseSkip GitHub license resolution
GITHUB_TOKEN(empty)GitHub PAT (increases rate limit to 5000 req/h)