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

CommandWherePurpose
pnpm devrootNuxt dev server
pnpm lintrootESLint
pnpm buildrootProduction Nuxt build
mvn testapi/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.
Previous

Introduction

Help improve Threatless by reporting issues, suggesting features, and sending pull requests.