<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های masoud tvk</title><link>https://virgool.ir/feed/@masoud.siadati</link><description></description><language>fa</language><pubDate>2026-11-11 03:34:55</pubDate><image><url>https://files.virgool.ir/upload/users/58045/avatar/T1xP9b.png</url><title>masoud tvk</title><link>https://virgool.ir/@masoud.siadati</link></image><item><title>راهنمای جامع نصب و راه‌اندازی SonarQube همراه با کرک</title><link>https://virgool.ir/@masoud.siadati/راهنمای-جامع-نصب-و-راه-اندازی-sonarqube-همراه-با-کرک-yij0tmjwoxio</link><description>نصب از صفر با PostgreSQL 17، Java 21 و PowerShell — از آماده‌سازی سرور تا راه‌اندازی، امنیت، عیب‌یابی و نگهداریهدف، نصب تازه SonarQube نسخه DataCenter v2026.3.0.123014 روی یک سرور ویندوزی با دیتابیس PostgreSQL اختصاصی است.۱. مشخصات محیط نصب۲. پیش‌نیازهای سخت‌افزاریبرای نصب آزمایشی تک‌سروری، تخصیص پیشنهادی زیر مناسب است:این اعداد ظرفیت‌سنجی پیشنهادی برای محیط آزمایشی هستند؛ الزامات دقیق تولید به تعداد پروژه‌ها، حجم کد، تعداد تحلیل‌های هم‌زمان و توپولوژی Edition بستگی دارد.برای بررسی مشخصات سرور:Get-CimInstance Win32_OperatingSystem |&#xA;Select-Object Caption, Version, OSArchitecture,&#xA;@{Name=&#34;TotalRAM_GB&#34;;Expression={&#xA;    [math]::Round($_.TotalVisibleMemorySize / 1MB, 2)&#xA;}}بررسی CPU:Get-CimInstance Win32_Processor |&#xA;Select-Object Name, NumberOfCores,&#xA;NumberOfLogicalProcessorsبررسی فضای دیسک:Get-PSDrive -PSProvider FileSystem۳. دانلود و نصب Java JDK 21‏SonarQube به Java نیاز دارد. در این راهنما از Eclipse Temurin JDK 21 استفاده می‌کنیم.نسخه Windows x64، نوع JDK و فایل MSI را دریافت کن.فایل نصب را اجرا کن. هنگام نصب، گزینه‌های اضافه‌کردن Java به PATH و تنظیم JAVA_HOME را فعال کن.بعد از نصب، یک PowerShell جدید باز کن.بررسی نسخه:java -versionخروجی نمونه:openjdk version &#34;21.0.x&#34;&#xA;OpenJDK Runtime Environment Temurin-21&#xA;OpenJDK 64-Bit Server VMبررسی مسیر Java:where.exe javaاگر چند نسخه Java روی سرور وجود دارد، مسیر دقیق اجرایی موردنظر را با متغیر SONAR_JAVA_PATH تعیین کن:$javaPath = &#34;C:\Program Files\Eclipse Adoptium\jdk-21.0.12.101-hotspot\bin\java.exe&#34;&#xA;&#xA;[Environment]::SetEnvironmentVariable(&#xA;    &#34;SONAR_JAVA_PATH&#34;,&#xA;    $javaPath,&#xA;    &#34;Machine&#34;&#xA;)مسیر بالا مربوط به نصب فعلی توست؛ در نصب‌های دیگر باید نسخه و مسیر نصب JDK اصلاح شوند. بعد از تنظیم، PowerShell جدید باز کن. امکان تعیین مسیر Java از طریق SONAR_JAVA_PATH در مستندات رسمی نیز آمده است.Sonar Documentation۴. نصب PostgreSQL 17برای نگهداری اطلاعات SonarQube از PostgreSQL استفاده می‌کنیم. از H2 برای محیط عملیاتی استفاده نکن.در صفحه دانلود، نصب‌کننده Windows را دریافت کن و مراحل نصب را طی کن.تنظیمات پیشنهادی:مولفه‌های PostgreSQL Server و Command Line Tools را نصب کن. نصب pgAdmin اختیاری است.بررسی سرویس PostgreSQLبعد از نصب PowerShell را باز کن:Get-Service *postgres*معمولاً سرویس زیر را مشاهده می‌کنی:postgresql-x64-17اگر سرویس متوقف بود:Start-Service postgresql-x64-17برای اجرای خودکار بعد از روشن‌شدن سرور:Set-Service postgresql-x64-17 -StartupType Automaticبررسی اتصال به پورت:Test-NetConnection localhost -Port 5432خروجی مورد انتظار:TcpTestSucceeded : Trueنکات امنیتی PostgreSQLاگر PostgreSQL روی همان Windows Server نصب می‌شود، معمولاً نیازی به بازکردن پورت 5432 در فایروال برای کل شبکه نیست. اتصال برنامه را به localhost محدود کن.بهتر است PostgreSQL فقط از مبدأهای موردنیاز اتصال بپذیرد، برای برنامه کاربر اختصاصی تعریف شود و از کاربر مدیریتی postgres در تنظیمات SonarQube استفاده نشود.۵. ساخت دیتابیس اختصاصی SonarQube۵.۱ پیدا کردن ابزار psqlدر PowerShell دستور زیر را اجرا کن:$psql = Get-ChildItem `&#xA;  &#34;C:\Program Files\PostgreSQL&#34; `&#xA;  -Filter &#34;psql.exe&#34; `&#xA;  -Recurse |&#xA;  Select-Object -First 1 -ExpandProperty FullNameبررسی مقدار:$psqlخروجی مورد انتظار:C:\Program Files\PostgreSQL\17\bin\psql.exe۵.۲ اتصال به PostgreSQL&amp; $psql -h localhost -p 5432 -U postgres -d postgresرمز عبور کاربر postgres را وارد کن.پس از اتصال:postgres=#۵.۳ ساخت کاربر دیتابیسبرای جلوگیری از ثبت رمز در تاریخچه دستورهای SQL، از دستور تعاملی زیر استفاده کن:CREATE ROLE sonar2026 LOGIN;سپس:\password sonar2026رمز عبور قوی را دو بار وارد کن.۵.۴ ساخت دیتابیسCREATE DATABASE sonarqube2026&#xA;WITH OWNER = sonar2026&#xA;ENCODING = &#39;UTF8&#39;&#xA;TEMPLATE = template0;خروجی موفق:CREATE DATABASEتنظیم دسترسی Schema:\c sonarqube2026GRANT ALL ON SCHEMA public TO sonar2026;بررسی دیتابیس:\l sonarqube2026نام دیتابیس، مالک و Encoding را کنترل کن.برای خروج:\q۵.۵ آزمایش اتصالدر PowerShell:&amp; $psql `&#xA;  -h localhost `&#xA;  -p 5432 `&#xA;  -U sonar2026 `&#xA;  -d sonarqube2026 `&#xA;  -c &#34;SELECT current_user, current_database();&#34;خروجی مورد انتظار: current_user | current_database&#xA;--------------+------------------&#xA; sonar2026    | sonarqube2026برای آزمایش مجوز ساخت و حذف جدول:&amp; $psql -h localhost -U sonar2026 -d sonarqube2026 `&#xA;  -c &#34;CREATE TABLE sonar_permission_test (id INTEGER); DROP TABLE sonar_permission_test;&#34;اگر هر دو دستور موفق باشند، دسترسی اصلی موردنیاز تأیید شده است.۶. دریافت و استخراج SonarQubeفایل ZIP نسخه مدنظر را دریافت کن.برای نصب از ZIP، فایل را در مسیر دلخواه استخراج می‌کنیم. مستندات رسمی نیز نصب با استخراج در یک پوشه مستقل را توصیه می‌کنند.Sonar Documentation۶.۱ آماده‌سازی پوشهاگر نسخه قبلی روی سرور وجود دارد، ابتدا آن را به‌صورت عادی متوقف کن. بعد از تهیه نسخه پشتیبان از تنظیمات و دیتابیس، پوشه نصب قدیمی را تغییر نام بده؛ فایل‌های نسخه جدید را روی فایل‌های نسخه قبلی کپی نکن.برای نمونه:Rename-Item `&#xA;  &#34;C:\SonarQube-DC&#34; `&#xA;  &#34;SonarQube-DC-OLD&#34;این دستور فقط زمانی اجرا شود که برنامه متوقف است و پوشه پشتیبان با همین نام از قبل وجود ندارد.۶.۲ استخراج ZIPدر این مثال فایل ZIP در پوشه C:\Installers قرار دارد. نام فایل متناسب با فایلی که دانلود کرده‌ای تغییر می‌کند.Expand-Archive `&#xA;  -Path &#34;C:\Installers\sonarqube-2026.3.0.123014.zip&#34; `&#xA;  -DestinationPath &#34;C:\Installers\SonarExtract&#34;سپس پوشه اصلی استخراج‌شده SonarQube را به مسیر زیر منتقل کن:C:\SonarQube-DCساختار نهایی باید شبیه این باشد:C:\SonarQube-DC\&#xA;    bin\&#xA;    conf\&#xA;    data\&#xA;    elasticsearch\&#xA;    extensions\&#xA;    lib\&#xA;    logs\&#xA;    web\برای بررسی:Test-Path &#34;C:\SonarQube-DC\bin\windows-x86-64\StartSonar.bat&#34;خروجی باید True باشد.۷. پیکربندی SonarQubeمهم‌ترین فایل تنظیمات SonarQube:C:\SonarQube-DC\conf\sonar.propertiesقبل از تغییر، نسخه پشتیبان بساز:Copy-Item `&#xA;  &#34;C:\SonarQube-DC\conf\sonar.properties&#34; `&#xA;  &#34;C:\SonarQube-DC\conf\sonar.properties.bak&#34;فایل را باز کن:notepad &#34;C:\SonarQube-DC\conf\sonar.properties&#34;۷.۱ تنظیم اتصال PostgreSQLمقادیر زیر را پیدا کن، علامت # ابتدای آن‌ها را حذف کن و مقدارشان را تنظیم کن:sonar.jdbc.username=sonar2026&#xA;sonar.jdbc.password=YOUR_DATABASE_PASSWORD&#xA;sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube2026مقدار YOUR_DATABASE_PASSWORD را با رمز واقعی کاربر دیتابیس جایگزین کن.توجه کن که هر تنظیم فقط یک‌بار به‌صورت فعال در فایل وجود داشته باشد.۷.۲ تنظیم پورت و آدرس وببرای دسترسی کاربران شبکه داخلی:sonar.web.host=0.0.0.0&#xA;sonar.web.port=9000مقدار 0.0.0.0 باعث می‌شود برنامه روی تمام آدرس‌های شبکه سرور Listen کند. برای استقرار نهایی پشت Reverse Proxy، می‌توان این مقدار را محدودتر تنظیم کرد.۷.۳ تنظیم پوشه‌های داده و فایل‌های موقتدر محیط عملیاتی توصیه می‌شود داده‌ها و فایل‌های موقت خارج از پوشه نصب برنامه قرار بگیرند تا ارتقای نسخه ساده‌تر باشد.Sonar Documentationبرای نمونه:New-Item -ItemType Directory -Force -Path &#34;C:\SonarData\data&#34;&#xA;New-Item -ItemType Directory -Force -Path &#34;C:\SonarData\temp&#34;در sonar.properties:sonar.path.data=C:/SonarData/data&#xA;sonar.path.temp=C:/SonarData/tempکاربری که SonarQube را اجرا می‌کند باید به این پوشه‌ها دسترسی خواندن و نوشتن داشته باشد.اگر از نصب فعلی خودت استفاده می‌کنی و داده‌های Elasticsearch در مسیر دیگری ایجاد شده‌اند، پیش از تغییر این مقادیر ابتدا SonarQube را متوقف کن. برای نصب تازه، نیازی به انتقال شاخص‌های قدیمی نیست.۷.۴ بررسی تنظیمات فعالبرای مشاهده تنظیمات بدون افشای رمز عبور:Get-Content &#34;C:\SonarQube-DC\conf\sonar.properties&#34; |&#xA;Where-Object {&#xA;    $_ -match &#39;^\s*sonar\.(jdbc\.(username|url)|web\.(host|port)|path\.(data|temp))\s*=&#39;&#xA;}* کرک SonarQubeابتدا نرم افزار 7zip را نصب کنید.و در ادامه با توجه به قسمت دوم فایل Read Me.txt موجود در پوشه نصب یعنی:2. Open the following files in any archiver:&#xA;- lib\sonar-application-2026.3.0.123014.jar (replace the com/sonarsource/**/*.class and com/sonar/**/*.class files)&#xA;فایل های jar باید جایگزین شوند. لذا مراحل زیر را دانلود کنید :مرحله ۱: تعریف مسیرهاPowerShell را باز کن و این دستورات را اجرا کن:$sevenZip = &#34;C:\Program Files\7-Zip\7z.exe&#34;&#xA;$jar = &#34;C:\SonarQube-DC\lib\sonar-application-2026.3.0.123014.jar&#34;&#xA;$patch = &#34;C:\SonarQube-DC\Crack&#34;مرحله ۲: تهیه نسخه پشتیبانCopy-Item $jar &#34;$jar.bak&#34; -Forceمرحله ۳: جایگزینی فایل‌های .classدستور زیر تمام فایل‌های .class موجود در دو مسیر مشخص‌شده را به فایل JAR اضافه می‌کند یا نسخه موجود آن‌ها را جایگزین می‌کند:Push-Location $patch&#xA;&#xA;&amp; $sevenZip u $jar &#34;com\sonarsource\*.class&#34; &#34;com\sonar\*.class&#34; -r&#xA;&#xA;Pop-Locationگزینه u برای به‌روزرسانی آرشیو و -r برای جست‌وجو در زیرپوشه‌ها استفاده می‌شود.نکته: اگر می‌خواهی فایل‌های جایگزین بدون توجه به تاریخ فایل‌های داخل JAR حتماً جایگزین شوند، بهتر است از دستور زیر استفاده کنی:Push-Location $patch&#xA;&#xA;&amp; $sevenZip a -tzip $jar &#34;com\sonarsource\*.class&#34; &#34;com\sonar\*.class&#34; -r -aoa&#xA;&#xA;Pop-Location۸. اجرای اولیه SonarQubePowerShell را باز کن و وارد مسیر اجرایی شو:cd C:\SonarQube-DC\bin\windows-x86-64سپس:.\StartSonar.batراه‌اندازی شامل چند فرایند اصلی است.در طول راه‌اندازی، خطوطی مشابه زیر ظاهر می‌شوند:Process[es] is up&#xA;Process[web] is up&#xA;Process[ce] is up&#xA;SonarQube is operationalپیام آخر نشان می‌دهد SonarQube آماده پاسخ‌گویی است.اولین اجرا به‌دلیل مقداردهی اولیه دیتابیس ممکن است بیشتر از اجراهای بعدی طول بکشد.بررسی پورت ۹۰۰۰در PowerShell دیگری:Get-NetTCPConnection -LocalPort 9000 -State Listenبررسی ارتباط:Test-NetConnection localhost -Port 9000در صورت موفقیت:TcpTestSucceeded : Trueبرای آزمایش پاسخ HTTP:Invoke-WebRequest &#34;http://localhost:9000/api/system/status&#34; |&#xA;Select-Object -ExpandProperty Contentدر حالت آماده‌به‌کار، پاسخ API باید وضعیت UP را نشان دهد.۹. ورود اولیه و فعال‌سازیمرورگر را روی خود سرور باز کن:http://localhost:9000اطلاعات ورود پیش‌فرض:فیلدمقدارUsernameadminPasswordadminپس از اولین ورود، رمز عبور مدیر را تغییر بده.مدارک رسمی SonarSource نیز همین اطلاعات ورود اولیه و آدرس پیش‌فرض را ذکر می‌کنند.وارد کردن Licenseپس از ورود، به بخش Administration برو به Configuration و در ادامه License Manager و لایسنسی که در فایل Read Me.txt را وارد کنید.۱۰. تنظیم Windows Firewallبه‌صورت پیش‌فرض، SonarQube روی پورت 9000 سرویس وب ارائه می‌کند.اگر می‌خواهی از کامپیوترهای دیگر شبکه داخلی به آن دسترسی داشته باشی، باید دسترسی شبکه و فایروال را بررسی کنی.۱۰.۱ باز کردن پورت ۹۰۰۰در PowerShell با دسترسی Administrator:New-NetFirewallRule `&#xA;  -DisplayName &#34;SonarQube Web 9000&#34; `&#xA;  -Direction Inbound `&#xA;  -Protocol TCP `&#xA;  -LocalPort 9000 `&#xA;  -Action Allow `&#xA;  -Profile Domain,Privateبرای محدودکردن دسترسی به شبکه داخلی، بهتر است -RemoteAddress را نیز با subnet واقعی کاربران مجاز تنظیم کنی.۱۰.۲ بررسی RuleGet-NetFirewallRule -DisplayName &#34;SonarQube Web 9000&#34;۱۰.۳ آزمایش از کامپیوتر دیگرفرض کنیم IP سرور SonarQube برابر است با:192.168.1.1این فقط یک آدرس نمونه است؛ از IP واقعی سرورت استفاده کن.روی سیستم کاربر:Test-NetConnection 192.168.1.1 -Port 9000سپس در مرورگر:http://192.168.1.1:9000اگر اتصال از روی خود سرور برقرار است اما از سایر سیستم‌ها برقرار نمی‌شود، موارد زیر را بررسی کن:Windows Defender Firewallفایروال بین VLANهامسیر شبکه و Routingتنظیم sonar.web.hostفایروال سازمانیوضعیت Listen پورت 9000برای دسترسی عادی کاربران، پورت‌های داخلی Elasticsearch و PostgreSQL را در شبکه عمومی باز نکن.۱۱. راه‌اندازی SonarQube به‌صورت Windows Serviceاجرای مستقیم با StartSonar.bat برای نصب اولیه و عیب‌یابی مناسب است، اما اجرای دائمی برنامه در محیط سازمانی باید به‌صورت کنترل‌شده مدیریت شود.برای اجرای خودکار می‌توان از روش سرویس‌کردن پشتیبانی‌شده توسط توزیع SonarQube استفاده کرد.مستندات رسمی بخش مستقلی برای اجرای برنامه به‌صورت سرویس دارند:Running SonarQube as a serviceقبل از سرویس‌کردن، ابتدا بررسی کن بسته نصب تو چه فایل‌هایی دارد:Get-ChildItem &#34;C:\SonarQube-DC\bin\windows-x86-64&#34;اگر بسته تو ابزار نصب سرویس نداشت، نباید دستور sc.exe create را مستقیماً روی فایل Batch اجرا کنی؛ فایل Batch یک Windows Service واقعی نیست.برای سرویس‌کردن با ابزارهایی مانند WinSW هم لازم است مدیریت Stop، حساب اجرایی، مسیر کاری و تنظیمات Restart مشخص باشد.توصیه: در محیط عملیاتی برنامه را با یک Service Account اختصاصی و دسترسی محدود اجرا کن، نه حساب Administrator.اگر فایل SonarService.bat در بسته نصب موجود باشد، می‌توانی SonarQube را مستقیماً با روش رسمی به Windows Service تبدیل کنی.۱۱.۱ نصب سرویسابتدا اجرای فعلی StartSonar.bat را با Ctrl+C متوقف کن و صبر کن تمام پردازش‌ها بسته شوند.سپس:cd C:\SonarQube-DC\bin\windows-x86-64&#xA;&#xA;Test-Path .\SonarService.batاگر نتیجه True بود:.\SonarService.bat install۱۱.۲ راه‌اندازی سرویس.\SonarService.bat start۱۱.۳ بررسی وضعیت.\SonarService.bat status۱۱.۴ توقف سرویس.\SonarService.bat stop۱۱.۵ راه‌اندازی خودکاربعد از نصب، نام واقعی سرویس را بررسی کن:Get-CimInstance Win32_Service |&#xA;Where-Object {&#xA;    $_.PathName -like &#39;*SonarQube-DC*&#39;&#xA;} |&#xA;Select-Object Name, State, StartMode, PathNameبعد از شناسایی نام، Startup Type سرویس را به Automatic تغییر بده:Set-Service -Name &#34;SERVICE_NAME&#34; -StartupType Automaticمقدار SERVICE_NAME باید با نام واقعی سرویس جایگزین شود. برای اجرای عملیاتی، تنظیم حساب اختصاصی سرویس و مجوزهای پوشه‌ها نیز ضروری است.این روش نصب، اجرا و توقف سرویس در راهنمای رسمی SonarSource مستند شده است.۱۲. بررسی لاگ‌ها و عیب‌یابیلاگ‌های SonarQube معمولاً در مسیر زیر هستند:C:\SonarQube-DC\logsدرخواست‌های HTTP در صورت فعال بودنمشاهده خطاهای کلیGet-Content &#34;C:\SonarQube-DC\logs\sonar.log&#34;</description><category>masoud tvk</category><author>masoud tvk</author><pubDate>Tue, 13 Oct 2026 13:21:40 +0330</pubDate></item></channel></rss>