After running into more or less the same problem every damn keycloak upgrade it’s time to put some notes into place so I won’t struggle in the future anymore. At least not with the same problem.
-
Change into the root directory for keycloak
cd /var/www -
Download the latest release tarball
curl -LO https://github.com/keycloak/keycloak/releases/download/24.0.3/keycloak-24.0.3.tar.gz -
Change ownership
chown _keycloak keycloak-24.0.3 -
Read the upgrade instructions! Most of the time it boils down to
cp -Rpv keycloak-22.0.5/{conf,providers,themes} keycloak-24.0.3/for me
-
Change into the new release directory
cd keycloak-24.0.3/ -
Stop old keycloak
rcctl stop keycloak -
This step is crucial and well hidden within the documentation of keycloak.
JAVA_HOME=/usr/local/jdk-21 bin/kc.sh buildFailing to do the build first before starting keycloak with the
--optimizedflag via my rc file results in an exception due to problems with the jdbc URL:2024-04-19 13:38:08,815 ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: URL format error; must be "jdbc:h2:{ {.|mem:}[name] | [file:]fileName | {tcp|ssl}:[//]server[:port][,server2[:port]]/name }[;key=value...]" but is "jdbc:postgresql://localhost:5432/keycloak" [90046-224] -
adjust daemon_execdir to reflect the new version in
/etc/rc.d/keycloak -
Start the new keycloak
rcctl start keycloak -
Clean up behind you
rm -rd /var/www/keycloak-22.0.5