Jump to content

# SonarQube

From ArchWiki

Related articles

- Gogs
- Git

SonarQube is code quality tool for better code and published under the LGPL3 license.

## Installation

Install the sonarqube-binAUR package.

SonarQube uses H2 database by default (not recommended). Or requires the use of a database backend, the following are supported:

- PostgreSQL
- Oracle
- MSSQL

## Configuration

The user configuration file is located at `/etc/webapps/sonarqube/sonar.properties`.

See the SonarQube docs for more configuration examples.

### PostgreSQL

Install and configure PostgreSQL.

SonarQube seems to support only TCP Socket

#### With TCP socket

Connect do postgresql:

    [postgres]$ psql

Create the new user while connecting to the server as `postgres` user (you will be prompted for a password for the new user):

    postgres=# CREATE USER sonarqube WITH PASSWORD password;

Create the `sonarqube` database, owned by `sonarqube` user:

    postgres=# CREATE DATABASE sonarqube OWNER sonarqube;
    postgres=#GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;

PostgreSQL#Configure PostgreSQL to be accessible from remote hosts

Verify it works:

    $ psql --host=ip_address --dbname=sonarqube --username=sonarqube --password

Configure SonarQube through the update `sonar.properties`:

    /etc/webapps/sonarqube/sonar.properties

    sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
    sonar.jdbc.username=sonarqube
    sonar.jdbc.password=password
    sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
    sonar.web.javaAdditionalOpts=-server
    sonar.web.host=0.0.0.0
    sonar.web.port=9000
    sonar.log.level=INFO
    sonar.path.logs=logs

## Upgrade

After upgrading SonarQube, follow these steps:

- Update the `sonar.properties` file to match the new version.
- Once SonarQube is running, a page will appear prompting you to upgrade. For detailed instructions, visit the upgrade guide.
- Navigate to the setup page of your SonarQube server at `https://ip:port/setup` and click the upgrade button.
- Once the upgrade process is complete, the normal login page will be displayed.

## Usage

Start/enable `sonarqube.service`, the webinterface should listen on `http://localhost:9000`.

Default credentials are `admin/admin`.

Note

- You might want to configure a reverse proxy to access remotely, e.g. nginx.
- If you want Sonarqube to not listen on all interfaces, set `sonar.web.host` to e.g. 127.0.0.1 in `/etc/webapps/sonarqube/sonar.properties`.

### Usage with maven

    $ mvn clean verify sonar:sonar -Dsonar.projectKey=project key -Dsonar.projectName=project -Dsonar.host.url=http://localhost:9000 -Dsonar.token=token

Note The values project key, project and token can be created in web interface

### Usage with sonar-scanner

There is a package sonar-scannerAUR. Usage is:

    $ /opt/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=project key -Dsonar.sources=. -Dsonar.host.url=http://localhost:9000 -Dsonar.token=token

Note The values project key and token can be created in web interface

## Troubleshooting

You can check the unit status or the journal.

And there are sonarqube logs in:

    # /var/log/sonarqube/

If sonarqube is not active, one of these logs will contain an error.

## See also

- Sonarqube Documentation
- Manual for installation sonarqube

Categories:

- Development
- Web applications

SonarQube
Add topic