Make installation directory more upgrade-friendly

Hello,
We are currently on version 9.9.8 Developer but will update to 2025.1. We have set up our system on a dedicated Linux Server and start it as an systemd service via the launcher-Jar in /lib. We use as much environment variables as possible to put all necessary changes outside of the installation directory (see Environment variables | SonarQube Server Documentation). Our goal is an upgrade procedure consisting of just:

  • unzip new installation directory in parallel to the current active directory
  • stop server
  • set symlink to new installation directory
  • start server

Currently, two additional changes have to be made in the installation directory upon every version upgrade

  • the startup-Jar has the version-number included: sonar-application-2025.1.0.102418.jar. We create a symlink “sonar-application.jar” within this directory. It would be nice to have the startup-jar with a filename which does not change between versions.
  • additional plugins and the oracle driver have to be put into the extensions directory. There is no possibility for using an environment variable (SONAR_PATH_EXTENSIONS?) to use an extensions directory outside of the installation directory.

I have found the documentation about using environment variables to configure the actual server instance: . With these environment variables, we are able to minimize the changes we have to make within the sonarqube installation directory.

With these additions an upgrade would be just a drop-in-replacement of the installation-zip (most of the times, a major upgrade would need to check the plugins and the database driver).

Thanks
Thomas

Hello Thomas,

Thanks for your insight, I really appreciate you took the time to share it.
In this case we don’t have any plans to address this on our current roadmap, but if we find evidence that it’s a wider problem we’ll look into it further.

Thanks again,
Elena