Operating the server
By default, the service will use the Java executable available on the Windows PATH. This setting can be changed by setting the environmental variable
SONAR_JAVA_PATH. See more in Adjusting the Java installation.
> %SONARQUBE_HOME%\bin\windows-x86-64\SonarService.bat 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. You'll need to kill all SonarQube processes manually to force a stop.
Check if the SonarQube service is running:
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.
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 have created a new account dedicated to the purpose of running SonarQube. Let's suppose:
- The user used to start the service is
- The group used to start the service is
- The Java Virtual Machine is installed in
- SonarQube has been unzipped into
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
ExecStartcommand accordingly on install and at each upgrade.
- All SonarQube directories should be owned by the
sonarqube.service file is created and properly configured, run:
The following has been tested on Ubuntu 20.04 and CentOS 6.2.
You cannot run SonarQube as
root in 'nix systems. Ideally, you will have created a new account dedicated to the purpose of running SonarQube. Let's suppose the user used to start the service is
sonarqube. Then create the file
/etc/init.d/sonar based on the following:
Register SonarQube at boot time (RedHat, CentOS, 64 bit):
Register SonarQube at boot time (Ubuntu, 64 bit):
Once registration is done, run:
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.
For security reasons, we recommend only giving external access to the main port.
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
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.
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
At this point, edit the Nginx configuration file. Include the following to expose SonarQube at
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.
Note that the setup described in this blog post is not appropriate for SAML through IIS.
SonarQube adds custom HTTP headers. The reverse proxy should be configured to forward the following headers:
This header is added to a web service response when using tokens to authenticate. Forwarding this header is not required for the SonarQube features to work properly.
To further lock down the communication in between the reverse proxy and SonarQube, you can define the following network rules:
You can further segment your network configuration if you specify a frontend network and keep Elasticsearch restricted to the loopback NiC.
|Frontend||Frontend HTTP Network||0.0.0.0|
© 2008-2023, SonarSource S.A, Switzerland. Except where otherwise noted, content in this space is licensed under a Creative Commons Attribution-NonCommercial 3.0 United States License. SONARQUBE is a trademark of SonarSource SA. All other trademarks and copyrights are the property of their respective owners.