Dev setup
Run the Threatless web app and API on your machine.
Threatless is two codebases in one repository:
- Web — Nuxt 4 + Nuxt UI 4 (this directory)
- API — Spring Boot 3.4 / Java 21 in
api/
Repository layout
threatless/
app/ Pages, components, stores
content/docs/ Documentation you are reading
api/ Spring Boot + ClamAV integration
package.json Nuxt app scripts (dev, build, lint)
Dockerfile Production web image
Web app
Clone the repository
terminal
git clone https://github.com/briacdev/threatless.git && cd threatless
Install dependencies
terminal
pnpm install
Environment
terminal
cp .env.example .env
Set API_URL to the API origin (for local API, typically http://localhost:8080).
Start Nuxt
terminal
pnpm dev
The app is at http://localhost:3000.
API
You need Java 21, Maven, PostgreSQL, and a running clamd (or the API Docker image).
terminal
cd api
cp .env.example .env
# Start Postgres, then:
mvn spring-boot:run
Or docker compose up --build from api/ if the threatless network and database already exist. See Docker.
Useful commands
| Command | Where | Purpose |
|---|---|---|
pnpm dev | root | Nuxt dev server |
pnpm lint | root | ESLint |
pnpm build | root | Production Nuxt build |
mvn test | api/ | API unit tests |
The web app talks to the API only through
NUXT_PUBLIC_API_URL. If pages load but scans fail, check CORS (CLIENT_ALLOWED_ORIGINS) and that the browser can reach the API URL you configured.