Lintel

Documentation

Get scanning in five minutes.

One Docker image, one volume, one port. The quickstart below boots a full instance with the web UI, CLI, REST API, and every bundled rule pack.

Quickstart

Run Lintel locally

one-liner
docker run -d \
  --name lintel \
  -p 8765:8765 \
  -v lintel-data:/data \
  ghcr.io/lintelcode/lintel:latest

Then open http://localhost:8765 and upload a repository archive, or clone from a Git URL.

Docker compose

For production deployments

docker-compose.yml
services:
  lintel:
    image: ghcr.io/lintelcode/lintel:latest
    container_name: lintel
    restart: unless-stopped
    ports:
      - "127.0.0.1:8765:8765"
    environment:
      SAST_DATA_DIR: /data
      # SAST_DB_KEY: <64-hex-char key, optional>
    volumes:
      - lintel-data:/data
      - ./rules:/app/rules:ro

volumes:
  lintel-data:

Integrations

Drop Lintel into your pipeline

GitHub Actions

- uses: lintelcode/lintel-action@v1
  with:
    target: ./src
    severity-threshold: high
    upload-sarif: true

Results show up directly in the GitHub Security tab.

GitLab CI

lintel:
  image: ghcr.io/lintelcode/lintel:latest
  script:
    - sastcli scan . \
        --format sarif \
        -o gl-sast-report.json
  artifacts:
    reports:
      sast: gl-sast-report.json

Native SARIF ingestion via the GitLab security dashboard.

Jenkins

stage('SAST') {
  steps {
    sh 'sastcli scan . \
        --format sarif \
        -o report.sarif'
    recordIssues tool: sarif(
      pattern: 'report.sarif')
  }
}

Warnings Next Generation plugin turns findings into build-gated alerts.