Subscription Information
This feature is supported on the Self-Hosted platform, with Pro X, Enterprise X, and Enterprise+ licenses.
You can install and configure JFrog Xray, single node and high availability. For additional information on high availability, see high availability
Before installing Xray 3.x, you must first install JFrog Artifactory 7.x.
Note
Use a dedicated server with no other software running to alleviate performance bottlenecks, avoid port conflicts, and avoid setting uncommon configurations.
Warning
If you install Xray on the same server as Artifactory, you might have port conflicts and performance issues. Artifactory and Xray use port 8082 for communication with the external network. In addition, the ports 8082, 8046, 8047, and 8049 are used by both Xray and Artifactory for the Router microservice.
Note
JFrog Xray now supports RabbitMQ Quorum Queues, an optional parameter configurable in system.yaml. This change is due to RabbitMQ deprecating Classic Queue mirroring in version 4.x. As a result, JFrog will also deprecate Classic Queue support and transition to Quorum Queues. It is highly recommended to enable Quorum Queues in Xray, as JFrog intends to fully transition to RabbitMQ 4.x and discontinue Classic Queue support in future versions.
Note
From Xray version 3.124.x, JFrog has added support for RabbitMQ Quorum Queues, as RabbitMQ has discontinued support for Classic Queue mirroring, which is deprecated in RabbitMQ 4.x. With this, JFrog will be deprecating Classic Queue support in upcoming releases.
A two-node cluster with RabbitMQ Quorum Queues will not be fault-tolerant, as Quorum Queues require a minimum of 3 nodes for HA. For more information, please refer to the RabbitMQ Quorum Queues documentation here.
With the Xray 3.124.x installer, optional support for RabbitMQ 4.x has been introduced, including a variable to switch to RabbitMQ 4.x during installation. The ${JF_PRODUCT_HOME}/app/bin/xray.default file has been updated with the JF_PRODUCT_RABBITMQ_HOME variable to support RabbitMQ 4.x and Quorum Queues.
Note
It is crucial to migrate to Quorum Queues while still using RabbitMQ 3.x before upgrading to RabbitMQ 4.x. RabbitMQ 4.x does not support Classic Queue mirroring, and switching directly to RabbitMQ 4.x without prior migration to Quorum Queues will result in data loss and require re-indexing repositories.
To use RabbitMQ 4.x if you are currently running RabbitMQ 3.x, you must update ${JF_PRODUCT_HOME}/app/bin/xray.default. Set the JF_PRODUCT_RABBITMQ_HOME variable key to ${JF_PRODUCT_HOME}/app/third-party/rabbitmq4 in this file before starting Xray.
For Xray installations with three or more nodes, the recommended approach is to separate the RabbitMQ and Xray clusters, installing them independently. More information on this can be found here.
To learn about the JFrog Platform Deployment, see System Architecture.
Before you proceed, see System Requirements for information on supported platforms, supported browsers, and other requirements.
Admin Permissions for Installation
We recommend that you run the installation as a root user or provide sudo access to a non-root user.
You need to have admin permissions on the installation machine in the following cases.
Native installer - always requires admin permissions
Archive installer - requires admin permissions only during installation
Docker installer - does not require admin permissions
Installation Steps
The installation procedure involves the following main steps.
Download Xray as per your required installer type (Docker Compose, RPM, Debian).
Install Xray either as a single node installation, or high availability cluster.
Install third party dependencies (PostgreSQL database, included in the archive)
Install Xray
Configure Xray basic settings.
Connect to an Artifactory instance (requires a
joinKeyand ajfrogUrlin the XRaysystem.yamlfile).Optional: Configure the PostgreSQL database connection details if you have set Postgres as an external database.
Start the Service using the start scripts or OS service management.
Check the Service Log to check the status of the service.
Default Home Directory / $JFROG_HOME
The default home directory is defined according to the installation type. For more information, see System Directories.
$JFROG_HOME represents the JFrog root directory containing the deployed product.