Keycloak Upgrade 22.0.5 -> 24.0.3

📆
🏷
, ,

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 build
    

    Failing to do the build first before starting keycloak with the --optimized flag 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
    
--EOF