Update a Development Instance of FusionAuth

On this page

This page explains how to update FusionAuth to a newer version.

Update#

To update an instance of FusionAuth configured with a container management tool such as Docker Desktop, OrbStack, or Podman:

  1. Stop the instance:

    $ docker compose down
    
  2. Modify the docker-compose.yml file to point to the version of FusionAuth you want. The following command will update you to the latest version:

    $ docker pull fusionauth/fusionauth-app:latest
    

    For a full list of available tags, see fusionauth-app on Docker Hub.

  3. Start your instance:

    $ docker compose up -d
    
  4. Open the System -> About page in the Admin UI to check your instance's version of FusionAuth.

  1. Configure a FUSIONAUTH_HOME environment variable (typically /usr/local/fusionauth).

  2. Navigate to FUSIONAUTH_HOME. You should see the following contents:

    $FUSIONAUTH_HOME
    ├── bin
    ├── config
    │   ├── fusionauth.properties
    │   └── keystore
    ├── data
    ├── fusionauth-app
    ├── fusionauth-search
    └── java
    
  3. Shut down the FusionAuth services. During an update, most everything is saved in the database, so it is safe to delete these directories.

    $ "$FUSIONAUTH_HOME/bin/shutdown.sh"
    
  4. Delete or move the existing install:

    $ rm -rf "$FUSIONAUTH_HOME/fusionauth-app" "$FUSIONAUTH_HOME/fusionauth-search" "$FUSIONAUTH_HOME/bin"
    
    Tip

    To preserve your configuration and Elasticsearch index, preserve the following directories:

    $FUSIONAUTH_HOME
    ├── config
    ├── data
    ├── java
    └── logs
    
  5. Extract the new ZIP files and place them in FUSIONAUTH_HOME (the -n flag prevents accidental overwrites):

    Unzip the new packages with a no-overwrite flag
    $ unzip -nq new-fusionauth-app.zip -d "$FUSIONAUTH_HOME" && unzip -nq new-fusionauth-search.zip -d "$FUSIONAUTH_HOME"
    
  6. Restart FusionAuth:

    $ "$FUSIONAUTH_HOME/bin/startup.sh"
    

If you initially installed FusionAuth using Homebrew, you can also use Homebrew to update to the latest version of FusionAuth.

To update FusionAuth using brew, follow the steps below:

  1. Stop fusionauth-app using Homebrew services:

    $ brew services stop fusionauth-app
    
  2. Update the version of fusionauth-app:

    $ brew upgrade fusionauth-app
    
  3. Start fusionauth-app with Homebrew services:

    $ brew services start fusionauth-app
    
  1. Configure a $env:FUSIONAUTH_HOME environment variable (typically \fusionauth).

  2. Navigate to $env:FUSIONAUTH_HOME. You should see the following contents:

    $env:FUSIONAUTH_HOME (\fusionauth)
    ├── bin
    ├── config
    │   ├── fusionauth.properties
    │   └── keystore
    ├── data
    ├── fusionauth-app
    ├── fusionauth-search
    └── java
    
  3. Shut down the FusionAuth services. During an update, most everything is saved in the database, so it is safe to delete these directories.

    Stop-Service -Name FusionAuthApp
    
    Stop-Service -Name FusionAuthSearch
    
  4. Delete or move the existing install:

    & "$env:FUSIONAUTH_HOME\fusionauth-app\bin\FusionAuthApp.exe" /uninstall
    
    Note

    Prior to version 1.37.0, you can find FusionAuthApp.exe at:

    & "\$env:FUSIONAUTH_HOME\fusionauth-app\apache-tomcat\bin\FusionAuthApp.exe"

    Versions 1.37.0 through 1.39.0 do not support native Windows installation.

    & "$env:FUSIONAUTH_HOME\fusionauth-search\elasticsearch\bin\FusionAuthSearch.exe" /uninstall
    
    Tip

    To preserve your configuration and Elasticsearch index, preserve the following directories:

    $env:FUSIONAUTH_HOME
    ├── config
    ├── data
    ├── java
    └── logs
    
  5. Extract the new ZIP files and place them in $env:FUSIONAUTH_HOME. You may do this using Windows File Explorer or PowerShell's Expand-Archive cmdlet. Ensure you delete or move the existing directories to prevent unzipping the new version on top of the existing version. If the new version is unzipped on top of the existing version, you will end up with duplicate libraries in the classpath that will lead to runtime errors.

  6. Reinstall the Windows services:

    & "$env:FUSIONAUTH_HOME\fusionauth-app\bin\FusionAuthApp.exe" /install
    
    & "$env:FUSIONAUTH_HOME\fusionauth-search\elasticsearch\bin\FusionAuthSearch.exe" /install
    
  7. Start the Windows services:

    Start-Service -Name FusionAuthSearch
    Start-Service -Name FusionAuthApp
    

If you installed using the RPM or Debian packages, issue an update command to dpkg or your RPM program and specify the new package file:

  1. Shut down FusionAuth:

    $ sudo service fusionauth-app stop && sudo service fusionauth-search stop
    
  2. Update FusionAuth to a specific version, replacing the <version> placeholder with your version number:

    $ sudo dpkg -i fusionauth-search-<version>.deb && sudo dpkg -i fusionauth-app-<version>.deb
    
    $ sudo rpm -U fusionauth-search-<version>.rpm && sudo rpm -U fusionauth-app-<version>.rpm
    
  3. Start FusionAuth:

    $ sudo systemctl start fusionauth-search && sudo systemctl start fusionauth-app
    

Troubleshoot RPM installs#

Please review the procedure outlined below if attempting to perform a clean install or update using RPM's and have experienced a failure that you have been unable to resolve. Please only consider these steps after other attempts have been unsuccessful.

Caution

This will completely remove FusionAuth App and FusionAuth Search from your server. Proceed with caution.

It is always recommended you back up the database before performing an update or troubleshooting steps outlined here.

The following steps will produce a clean installation preserving:

  • The FusionAuth config file found in /usr/local/fusionauth/config/fusionauth.properties
  • The Elasticsearch index found in /usr/local/fusionauth/data

Below assumes both fusionauth-app and fusionauth-search will be uninstalled and reinstalled together. If you are not using fusionauth-search, you may ignore the steps related to this service.

Manual Removal Steps#

  1. Remove the RPM package for fusionauth-search and fusionauth-app:

    $ sudo rpm -e fusionauth-search && sudo rpm -e fusionauth-app
    
  2. Manually delete anything leftover from RPM:

    $ sudo rm -rf /usr/local/fusionauth/fusionauth-search/ /usr/local/fusionauth/fusionauth-app/ /usr/local/fusionauth/bin/
    
  3. After removal, the following directories will remain:

    • /usr/local/fusionauth/config/
    • /usr/local/fusionauth/data/ (does not always exist)
    • /usr/local/fusionauth/java/ (safe to delete)
  4. Download your desired version of fusionauth-app and fusionauth-search from our direct download page.

  5. Reinstall fusionauth-app and fusionauth-search:

    $ sudo rpm -i <file_to_be_installed>.rpm