Quickstart
This walks through the five-minute happy path: account, registry, scan, result.
Create an account
Sign up at harborguard.co. The first user becomes the owner of a fresh organization. Invite teammates from Settings -> Members once you are in.
Connect a registry
Go to Dashboard -> Registries -> Add Registry, pick Docker Hub, and enter:
| Field | Example |
|---|---|
| Name | dockerhub-prod |
| Username | your Docker Hub username |
| Access token | a Docker Hub personal access token with Read scope |
| Namespace | library for public images, or your own org |
Credentials are encrypted at rest with AES-256-GCM envelope encryption before the row hits Postgres. Click Test connection to verify, then Save.
HarborGuard will start cataloging images on the next sync. Public images like library/nginx are visible immediately.
Run your first scan
From the registry detail page click Scan on any tag (e.g. nginx:1.25). Pick one or more scanners; for a fast first run, just trivy and syft is enough.
Equivalent API call (you can grab an API key from Settings -> API Keys):
Response (HTTP 202):
Watch the scan run
Poll status:
Status transitions: PENDING -> IN_PROGRESS -> COMPLETED (or FAILED). A typical multi-engine scan of a 200 MB image finishes in 30-90 seconds.
Read the results
Open the scan detail page. You will see:
- Compliance grade (A-D) - quick deployment-gate signal. See Grades.
- Findings - vulnerabilities grouped by severity, each with a
sourceslist showing which engines flagged it. - Packages - the SBOM produced by Syft.
- Layers - layer-by-layer file changes from Dive.
- Logs - raw scanner stdout for debugging.
From here, triage individual findings, set SLA policy in Settings -> Compliance Policy, or wire scans into CI (CI/CD).