βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββββ βββββββ ββββ βββ ββββββ βββββββ β
β ββββββββββββββββββββββ βββββββββββββββββββ β
β βββββββββββ βββββββββ βββββββββββββββββββ β
β βββββββββββ βββββββββββββββββββββββββββββ β
β ββββββββββββββββββββ βββββββββ ββββββ βββ β
β ββββββββ βββββββ βββ ββββββββ ββββββ βββ β
β ββββββββ βββββββ ββββββ ββββ βββββββ ββββββββββββββββββ β
β βββββββββββββββββββββββββββββ ββββββββ βββββββββββββββββββ β
β βββββββββββ ββββββββββββββ βββββββββ βββββββββ ββββββββ β
β βββββββββββ ββββββββββββββββββββββββββββββββββ ββββββββ β
β βββββββββββββββββββ ββββββ βββββββββ βββββββββββββββββ βββ β
β ββββββββ ββββββββββ ββββββ ββββββββ ββββββββββββββββ βββ β
β β
β [ C O D E V U L N E R A B I L I T Y H U N T E R ] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
>> RUN COMMAND >> SCAN CODE >> GET RESULTS >> DONE >>
A zero-configuration SonarQube scanner for developers who don't have time for setup wizards.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββ ββββββ ββββ βββββββββββββββ ββββββββββββββββ β
β ββββββββββββββββββββββββββββββ ββββββββββββββββ βββββββββββββββββ β
β βββ ββββββββββββββββββββββ βββββββββββββββββββββββββ βββ β
β βββ ββββββββββββββββββββββββββββββββββββββββββββββββ βββ β
β βββ βββ ββββββ ββββββ βββββββββββββββββ βββ ββββββ βββ β
β βββ βββ ββββββ ββββββ ββββββββββββββββ ββββββ βββ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β [ I N C O M I N G ] β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Run a single command. Get a full code quality report. No configuration needed.
SONAR-SCANNER is a wrapper around SonarQube that makes code scanning effortless:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βΈ Point it at ANY directory β
β βΈ Spins up SonarQube automatically if needed β
β βΈ Handles authentication for you β
β βΈ Clears old scan data (fresh results every time) β
β βΈ Scans your entire codebase for issues β
β βΈ Delivers results to your local SonarQube dashboard β
β β
β NO CONFIGURATION. NO SETUP WIZARDS. JUST WORKS. β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FEATURE β STATUS β DESCRIPTION β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β Zero Configuration β β ACTIVE β Just run. We handle it. β
β Auto SonarQube Deployment β β ACTIVE β Spins up container β
β Fresh Scans β β ACTIVE β Purges old project data β
β Directory-Based Project Names β β ACTIVE β Uses folder name β
β Auto Authentication β β ACTIVE β Handles credentials β
β Issue Export β β ACTIVE β Download to JSON β
β Retro Terminal Style β β MAXIMUM β Neon. ASCII. Vibes. β
β Idempotent Install β β ACTIVE β Safe to run repeatedly β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββ ββββββββ βββββββ βββ βββββββββββββ βββββββββββββββ β
β ββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββ β
β ββββββββββββββ βββ ββββββ ββββββββββββββββββββ βββ βββ β
β ββββββββββββββ βββββ ββββββ ββββββββββββββββββββ βββ βββ β
β βββ βββββββββββββββββββββββββββββββββββ βββββββββββββββββββ β
β βββ βββββββββββ βββββββ βββββββ ββββββ ββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
[ REQUIRED ]
β’ Docker Running and accessible
β’ curl For API communication
β’ Bash 4.0+ Shell environment
β’ Python 3 For data processing
[ RECOMMENDED ]
β’ 4GB+ RAM SonarQube needs memory
β’ 2GB+ Disk For container images
β’ Fast Internet For first-time image pulls
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββ ββββββββββββββββββββ ββββββ βββ βββ β
β ββββββββ βββββββββββββββββββββββββββββββ βββ β
β βββββββββ βββββββββββ βββ βββββββββββ βββ β
β βββββββββββββββββββββ βββ βββββββββββ βββ β
β ββββββ ββββββββββββββ βββ βββ βββββββββββββββββββ β
β ββββββ βββββββββββββ βββ βββ βββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
curl -fsSL https://raw.githubusercontent.com/utajum/sonar-scanner/refs/heads/master/install.sh | bashββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββ βββββββ βββββββββββββββ ββββββ ββββββββββββ βββββββ ββββ βββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββ β
β βββ βββββββββββββββββ ββββββββββββββββ βββ ββββββ βββββββββ βββ β
β βββ ββββββββββ ββββββ ββββββββββββββββ βββ ββββββ βββββββββββββ β
β ββββββββββββ βββββββββββ ββββββ βββ βββ βββββββββββββββ ββββββ β
β βββββββ βββ βββββββββββ ββββββ βββ βββ βββ βββββββ βββ βββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Navigate to your project
cd /path/to/your/project
# Run scan (interactive menu)
sonar-scan
# Or go directly to scan mode
sonar-scan --scan# Scan specific directory
sonar-scan /path/to/target
# Download all issues to JSON
sonar-scan --download
# Quiet mode (minimal output)
sonar-scan --quiet
# Display help
sonar-scan --help
# Show version info
sonar-scan --version$ cd ~/projects/my-awesome-app
$ sonar-scan
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββββ βββββββ ββββ βββ ββββββ βββββββ ββββββββ βββββββ ββββββ β
β ββββββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββββββ β
β βββββββββββ βββββββββ ββββββββββββββββββββββββββββββββββββ ββββββββ β
β βββββββββββ ββββββββββββββββββββββββββββββββββββββββββββββ ββββββββ β
β ββββββββββββββββββββ βββββββββ ββββββ βββ βββββββββββββββββββ βββ β
β ββββββββ βββββββ βββ ββββββββ ββββββ βββ ββββββββ ββββββββββ βββ β
β β
β [ C O D E V U L N E R A B I L I T Y H U N T E R ] β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β S E L E C T O P E R A T I O N β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β β
β [1] βΈβΈβΈ RUN VULNERABILITY SCAN β
β Initiate full spectrum code analysis β
β β
β [2] βΈβΈβΈ DOWNLOAD ALL ISSUES β
β Extract vulnerability data to JSON β
β β
β [Q] βΈβΈβΈ EXIT β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β’β€ ENTER COMMAND CODE: 1
[14:32:01] [INIT] βΈ Starting up...
[14:32:01] [INIT] βΈ Checking Docker connection...
[14:32:01] [DONE] βΈ Docker is running
[14:32:02] [INIT] βΈ Scanning for SonarQube instance at http://localhost:9000...
[14:32:02] [DONE] βΈ SonarQube instance online and operational
[14:32:02] [AUTH] βΈ Authenticating with SonarQube...
[14:32:03] [DONE] βΈ Authentication successful. Token acquired.
[14:32:03] [PURGE] βΈ Clearing previous scan data for my-awesome-app...
[14:32:03] [DONE] βΈ Previous project data cleared
[14:32:03] [DEPLOY] βΈ Starting scanner...
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββ βββββββ βββββββββββββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββ βββ ββββββ ββββββββββββββββ β
β βββββββββββ βββ ββββββ ββββββββββββββββ β
β βββ βββββββββββββββββββββββββββββββββββββββββββ β
β βββ βββ βββββββ βββββββββββββββββββββββββββββββ β
β β
β SCAN COMPLETE β
β β
β View results: β
β http://localhost:9000/dashboard?id=my-awesome-app β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β COMMAND DESCRIPTION β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β β
β ./install.sh --install Deploy to /usr/local/bin β
β ./install.sh --update Upgrade existing installation β
β ./install.sh --remove Purge from system β
β ./install.sh --status Check installation state β
β ./install.sh --help Display help β
β ./install.sh Interactive mode β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β SONAR-SCANNER requires NO configuration. β
β β
β But if you're curious, here's what's happening under the hood: β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β PARAMETER β DEFAULT VALUE β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€ β
β β SonarQube Host β http://localhost:9000 β β
β β Project Key β Current directory name β β
β β Sources β . (entire directory) β β
β β Exclusions β .git, node_modules, build, dist, β β
β β β vendor, *.min.js, *.min.css β β
β β Credentials β admin / Sonarscanner1! β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β First run with default 'admin/admin' auto-changes password for security. β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββ βββββββ βββββββ βββββββ ββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββ β
β ββββββ βββββββββββββββββββ βββββββββββββββββββ β
β ββββββ βββββββββββββββββββ βββββββββββββββββββ β
β βββββββββββ ββββββ βββββββββββββββ βββββββββββ β
β βββββββββββ ββββββ βββ βββββββ βββ βββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
SOLUTION: Start Docker Desktop or the Docker service
Linux: sudo systemctl start docker
Mac: Open Docker Desktop app
SOLUTION: SonarQube can take 1-2 minutes on first start
Wait and try again, or manually start:
docker run -d --name sonarqube -p 9000:9000 sonarqube:latest
SOLUTION: If you've changed the default password manually,
update the SECURE_PASSWORD in sonar-scan.sh
or reset SonarQube container:
docker rm -f sonarqube && sonar-scan
SOLUTION: Run installer with sudo:
sudo ./install.sh --install
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββββββββββ β
β β USER β β
β β (You) β β
β ββββββββββββ¬βββββββββββ β
β β β
β βΌ β
β βββββββββββββββββββββββ β
β β sonar-scan CLI β β
β β βββββββββββββββ β β
β β β’ Banner Display β β
β β β’ Arg Parsing β β
β β β’ Auth Handler β β
β ββββββββββββ¬βββββββββββ β
β β β
β βββββββββββββββββ΄ββββββββββββββββ β
β βΌ βΌ β
β βββββββββββββββββββββββ βββββββββββββββββββββββ β
β β Docker Daemon β β SonarQube API β β
β β βββββββββββββββ β β βββββββββββββββ β β
β β β’ Container Mgmt βββββββββββ β’ Authentication β β
β β β’ Network Host β β β’ Project Delete β β
β ββββββββββββ¬βββββββββββ β β’ Issue Download β β
β β βββββββββββββββββββββββ β
β βΌ β² β
β βββββββββββββββββββββββ β β
β β sonar-scanner-cli ββββββββββββββββββββββ β
β β (Docker Container) β β
β β β’ Code Analysis β β
β β β’ Report Upload β β
β βββββββββββββββββββββββ β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββββββββββ βββββββββββββββ ββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β βββ ββββββββββββββ βββ ββββββ βββ ββββββββ β
β βββ ββββββββββββββ βββ ββββββ βββ ββββββββ β
β βββββββββββ ββββββββββββββββββββββ βββ ββββββββ β
β ββββββββββ ββββββββββββββββββ βββ βββ ββββββββ β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β β
β CREATED BY: utajum β
β POWERED BY: SonarQube // Docker // Pure Bash Madness β
β AESTHETIC: Retro terminal meets ANSI NFO files β
β SOUNDTRACK: Perturbator, Carpenter Brut, Lazerhawk β
β β
β SPECIAL THANKS: β
β β’ SonarSource for building the scanner β
β β’ Docker for containerization β
β β’ Retro terminal aesthetics β
β β’ Coffee, lots of coffee β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
MIT License
Copyright (c) 2024 utajum
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files...
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β ββββββββββββ ββββββββββ ββββββββββββββββ ββββββ ββββ βββββββββββ β
β βββββββββββββ βββββββββββ ββββββββββββββββββββββββββββββ βββββββββββ β
β ββββββ ββββββ ββββββ βββ βββ ββββββββββββββββββββββ βββββββββββ β
β ββββββ βββββββββββββ βββ βββ ββββββββββββββββββββββββββββββββββ β
β βββββββββββ ββββββββββββββ βββ βββ ββββββ ββββββ ββββββββββββββ β
β βββββββββββ ββββββββββββ βββ βββ ββββββ ββββββ βββββββββββββ β
β β
β // SCAN YOUR CODE // β
β // FIX YOUR BUGS // β
β // SHIP WITH CONFIDENCE // β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Website: https://sonar-scan.elevatech.xyz/
"Good code is its own best documentation." - Steve McConnell