Skip to content
SonarQube Code Quality Server product logo
  • AWSAvailable on Amazon Web Services
  • AzureAvailable on Microsoft Azure
  • GCP· nextGoogle Cloud is next on the roadmap
Available

SonarQube Code Quality Server

SonarQube Community Build 26.9.0 on Java 21 with PostgreSQL 16, published through Apache on port 80, with Webmin for the host. The admin credential is staged before SonarQube's first start with no forced reset and no default-credential banner, PostgreSQL never faces the internet, and telemetry is off.

Version
v26.9.0
Operating system
Ubuntu 24.04 LTS
Architecture
x86_64
Support
Email support

What's installed

Every package and version on the image, identical on every cloud it ships on. Nothing else is installed.

  • SonarQube Community Build 26.9.0
  • OpenJDK 21.0.12
  • PostgreSQL 16.15
  • Apache 2.4.58
  • Webmin 2.660

LicensingSonarQube Community Build (LGPL-3.0), no licence key required

Deploy anywhere

SonarQube Code Quality Server on AWS and Azure.

Google Cloud is next on the roadmap. One clean-room build, one first-boot credential model, one patch cadence — identical on every cloud you run. Every identifier below is the real one; copy it and launch.

  1. AWS
    Available

    Amazon Web Services

    AMI · v26.9.0

    AWS AMI ID

    Shown for your region on the AWS Marketplace launch page once you subscribe.

    Released
    Root volume
    gp3 · 30 GiB
    Instance types
    • t3a.large
    • t3.large
    • m6a.large
    • m6a.xlarge
    Regions34 regions· show all
    • us-east-1
    • af-south-1
    • ap-east-1
    • ap-east-2
    • ap-northeast-1
    • ap-northeast-2
    • ap-northeast-3
    • ap-south-1
    • ap-south-2
    • ap-southeast-1
    • ap-southeast-2
    • ap-southeast-3
    • ap-southeast-4
    • ap-southeast-5
    • ap-southeast-6
    • ap-southeast-7
    • ca-central-1
    • ca-west-1
    • eu-central-1
    • eu-central-2
    • eu-north-1
    • eu-south-1
    • eu-south-2
    • eu-west-1
    • eu-west-2
    • eu-west-3
    • il-central-1
    • me-central-1
    • me-south-1
    • mx-central-1
    • sa-east-1
    • us-east-2
    • us-west-1
    • us-west-2

    5-day free trial, then from $0.06/hr software charge (larger instance sizes cost more) plus your own EC2 costs, billed by AWS.

    Subscriptions are open to AWS India (AISPL) accounts. Outside India? Ask us for a private build.

  2. Azure
    Available

    Microsoft Azure

    Compute Gallery image · v26.9.0.129388

    Azure Compute Gallery image ID

    Selected for you when you create the VM from the Azure Marketplace listing.

    Released
    OS disk
    Premium_LRS · 30 GiB
    VM sizes
    • Standard_D2as_v7
    • Standard_D4as_v7
    • Standard_D2as_v5
    • Standard_B2ms
    Regions50 regions· show all
    • eastus
    • australiacentral
    • australiaeast
    • australiasoutheast
    • austriaeast
    • belgiumcentral
    • brazilsouth
    • canadacentral
    • canadaeast
    • centralindia
    • centralus
    • chilecentral
    • denmarkeast
    • eastasia
    • eastus2
    • francecentral
    • germanywestcentral
    • indiasouthcentral
    • indonesiacentral
    • israelcentral
    • italynorth
    • japaneast
    • japanwest
    • jioindiawest
    • koreacentral
    • koreasouth
    • malaysiawest
    • mexicocentral
    • newzealandnorth
    • northcentralus
    • northeurope
    • norwayeast
    • polandcentral
    • qatarcentral
    • southafricanorth
    • southcentralus
    • southeastasia
    • southindia
    • spaincentral
    • swedencentral
    • switzerlandnorth
    • uaenorth
    • uksouth
    • ukwest
    • westcentralus
    • westeurope
    • westindia
    • westus
    • westus2
    • westus3
AWS

Getting started on Amazon Web Services

