SonarQube Platform Overview
The SonarQube platform is made of 3 components:
- the configuration of the SonarQube instance (security, plugins settings, etc.)
- the quality snapshots of projects, views, etc.
- One for users to browse quality snapshots and configure the SonarQube instance
- One or more
- The SonarQube platform cannot have more than a single web server and a single database.
- For optimal performance, each component (Database, Web Server, Clients) should be installed on a dedicated machine. However, the Server and the Database can be installed on the same machine.
- Clients will scale by adding machines.
- The Database and the Clients must be located in the same network.
- The Database and the Clients must not be installed on the same machine.
- All the machines must be time synchronized.
Installing the Database
Several database engines are supported.
Create an empty schema and a sonarqube user. Grant this sonarqube user permissions to create, update and delete objects for this schema. The charset of the database has to be set to "UTF-8" and the language to "English". Here is a sample script for MySQL.
Installing the Web Server
First, check the requirements.
<install_directory> (below) refers to the path to the directory where the SonarQube distribution has been unzipped.
Setting the access to the Database
Edit <install_directory>/conf/sonar.properties to configure the database settings. Templates are available for every supported database. Just uncomment and configure the template you need and comment out the lines dedicated to H2:
Adding the JDBC Driver
Drivers for the supported databases (except Oracle) are already provided. Do not replace the provided drivers; they are the only ones supported.
For Oracle, copy the JDBC driver into <install_directory>/extensions/jdbc-driver/oracle.
Starting the Web Server
The default port is "9000" and the context path is "/". Parameters can be changed in <install_directory>/conf/sonar.properties:
Execute the following script to start the server:
- On Linux/Mac OS: bin/<YOUR OS>/sonar.sh start
- On Windows: bin/windows-x86-XX/StartSonar.bat
- Read Installing SonarQube on AIX, HPUX or Solaris for other platforms
You can now browse SonarQube at http://localhost:9000.
Tuning the Web Server
By default, SonarQube is configured to run on any computer with a simple Java JRE. The first thing to do when installing a production instance is to use a Java JDK and activate the server mode by uncommenting the following line in <install_directory>/conf/wrapper.conf:
To change the Java JVM used by SonarQube, simply edit <install_directory>/conf/wrapper.conf and update the following line:
Advanced Installation Features
Installing the Clients
Multiple analysis clients are available:
- SonarQube Runner: recommended for all non-Maven projects
- Maven: recommended for all projects built with Maven
- SonarQube Ant Task: to integrate with projects built with Ant
- Gradle: to integrate with projects built with Gradle
- CI Engine: see Jenkins plugin or Hudson plugin or Bamboo plugin or AnthillPro plugin. Note that other CI engines can be used even if there is no SonarQube plugin available.