This version of the SonarQube documentation is no longer maintained. It relates to a version of SonarQube that is not active.

Operating the Server

Learn how to configure and operate the SonarQube server.

Running SonarQube as a service on Windows

Installing SonarQube as a service

When installing SonarQube as a service on Windows, the path to the executable should be quoted to prevent unquoted service path attacks.

> sc create SonarQube binPath= "\"%SONAR_HOME%\bin\windows-x86-64\wrapper.exe\" -s \"%SONAR_HOME%\conf\wrapper.conf\""

Start or stop the service

> "%SONAR_HOME%\bin\windows-x86-64\StartNTService.bat"
> "%SONAR_HOME%\bin\windows-x86-64\StopNTService.bat"

Note: > "%SONAR_HOME%\bin\windows-x86-64\StopNTService.bat" does a graceful shutdown where no new analysis report processing can start, but the tasks in progress are allowed to finish. The time a stop will take depends on the processing time of the tasks in progress. You’ll need to kill all SonarQube processes manually to force a stop.

Running SonarQube manually on Linux

Start or stop the instance

Start:
$SONARQUBE_HOME/bin/linux-x86-64/sonar.sh start

Graceful shutdown:
$SONARQUBE_HOME/bin/linux-x86-64/sonar.sh stop

Hard stop:
$SONARQUBE_HOME/bin/linux-x86-64/sonar.sh force-stop

Stop does a graceful shutdown where no new analysis report processing can start, but the tasks in progress are allowed to finish. The time a stop will take depends on the processing time of the tasks in progress. Use force stop for a hard stop.

Running SonarQube as a service on Linux with SystemD

On a Unix system using SystemD, you can install SonarQube as a service. You cannot run SonarQube as root in Unix systems. Ideally, you will created a new account dedicated to the purpose of running SonarQube. Let’s suppose:

  • The user used to start the service is sonarqube

  • The group used to start the service is sonarqube

  • The Java Virtual Machine is installed in /opt/java/

  • SonarQube has been unzipped into /opt/sonarqube/

Then create the file /etc/systemd/system/sonarqube.service based on the following:

  • Because the sonar-application jar name ends with the version of SonarQube, you will need to adjust the ExecStart command accordingly on install and at each upgrade.

  • * The SonarQube data directory,/opt/sonarqube/data, and the extensions directory, /opt/sonarqube/extensions should be owned by the sonarqube user. As a good practice, the rest should be owned by root.

Once your sonarqube.service file is created and properly configured, run:

Running SonarQube as a service on Linux with initd

The following has been tested on Ubuntu 8.10 and CentOS 6.2.

Create the file /etc/init.d/sonar with this content:

Register SonarQube at boot time (RedHat, CentOS, 64 bit):

Once registration is done, run:

Securing the server behind a proxy

This section helps you configure the SonarQube Server if you want to run it behind a proxy. This can be done for security concerns or to consolidate multiple disparate applications. To run the SonarQube server over HTTPS, see the HTTPS Configuration section below.

Using an Apache proxy

We assume that you’ve already installed Apache 2 with module mod_proxy, that SonarQube is running and available on http://private_sonar_host:sonar_port/, and that you want to configure a Virtual Host for www.public_sonar.com.

At this point, edit the HTTPd configuration file for the www.public_sonar.com virtual host. Include the following to expose SonarQube via mod_proxy at http://www.public_sonar.com/

Apache configuration is going to vary based on your own application’s requirements and the way you intend to expose SonarQube to the outside world. If you need more details about Apache HTTPd and mod_proxy, please see http://httpd.apache.org.

Using Nginx

We assume that you’ve already installed Nginx, that you are using a Virtual Host for www.somecompany.com and that SonarQube is running and available on http://sonarhost:sonarport/.

At this point, edit the Nginx configuration file. Include the following to expose SonarQube at http://www.somecompany.com/:

Nginx configuration will vary based on your own application’s requirements and the way you intend to expose SonarQube to the outside world. If you need more details about Nginx, please see https://www.nginx.com/resources/admin-guide/reverse-proxy/.

Note that you may need to increase the max URL length since SonarQube requests can have URLs longer than 2048.

Using IIS

See: http://blog.jessehouwing.nl/2016/02/configure-ssl-for-sonarqube-on-windows.html

Note that the setup described in this blog post is not appropriate for SAML through IIS.

HTTPS configuration

Last updated

Was this helpful?