Install the following prerequisites independently of the Xray archive installation. Make sure to install them before starting your Xray service.
PostgreSQL
db-util
Erlang
For more information, see Third Party Applications for Xray.
Before you proceed with the installation, review the system requirements.
Follow these steps to install the product:
Extract the contents of the compressed archive and move it into xray directory.
PostgreSQL is required and must be installed before continuing with the next installation steps.
Set your PostgreSQL connection details in the Shared Configurations section of the
$JFROG_HOME/xray/var/etc/system.yaml
file.Start PostgreSQL.
Customize the product configuration.
Set the Artifactory connection details.
Customize the PostgreSQL Database connection details. (optional)
Set any additional configurations (for example: ports, node id) using the Xray System YAML Configuration File.
Warning
Verify that a large file handle limitis specified before you start Xray.
Start and manage the Xray service as the user who extracted the tar.
As a daemon process
To start the process: xray/app/bin/xray.sh start To manage the process: xray/app/bin/xray.sh start|stop|status|restart
As a service
Xray is packaged as an archive file and you can use the install script to install it as a service running under a custom user. Currently supported on Linux systems.
OS User Permissions
When running Xray as a service, the installation script creates a user called
xray
(by default)which must have run and execute permissions on the installation directory.It is recommended to extract the Xray download file into a directory that gives run and execute permissions to all users such as
/opt
.To install Xray as a service, execute the following command as root.
xray/app/bin/installService.sh --user <enter user, default value is xray> --group <enter group, default value is xray> -u | --user : [optional] (default: xray) user which will be used to run the product, it will be created if its unavailable -g | --group : [optional] (default: xray) group which will be used to run the product, it will be created if its unavailable
Note
User and group can be passed through
xray/var/etc/system.yaml
asshared.user
andshared.group
. This takes precedence over values passed through command line on install.The user and group is stored in
xray/var/etc/system.yaml
at the end of installation.To manage the service, use
systemd
orinit.d
commands depending on your system.Using systemd
systemctl <start|stop|status> xray.service
Using init.d
service xray <start|stop|status>
Access Xray from your browser at:
http://<jfrogUrl>/ui/:port
.Go to the Xray Security & Compliance tab in the Administration module in the UI.
Check Xray Log.
tail -f xray/var/log/console.log
Configure log rotation of the console log
The
console.log
file can grow quickly since all services write to it. For more information, see configure the log rotation.
Third Party Applications for Xray
Ensure that you install the third party application for Xray before run the Xray service.
PostgreSQL for Xray
Using Microsoft Azure PostgreSQL
Some managed databases, such as Azure, have a different username for accessing the database than the actual one inside the database. For Azure-managed PostgreSQL, the username
will be, for example xray@mycompany
and the actualUsername
will be xray
. For more information, see Xray System YAML.
Prior to Xray version 3.30
If you install an Xray version prior to 3.30, do not use a password for PostgreSQL that has special characters.Xray may not work if you configure a password that has special characters, such as~ = # @ $ /
.
PostgreSQL Linux Archive Installation
PostgreSQL binaries are no longer bundled with Linux archive installer. You need to install PostgreSQL manually.
Create the PostgreSQL database.
<pgsql bin path>/psql template1 <postgres prompt>: CREATE DATABASE <user_name>; <postgres prompt>: \q
Run the script, xray/app/third-party/postgresql/createPostgresUsers.sh
, to seed the PostgreSQL database.
POSTGRES_PATH=<pgsql bin path> xray/app/third-party/postgresql/createPostgresUsers.sh
Xray PostgreSQL Upgrade
Xray 3.x supports PostgreSQL versions 10, 11, 12, 13, 14, and 15.
To learn about the process and requirements for upgrading PostgreSQL 9.x, see JFrog Xray PostgreSQL Upgrade - PostgreSQL 9.x EoS.
PostgreSQL Performance Improvements
We recommend that you increase the maximum connections setting in the PostgreSQL configuration file.
Open the $JFROG_HOME/xray/var/lib/pgsql/data/postgresql.conf
configuration file, and add or edit the max_connections
property.
Restart the database to enable this change.
Erlang for Xray
Erlang Linux Archive Installation
Erlang binaries are no longer bundled with Linux archive installer for Xray. Remember to install Erlang manually.
db-util for Xray
db-util allows Xray to interact with the Berkley DB that contains information about RPM-based Docker images. This way, JFrog Xray can index OS packages for these images.
db-util Linux Archive installation
db-util binaries are no longer bundled with Linux archive installer for Xray. Remember to install db-util manually.