Перейти до змісту

Встановлення на Windows Server (ZIP)

Інструкція описує повний цикл встановлення SonarQube Server Enterprise Edition напряму на Windows Server (без Docker) — від Java до реєстрації служби.


1. Передумови

  • Windows Server 2019 (або новіший)
  • Права адміністратора
  • Мінімум 4 ГБ RAM

2. Docker на Windows — коли він доступний, а коли ні

Docker-варіант (аналогічний Linux-розділу) технічно можливий і на Windows, але тільки на Windows 10/11 desktop з Docker Desktop і увімкненим WSL2-бекендом — там Linux-контейнери працюють штатно.

На Windows Server це зазвичай не працює. Причина — апаратна віртуалізація:

  • Docker Desktop на Windows Server офіційно не підтримується;
  • голий Docker Engine на Windows Server за замовчуванням вміє запускати лише Windows-контейнери — образ sonarqube (Linux-only) не підійде;
  • щоб отримати Linux-контейнери, потрібен WSL2 або Hyper-V isolation — обидва вимагають nested virtualization, увімкненої на рівні хоста/гіпервізора;
  • якщо Windows Server сам є віртуальною машиною (у VMware, Hyper-V іншого рівня, хмарі) — nested virtualization часто вимкнена і недоступна адміністратору гостьової системи.

Перед тим як обирати Docker-шлях на Windows Server, перевірте:

Install-WindowsFeature -Name Hyper-V -IncludeManagementTools

Порада

Якщо команда видає помилку The processor does not have required virtualization capabilities — Docker з Linux-контейнерами на цій машині неможливий, і нативний ZIP — єдиний робочий шлях. Це часта ситуація на клієнтських POC-стендах.


3. Встановлення Java 21

SonarQube 2026.x LTA вимагає саме Java 21 (class file version 65.0).

$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -UseBasicParsing "https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_windows-x64_bin.zip" -OutFile "$env:TEMP\jdk21.zip"
Expand-Archive -Path "$env:TEMP\jdk21.zip" -DestinationPath "C:\Java21" -Force
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Java21\jdk-21.0.2", "Machine")
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Java21\jdk-21.0.2\bin", "Machine")

Закрийте і відкрийте PowerShell заново, перевірте:

java -version

4. Встановлення PostgreSQL

4.1 Завантаження інсталятора

$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -UseBasicParsing "https://get.enterprisedb.com/postgresql/postgresql-15.8-1-windows-x64.exe" -OutFile "$env:TEMP\postgresql.exe"

4.2 Встановлення в тихому режимі

Start-Process -FilePath "$env:TEMP\postgresql.exe" -ArgumentList "--mode unattended --superpassword sonar --servicename postgresql" -Wait

4.3 Перевірка служби

Get-Service postgresql*

Статус має бути Running.

4.4 Створення бази та користувача

& "C:\Program Files\PostgreSQL\15\bin\psql.exe" -U postgres -c "CREATE USER sonar WITH ENCRYPTED PASSWORD 'sonar';"
& "C:\Program Files\PostgreSQL\15\bin\psql.exe" -U postgres -c "CREATE DATABASE sonarqube OWNER sonar;"

5. Завантаження та розпакування SonarQube

ZIP для Enterprise Edition береться зі сторінки SonarQube Downloads.

New-Item -Path "C:\Sonar" -ItemType Directory
Invoke-WebRequest -UseBasicParsing "<ЛІНК_НА_ZIP>" -OutFile "C:\Sonar\sonarqube.zip"
Expand-Archive -Path "C:\Sonar\sonarqube.zip" -DestinationPath "C:\Sonar" -Force

Важливо

Шлях встановлення не повинен містити пробіли або починатись з цифри.


6. Налаштування підключення до бази даних

Відкрийте C:\Sonar\sonarqube-X.X\conf\sonar.properties і пропишіть:

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube

7. Перший запуск (перевірка)

cd C:\Sonar\sonarqube-X.X\bin\windows-x86-64
.\StartSonar.bat

Дочекайтесь рядка SonarQube is operational, перевірте http://localhost:9000.

Логін/пароль за замовчуванням: admin / admin — система одразу попросить змінити пароль.

Зупинити: Ctrl+C.


8. Встановлення як Windows-служби

.\SonarService.bat install
.\SonarService.bat start

Перевірка:

Get-Service SonarQube

Автозапуск при перезавантаженні сервера:

Set-Service SonarQube -StartupType Automatic

9. Наступні кроки