Thank you for your interest in contributing! This document describes how to get started.
- Go 1.24+
- Node.js 22+
- Docker and Docker Compose
- PostgreSQL 16 (or use the provided Docker Compose setup)
Start the database:
docker compose up -d postgresBackend:
cd backend
cp ../.env.example ../.env # adjust values as needed
go mod download
go run ./cmd/vultrackFrontend:
cd frontend
npm install
npm run devThe frontend dev server proxies API calls to http://localhost:8080 by default (see vite.config.ts).
vultrack/
├── backend/
│ ├── cmd/vultrack/ # Entry point
│ └── internal/
│ ├── config/ # Environment variable loading
│ ├── database/ # Schema and DB helpers
│ ├── handlers/ # HTTP handlers (Fiber)
│ ├── models/ # Shared data models
│ ├── scanner/ # OVAL-based vulnerability scanner
│ ├── services/ # Business logic layer
│ └── ... # exploitdb, jira, nvd, oval, oidc, ...
├── frontend/
│ └── src/
│ ├── api/ # API client functions
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page-level components
│ └── types/ # TypeScript types
└── docs/ # Additional documentation
Go: Follow standard Go conventions. Run go vet ./... before submitting.
TypeScript/React: The project uses ESLint. Run npm run lint before submitting.
- Fork the repository and create a feature branch from
main. - Make your changes, keeping commits focused and atomic.
- Ensure the backend compiles (
go build ./...) and the frontend lints (npm run lint). - Open a pull request with a clear description of what changes you made and why.
Please open a GitHub issue and include:
- A clear description of the problem
- Steps to reproduce
- Expected vs. actual behavior
- VulTrack version or commit hash
For security vulnerabilities, see SECURITY.md instead.