Installing SonarQube on FreeBSD
SonarQube is a static analysis tool that supports many popular languages. It can be integrated with tools like Jenkins and JIRA. This post covers installing it on FreeBSD.
Software Versions
$ date -u "+%Y-%m-%d %H:%M:%S +0000"
2017-02-22 20:09:23 +0000
$ uname -vm
FreeBSD 11.0-RELEASE-p1 #0 r306420: Thu Sep 29 01:43:23 UTC 2016 root@releng2.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
Instructions
Install sonarqube.
sh
pkg install sonarqube
Create the database for sonarqube.
sh
SONARQUBE_USER="sonarqube"
SONARQUBE_DATABASE="sonarqube"
SONARQUBE_PASSWORD="secret.password"
createuser "${SONARQUBE_USER}"
psql -c "ALTER USER ${SONARQUBE_USER} WITH PASSWORD '${SONARQUBE_PASSWORD}';"
createdb "${SONARQUBE_DATABASE}"
psql -c "GRANT ALL PRIVILEGES ON DATABASE ${SONARQUBE_DATABASE} TO ${SONARQUBE_USER};"
Configure sonarqube.
/usr/local/sonarqube/conf/sonar.properties partial listing
#--------------------------------------------------------------------------------------------------
# DATABASE
#
# IMPORTANT: the embedded H2 database is used by default. It is recommended for tests but not for
# production use. Supported databases are MySQL, Oracle, PostgreSQL and Microsoft SQLServer.
# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=sonarqube
sonar.jdbc.password=secret.password
#----- Embedded Database (default)
# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092
#----- MySQL 5.6 or greater
# Only InnoDB storage engine is supported (not myISAM).
# Only the bundled driver is supported. It can not be changed.
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
Enable sonarqube.
/etc/rc.conf partial listing
sonarqube_enable="YES"
Start sonarqube.
sh
service sonarqube start
Alternatively, start the console by calling sonar.sh directly if you want verbose output. This can be useful when troubleshooting.
sh
/usr/local/sonarqube/bin/freebsd/sonar.sh console
It takes a couple of minutes to start, but curl will return html if everything is working. Alternatively, direct your browser to port 9000 of the server running sonarqube.
sh
curl localhost:9000
SonarQube can be configured from the browser.