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:
-
Stop the instance:
$ docker compose down -
Modify the
docker-compose.ymlfile to point to the version of FusionAuth you want. The following command will update you to the latest version:$ docker pull fusionauth/fusionauth-app:latestFor a full list of available tags, see
fusionauth-appon Docker Hub. -
Start your instance:
$ docker compose up -d -
Open the System -> About page in the Admin UI to check your instance's version of FusionAuth.
-
Configure a
FUSIONAUTH_HOMEenvironment variable (typically/usr/local/fusionauth). -
Navigate to
FUSIONAUTH_HOME. You should see the following contents:$FUSIONAUTH_HOME ├── bin ├── config │ ├── fusionauth.properties │ └── keystore ├── data ├── fusionauth-app ├── fusionauth-search └── java -
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" -
Delete or move the existing install:
$ rm -rf "$FUSIONAUTH_HOME/fusionauth-app" "$FUSIONAUTH_HOME/fusionauth-search" "$FUSIONAUTH_HOME/bin"TipTo preserve your configuration and Elasticsearch index, preserve the following directories:
$FUSIONAUTH_HOME ├── config ├── data ├── java └── logs -
Extract the new ZIP files and place them in
FUSIONAUTH_HOME(the-nflag 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" -
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:
-
Stop
fusionauth-appusing Homebrew services:$ brew services stop fusionauth-app -
Update the version of
fusionauth-app:$ brew upgrade fusionauth-app -
Start
fusionauth-appwith Homebrew services:$ brew services start fusionauth-app
-
Configure a
$env:FUSIONAUTH_HOMEenvironment variable (typically\fusionauth). -
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 -
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 FusionAuthAppStop-Service -Name FusionAuthSearch -
Delete or move the existing install:
& "$env:FUSIONAUTH_HOME\fusionauth-app\bin\FusionAuthApp.exe" /uninstallNotePrior to version
1.37.0, you can findFusionAuthApp.exeat:& "\$env:FUSIONAUTH_HOME\fusionauth-app\apache-tomcat\bin\FusionAuthApp.exe"Versions
1.37.0through1.39.0do not support native Windows installation.& "$env:FUSIONAUTH_HOME\fusionauth-search\elasticsearch\bin\FusionAuthSearch.exe" /uninstallTipTo preserve your configuration and Elasticsearch index, preserve the following directories:
$env:FUSIONAUTH_HOME ├── config ├── data ├── java └── logs -
Extract the new ZIP files and place them in
$env:FUSIONAUTH_HOME. You may do this using Windows File Explorer or PowerShell'sExpand-Archivecmdlet. 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. -
Reinstall the Windows services:
& "$env:FUSIONAUTH_HOME\fusionauth-app\bin\FusionAuthApp.exe" /install& "$env:FUSIONAUTH_HOME\fusionauth-search\elasticsearch\bin\FusionAuthSearch.exe" /install -
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:
-
Shut down FusionAuth:
$ sudo service fusionauth-app stop && sudo service fusionauth-search stop -
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 -
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.
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#
-
Remove the RPM package for
fusionauth-searchandfusionauth-app:$ sudo rpm -e fusionauth-search && sudo rpm -e fusionauth-app -
Manually delete anything leftover from RPM:
$ sudo rm -rf /usr/local/fusionauth/fusionauth-search/ /usr/local/fusionauth/fusionauth-app/ /usr/local/fusionauth/bin/ -
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)
-
Download your desired version of
fusionauth-appandfusionauth-searchfrom our direct download page. -
Reinstall
fusionauth-appandfusionauth-search:$ sudo rpm -i <file_to_be_installed>.rpm
Related
Learn how to update FusionAuth instances, FusionAuth Cloud deployments, and client libraries to a newer version.
Learn how to roll back FusionAuth to a previous version.
Learn how to plan, perform, and verify an update of a FusionAuth instance in a production environment.
Learn how to update a deployment to a newer version of FusionAuth.