{"id":7654,"date":"2021-02-16T23:32:08","date_gmt":"2021-02-16T20:32:08","guid":{"rendered":"https:\/\/kifarunix.com\/?p=7654"},"modified":"2024-03-19T19:32:27","modified_gmt":"2024-03-19T16:32:27","slug":"install-sonarqube-on-ubuntu","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-sonarqube-on-ubuntu\/","title":{"rendered":"Install SonarQube on Ubuntu 20.04"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1006\" height=\"228\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/install-sonarqube-ubuntu.png\" alt=\"\" class=\"wp-image-7951\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/install-sonarqube-ubuntu.png?v=1613493931 1006w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/install-sonarqube-ubuntu-768x174.png?v=1613493931 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/install-sonarqube-ubuntu-150x34.png?v=1613493931 150w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/install-sonarqube-ubuntu-300x68.png?v=1613493931 300w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/install-sonarqube-ubuntu-696x158.png?v=1613493931 696w\" sizes=\"(max-width: 1006px) 100vw, 1006px\" \/><\/figure>\n\n\n\n<p>In this tutorial, you will learn how to install SonarQube on Ubuntu 20.04. <em><a rel=\"noreferrer noopener\" href=\"http:\/\/www.sonarqube.org\/\" target=\"_blank\" class=\"rank-math-link\">SonarQube<\/a>\u00ae is an automatic code review tool to detect bugs, vulnerabilities, and code smells in your code. It can integrate with your existing workflow to enable continuous code inspection across your project branches and pull requests.<\/em><\/p>\n\n\n\n<p>Read more about SonarQube on <a aria-label=\"SonarQube page (opens in a new tab)\" href=\"https:\/\/www.sonarqube.org\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\">SonarQube page<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installing SonarQube on Ubuntu 20.04<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisites<\/h3>\n\n\n\n<p>There are a number of prerequisites needed to install and run SonarQube on Ubuntu 20.04 as provided below;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">System Hardware Requirements<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ensure you are running a 64-bit system as SonarQube does not support 32 bit system architecture.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>uname -m<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>x86_64<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>At least 2GB of RAM (16GB + of RAM for enterprise usage) and 2 vCPU cores (8+ vCPU cores for enterprise usage) for small scale usage<\/li>\n\n\n\n<li>Disk with excellent read &amp; write performance.<\/li>\n\n\n\n<li>Enough disk space depending on how much code you analyze with SonarQube.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Install Java 11 on Ubuntu 20.04<\/h4>\n\n\n\n<p>Java 11 can work for both SonarQube server and scanner. Hence, run the command below to install Java 11 on Ubuntu 20.04 (You can choose to install either JRE or OpenJDK;<\/p>\n\n\n\n<p>Note that OpenJDK 11 or JRE 11 is the default version on default Ubuntu 20.04 main repos;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>apt update<\/code><\/pre>\n\n\n\n<p>If you want to use JRE, run the command below to install it on Ubuntu 20.04;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>apt install default-jre<\/code><\/pre>\n\n\n\n<p>If you want to use OpenJDK, run the command below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>apt install default-jdk<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Install and Setup Database for SonarQube<\/h4>\n\n\n\n<p>SonarQube supports PostgreSQL (version 9.3-9.6, 10-12), Oracle (XE extension, 11G, 12C, 18C 19C) or MSSQL for Windows system.<\/p>\n\n\n\n<p>In this tutorial, we will install and setup SonarQube on Ubuntu 20.04.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\" id=\"install-postgresql-12-ubuntu\"><a href=\"#install-postgresql-12-ubuntu\" class=\"rank-math-link\">Install PostgreSQL 12 on Ubuntu 20.04<\/a><\/h5>\n\n\n\n<p>Install PostgreSQL 12 on Ubuntu 20.04 by running the command below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>apt install postgresql postgresql-contrib<\/code><\/pre>\n\n\n\n<p>Login as PostgreSQL superuser and Create SonarQube PostgreSQL Database and Database User<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>sudo -Hiu postgres<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>createuser sonaradmin<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>createdb -O sonaradmin sonarqubedb<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>psql<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ALTER USER sonaradmin WITH ENCRYPTED password 'changeme';<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>\\q<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>exit<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Activate Secure Computing Filter<\/h4>\n\n\n\n<p><a aria-label=\"seccomp filter (opens in a new tab)\" href=\"https:\/\/www.kernel.org\/doc\/Documentation\/prctl\/seccomp_filter.txt\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\">seccomp filter<\/a>, required by Elasticsearch, is usually enabled by default on Ubuntu 20.04. To &nbsp;check if seccomp is available on your kernel with:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>grep SECCOMP \/boot\/config-$(uname -r)<\/code><\/pre>\n\n\n\n<p>If you see such an output, then seccomp filter is enabled;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>CONFIG_SECCOMP=y\nCONFIG_HAVE_ARCH_SECCOMP_FILTER=y\nCONFIG_SECCOMP_FILTER=y<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Executive Report Fonts<\/h4>\n\n\n\n<p>Fontconfig and FreeType fonts are required for generating SonarQube executive reports. Install them as follows;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>apt install fontconfig-config libfreetype6<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Install and Configure SonarQube on Ubuntu 20.04<\/h3>\n\n\n\n<p>Once all the prerequisites are met, proceed to install SonarQube.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Download SonarQube Archive file<\/h4>\n\n\n\n<p>There are different editions of the SonarQube. In this setup, we will be installing the community version. As such, navigate to <a aria-label=\"SonarQube downloads (opens in a new tab)\" href=\"https:\/\/www.sonarqube.org\/downloads\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\">SonarQube downloads<\/a> page and grab the SonarQube zip file.<\/p>\n\n\n\n<p>You can as well get the download link from <a href=\"https:\/\/binaries.sonarsource.com\/Distribution\/sonarqube\/\" target=\"_blank\" aria-label=\"SonarQube binaries page (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">SonarQube binaries page<\/a> and pull it using wget or curl command<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>wget https:\/\/binaries.sonarsource.com\/Distribution\/sonarqube\/sonarqube-8.7.0.41497.zip<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Install SonarQube<\/h4>\n\n\n\n<p>Extract SonarQube to some directory, e.g the <code><strong>\/opt<\/strong><\/code> directory.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>apt install zip<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>unzip sonarqube-8.7.0.41497.zip -d \/opt\/<\/code><\/pre>\n\n\n\n<p>Rename the SonarQube directory to remove the version number;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mv \/opt\/sonarqube{-8.7.0.41497,}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Create SonarQube System User Account<\/h4>\n\n\n\n<p>SonarQube should not be run as root. As such, you can create an non admin account for running SonarQube as follows;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>useradd -M -d \/opt\/sonarqube\/ -r -s \/bin\/bash sonarqube<\/code><\/pre>\n\n\n\n<p>Set the ownership of the <code><strong>\/opt\/sonarqube<\/strong><\/code> to sonar user created above.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>chown -R sonarqube: \/opt\/sonarqube<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Configure SonarQube<\/h4>\n\n\n\n<p>Set database connection details as per your PostgreSQL setup above.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim \/opt\/sonarqube\/conf\/sonar.properties<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code># DATABASE\n...\n# User credentials.\n...\n<strong>sonar.jdbc.username=sonaradmin\nsonar.jdbc.password=changeme<\/strong>\n...\n#----- PostgreSQL 9.3 or greater\n# By default the schema named \"public\" is used. It can be overridden with the parameter \"currentSchema\".\n#sonar.jdbc.url=jdbc:postgresql:\/\/localhost\/sonarqube?currentSchema=my_schema\n<strong>sonar.jdbc.url=jdbc:postgresql:\/\/localhost\/sonarqubedb<\/strong><\/code><\/pre>\n\n\n\n<p>Save and exit the file.<\/p>\n\n\n\n<p>The above changes are enough to run SonarQube on Ubuntu 20.04 in its basic setup.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Running SonarQube on Ubuntu 20.04<\/h3>\n\n\n\n<p>As much as you can start SonarQube in standalone mode using the <code><strong>\/opt\/sonarqube\/bin\/linux-x86-64\/sonar.sh<\/strong><\/code> script by passing the <code><strong>start<\/strong><\/code> option as in <code><strong>\/opt\/sonarqube\/bin\/linux-x86-64\/sonar.sh start<\/strong><\/code>, it is better to use the systemd service unit.<\/p>\n\n\n\n<p>Create SonarQube Systemd Service Unit file;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cat &gt; \/etc\/systemd\/system\/sonarqube.service &lt;&lt; 'EOL'\n[Unit]\nDescription=SonarQube service\nAfter=syslog.target network.target\n\n[Service]\nType=simple\nUser=sonarqube\nGroup=sonarqube\nPermissionsStartOnly=true\nExecStart=\/bin\/nohup java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar \/opt\/sonarqube\/lib\/sonar-application-8.7.0.41497.jar\nStandardOutput=syslog\nLimitNOFILE=131072\nLimitNPROC=8192\nTimeoutStartSec=5\nRestart=always\nSuccessExitStatus=143\n\n[Install]\nWantedBy=multi-user.target\nEOL<\/code><\/pre>\n\n\n\n<p>Be sure to replace the path, <code><strong>\/opt\/sonarqube\/lib\/sonar-application-8.7.0.41497.jar<\/strong><\/code>, accordingly.<\/p>\n\n\n\n<p>Reload the systemd configurations;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl daemon-reload<\/code><\/pre>\n\n\n\n<p>Set the maximum number of memory maps for elasticsearch;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>echo 'vm.max_map_count=262144' &gt;&gt; \/etc\/sysctl.conf<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>sysctl -p<\/code><\/pre>\n\n\n\n<p>Start and enable SonarQube service on Ubuntu 20.04;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl enable --now sonarqube<\/code><\/pre>\n\n\n\n<p>Check the status;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl status sonarqube.service<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>\u25cf sonarqube.service - SonarQube service\n     Loaded: loaded (\/etc\/systemd\/system\/sonarqube.service; enabled; vendor preset: enabled)\n     Active: active (running) since Tue 2021-02-16 19:36:45 UTC; 2min 23s ago\n   Main PID: 34811 (java)\n      Tasks: 118 (limit: 2282)\n     Memory: 1.4G\n     CGroup: \/system.slice\/sonarqube.service\n             \u251c\u250034811 java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar \/opt\/sonarqube\/lib\/sonar-application-8.7.0.41497.jar\n             \u251c\u250034834 \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.io&gt;\n             \u251c\u250034921 \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=\/opt\/sonarqube\/temp -XX:-OmitStackTraceInF&gt;\n             \u2514\u250034980 \/usr\/lib\/jvm\/java-11-openjdk-amd64\/bin\/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=\/opt\/sonarqube\/temp -XX:-OmitStackTraceInF&gt;\n\nFeb 16 19:36:47 ubuntu20 nohup&#91;34811]: OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future rel&gt;\nFeb 16 19:37:27 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:27 INFO  app&#91;]&#91;o.s.a.SchedulerImpl] Process&#91;es] is up\nFeb 16 19:37:27 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:27 INFO  app&#91;]&#91;o.s.a.ProcessLauncherImpl] Launch process&#91;&#91;key='web', ipcIndex=2, logFilenamePrefix=web]] from &#91;\/opt&gt;\nFeb 16 19:37:47 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:47 WARN  app&#91;]&#91;startup] ###########################################################################################&gt;\nFeb 16 19:37:47 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:47 WARN  app&#91;]&#91;startup] Default Administrator credentials are still being used. Make sure to change the password or&gt;\nFeb 16 19:37:47 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:47 WARN  app&#91;]&#91;startup] ###########################################################################################&gt;\nFeb 16 19:37:48 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:48 INFO  app&#91;]&#91;o.s.a.SchedulerImpl] Process&#91;web] is up\nFeb 16 19:37:48 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:48 INFO  app&#91;]&#91;o.s.a.ProcessLauncherImpl] Launch process&#91;&#91;key='ce', ipcIndex=3, logFilenamePrefix=ce]] from &#91;\/opt\/s&gt;\nFeb 16 19:37:55 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:55 INFO  app&#91;]&#91;o.s.a.SchedulerImpl] Process&#91;ce] is up\nFeb 16 19:37:55 ubuntu20 nohup&#91;34811]: 2021.02.16 19:37:55 INFO  app&#91;]&#91;o.s.a.SchedulerImpl] SonarQube is up<\/code><\/pre>\n\n\n\n<p>You can find all the logs under, <code><strong>\/opt\/sonarqube\/logs<\/strong><\/code> directory.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ls \/opt\/sonarqube\/logs<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>access.log  ce.log  es.log  README.txt  sonar.log  web.log<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Accessing SonarQube Web Interface<\/h3>\n\n\n\n<p>In order to access SonarQube Web interface, you need to install and setup a web server to proxy the requests to SonarQube running locally.<\/p>\n\n\n\n<p>You can either use Apache or Nginx web server. We use the later in this guide.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>apt install nginx -y<\/code><\/pre>\n\n\n\n<p>Create SonarQube Nginx site configuration with proxy setup.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cat &gt; \/etc\/nginx\/sites-available\/sonarqube &lt;&lt; 'EOL' \nserver{\n    listen      80;\n    server_name sonarqube.kifarunix-demo.com;\n\n    access_log  \/var\/log\/nginx\/sonarqube.access.log;\n    error_log   \/var\/log\/nginx\/sonarqube.error.log;\n\n    proxy_buffers 16 64k;\n    proxy_buffer_size 128k;\n\n    location \/ {\n        proxy_pass  http:\/\/127.0.0.1:9000;\n        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;\n        proxy_redirect off;\n\n        proxy_set_header    Host            $host;\n        proxy_set_header    X-Real-IP       $remote_addr;\n        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header    X-Forwarded-Proto http;\n    }\n}\nEOL<\/code><\/pre>\n\n\n\n<p>Check Nginx syntax errors;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>nginx -t<\/code><\/pre>\n\n\n\n<p>If you get such an output, you are good to go;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>nginx: the configuration file \/etc\/nginx\/nginx.conf syntax is ok\nnginx: configuration file \/etc\/nginx\/nginx.conf test is successful<\/code><\/pre>\n\n\n\n<p>Enable SonarQube Nginx site;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ln -s \/etc\/nginx\/sites-available\/sonarqube \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n\n\n\n<p>Restart Nginx;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl restart nginx<\/code><\/pre>\n\n\n\n<p>Open port 80\/tcp on firewall or port 443\/tcp depending on your setup;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ufw allow \"Nginx Full\"<\/code><\/pre>\n\n\n\n<p>The access SonarQube using the address <code><strong>http:\/\/sonarqube-server-host-IP-or-hostname<\/strong><\/code>.<\/p>\n\n\n\n<p>You will be prompted to enter login details.<\/p>\n\n\n\n<p>Default authentication creds are <strong>Username<\/strong>: admin <strong>Password<\/strong>: admin<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1300\" height=\"408\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-login.png\" alt=\"install SonarQube on Ubuntu 20.04\" class=\"wp-image-7954\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-login.png?v=1613507158 1300w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-login-768x241.png?v=1613507158 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-login-150x47.png?v=1613507158 150w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-login-300x94.png?v=1613507158 300w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-login-696x218.png?v=1613507158 696w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-login-1068x335.png?v=1613507158 1068w\" sizes=\"(max-width: 1300px) 100vw, 1300px\" \/><\/figure>\n\n\n\n<p>When prompted, reset the password and proceed to SonarQube web interface.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1432\" height=\"955\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-ui.png\" alt=\"\" class=\"wp-image-7953\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-ui.png?v=1613507094 1432w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-ui-768x512.png?v=1613507094 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-ui-150x100.png?v=1613507094 150w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-ui-300x200.png?v=1613507094 300w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-ui-696x464.png?v=1613507094 696w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-ui-1068x712.png?v=1613507094 1068w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/02\/sonarqube-ui-630x420.png?v=1613507094 630w\" sizes=\"(max-width: 1432px) 100vw, 1432px\" \/><\/figure>\n\n\n\n<p>And there you go. You have learnt how to install SonarQube.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reference<\/h3>\n\n\n\n<p><a href=\"https:\/\/docs.sonarqube.org\/latest\/setup\/overview\/\" target=\"_blank\" aria-label=\"Installing SonarQube (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Installing SonarQube<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Further Reading<\/h3>\n\n\n\n<p><a aria-label=\"SonarQube Documentation (opens in a new tab)\" href=\"https:\/\/docs.sonarqube.org\/latest\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"rank-math-link\">SonarQube Documentation<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Other Tutorials<\/h3>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-nexus-repository-manager-on-ubuntu\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Install Nexus Repository Manager on Ubuntu 20.04<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-nexus-repository-manager-on-ubuntu\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Install and setup GVM 20.08 on Debian 10<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-nexus-repository-manager-on-ubuntu\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Install Signal Messenger on Ubuntu 20.04<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-nexus-repository-manager-on-ubuntu\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Install NoMachine on Ubuntu 20.04<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-nexus-repository-manager-on-ubuntu\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"rank-math-link\">Install and Setup GVM 20.08 on Ubuntu 20.04<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you will learn how to install SonarQube on Ubuntu 20.04. SonarQube\u00ae is an automatic code review tool to detect bugs, vulnerabilities, and<\/p>\n","protected":false},"author":3,"featured_media":7956,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[121],"tags":[3158,3155,229,3161,3162,3160,3159,3156,1200,3157],"class_list":["post-7654","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","tag-install-sonarqube","tag-install-sonarqube-ubuntu","tag-nginx","tag-proxy-sonarqube-with-nginx","tag-sonarqube","tag-sonarqube-nginx","tag-sonarqube-postgreql-database","tag-sonarqube-ubuntu-20-04","tag-ubuntu-20-04","tag-ubuntu-20-04-sonarqube-install","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/7654"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=7654"}],"version-history":[{"count":9,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/7654\/revisions"}],"predecessor-version":[{"id":21931,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/7654\/revisions\/21931"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/7956"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=7654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=7654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=7654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}