From launch to signed in, step by step.

  1. Subscribe on AWS Marketplace and launch in your region with TCP 22, 80 and 8000 open; allow about ten minutes - three JVMs, embedded Elasticsearch and migrations start first. GET /api/system/status returning UP is the real readiness signal.

  2. Open http://<instance-public-ip>/ and sign in with username admin and your EC2 Instance ID as the password, all lowercase (for example i-0123456789abcdef0).

  3. Webmin: http://<instance-public-ip>:8000, username admin or root, same password.

  4. PostgreSQL is local-only: sudo -u postgres psql over SSH, or tunnel with ssh -L 5432:127.0.0.1:5432 ubuntu@<instance-public-ip> and connect as postgres with the Instance ID.

  5. SSH as ubuntu with your key pair. Change passwords with sudo bash /home/ubuntu/iscripts/pass_sonarqube.sh, pass_postgres.sh or pass_webmin.sh (12+ characters). Use t3a.large or larger for real analysis volume.

Security posture

What this AWS image does and does not ship with, one fact per line.

  • Clean-room build on Canonical's official Ubuntu 24.04 LTS image: every component comes from its own official repository or release, nothing is copied from any third-party image, and the finished image was scanned for third-party vendor strings before capture.

  • No usable credential ships in the image; passwords are set on your instance at first boot from EC2 instance metadata (IMDSv2) and the scripts that set them delete themselves afterwards.

  • SSH is key-only, root login over SSH is refused, and build-time SSH keys, shell history and logs were removed before imaging.

  • A systemd unit ordered before SonarQube sets the admin password, clears the forced reset, removes the default-credential flag, and deletes the server ID so SonarQube mints one unique to this instance on its first start; a second first-boot pass verifies the login and repairs it if needed.

  • SonarQube (9000) and its embedded Elasticsearch (9001) are loopback-only behind Apache, and PostgreSQL admits only 127.0.0.1 - verified from outside on a launched instance.

  • Telemetry is disabled.

  • The password is written as a PBKDF2 hash directly, because SonarQube's own API rejects a lowercase Instance ID; the parameters were confirmed by reproducing a hash SonarQube itself had written.

  • The image is HTTP-only by design so it works at a bare IP with no certificate warnings: terminate TLS at a load balancer or add a certificate before exposing it publicly, and restrict port 22 and any admin ports to trusted IP ranges in your security group.

Azure

Getting started on Microsoft Azure

From launch to signed in, step by step.

  1. Create the VM from the Azure Marketplace listing with TCP 22, 80 and 8000 open in your network security group. Choose ubuntu as the administrator username so SSH and the script paths match. Wait about five minutes for first boot - SonarQube's own start-up is the slow part.

  2. Open http://<vm-public-ip>/ and sign in as admin. Webmin is on port 8000 (username admin or root).

  3. The password is your VM ID: in the Azure portal open the virtual machine, choose Properties and copy VM ID - a 36-character value such as 02aab8a4-74ef-476e-8182-f6d2ba4166a6, typed exactly as shown in lower case.

  4. Point your scanner at http://<vm-public-ip>/ and generate a token from My Account - Security. SSH as ubuntu with your key; change passwords with sudo bash ~/iscripts/pass_sonarqube.sh or pass_webmin.sh.

Security posture

What this Azure image does and does not ship with, one fact per line.

  • Clean-room build on Canonical's official Ubuntu image from the Azure Marketplace: every component comes from its own official source and no third-party image was launched or copied.

  • The SonarQube administrator and Webmin passwords are set on first boot from your VM's own vmId.

  • SonarQube binds to 127.0.0.1 and is reached only through Apache; PostgreSQL is loopback only.

  • The pre-image cleanup proves the build's own credentials are rejected before capture, and first boot sets every password from the new VM's own vmId, read from Azure IMDS.

  • The ubuntu login account ships password-locked with an empty authorized_keys, and cloud-init installs your own SSH key at deploy time.

  • Shell history, logs and cloud-init state are cleared before capture.

  • Verified against Microsoft's documented Linux certification test cases on a VM deployed from this gallery version - 13 passed, 0 failures - with VM extension provisioning confirmed and every helper script executed rather than only reviewed.

  • Restrict port 22 to trusted IP ranges, and put the consoles behind HTTPS with your own certificate before exposing them to the internet.