Performing Updates¶
In order to take advantage of new Binary Ninja Ultimate features, the Enterprise server will occasionally need to be updated. Updates should generally be fairly straightforward, but will sometimes require some additional steps or considerations.
Updating Your License¶
Note
If you are using your own server.pem and server.key as described here, you should not replace either of those files with the ones provided by us.
If you just need to update your license (e.g. because you've extended support) or license bundle (e.g. because you've added more seats):
- Use one of the online or offline update methods below to obtain the new license files (
license.datandlicense-bundle.b64), server certificate (server.pem), and server key (server.key). - Stop the Enterprise server with
manage_server stop. - Overwrite the old files with the new ones.
- Re-start the Enterprise server with
manage_server start.
When the server starts back up, it should seamlessly switch to the new licenses that have been provided and you should be back up and running.
Updating Your Server¶
The best way to update your Enterprise server will depend partly on how it was installed. Please see the appropriate section below for your installation.
Warning
Please also be advised that there may be limitations on what client versions can access your server. See the Client Compatibility section below for more information.
Online Update¶
Warning
Before updating, please check the section below for any specific considerations regarding your current Enterprise server version.
Danger
Updating can, in rare circumstances, result in data corruption or data loss. Please consider backing up your server before performing an update to be safe!
Assuming there aren't any (or you have addressed them), updating an Enterprise server that has an active internet connection is simple:
- Run
manage_server updateto perform the update. - Run
manage_server startto re-start the server.
Note
An updated copy of the Enterprise server can also be obtained via the Binary Ninja license recovery page or the Binary Ninja customer portal.
Offline Update¶
Warning
Before updating, please check the section below for any specific considerations regarding your current Enterprise server version.
Danger
Updating can, in rare circumstances, result in data corruption or data loss. Please consider backing up your server before performing an update to be safe!
There are three different ways of upgrading an offline Enterprise server installation. Which you choose is mostly a matter of preference/convenience.
Using Customer Portal¶
The first choice is to log into the Binary Ninja customer portal to download an updated copy of the Enterprise server if the license is assigned to you:
- Log into the Portal.
- Click the license in the License Summary (or within the Manage Licenses page).
- Download the
binaryninja_enterprise_server.zipmatching your server's host platform. - Download the
images.tarmatching your server's host architecture. - Move these files to the offline host.
- Replace
manage_serverwith the one from the.zip- Remember to ensure this is owned by the correct user and is executable for them!
- On macOS, you may need to use
xattr -d com.apple.quarantine ./manage_serverif it refuses to execute because it is a downloaded file.
- Use
manage_server update --offlineto perform the update.- If
images.taris not in the current directory, you may need to specify its location with-i <path/to/images.tar>.
- If
- Re-start the server with
manage_server start.
Using License Recovery¶
The second choice is to use the Binary Ninja license recovery page to get an updated copy of the Enterprise server sent to the registered email address. Once you fill out and submit the form:
- Download the
binaryninja_enterprise_server.zipmatching your server's host platform. - Download the
images.tarmatching your server's host architecture. - Move these files to the offline host.
- Replace
manage_serverwith the one from the.zip- Remember to ensure this is owned by the correct user and is executable for them!
- On macOS, you may need to use
xattr -d com.apple.quarantine ./manage_serverif it refuses to execute because it is a downloaded file.
- Use
manage_server update --offlineto perform the update.- If
images.taris not in the current directory, you may need to specify its location with-i <path/to/images.tar>.
- If
- Re-start the server with
manage_server start.
Using manage_server¶
The third choice is to use manage_server on an internet-connected machine to update and download the new images for you. This is most helpful in the situation where you aren't the 'owner' of the license of the server, and thus can't use the previous two options.
You will, however, need a copy of the Enterprise server license or manage_server will not be capable of authenticating to download the updates.
To do this:
- On the internet-connected host, run
manage_server update, which will updatemanage_serveritself and download the new server images. - Use
manage_server get_bundleto download all of the files required for offline deployment. - Move
enterprise_bundle.tarto your offline host and un-tarit, which should create anenterprise_serverfolder with all of the required files. - Replace
manage_serverwith the one from theenterprise_serverfolder from step 3.- Remember to ensure this is owned by the correct user and is executable for them!
- On macOS, you may need to use
xattr -d com.apple.quarantine ./manage_serverif it refuses to execute because it is a downloaded file.
- Use
manage_server update --offline -i <path/to/images.tar>to perform the update (images.tarshould be inside theenterprise_serverfolder from step 3). - Re-start the server with
manage_server start.
Client Compatibility¶
Binary Ninja assumes users will typically change versions in a positive direction. This same assumption holds for Enterprise as well. While an older client or server may work with a newer client or server, we only test for and guarantee compatibility within a specific version pair.
These are the stable versions that are expected to work together and have been tested prior to release:
| Client Version | Server Version |
|---|---|
| 3.0.3233 | 1.0.174 |
| 3.1.3469 | 1.0.176 |
| 3.2.3814 | 1.1.162 |
| 3.3.4077 | 1.1.187 |
| 3.4.4271 | 1.2.264 |
| 3.5.4526 | 1.2.293 |
| 4.0.4911 | 1.2.308 |
| 4.1.5747 | 1.2.332 |
| 4.2.6455 | 1.2.342 |
| 5.0.7290 | 1.2.352 |
| 5.1.8005 | 1.2.359 |
| 5.1.8104 | 1.2.418 |
| 5.2.8614 | 1.2.437, 1.2.431 |
| 5.2.8722 | 2.0.525, 1.2.483 |
Warning
If you are using clients from the dev channel, the above may not be guaranteed to be compatible. Generally speaking, we expect you to be running the latest version of the dev channel on both the client and the server to guarantee compatibility. We don't often break things (intentionally or otherwise), but when we do, it will come without warning.
If you encounter a problem with compatibility, and you are using a combination from the list above, please report it to us either via email (enterprise@vector35.com) or GitHub.
Version-Specific Considerations¶
Occasionally, a change from an older version of Enterprise to a newer version has some caveats or extra required steps to follow. Please check the instructions below to see if any of these apply to your update.
Upgrading From Enterprise 1.x to Enterprise 2.x¶
Warning
We do not recommend trying to upgrade a server before version 1.2.431 to version 2.x. While upgrading from earlier versions should work, our testing has focused on backups from 1.2.431 and later. If possible, upgrade your server within version 1.x first before upgrading to version 2.x.
Version 2.0 of the Enterprise server has completely changed how objects are stored and updated from PostgreSQL 14 to PostgreSQL 17. As a result of these changes, there is unfortunately no way to upgrade without a complete backup and restore of all Enterprise server data. Going forward, we hope to be able to perform these migrations without necessitating a full restore. However, taking a full backup before any upgrade is still recommended.
To create the Enterprise server backup, while the server is still running, perform a backup, then stop the server:
./manage_server backup
./manage_server stop
Once you have successfully completed the backup, proceed to the Installation guide to install Enterprise 2.x. You should be able to do this without uninstalling the previous server, although you will need to be in a different folder than the original. This does, however, assume you have enough storage space for all of the data. If you have used any bind mounts for your 1.x server, do not re-use them for the 2.x server. The data layout is not compatible between the two.
After the install has completed and you have the new server started, you should be able to perform a restore and then restart the server:
./manage_server restore
./manage_server stop
./manage_server start
When the server restarts, it should perform any remaining migrations necessary and then proceed to normal operation.
If, at this point, anything is not working, check the Troubleshooting guide or contact support at enterprise@vector35.com.