# Sonarqube setup on Fedora 38

Tags: Linux HomeLab Proxmox Fedora Selfhosting

Reading time: 1 minute

Description: Quick and dirty sonarqube setup with PostgreSQL






## Dependency installation

1
dnf install postgresql-server postgresql-contrib postgresql wget unzip java-17-openjdk

## PostgreSQL setup

1
2
3
4
5
6
sudo postgresql-setup --initdb --unit postgresql
systemctl enable --now postgresql
sudo -u postgres psql
CREATE USER sonarqube WITH PASSWORD 'super_secure_password';
CREATE DATABASE sonarqube_db WITH ENCODING 'UTF8';
ALTER DATABASE sonarqube_db OWNER TO sonarqube;

/var/lib/pgsql/data/pg_hba.conf

host all all 127.0.0.1/32 ident -> host all all 127.0.0.1/32 md5


## Sonarqube installation

(Check for a new version before using this link)

1
2
3
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.1.0.73491.zip
unzip sonarqube-10.1.0.73491.zip
mv sonarqube-10.1.0.73491/* /opt/sonarqube

## User setup

1
2
3
4
5
6
useradd --system sonarqube
chown -R sonarqube:sonarqube /opt/sonarqube/

mkdir -p /var/sonarqube/data
mkdir -p /var/sonarqube/temp
chown -R sonarqube:sonarqube /var/sonarqube/

## Sonarqube configuration

/opt/sonarqube/conf/sonar.properties

1
2
3
4
5
6
7
sonar.jdbc.username=sonarqube
sonar.jdbc.password=super_secure_password
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube_db
sonar.path.data=/var/sonarqube/data
sonar.path.temp=/var/sonarqube/temp
sonar.web.host=0.0.0.0
sonar.web.port=9000

## Systemd service setup

/etc/systemd/system/sonarqube.service

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=simple
User=sonarqube
Group=sonarqube
PermissionsStartOnly=true
ExecStart=/bin/nohup /usr/bin/java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-10.1.0.73491.jar
StandardOutput=syslog
LimitNOFILE=131072
LimitNPROC=8192
TimeoutStartSec=5
Restart=always
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

## Done

1
2
systemctl daemon-reload
systemctl enable --now sonarqube