Skip to content

Setup Overview

CBOM consists of three components to deploy: the API (central service), one or more Sensors (discovery agents), and the UI (management interface). MongoDB is the backing database.


ComponentRequirement
Java17+ (for API and Sensor)
Node.js20+ (for UI development only)
MongoDB6.0+
OSLinux, Windows, or macOS

Terminal window
# Docker
docker run -d --name cbom-mongo -p 27017:27017 mongo:7
# Or use an existing MongoDB instance
Terminal window
cd cbom/api
cp .env.template .env
# Edit .env with your settings
mvn spring-boot:run
# API starts on port 9090
Terminal window
cd cbom/ui
npm install
npm start
# UI starts on port 4200, proxies API calls to 9090

Navigate to http://localhost:4200 and sign in. The first user created becomes admin.

Terminal window
cd cbom/sensor
mvn package -DskipTests
# Run with a config file
java -jar target/cbom-sensor-*.jar --config=configs/examples/https-endpoint-scanner.yml

In production, the API serves the Angular UI as embedded static resources — a single JAR handles everything.

Terminal window
# Build the full production artifact
cd cbom
mvn package -Pprod -DskipTests
# Run
java -jar api/target/cbom-api-*.jar --spring.profiles.active=prod

The production profile enables:

  • Embedded UI serving (no separate web server needed)
  • Response compression
  • Static resource caching
  • CORS disabled (same-origin)


See Architecture for how the components communicate and the data flow from sensor to dashboard.