Self-hosted
Trivy dashboard
Aggregate Trivy scan results from your CI/CD pipelines into one real-time dashboard. Docker, Docker Compose, or Kubernetes — your infrastructure, your data.
Features
Everything in one place
- Real-time
CVEs ranked by severity,
fix versions inlineStop hunting through JSON. Critical CVEs bubble to the top, patched versions shown next to each finding. Triage in seconds, not hours.
CRITICALHIGHMEDIUM Integrations
One curl.
Any CI system.GitHub Actions, GitLab CI, Jenkins, CircleCI — one command.
$ curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-F "file=@report.json" \
/api/v1/reportAnalytics
Trend charts
Weekly CVE evolution across all projects and environments.
Multi-project
Environments
Production, staging, per-branch — organized and role-gated.
Scan history
Full timeline
Diff vs previous scan. Branch and commit context every run.
API Keys
Per-project keys
Create, copy, revoke. One key per project, never shared.
Security-first
Your data never
leaves your network
TrivyHub is self-hosted by design. No telemetry, no SaaS callbacks, no surprises. MIT licensed.
Zero-trust
API keys scoped per project
JWT-authenticated endpoints. Keys can be revoked individually. No shared secrets between projects.
CVE traceability
Every vuln linked to NVD + CVSS
Direct link to the CVE entry, CVSS score, affected versions, and the upstream patch. Full audit trail.
Air-gapped
Runs fully offline
SQLite or PostgreSQL — your choice. Works inside a VPN, a private cluster, or a full air-gap. No internet required.
Severity ranking
Critical first, noise filtered
CRITICAL and HIGH CVEs always on top. Fix versions shown inline. Diff vs previous scan on every push.
Up and running
in under five minutes
docker run -d \
--name trivyhub \
-p 3000:3000 \
-e JWT_SECRET=$(openssl rand -hex 32) \
-v trivyhub-data:/app/data \
ghcr.io/trivyhub/trivy-dashboard-web:latestSQLite, zero config. Data persisted in a Docker volume.
Push scan results from CI
- name: Trivy scan
run: trivy image --format json --output report.json $IMAGE
- name: Push to TrivyHub
run: |
curl -X POST \
-H "Authorization: Bearer ${{ secrets.TRIVYHUB_TOKEN }}" \
-F "project=${{ github.repository }}" \
-F "file=@report.json" \
-F "environment=production" \
-F "branch=${{ github.ref_name }}" \
-F "commit=${{ github.sha }}" \
https://trivyhub.your-company.com/api/v1/reportFour steps
from zero to dashboard
Deploy TrivyHub
Run it with Docker, Docker Compose, or Helm. Choose SQLite for simplicity or PostgreSQL for production.
Create an API key
In the dashboard: Settings → API Keys → New key. One key per project or environment.
Add to your pipeline
One curl command in your CI job. Trivy scans the image and sends the JSON report to TrivyHub.
Monitor & triage
Your team sees CVEs ranked by severity, with fix versions, evolution charts, and full scan history.
Ship secure,
every time.
Open source and self-hosted. Your scans never leave your infrastructure.