SonarQube Community for k0smos
Mini guida per avviare SonarQube Community Build e usarlo come controllo locale di qualita del codice k0smos.
Riferimenti ufficiali:
- Docker: https://docs.sonarsource.com/sonarqube-community-build/server-installation/from-docker-image/installation-overview
- Prova locale Docker/ZIP: https://docs.sonarsource.com/sonarqube-community-build/try-out-sonarqube
- Immagini Docker ufficiali: https://hub.docker.com/_/sonarqube
Installazione tramite Docker
Uso rapido per valutazione locale:
docker run -d --name k0smos-sonarqube `
-p 9000:9000 `
-e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true `
sonarqube:community
Equivalente Linux/macOS:
docker run -d --name k0smos-sonarqube \
-p 9000:9000 \
-e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
sonarqube:community
Poi apri:
http://localhost:9000
Modificare la porta web
La porta web interna del container resta 9000; per cambiare la porta vista
dal browser modifica solo il lato sinistro del mapping -p. Per esempio, per
esporre SonarQube su http://localhost:19000:
docker run -d --name k0smos-sonarqube -p 19000:9000 -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true sonarqube:community
Se il container esiste gia, fermalo e ricrealo con il nuovo mapping:
docker rm -f k0smos-sonarqube
docker run -d --name k0smos-sonarqube -p 19000:9000 -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true sonarqube:community
Credenziali iniziali:
login: admin
password: admin
Nota: SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true e adatto solo a una prova locale.
Per un uso persistente o condiviso, prepara i requisiti host richiesti da
SonarQube e usa un database PostgreSQL esterno invece del database embedded.
Installazione tramite ZIP
Uso rapido per valutazione locale:
- Installa Java 17 o Java 21.
- Scarica il pacchetto ZIP SonarQube Community Build dal sito SonarSource.
- Estrai lo ZIP come utente non amministratore, per esempio:
- Windows:
C:\sonarqube - Linux/macOS:
/opt/sonarqube
- Windows:
- Avvia SonarQube:
Windows:
C:\sonarqube\bin\windows-x86-64\StartSonar.bat
Linux/macOS:
/opt/sonarqube/bin/<OS>/sonar.sh console
Poi apri http://localhost:9000 e accedi con admin / admin.
Per cambiare la porta web nella versione ZIP, modifica il file
conf/sonar.properties dentro la directory SonarQube e imposta:
sonar.web.port=19000
Riavvia SonarQube e apri http://localhost:19000.
Configurazione obbligatoria
Questa e la sequenza minima da completare prima di lanciare un'analisi k0smos.
- Avvia SonarQube con Docker o ZIP.
- Attendi che
http://localhost:9000risponda. - Accedi con
admin/admin. - Cambia subito la password dell'utente
admin. - Crea un nuovo progetto:
- project key:
k0smos - display name:
k0smos
- project key:
- Genera un token di analisi dedicato al progetto.
- Installa SonarScanner CLI nella macchina da cui analizzi il repo, oppure usa lo scanner proposto dalla UI.
- Dal root del repo k0smos, crea il file
sonar-project.properties. Il nome deve essere questo, al singolareprojecte con estensione.properties; SonarScanner lo cerca nella directory da cui eseguisonar-scanner.
Esempio minimale per sonar-project.properties nella root del progetto:
sonar.projectKey=k0smos
sonar.projectName=k0smos
sonar.sources=.
sonar.host.url=http://localhost:9000
sonar.exclusions=vendor/**,node_modules/**,var/**,log/**,public/build/**,public/vendor/**,reports/**,tests/_output/**
Non inserire token in sonar-project.properties: il file puo essere versionato,
mentre il token deve restare in un secret, in una variabile ambiente o passato
solo localmente al comando.
- Esegui l'analisi passando il token fuori dal file versionato:
sonar-scanner `
-Dsonar.token="<token-generato-da-sonarqube>"
Linux/macOS:
sonar-scanner \
-Dsonar.token="<token-generato-da-sonarqube>"
- Torna nella UI SonarQube, apri il progetto
k0smose verifica che la prima analisi sia presente.
Collegare SonarQube a VS Code
Per VS Code usa l'estensione SonarQube for IDE in Connected Mode.
Token consigliati:
- Token di analisi progetto: usalo per
sonar-scannere per la CI. Serve a pubblicare analisi nel progettok0smos. - User Token personale: usalo per VS Code. Serve all'estensione per autenticarsi alla tua istanza SonarQube e leggere il binding del progetto.
Quindi: non usare in VS Code il token di analisi del progetto, se puoi evitarlo.
Crea un token utente dedicato, con nome riconoscibile, per esempio
vscode-k0smos.
Sequenza consigliata:
- Installa l'estensione
SonarQube for IDEin VS Code. - In SonarQube, apri il profilo utente e genera un User Token dedicato a VS Code.
- In VS Code, apri la vista
SonarQube for IDE/Connected Mode. - Aggiungi una connessione:
- server URL:
http://localhost:9000oppure la porta che hai scelto, - token: il tuo User Token personale,
- connection name:
k0smos-local.
- server URL:
- Apri la cartella root del repo k0smos in VS Code.
- Se viene rilevato
sonar-project.properties, scegliConfigure Binding. - Associa la cartella locale al progetto remoto con project key
k0smos.
Il binding VS Code usa il progetto SonarQube per sincronizzare regole e issue
con l'IDE; l'analisi completa resta responsabilita di sonar-scanner o della
CI.
Comandi utili Docker
docker logs -f k0smos-sonarqube
docker stop k0smos-sonarqube
docker start k0smos-sonarqube
docker rm -f k0smos-sonarqube
Note operative
- Non versionare token SonarQube o password.
- Per analisi ripetibili, preferisci
sonar-project.propertiescon soli valori non segreti e passa sempresonar.tokenda ambiente, CI secret o parametro locale. - La Community Build non include tutte le feature commerciali; usala come controllo locale/base di qualita, non come sostituto di policy enterprise.